Day 119/120: Pugs 6.2.6!

autrijus on 2005-06-02T04:11:39

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