Re: Relief for rw/ro
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!
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
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
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
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
[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
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
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
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
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