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

Attachment: pgpiArgwcUlZZ.pgp
Description: PGP signature

Reply via email to