Re: Relief for rw/ro

2007-02-22 Thread Steve Lukas
PS:
In between, I think 'variable' is too long, so:
$code =~ s/variable/vari/g;

IMHO  C is better than  C because 
C doesn't look like a special thing, but it is.

I feel that the most usual cases for read/write 
would be better readable with that approach. 
Instead of
C<$res=funcy($foo is rw);> it would be
C<$res=funcy(vari $foo);>

And instead of
 C it would be
 C

The question is probably if the writeability is a trait
like other traits and should therefore be written 
in the C form or is it so special, that a 
second delararator is appropriate.
The second declararator has the advantage that 
the very important information of exceptional 
write-protection or exceptional write-access stands 
on the left side, as it should be.

Kind Regards
 Stefan




 
-
Sucker-punch spam with award-winning protection.
 Try the free Yahoo! Mail Beta.

Parrot 0.4.9 released!

2007-02-22 Thread Patrick R. Michaud
On behalf of the Parrot team, I'm proud to announce Parrot 0.4.9,
"Socorro." Parrot (http://parrotcode.org) is a virtual machine aimed
at running all dynamic languages.

Parrot 0.4.9 can be obtained via CPAN (soon), or follow the
download instructions at http://www.parrotcode.org/source.html .
For those who would like to develop on Parrot, or help develop 
Parrot itself, we recommend using Subversion or SVK on the
source code repository to get the latest and best Parrot code.

Parrot 0.4.9 News:
- Compilers:
   + IMCC: Parrot calling conventions now available in C PMCs, allowing
 named, optional, slurpy, and flat parameter passing
   + PGE: extended support for Perl 5 Regexes
   + smop: prototype object model implementation
   + hllcompiler: refactored to run a configurable set of compilation stages
- PAST:
   + redesigned assign/binding to support Perl 6 binding semantics
- Languages:
   + Updated Lua, PHP ("Plumhead"), Tcl ("ParTcl"), perl6, perl5
   + New language: PIR - a PGE-based implementation of Parrot PIR
   + perl6 now supports binding (':=') and 'join'
   + lua generates tail calls, and supports its own regex flavor (PGE-based)
   + Pheme still works, huzzah!
- Design:
   + PDD21 "Objects" - rewritten
   + PDD22 "I/O" - updated and 'TODO' tests added
- Documentation:
   + Interface stability classification standards approved
   + Roles and Responsibilities documented approved
   + Official 'drafts' directory created (was 'clip')
- Implementation:
   + More NameSpace and OS PMC methods implemented
   + Parrot executable fullname and basename now available in PIR/PASM code
   + new 'chomp' library function
- Build:
   + Major improvements in test coverage for 'ops2pm.pl'
- Misc:
   + many bugfixes, enhancements, and coding standard updates
   + extended support for Sun Workshop Compilers
   + Parrot now builds on PocketPC platform

Thanks to all our contributors for making this possible, and our
sponsors for supporting this project.

Enjoy!

Pm


[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 C 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 @( X <1 2>)
+'a', '1', 'a', '2', 'b', '1', 'b', '2'
+say @@( 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 "C" to relationals are automatically considered
 chaining operators.  When creating a new precedence level, the chaining


Re: Relief for rw/ro

2007-02-22 Thread Dr.Ruud
Steve Lukas schreef:

> In between, I think 'variable' is too long, so:
> $code =~ s/variable/vari/g;

I don't think it is too long, since most of the times you don't need to
mention it. Could 'rw' be an alias?

  my rw @heredoc_stubs is context = ();

  my @heredoc_stubs is rw context = ();

  my @heredoc_stubs is context.rw = ();

  my @heredoc_stubs is context/rw = ();

  my @heredoc_stubs is context+w = ();

-- 
Affijn, Ruud

"Gewoon is een tijger."



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

2007-02-22 Thread larry
Author: larry
Date: Thu Feb 22 13:06:22 2007
New Revision: 13701

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

Log:
Change hardwired 8 to $?TABSTOP // 8 for heredocs


Modified: doc/trunk/design/syn/S02.pod
==
--- doc/trunk/design/syn/S02.pod(original)
+++ doc/trunk/design/syn/S02.podThu Feb 22 13:06:22 2007
@@ -2475,7 +2475,7 @@
 delimiter will be removed from all preceding lines.  If a line is
 deemed to have less whitespace than the terminator, only whitespace
 is removed, and a warning may be issued.  (Hard tabs will be assumed
-to be 8 spaces, but as long as tabs and spaces are used consistently
+to be C<< ($?TABSTOP // 8) >> spaces, but as long as tabs and spaces are used 
consistently
 that doesn't matter.)  A null terminating delimiter terminates on
 the next line consisting only of whitespace, but such a terminator
 will be assumed to have no indentation.  (That is, it's assumed to


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


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

2007-02-22 Thread larry
Author: larry
Date: Thu Feb 22 14:00:38 2007
New Revision: 13702

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

Log:
typo from aaroncrane++


Modified: doc/trunk/design/syn/S02.pod
==
--- doc/trunk/design/syn/S02.pod(original)
+++ doc/trunk/design/syn/S02.podThu Feb 22 14:00:38 2007
@@ -1578,9 +1578,9 @@
 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> >>.
-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
+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 (for instance) 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


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

2007-02-22 Thread larry
Author: larry
Date: Thu Feb 22 16:32:25 2007
New Revision: 13703

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

Log:
Clarify that a named argument may name either the label or the variable name.


Modified: doc/trunk/design/syn/S06.pod
==
--- doc/trunk/design/syn/S06.pod(original)
+++ doc/trunk/design/syn/S06.podThu Feb 22 16:32:25 2007
@@ -13,9 +13,9 @@
 
   Maintainer: Larry Wall <[EMAIL PROTECTED]>
   Date: 21 Mar 2003
-  Last Modified: 16 Feb 2007
+  Last Modified: 22 Feb 2007
   Number: 6
-  Version: 71
+  Version: 72
 
 
 This document summarizes Apocalypse 6, which covers subroutines and the
@@ -519,6 +519,12 @@
 multi sub handle_event ($window, $event; $mode) {...}
 multi method set_name ($self: $name; $nick) {...}
 
+A double semicolon terminates the longest possible longname; parameters
+after this are never considered for multiple dispatch (except of course
+that they can still "veto" if their number or types mismatch).  (Note,
+the single semicolon form is still considered conjectural, though the
+double semicolon is fairly certain.)
+
 If the parameter list for a C contains no semicolon to delimit
 the list of important parameters, then all positional parameters are
 considered important.  If it's a C or C,
@@ -615,6 +621,11 @@
 
 so that you can use more descriptive internal parameter names without
 imposing inconveniently long external labels on named arguments.
+If a named argument does not match any label, it is matched against
+the variable names as a fallback.  This allows you to give both a
+short and a long name:
+
+sub globalize (:g($global)) {...}
 
 Arguments that correspond to named parameters are evaluated in scalar
 context. They can only be passed by name, so it doesn't matter what


perl6-synopsis svn

2007-02-22 Thread Blair Sutton

Hi Larry

Sorry if this is a silly question but I haven't been able to find the 
answer. Is the perl6-synopsis SVN repository publicly available or is it 
in the same repository as that of Parrot or Pugs?


Thanks in advance
Blair


Re: perl6-synopsis svn

2007-02-22 Thread Patrick R. Michaud
On Fri, Feb 23, 2007 at 12:35:15AM +, Blair Sutton wrote:
> Hi Larry
> 
> Sorry if this is a silly question but I haven't been able to find the 
> answer. Is the perl6-synopsis SVN repository publicly available or is it 
> in the same repository as that of Parrot or Pugs?

The versions that appear on dev.perl.org are available from
http://svn.perl.org/perl6/doc/trunk/design/syn/ .

There are also some draft synopses available from 
http://svn.pugscode.org/pugs/docs/Perl6/Spec/ .

Hope this helps!

Pm