Slash Boxes
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

autrijus (1505)

  (email not shown publicly)

Journal of autrijus (1505)

Monday May 23, 2005
04:14 PM

Day 112: Pugs 6.2.5 released!

[ #24845 ]
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 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

SIZE = 1012358
SHA1 = a4442eb156b919ec139ab2b64e3ea9db47ed371c

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

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:

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


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: @{...} and @$var
  • 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 $
  • 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
  • & 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
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
More | Login | Reply
Loading... please wait.