On behalf of the Pugs team, I am delighted to announce the release of Pugs 6.2.3, with Parrot embedding, Perl 6 Rules support (via PGE), an initial sketch of OO system. Multi-thread programming with async/kill/join/detach is now supported as well.
Also of note are many new, working modules under ext/, some using the newly supported OO system, some using an inside-out OO system based on closures. Pugs is available from a nearby CPAN mirror, or from pugscode.org: http://pugscode.org/dist/Perl6-Pugs-6.2.3.tar.gz SIZE = 894640 SHA1 = 16599281a8a103d13e4f0041ccba06bddff28f83 As Pugs now requires Parrot 0.2.0 or later for Rules support, you may wish to install Parrot first: http://www.cpan.org/modules/by-authors/id/L/LT/LTOETSCH/parrot-0.2.0.tar.gz SIZE = 2696634 SHA1 = da4231fda3b7fcb842a886bef3d86d477ecc34e6 Thank to all the lambdacamels for flying with Pugs! :-) Enjoy, /Autrijus/ == Changes for 6.2.3 - May 12, 2005 === Pugs Internals * Pugs can now embed Parrot or use an external `parrot` executable ** Under embedded mode, Pugs is a registered Parrot compiler ** `eval_parrot` and `require_parrot` builtins for running PIR code ** `pugs -BParrot` can compile Perl 6 program to PIR and run it in-memory * Perl 6 Rules support via Parrot/PGE: ** Named rules and subrule support ** The former `$0` (entire match) is now `$<>` ** `$0` is now the same as `~$/[0]`, i.e. the same as Perl 5's `$1` ** `.from`, `.to`, `.matches` ** `//`, `rx//`, `m//`, `rule{}` ** `s///` and `//` in statement level operates on `$_` * Basic Object support: ** Accessors generated for public attributes ** Identity operator: `=:=` ** Method chaining: `$foo.bar().baz()` ** Method invocants `foo ($self: $x)` and topicalized invocants in `$_` ** Public and private attributes, as well as `has $.attr is rw` ** `$obj ~~ Class` support ** `$obj.clone()` support ** `class Foo {}` works (no inheritance yet) * Experimental `eval_yaml()` support to parse YAML streams * Experimental support for prefix reduce metaoperator `[+]` * Hyper operators now works on arrays too * Improved `.perl()` format for array, hash and pair objects * Much faster random access to arrays; it's now O(1) instead of O(n) * Much improved MMD support * New `is lazy` trait for parameters * Refactoring of large Haskell modules to improve compilation speed * Support for building a profiled Pugs * Undef in grouped lhs: `my ($x, undef, $y) = 1..3;` is now legal * `$thread.kill`, `$thread.detach`, `$thread.join` * `%hash.pick`, [EMAIL PROTECTED] and `(list).pick` * `reduce` primitive * `state $var` implemented * `system(Str: List)` and `exec(Str: List)` on Unix platforms === Bundled Modules * All modules have their own `ChangeLog` now * `Algorithm::TokenBucket`, with closure objects * `Config::Tiny`, with closure objects * `Kwid::Event::Parser`, with procedures * `Net::IRC`, with closure objects * `Perl::MetaModel`, prototype of Perl 6 OO meta-model in Perl 6 * `Pod::Stream::Parser` renamed to `Pod::Event::Parser` and added more functionality * `Set`, with Perl 6 objects * `Test::Builder`, with Perl 6 objects (parses, but does not working yet) * `Tree::Simple`, with closure objects === Tests, Examples and Documentations * Many new test and several tests refactored, we now have 4921 tests * Documentation for `hangman.p6` added in `examples/games/hangman.pod` * New "Monads in Perl 6" example in `examples/functional/monads.p6` * Script to generate a Pugs Live CD in `util/livecd` * Several IRC bots added to `examples/network` including svnbot and logbot * TODO tests now use `:todo<reason>` for better reporting * The first Perl 6 poem in `examples/poetry/` === Bug Fixes * Logical short-circuiting operators no longer flattens references * Prohibit Array and Hash dereference on plain values * Slurpy context no longer flattens * Stringifying IO handles is no longer fatal * `$*PID` now works on Win32 * `%*ENV` now completely works on Win32 * `(a => 3+4)` is now parsed as `(a => (3+4))`, not `(a => 3)+4` * `any().pick` no longer dies * `my @x = [1]; @x[0][0] = 2` should now work * `next` in nested `for {}` blocks no longer escapes the outer loop * `to => 123` parses again; arrow pairs now always trumps unary functions * `{}` in P5 rules is no longer closure interpolation
pgpcgs0Sfnn9X.pgp
Description: PGP signature