I'm happy to announce Pugs 6.2.6, the first release uploaded by cpan-upload.p6, powered by Pugs's newfound capability to use CPAN modules:
Perl6-Pugs-6.2.6.tar.gz
SIZE = 1083009
SHA1 = a85374c384eb11baa2ebd8d971f2ccbd8cec760f
Thanks to all lambdacamels for bearing with me during this much delayed
release. See you next week in Vienna! :-)
Changes for 6.2.6 (r4318) - June 2, 2005
Pugs Internals
- Pugs can now embed Perl 5 and use CPAN modules
- Perl 5 objects, classes and functions are understood by Pugs
- Pugs objects, classes and functions are understood by Perl 5
- These types can also be used in round-trip callbacks
- All user-defined classes now inherit from "Object"
- Bare blocks now belongs to the Bare type; pointy subs are still Block
- Class methods: My::Class.foo()
- Class objects are initialised from the default class tree
- Exclusive-range operators: ^.., ..^ and ^..^
- Experimental compiler backend Pugs.Compile.Pugs2 (not yet working)
- Experimental &code.body support for reified ASTs
- Experimental embed API in src/perl5/pugsembed.h
- Fully qualified subroutine names are now parsed
- More core modules refactored for improved compilation speed and readability
- Multi-invocant calls like foo($x, $y: $z) are no longer legal
- New builtins: evalfile, nothing, getc
- Parameterless bare blocks now get an implicit $_ by default
- Parameterless pointy blocks no longer get a default parameter list
- Parrot compilation backend now handles qualified subroutine names
- Pugs now has a Safe mode, enable by the PUGS_SAFEMODE environment variable
- Stub implementation for .does as an alias of .isa (no Roles yet)
- Unix only builtins: opendir, readdir, rewinddir, closedir
- $str.split(/rule/) and $str.split($delim)
- &infix<=> can now be used as the assignment operator
- Prelude.pm added to src/perl6 to implement S29 builtins in Perl 6
- SUPER::, BUILDALL and DESTROYALL
- is export now works as specified
- loop {...} while, loop {...} until
- map and reduce can now take n-ary functions.
- when .does(Foo), when $_.does(Foo) and when Foo
Bundled Modules
- Many more code sketches and documentation added to Perl-MetaModel
- New Benchmark module added
- CGI has been improved:
- Now has: escapeHTML, unescapeHTML, redirect
- Supports more HTTP headers in header
- New module CGI::Util added
- New Date module added
- New Text::Glob module added
- New libwww-perl distribution added
- LWP-Simple now moved here
- HTTP::Headers, HTTP::Message modules added
- Test::Builder is now dangerously close to completely working
- fp now exports &identity instead of &id to avoid clash with $obj.id
- use lib 'path'; now works
Tests, Examples and Documentations
- Some new test and several tests refactored, we now have 7200+ tests
- Pugs Apocryphon 2 improved and edited in docs/02Internals.pod
- Many improvements to util/perl6.vim to handle new features
- More Haddock documentation added to the Haskell source
- New IRC bot evalbot added to examples/network
- New JAPH for Italian Perl Workshop added in examples/japh
- Perl 6 port of Perl Power Tools begun in examples/ppt
- Some new additions and cleanup of the cookbook
- examples/network/screen-nodestatus.p6 added to monitor hosts in GNU screen
Bug Fixes
- Hyper-reduction prefix operators such as [+]<< are now parsed
- Single-character class names were not parsed correctly
- Stringifying a Rule no longer throws an uncatchable exception
- Use of undeclared types in signatures no longer breaks MMD
- (1 => 2 ?? 3 :: 4) now always constructs a pair
- Foo.bar() now dispatch to &Foo::bar instead of to &Class::bar
- Foo.isa(Foo) no longer means Class.isa(foo)
- pugs -MFoo now means use Foo not require Foo
- readline() now reads utf-8
- times now really works on Win32
- when .isa(Foo) is no longer parsed as when $_ ~~ .isa(Foo) now