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 June 13, 2005
03:19 PM

Day 130: Third day at Leo's - Pugs 6.2.7!

[ #25181 ]
We managed to release 6.2.7 today. I started working on PIR emitting. Patrick is back and worked out with Limbic_Region the way to move Synopsis documents forward, by committing skeletal outlines and integrate community-written drafts. Two of my 45-min proposals, "Perl and I18N" and "Learning Haskell", are accepted to EuroOSCon. I wonder what will happen with the other two Pugs-releated talks. Worked out the calling convention abstraction so I can actually target things with Emit.PIR now. But that needs a working PugsAST intermediate nodes, so I'll work on that now -- it's a lot like Sokoban. Three new committers today -- jrieks, pdcawley, mr_ank -- spent some time reading up on PyPy and concluding it's totally the Right Thing to do -- also I'd really like Ruby's eval_in_the_pad_of_caller_continuation thing -- et cetera -- it's just a blurry of hackings now... So let us tune in to the release announcement:

I'm happy to announce Pugs 6.2.7, with much improved parser speed and error reporting, as well as rudimentary (source filter style) macro support:

SIZE = 1157780
SHA1 = fc8d80c05a5c896693e395f830d10e85a62f2747

Most of this release's development happened without my direct input, since I was busily writing a talk and a paper about Pugs:

I sincerely recommend both of them to people interested in Pugs. Taken together, they cover most of what Pugs Apocryphon 2's scope, and corrects many outdated and incorrect sections in Pugs Apocryphon 1.

My focus for 6.2.8 is compiling Pugs to Parrot. With Leo and Chip's help, I hope to release it before the YAPC::NA hackathon.

Again, thanks to all lambdacamels for making this release possible.


Changes for 6.2.7 (r4612) - June 13, 2005

Pugs Internals

  • Add ::?CLASS, ::?ROLE, and ::?PACKAGE magicals
  • Allow bypassing the Standard Prelude by setting $ENV<PUGS_BYPASS_PRELUDE>
  • Experimental heredoc support via qq:to/END/ ... END
  • Implement is required for subroutine parameters
  • New builtins: caller, Carp::longmess, Scalar::as
  • Obsolete the old open builtin in favor of Prelude's File::open()
  • Rudimentary, source-filter-like macro support added
  • Speed up parsing by 100% by caching dynamic grammar rules
  • Support for lvalue substr()
  • coerce: and other categories from A12 are parsed in sub names
  • is unsafe trait to mark subs unavailable in safe mode
  • method foo ($.x) {} now sets $.x
  • undef($x) is now spelled undefine($x)

Bundled Modules

  • New modules added:
    • FindBin
    • File::Find
    • POE (experimental)
    • URI::Escape
  • Extended tests for Tree

Tests, Examples and Documentations

  • APW talk: "Apocalypse Now" in docs/talks/Apocalypse_Now.spork
  • APW talk: "Eine Einfuehrung in Perl 6" in docs/talks/perl6-apw2005/
  • Documentation for running Pugs in lib/pugs/run.pod
  • Examples of nested loops in examples/nested_loops
  • Haskell Workshop paper on Pugs in docs/talks/hw2005.tex
  • Overview of Pugs source tree in lib/pugs/hack.pod
  • Overview of Rules bootstrapping plan in /docs/other/rules_bootstrap
  • Some new tests; several tests refactored; we now have 7600+ tests
  • Unit manipulation and conversion examples in units.p6
  • examples/algorithms subdir now unifies algorithmic examples

Bug Fixes

  • '\' protects delimiters in rules
  • Chained comparisons now work again (were broken in 6.2.6)
  • Critical evals (use, require, prelude) now raise parsefail exceptions
  • Fix [].method and {}.method to call Array::method and Hash::method
  • Fix ~{1=>2} to stringify correctly to "1\t2\n"
  • Parse errors inside blocks now reported at the position at which they occurred
  • Parse array and hash captures in rules
  • Test::is() now shows the expected result correctly again
  • module Foo {...} now parses
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.