On behalf of the Pugs team, I am elated to announce the release of
Pugs 6.2.5, with much more comprehensive OO support, hyper and reduction
metaoperators on user-defined operators, as well as experimental
coroutine support.

Also of note is `pugs.pm` and `Inline::Pugs`, two Perl 5 modules that
lets you inline Perl 6 code in Perl 5 programs.  The docs/quickref/
series of documents is also helpful as a companion to the Synopses.

You can download Pugs from a nearby CPAN mirror, or from pugscode.org:

    http://pugscode.org/dist/Perl6-Pugs-6.2.5.tar.gz
    SIZE = 1012358
    SHA1 = d3e02bb907702850a847d410da046609

A Pugs/Parrot live CD, contributed by iblech, is available as well:

    http://linide.sf.net/pugs-livecd-6.2.5.iso

Amazingly, the project's velocity is still increasing, with 680 new
commits, compared to 507 from 6.2.3.  The graph below shows the growth
of number of commits and committers:

    http://linide.sourceforge.net/pugs-svngraph-6.2.5.png

Again, my sincere gratitude to all lambdacamels for making this release
as exciting and enjoyable as it is.  See you next week!

Thanks,
/Autrijus/

== Changes for 6.2.5 (r3794) - May 24, 2005

=== Bundled Modules

* Fix one broken test from the `Set` module.

== Changes for 6.2.4 (r3790) - May 24, 2005

=== Pugs Internals

* All infix operators now receive reduction forms, such as `[+]`
* All operators now receive hyperised forms, such as `>>+<<` and `~<<`
* Dereferencers: [EMAIL PROTECTED] and [EMAIL PROTECTED]
* Experimental support for `coro { ... }`, `coro name { ... }` and `yield()`
* Experimental support for `lazy {...}`
* External Parrot for Rules is now kept in a single process
* Inheritance: `class Foo is Bar` and `class Foo does Bar`
* Interactive shell commands normalised to always begin with `:`
* MMD handling is now more sophisticated, and `$.chained.attr.methods` works
* Much better error messages, with cascading stack trace
* New `./method` syntax implemented
* Objects numify to a unique value accessible with `$obj.id()`
* Parrot compiler backend now handles namespaces and method calls
* Parsing of hierarchical return types: `sub foo returns Hash of Str`
* Private attributes: `has $:foo` now generates private accessors
* Private methods: `method :foo ()` and `$obj.:foo`
* Switch to sum-of-inheritance-level distance for MMD dispatch on invocants
* Symbolic references: `$::(...)` and `$::some::("var")::($bar)`
* User-defined symbolic infix, postfix and prefix unary functions
* `$?CLASS` and `$?PACKAGE` works; `$?ROLE` currently works as `$?CLASS`
* `&code.name` and `&code.arity` added
* `FIRST {...}` and `my $x = FIRST {...}` support
* `INIT {...}` and `CHECK {...}` blocks in void context and as rvalues
* `OUTER::` scope implemented
* `do {...}` literal added
* `gather { ... }` and `take()` implemented
* `submethod BUILD` is called for each parent class and class itself
* `time()` now returns a fractional number
* `try {...}` literal allowed at expression level
* `warn()`, `uniq()`, `fail()`, `times()` implemented

=== Bundled Modules

* `Inline::Pugs` and `pugs` module to inline Perl 6 into Perl 5 programs
* `Locale::KeyedText` re-added (this was our first contributed module)
* `Net::IRC`, OO version added
* `Perl::MetaModel`, prototype of Perl 6 OO meta-model in Perl 6 OO
* `Set::Junction` and `Set::Hash` added as implementation backends to `Set`
* `Set` now has many overloaded operators
* `Test::Builder`, with Perl 6 objects (parses, and mostly works -- see tests)
* `Tree::Simple`, renamed to `Tree` and converted to OO
* `Test` now gives better diagnostics to `cmp_ok()`
* `fp` module added for functional programming

=== Tests, Examples and Documentations

* Many new test and several tests refactored, we now have 5600+ tests
* Hangman IRC bot created from `hangman.p6`
* IRC logfile to HTML converter added
* Initial sketch of Pugs Apocryphon 2 as `docs/02Internals.pod`
* Much work on internal Haddock Haskell documentation
* OO Wizard RPG game added in `examples/games/`
* Parrot is now included in the Pugs Live CD
* Perl 6 quick reference documents added to `docs/quickref`
* Perl6::Rules test suite incorporated into `t/rules/`
* Removed usage of `force_todo()` in favor of `:todo`

=== Bug Fixes

* Bare blocks containing `$_` is now executed correctly
* Correct parsing for user-defined nullary functions
* Hash and array sub parameters are read-only by default, same as scalars
* Post-term invocation in interpolation no longer eat trailing whitespace
* Slurpy hash parameters no longer count as nonslurpy during arity matching
* Type-to-type smartmatch, e.g. `Int ~~ Num`, now works
* `$obj.method($arg1, $arg2)` can now MMD dispatch over all arguments
* `foo 3 and foo 4` is now parsed as two separate function calls
* `loop (;0;) {...}` will no longer execute the loop body
* `map({...} @list)` is no longer valid syntax
* `next` now re-evaluates condition in `loop` constructs
* `returns Foo::Bar` from subs/methods now works
* `split//` now attaches the submatches to the resulting list
* `state $x = 42` now only assigns `$x` once
* `system()` returns proper exit codes

Attachment: pgpeDU96QqbKm.pgp
Description: PGP signature

Reply via email to