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.
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 works:
- <<>> 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 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 indices
- 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: @a[func_returns_array()] 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 @array[1000] (without setting it) no longer extends @array
- 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