Re: [ANNOUNCE] Pugs 6.2.12 and v6.pm released! (reformatted)

2006-07-10 Thread Audery Tang


在 2006/7/10 上午 10:37 時,Michael Goldshteyn 寫到:


Unfortunatelly, those of us who use Perl under Windows / MSVC Compiler
cannot use v6.pm, due to the fact that it has an indirect  
dependency on
Devel::Caller which fails to work using that compiler combination  
(i.e.,
fails all tests after a build using its makefile and Visual Studio  
2003 as

the C compiler).



Indeed it is known that Devel::Caller currently fails some tests  
under Perl 5.8 with ithreads enabled;

its author, Richard Clamp, is looking into a solution.

For the time being, as v6.pm does not use the parts of Devel::Caller  
that fails the tests, a simple

"force install" should still get you a working v6-alpha.

Thanks!
Audrey



PGP.sig
Description: This is a digitally signed message part


Re: [ANNOUNCE] Pugs 6.2.12 and v6.pm released! (reformatted)

2006-07-10 Thread Jonathan Scott Duff
On Mon, Jul 10, 2006 at 09:37:24AM -0500, Michael Goldshteyn wrote:
> "Audrey Tang" <[EMAIL PROTECTED]> wrote in message 
> news:[EMAIL PROTECTED]
> 
> Unfortunatelly, those of us who use Perl under Windows / MSVC Compiler 
> cannot use v6.pm, due to the fact that it has an indirect dependency on 
> Devel::Caller which fails to work using that compiler combination (i.e., 
> fails all tests after a build using its makefile and Visual Studio 2003 as 
> the C compiler).

Bummer. You could check out the Vanilla/Strawberry Perl effort at
http://win32.perl.org/

-Scott
-- 
Jonathan Scott Duff
[EMAIL PROTECTED]


Re: [ANNOUNCE] Pugs 6.2.12 and v6.pm released! (reformatted)

2006-07-10 Thread Michael Goldshteyn
"Audrey Tang" <[EMAIL PROTECTED]> wrote in message 
news:[EMAIL PROTECTED]

Unfortunatelly, those of us who use Perl under Windows / MSVC Compiler 
cannot use v6.pm, due to the fact that it has an indirect dependency on 
Devel::Caller which fails to work using that compiler combination (i.e., 
fails all tests after a build using its makefile and Visual Studio 2003 as 
the C compiler).

Mike





[ANNOUNCE] Pugs 6.2.12 and v6.pm released! (reformatted)

2006-07-04 Thread Audrey Tang
(Mail.app totally scrambled the previous mail; sorry about this re- 
post.)


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.


See the full change log  for additional details of what's new in 6.2.12:

http://pugs.blogs.com/pugs/2006/07/release_announc.html#more

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 that "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, to 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


PGP.sig
Description: This is a digitally signed message part


[ANNOUNCE] Pugs 6.2.12 and v6.pm released!

2006-07-03 Thread Audrey Tang


Changes for 6.2.12 (r10930) - June 26, 2006



Licensing Changes




The src/ tree and the 
pugs
 executable are now released under the permissive MIT license, in addition to Artistic and GPL

A new third-party/ tree to hold bundled prerequisites originated from non-Pugs projects

New Perl 6 modules




ext/Relation/ - Relation type for Perl 6 (incomplete)
ext/Getopt-Std/ - Simple command-line parsing

Updated modules




ext/Locale-KeyedText/ - Added export_as_hash() methods
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/: Avoid the use of junctions to make Parrot/Perl6's life easier

Perl 6 on Perl 5 (under 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" =~ /**{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 hierarchy, installable 
Perl6::Doc

docs/Perl6/FAQ/Capture.pod - FAQ on the new Signature/Capture convention
docs/Perl6/FAQ/FUD.pod - Fears, Uncertainties and Doubts about Perl 6
docs/talks/p6myths2.html: Juerd's talk "Perl 6 Myths"
docs/talks/peek.spork: Gaal's OSDC talk "A Peek into Pugs Internals"
examples/concurrency/: Added sample usage on Software Transactional Memory
examples/qotw/: Added the QOTW 8 Expert solution
examples/rules/: Added a sample BASIC parser
src/Pugs/Parser - Perl 6 grammars for Capture.pg and Signature.pg 
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
, 
@
 and 
%

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