I am happy to announce the availability of Pugs 6.2.1 on CPAN, with totally rewritten Context and Type code, a new OO core, call-by-values bindings, as well as a huge number of other improvements and fixes.
http://autrijus.org/dist/Perl6-Pugs-6.2.1.tar.gz SIZE = 732656 SHA1 = eba45bf9c2ddbe4d207ee32b5f90ae2c30cd6b48 Thanks to everyone who have tried out 6.2.0 and contributed helpful suggestions; 6.2.1 is, I hope, a much more stable release for people who are writing real-world programs in it. Again, my utmost gratitude to all our lambdacamels for making this release possible and enjoyable. Cheers! /Autrijus/ == Changes for 6.2.1 - April 24, 2005 === Pugs Internals * Unification of the quoting code, most quoting constructs now work ** <<>> now works ** Regular expressions are parsed as `qq//`, but without backslash protection ** Hash subscripts using `<>` or `<<>>` are parsed as general quotations ** This means interpolation, etc. is done just like `q:w` or `qq:ww` ** `$<delim>` not interpolate in quoting constructs ** `$)`, `$]`, `$#` and `$<ws>` do not interpolate in `rx:P5//` constructs * Assigning a List into a Scalar vivifies it into an Array * Assigning a `List` into a `Scalar` now vivifies it into an `Array` * Assigning to pairs now works as expected * Autoextracted `$_` is now `rw` by default * Better handling for size extensions and `exists()` for negative indecies * Bindings implemented for multiple variables * Experimental support for `eval_haskell()` builtin * First stab at a lexical `$*CWD` variable * Index in slices now defaults to List: [EMAIL PROTECTED]()]` now works * Initialize readline properly in interactive shell * Junctive types in subroutine signatures `sub foo (Str|Array)` * New builtins: `>>~<<`, `kill()`, `splice`, `readdir()` (list context only) * Pairs are now always objects and never values * Passing too many slurpy arguments is now an exception * Regexps now support `:P5` and `:Perl5` as well as `:perl5` * Storing into negative array elements now works * The `Any` parameter type no longer inhibits juctive autothreading * Variables in rvalue context no longer returns its references * `%h<>` now acts just like `%h{}` in both lhs and rhs * `%h<x>` now mean `%h{'x'}` instead of `%h{'x',}` * `'key' => val` now works as named param just like `key => val` did * `(sub {3} | sub {2})()` implemented * `:P5` flags now work as `:P5<imsgx>` and `:i` `:g` works too * `:l filename` no longer needs double quotes in the Shell * `<>` (list quoting) is now always in list context * `is rw` and `is copy` implemented in full * `list()` now actually imposes list context * `want()` has been implemented, returning a simple string === Tests, Examples and Documentations * Many new tests and cleanup of older tests, we are now at 4500+ tests ** removed all usages of todo_* functions since the are now deprecated * Added `isnt()`, `unlike()`, `skip_rest`, `throws_ok` functions to `Test.pm` * Added some Perl 6 related talks in `docs/talks` * Added the `make smoke` target to `Makefile` * Additions and improvements to the `util/catalog_tests.pl` scripts * Improvements to `examples/network` and added README file * Improvments to the `util/p5_to_p6.pl` script * Major refactoring of the Test.pm module (see `ext/Test/ChangeLog` for details) * Memory game, first web application written in Perl 6 * New Perl 6 tutorial generator ported to Pugs in `examples/tutorial_gen/` * New naive baysian text classifier add in `examples/naive_bayesian` * New quote generator script in `examples/motd` * Params are now loaded on-demand in `CGI.pm` to take advantage of encoding * Several new additions to the Perl 6 Cookbook * Svn graphing script added to `util/` * Test smoke scripts converted to use `Test::Tap::Model` * The `fp.p6` file has been broken into seperate files in `examples/fp/` * UTF-8 URL decoding added to `CGI.pm` === Bug Fixes * Accessing [EMAIL PROTECTED] (without setting it) no longer extends [EMAIL PROTECTED] * Code blocks as subroutine arguments now results in correct arity * Code objects now returns the correct subtypes * Comma is no longer flattened as arguments for infix and postfix functions * Corrected `chmod` prototype * Fixed infinite bug when evaluating `+((1|2).values)` * Fixed passing references into bound variables in subroutines * Fixed segfault with `:r` in interactive shell * Hyper operators now extends to the longer, not shorter, lists * Inf/NaN handling for `**` now works * Manpage for `Perl6::Pugs` now generated correctly * RValues at the right hand of array assignment are flattened to prevent loops * Restore `%h<str> = want()` to impose string context on rhs * Setting `$*CWD` to invalid directory is no longer fatal * Slurpy params now applies *-flattening to its arguments * `$x = 1|2; $x = 3` no longer treats `1|2` as a constant * `%h<a>` or `%h{'a'}` no longer eats trailing spaces interpolated strings * `(1,(2,3))` in scalar context is now `[1,[2,3]]` * `**` no longer truncates the exponent to integer * `=` now assigns correct slurpy context to rhs * `=cut` without a newline at EOF is now parsed correctly * `return() if 1` now works correctly
pgpiArgwcUlZZ.pgp
Description: PGP signature