[svn:perl6-synopsis] r13700 - doc/trunk/design/syn

2007-02-22 Thread larry
Author: larry
Date: Thu Feb 22 12:51:15 2007
New Revision: 13700

Modified:
   doc/trunk/design/syn/S02.pod
   doc/trunk/design/syn/S03.pod
   doc/trunk/design/syn/S06.pod

Log:
More Y XX - Z X clarifications
Now allow constant $?TABSTOP = 4 syntax for user to set compiler variables.


Modified: doc/trunk/design/syn/S02.pod
==
--- doc/trunk/design/syn/S02.pod(original)
+++ doc/trunk/design/syn/S02.podThu Feb 22 12:51:15 2007
@@ -12,9 +12,9 @@
 
   Maintainer: Larry Wall [EMAIL PROTECTED]
   Date: 10 Aug 2004
-  Last Modified: 15 Feb 2007
+  Last Modified: 22 Feb 2007
   Number: 2
-  Version: 88
+  Version: 89
 
 This document summarizes Apocalypse 2, which covers small-scale
 lexical items and typological issues.  (These Synopses also contain
@@ -1567,12 +1567,25 @@
 in fact be dynamically scoped within the compiler itself, and only
 appear to be lexically scoped because dynamic scopes of the compiler
 resolve to lexical scopes of the program.  All C$? variables are considered
-constants, and may not be modified after being compiled in.
+constants, and may not be modified after being compiled in.  The user
+is also allowed to define or (redefine) such constants:
+
+constant $?TABSTOP = 4; # assume heredoc tabs mean 4 spaces
+
+(Note that the constant declarator always evaluates its initialization
+expression at compile time.)
 
 C$?FILE and C$?LINE are your current file and line number, for
 instance.  C? is not a shortcut for a package name like C* is.
-Instead of C$?OUTER::SUB you probably want to write C OUTER::$?SUB
-.
+Instead of C$?OUTER::SUB you probably want to write C OUTER::$?SUB .
+Within code that is being run during the compile, such as BEGIN blocks,
+or macro bodies, or constant initializers, the compiler variables must
+be referred to as C COMPILING$?LINE  if the bare C$?LINE would
+be taken to be the value during the compilation of the currently running
+code rather than the eventual code of the user's compilation unit.  For
+instance, within a macro body C$?LINE is the line within the macro
+body, but C COMPILING::$?LINE  is the line where the macro was invoked.
+See below for more about the CCOMPILING pseudo package.
 
 Here are some possibilities:
 

Modified: doc/trunk/design/syn/S03.pod
==
--- doc/trunk/design/syn/S03.pod(original)
+++ doc/trunk/design/syn/S03.podThu Feb 22 12:51:15 2007
@@ -1107,6 +1107,13 @@
 
 ('a', '1'), ('a', '2'), ('b', '1'), ('b', '2')
 
+This becomes a flat list in C@ context and a list of arrays in C@@ context:
+
+say @(a b X 1 2)
+'a', '1', 'a', '2', 'b', '1', 'b', '2'
+say @@(a b X 1 2)
+['a', '1'], ['a', '2'], ['b', '1'], ['b', '2']
+
 =item *
 
 Cross hyperoperators

Modified: doc/trunk/design/syn/S06.pod
==
--- doc/trunk/design/syn/S06.pod(original)
+++ doc/trunk/design/syn/S06.podThu Feb 22 12:51:15 2007
@@ -1518,7 +1518,7 @@
 right   ** =$a op ($b op $c)**
 non cmp = ..  ILLEGAL cmp
 chain   == eq ~~($a op $b) and ($b op $c)   eqv
-list|  ^ ¥ op($a, $b, $c)  |
+list|  ^ Z op($a; $b; $c)  |
 
 Note that operators Cequiv to relationals are automatically considered
 chaining operators.  When creating a new precedence level, the chaining


Re: [svn:perl6-synopsis] r13700 - doc/trunk/design/syn

2007-02-22 Thread Aaron Crane
[EMAIL PROTECTED] writes:
 +be referred to as C COMPILING$?LINE  if the bare C$?LINE would

That looks like it's missing a double-colon.

-- 
Aaron Crane