Author: wayland
Date: 2009-08-18 12:16:37 +0200 (Tue, 18 Aug 2009)
New Revision: 28019

Modified:
   docs/Perl6/Spec/S16-io.pod
   docs/Perl6/Spec/S32-setting-library/IO.pod
Log:
S32/IO: Mention that Path can be used as an array of path elements
S16: Restrict filenames to POSIX


Modified: docs/Perl6/Spec/S16-io.pod
===================================================================
--- docs/Perl6/Spec/S16-io.pod  2009-08-18 09:47:04 UTC (rev 28018)
+++ docs/Perl6/Spec/S16-io.pod  2009-08-18 10:16:37 UTC (rev 28019)
@@ -103,16 +103,21 @@
 
 =head3 Default constraints
 
-The default p{} only allows "/" as separator and does not allow path elements 
-to contain
-characters that won't work on modern Windows and Unix like \ / ? % * : | " > <,
-etc. The reason for this is that portable paths are the default. If
-platform/filesystem specific behavior is really needed it should be shown in 
+The default paths are portable paths.  These are POSIX-compatible (see 
+POSIX.1-2008 sections4.7 and 3.276).  If
+platform/filesystem specific behavior is needed it should be shown in 
 the code by applying different sets of constraints (see below).  
 
+The default constraints are to only allow "/" as separator and only allows 
+POSIX filenames.  That means A-Z, a-z, 0-9, <period>, <underscore>, and 
+<hyphen>.  Additionally, hyphen may not be the first character in the path.  
+
+Any path that starts with a "/" is considered an absolute path, otherwise
+the path is considered relative.  
+
 =head3 Windows-style constraints
 
-We allow windows style paths so converting and maintaining code on this
+We allow Windows style paths so converting and maintaining code on this
 platform is not a pain.
 
 my Path $path = p:win{C:\Program Files\MS Access\file.file};
@@ -131,6 +136,11 @@
 And for cases where this is a problem p:bin{} can be used as no checking is
 done here, other than assuming that / is the separator.  
 
+=head3 Other constraints
+
+It is expected that other sets of constraints, such as VMS, DOS, and old-style
+Mac will be provided by modules.  
+
 =head1 Name Services
 
 =head2 User role

Modified: docs/Perl6/Spec/S32-setting-library/IO.pod
===================================================================
--- docs/Perl6/Spec/S32-setting-library/IO.pod  2009-08-18 09:47:04 UTC (rev 
28018)
+++ docs/Perl6/Spec/S32-setting-library/IO.pod  2009-08-18 10:16:37 UTC (rev 
28019)
@@ -680,7 +680,7 @@
 are usually created with the p{/path/to/file} syntax.  It could be a directory,
 file, link, or something else OS-specific.  
 
-    role Path {
+    role Path does Str does Array {
         has Str $.Type;
         has Array of Str @.Elements;
         has Array of IO::ACL @.ACLs;
@@ -698,6 +698,10 @@
 C<$.Type> can be C<File>, C<Directory>, C<Link>, or C<Other>.  See 
 C<.create()> method documentation for how it is set.  
 
+When used as a Str, it allows some operations, so that it can be concatenated
+easily with other strings.  When used as an Array, it acts as an array of 
+path elements.  
+
 =head3 Methods
 
 =over 4

Reply via email to