Author: larry
Date: Mon Apr 16 09:59:02 2007
New Revision: 14375

Modified:
   doc/trunk/design/syn/S11.pod

Log:
Module names must respect case sensitivity even on case-insensitive systems.


Modified: doc/trunk/design/syn/S11.pod
==============================================================================
--- doc/trunk/design/syn/S11.pod        (original)
+++ doc/trunk/design/syn/S11.pod        Mon Apr 16 09:59:02 2007
@@ -12,9 +12,9 @@
 
   Maintainer: Larry Wall <[EMAIL PROTECTED]>
   Date: 27 Oct 2004
-  Last Modified: 9 Mar 2006
+  Last Modified: 16 Apr 2007
   Number: 11
-  Version: 17
+  Version: 18
 
 =head1 Overview
 
@@ -202,6 +202,20 @@
 where to keep them, such that multiple versions by different authors
 can coexist, all of them available to any installed version of Perl.
 
+The internal API for package names is always case-sensitive, even if
+the library system is hosted on a system that is not case-sensitive.
+This implies either some sort of name mangling capability or storage
+of intermediate products into a database of some sort.  In any event,
+the actual storage location must be encapsulated in the library system
+such that it is hidden from all language level naming constructs.
+(Provision must be made for interrogating the library system for
+the actual location of a module, of course, but this falls into
+the category of introspection.)  Note also that distributions
+need to be distributed in a way that they can be installed on
+case-insensitive systems without loss of information.  That's fine,
+but the language-level abstraction must not leak details of this
+mechanism without the user asking for the details to be leaked.
+
 The syntax of a versioned module or class declaration has multiple
 parts in which the non-identifier parts are specified in adverbial pair
 notation without intervening spaces.  Internally these are stored in

Reply via email to