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:
http://pugscode.org/dist/Perl6-Pugs-6.2.7.tar.gz 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: http://pugscode.org/talks/apw/slide1.html http://perlcabal.org/~autrijus/hw2005.pdf 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. Enjoy, /Autrijus/ == 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 for 2x by caching dynamic grammar rules * Support for lvalue `substr()` * `:coerce` and other A12 catgories 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` ** `HTTP::Message` ** `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 of how to execute Pugs in `lib/pugs/run.pod` * Examples of writing 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 test and several tests refactored, we now have 7600+ tests * Unit manipulation and converstions examples in `units.p6` * `examples/algorithms` subdir now unifies algorithmics 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` * Fixed `~{1=>2}` to stringify to `"1\t2\n"` correctly * Parse errors inside blocks are now reported on the occuring position * Parse for array and hash captures in rules * `Test::is()` now shows the expected result correctly again * `module Foo {...}` now parses correctly
pgpaTYPVzLs3x.pgp
Description: PGP signature