(Audry, could you also cc perl.perl6.users on future announcements?
Thanks much.)

 

Despite the date, this actually showed up on
http://planetsix.perl.org/ today, in very truncated and mangled form.
The version I looked up in the nntp perl.perl6.announce archives was
also difficult to read (html markup became text), and for some reason,
Google Groups didn’t pick it up. However Google Groups did pick up the
cc to perl.perl6.compiler, which I’ve copied here.

 

Some great news below. For example,

 

“To this end, I'm happy to announce "v6.pm", a prototype Perl 6
Compiler 
implemented entirely in Perl 5, is also available from CPAN …”

 

Fantastic!

 


Changes for 6.2.12 (r10930) - June 26, 2006 


Licensing Changes 


*       The src/ <http://svn.openfoundry.org/pugs/src/>  tree and the
pugs executable are now released under the permissive MIT license, in
addition to Artistic and GPL 
*       A new third-party/
<http://svn.openfoundry.org/pugs/third-party/>  tree to hold bundled
prerequisites originated from non-Pugs projects


New Perl 6 modules 


*       ext/Relation/ <http://svn.openfoundry.org/pugs/ext/Relation/>
- Relation type for Perl 6 (incomplete)
*       ext/Getopt-Std/
<http://svn.openfoundry.org/pugs/ext/Getopt-Std/>  - Simple
command-line parsing


Updated modules 


*       ext/Locale-KeyedText/
<http://svn.openfoundry.org/pugs/ext/Locale-KeyedText/>  - Added
export_as_hash() methods
*       ext/Rosetta/ <http://svn.openfoundry.org/pugs/ext/Rosetta/> :
Multiple additions and rewrites

*       Merged ext/Rosetta-Engine-Native/ in, renamed to ::Example
*       Now officially incorporates "The Third Manifesto"
*       Rewrote half of Language.pod
*       Updated the DESCRIPTION and class list of Rosetta.pm
*       Added new core module Rosetta::Shell and example shell.pl
*       Added new documentation file Rosetta::SeeAlso
*       Various other documentation additions and edits

*       ext/Test/ <http://svn.openfoundry.org/pugs/ext/Test/> : Avoid
the use of junctions to make Parrot/Perl6's life easier


Perl 6 on Perl 5 (under misc/pX/Common/
<http://svn.openfoundry.org/pugs/misc/pX/Common/> ) 


*       Data-Bind - Implement Perl 6's calling/binding convention on
Perl 5
*       Inline-Parrot - a C version of Inline-Parrot - uses NCI for
data exchange
*       Module-Compile - precompile Perl 5 modules transparently
*       P5_to_P6_Translation - beginning of a Perl 5.9 MAD tree parser
and translater to Perl 6
*       Pugs-Compiler-Perl6 - Compiler for Perl 6 (implements 'use
v6-pugs'):

    use v6-pugs; say "Perl 6"; use v5; print "Perl 5"

*       Pugs-Compiler-Precedence - an operator precedence parser,
built around Parse::Yapp
*       Pugs-Compiler-Rule - Compiler for Perl 6 Rules
*       Pugs-Grammar-MiniPerl6 - translate Perl 6 rules into haskell
Parsec
*       Pugs-Grammar-Perl6 - a Perl 6 parser - parses Test.pm!
*       lrep - a bootstrapped, very minimal Perl 6 compiler written in
Perl 6
*       re-override - Swaps in an alternate regexp engine:

    ./perl -we 'use re::override-perl6; print "a" =~ /<word>**{1}/';

Test, Examples and Documentations 


*       Restored this ChangeLog's entries for v6.0.0 thru v6.0.8,
which were truncated in r8916, apparently from gnome's copy-paste
buffer limit 
*       docs/Perl6/Doc
<http://svn.openfoundry.org/pugs/docs/Perl6/Doc>  hierarchy,
installable Perl6::Doc 
*       docs/Perl6/FAQ/Capture.pod
<http://svn.openfoundry.org/pugs/docs/Perl6/FAQ/Capture.pod>  - FAQ on
the new Signature/Capture convention
*       docs/Perl6/FAQ/FUD.pod
<http://svn.openfoundry.org/pugs/docs/Perl6/FAQ/FUD.pod>  - Fears,
Uncertainties and Doubts about Perl 6
*       docs/talks/p6myths2.html
<http://svn.openfoundry.org/pugs/docs/talks/p6myths2.html> : Juerd's
talk "Perl 6 Myths"
*       docs/talks/peek.spork
<http://svn.openfoundry.org/pugs/docs/talks/peek.spork> : Gaal's OSDC
talk "A Peek into Pugs Internals"
*       examples/concurrency/
<http://svn.openfoundry.org/pugs/examples/concurrency/> : Added sample
usage on Software Transactional Memory
*       examples/qotw/
<http://svn.openfoundry.org/pugs/examples/qotw/> : Added the QOTW 8
Expert solution
*       examples/rules/
<http://svn.openfoundry.org/pugs/examples/rules/> : Added a sample
BASIC parser
*       src/Pugs/Parser
<http://svn.openfoundry.org/pugs/src/Pugs/Parser>  - Perl 6 grammars
for Capture.pg and Signature.pg 
*       util/cperl-mode.el
<http://svn.openfoundry.org/pugs/util/cperl-mode.el>  - Emacs mode for
Perl 6


Feature Changes 


*       Pugs now builds in a single pass
*       Removed support for GHC 6.4.0 and added support for GHC 6.5
*       Removed support for Parrot 0.4.4 or below and added support
for Parrot 0.4.5
*       &?SUB is replaced with &?ROUTINE; $?SUBNAME is replaced with
&?ROUTINE.name
*       Arguments beginning in parens, such as f ('x')=>1 , is now
always positional
*       Array and hash sigilled match variables, such as @0 , @<foo>
and %<bar> 
*       Assignment with non-obviously-scalar left-hand side is now in
list context:

*       @a = 1,2,3 now parses as @a = (1,2,3) 

*       Broke down Parser and AST.Internals to smaller files so
rebuilds are faster
*       Builtin functions no longer defaults to $_ ; write .ord
instead of ord 
*       Compile Prelude.pm and Test.pm , to YAML bytecode for faster
loading
*       Declarators are now lexical: { $x++ unless my $x } increments
$OUTER::x 
*       Declarators can now occur at expression position: my $x + my
$y works
*       Declarators no longer take qualified names: our $Foo::x is
invalid
*       Experimental support for Software Transactional Memory and
atomic blocks
*       Hash initializers now revert to bias-to-left behavior as in
Perl 5

*       In {X => 1, X => 2} , the value of X is 2, not 1

*       If a block ends on a line by itself, an implicit ; is assumed
if possible
*       In the interactive shell, :d and :D (dump parse tree) now
continues the parse from the current environment; use :reset to reset
the environment 
*       More helpful diagnostics when calling unsafe builtins under
safe mode
*       Multiline support in the interactive shell reports
unrecoverable parsefails
*       Names of named arguments must always be a bareword now, such
as:

    f(name=>1); f(:name(1));

*       New AST-dumping backends: Parse-Pretty , Parse-YAML ,
Parse-HsYAML 
*       Parse-time binding ::= is now fully supported 
*       Proper desugaring of .= expressions, such as @a .= map(&sqrt) 
*       Prototype objects: my Dog $fifo now assigns ::Foo into $fido 
*       Removed support for require ::Class::Literal 
*       Removed support for rx_ macros in Prelude for user-defined
rule handlers
*       Quotelike constructs such as rx and qq no longer takes `#` as
delimiter
*       Support for Unicode bracket characters for quotelike operators
*       Support for bracketed comments: #(...), #<<< ... >>>, etc
*       Support for controlled backtracking and whitespace sensitivity
via distinct token/regex/rule delecarators 
*       Support for environmental variables such as $ENV::PWD and
$+PATH 
*       Support for implicit-topic dereferences such as .[0] and
.<foo> 
*       Support for long dot syntax: $foo .blah
*       Support for scan metaoperators: [+] 1,2,3 evaluates to (1, 3,
6) 
*       The -M command line switch can take import arguments: pugs
-Mlib=foo 
*       The parser is now much faster by being mostly predictive
(non-backtracking)
*       The postfix infiniterange is no more; write 1..*` instead of
`1... 
*       Two my $x declarations in the same scope is now no-op instead
of an error
*       Use Data.ByteString for fast string representation
*       Using libraries from embedded Perl 5 can import functions now
*       Whitespace disambiguation implemented on if , unless and for :

*                   if %ENV{ 3 } { 4 }   # hash lookup on %ENV
*                   if %ENV { 3 } { 4 }  # %ENV by itself

*       YAML bytecode is now versioned to reduce incompatibilities
*       ¬ is now unary instead of a list operator
*       :!foo is now a shorthand for foo => False 
*       bool::true and bool::false are renamed to Bool::True and
Bool::False 
*       make upload-smoke now uploads smoke test automatically
*       my $!x is now recognized as an alternative spelling for my $x 
*       q:code {...} gives ASTs in macros
*       readline and =$fh now autochomps


Bug Fixes 


*       (1.3 % 1) was evaluating to 0; now it evaluates to 0.3 like
everybody else
*       An uninitialized Code is no longer nullary: my &f; f 1 is not
a parsefail
*       Chained assignments now return lvalues properly: $x = %y =
(1,2,3,4); 
*       Implicit variables ($^x) is no longer allowed in
statemeent-level bare blocks
*       Implicit variables following a declarator was broken: {my $x;
$^y}.(42) 
*       In (@x, @y) = (1,2,3) , the @y is now cleared into an empty
list
*       Invalid rules in embedded Parrot no longer triggers an
uncatchable exit 
*       Lexical imports are no longer discarded upon block reentry 
*       Method invocant is self and $?SELF but no longer $_ 
*       Named-only subs such as sub f (:$x!) {} no longer parse as
unary positional
*       Opening a file for writing now turns autoflushing on by
default
*       Short-circuit operators now works again
*       Statement-level return and yield now propagates contexts
correctly
*       Statement-level bare blocks now counts as one scope for OUTER
, not two
*       Statement-level bare blocks now runs under all contexts: (sub
{ { 3 } }).()
*       Strings outside ASCII range no longer raises exceptions at the
PGE/Parrot bridge
*       The bogus comma-less block argument form map {$_} 1,2,3 is no
longer supported
*       %.foo and @.foo now always flattens in argument lists
*       &slurp and &readline evaluates eagerly and no longer races
with &unlink 
*       1. was parsed as a valid integer, causing ambiguities; it's
now invalid
*       @foo.perl works correctly when @foo is recursive
*       f(()) now passes &f an empty list, not undef 
*       sign and <=> now fails on undefined arguments, instead of
returning undef
*       slurp works correctly on UTF-8 files
*       sub f (@x) {}; f([1,2,3]) now works as it's no longer under
slurpy context

(Due to non-stop Hackathon since YAPC::NA, this announcement has been

delayed 
for a week. :-)) 

I'm glad to announce that Pugs 6.2.12 is now available from CPAN: 

     http://search.cpan.org/dist/Perl6-Pugs-6.2.12/ 
     SIZE: 2693459 
     SHA1: c9731da8e597591ca7e279766481ce0bece8cfa4 

This release features much better performance: Building Pugs is 3   
times faster; 
compiling Perl 6 programs becomes 10 times faster; running Perl 6   
programs is 
now up to 2 times faster. 

We also support various Perl 6 syntax changes since the last release,

as well as 
exciting new features, such as atomic code blocks with Software   
Transactional 
Memory (STM) semantics. 

6.2.12 marks the last release with the 6.0.x abstract syntax tree   
(AST) to 
represent Perl 6 programs.  We are currently switching to a new AST
that 
supports the new Signature/Capture calling convention, multi-dispatch

with 
constraints, and a full Meta-Object Protocol (MOP).  We are   
developing this 
new runtime simultaneously as Haskell modules and Perl 5 CPAN   
modules, to 
ensure that they have identical semantics. 

To this end, I'm happy to announce "v6.pm", a prototype Perl 6
Compiler 
implemented entirely in Perl 5, is also available from CPAN: 

     http://search.cpan.org/dist/v6-pugs/ 

All Perl 5 components are released as separate CPAN modules.  One can 
use them as pure-perl5 modules, without the Perl 6 syntax provided by 
"v6.pm"; this way one can get fully-conformant Perl 6 features without

the need of using Perl 6 syntax provided by "v6.pm". 

(These CPAN modules maintain their own release cycles; we will release

more components on CPAN as they are abstracted out from the Pugs   
runtime.) 

The .meta API for Object/Class/Method reflection is supported by the 
"Moose" and "Class::MOP" modules: 

     http://search.cpan.org/dist/Moose/ 
     http://search.cpan.org/dist/Class-MOP/ 

The compiler and runtime for Perl 6 Grammars (top-down) and operator 
precedence (bottom-up) is available as the "Pugs::Gramamr::Rule" and 
"Pugs::Grammar::Precedence" modules: 

     http://search.cpan.org/dist/Pugs-Compiler-Rule/ 

The calling convention with named, optional, and slurpy arguemnts is 
supported by the "Data::Bind" module: 

     http://search.cpan.org/dist/Data-Bind/ 

The precompile-Perl6-to-Perl5 mechanism is based on "Module::Compile",
a 
safe and composable replacement to source filtering: 

     http://search.cpan.org/dist/Module-Compile/ 
     http://search.cpan.org/dist/Filter-Simple-Compile/ 

In summary: Perl 5 is now a first-class virtual machine for Pugs, and
in 
this journey toward self-hosting, we will share as much common
structure 
as possible between the Perl 5, Haskell, and the Parrot runtimes. 

With a prototype end-to-end implementation written in pure Perl 5, we

are 
entering the "Hack, Hack, Hack" phase of the (imaginary) Perl 6
timeline 
from nearly one year ago: 

     http://pugscode.org/images/timeline.png 

I'd like to thank Flavio Glock for initiating and leading the v6.pm   
effort, 
and all lambdacamel and lambdamoose on irc.freenode.net #perl6 for
their 
relentless enthusiasm in getting Perl 6 deployed to the Real World. 

See you on IRC! 

Audrey 

=========================================================

Best regards,
Conrad Schneiker

http://perl.net.au/wiki/Perl_6_Users_FAQ (Moved from AthenaLab to Perl
6 Wiki.)

www.AthenaLab.com
<file:///C:\Documents%20and%20Settings\Admin2\Application%20Data\Micro
soft\Signatures\www.AthenaLab.com>  (Nano-electron-beam and
micro-neutron-beam technology.)

 

Reply via email to