[Changes for 6.0.12 - March 21, 2005]

Pugs Internals:

* We now require GHC 6.4 on Win32.
* Perl5-compatible regular expressions as rx:perl5/.../.
* Unicode identifiers now work across all platforms.
* Smartmatch ~~ now for regex.
* Capturing variables as $/.[], $0, $1, $2.
* Nested outward CALLER::CALLER::CALLER:: scopes.
* x=, xx= and Y=.
* => now autoquotes left hand barewords.
* ?? :: now parses correctly.
* New primitives: index(), rindex(), substr(), sort(), true().
* New primitives: lcfirst(), ucfirst(), lc(), uc(), split().
* New primitives: pick(), values(), nor().
* The interactive shell now preserves lexical variable declarations.
* String numification now uses the same lexing rule as numeric literals.
* Kludgy hack for &sub.goto() now works.
* :l in interactive shell for loading modules.
* More experimental shell commands like :i and !.
* Symbol table now contains Vals instead of Exps.

Tests, Examples and Documentations:

* Massive reorganization for t/ hierarchy; we have 2450 subtests now.
* Test coverage catalog utility in util/catalog_tests.pl.
* New p6ified CPAN modules: Algorithm::Dependency, File::Spec.
* Core documentations moved into ext/Pugs-Documentation/.
* Locale::KeyedText is made more perl6ish with subtypes.
* Test.pm has been massively refactored, and now has its own test suite.
* isa_ok(), eval_ok() and eval_is() in Test.pm.
* perlpodspec.kwid, describing POD document model and dialects. 
* perlkwidspec.kwid, specification for the Kwid dialect of POD.
* PA01.kwid, Kwid version of Pugs Apocryphon 1.
* Perl5-Kwid, Perl 5 implementation of the Kwid language.

Bug Fixes:

* Infix junction constructors no longer falltens its operands.
* Mutable variables are now properly pretty-printed.
* "pugscc" was broken on case-sensitive filesystems.
* last() no longer work as return() outside loops.
* Pugs could not install when perl5's sitelib path did not contain "perl".
* := binding did not preserve the lexical scope at the binding site.
* Hanoi.p6 was broken due to premature binding of subroutine parameters.
* "&sub.foo" no longer attempts to interpolate.

[Changes for 6.0.11 - March 14, 2005]

Pugs Internals:

* Ported to GHC 6.4 final.
* Source code is now always treated as UTF-8.
* Unicode variable names and subroutines now works, if GHC
  is compiled with unicode support.
* We no longer look for Perl6::lib::* namespace in Perl 5;
  Pugs now has its own library path independent from Perl 5.
* New primitives: scalar(), list(), reverse(). 
* Infix Y (and its UTF8 form).
* $! is now set after an eval call.
* Stub implementation for ~~ and !~ operators.
* "make optimized" and "make profiled" targets.
* Assignment to array slices.
* Assignment now copies variables in RHS, instead of aliasing them.
* Declaration of multiple variables with my().
* try {...} works.
* Hash stringification.
* Lone block without trailing semicolon is parsed correctly.
* time() now counts seconds from 2000-01-01 00:00:00.
* Assignment operators like .=, //= and ||= etc.
* Postfix conditionals now works inside expressions.
* --help and -c command line options.
* Experimental support for "pugscc", which compiles Perl 6 code
  into stand-alone executables.

Tests, Examples and Documentations:

* Much more extensive TODO tests; we have 1477 now.
* Sample Perl 6 modules under modules/, including Sample-Module and
  Locale-KeyedText (ported from Perl 5 on CPAN).
* Kwid version of PA01; updated Chinese translations.
* One can now build Pugs with Perl 5.6.
* examples/sendmoremoney.p6 now really works.
* A new, much prettier banner ASCII art.
* New junction examples in examples/junctions/.
* New golf-based examples in examples/golf/.
* Include IRC nicks and UTF8 names in AUTHORS.
* Some releng and utility scripts under util/.

Bug Fixes:

* In pointy subs, -> () {...} and -> {...} are now distinguished.
* require() now reports errors correctly.
* Magical $a++ when $a is a string should not return a numified form.
* int() now properly truncates, instead of rounds, the operand.
* Array and hash variables inside qq strings now won't interpolate without
  explicit brackets, as specced in S02.
* my $a == $b no longer parses are my $a = =$b.
* Nested ?? :: now parses correctly, even inside brackets.
* Postfix ... works again.
* [...] is now evaluated in list context.
* Duplicate occurence of implicit params like $_ and $^x now works correctly.
* =<> now reads the first file in @*ARGS if there is a @*ARGS; it is a TODO
  to make it read all files in @*ARGS.
* List associativity now works again.
* $?CALLER:: variables in subroutine parameters and defaults are
  now both evaluated in the caller's scope.

[Changes for 6.0.10 - March 5, 2005]

Pugs Internals:

* Massive -Wall cleanup.
* Some work on Pugs extension mechanisms (XS for Pugs).
* Complete reworking of the build system.
* Support for basic read, write, append I/O.
* Added system(), chmod(), chop() and chomp().
* Pretty printing now works.
* Added the beginings of a Config module.
* Ported to GHC 6.4 pre-release.
* More works on junctions.

Tests, Examples and Documentations:

* Test, tests and more tests, we now have over 1050.
* Added several tests for unimplemented features.
* Added tail recursive nested worker multisubs into fp.p6
* Hanoi.p6 has been added.
* Several new junctions examples.
* Switched most documentations to the Kwid format.
* zh-cn and zh-tw translations of the Apocryphon.
* Haskell source documentation begun.
* Kwid documentation for Test.pm.

Bug Fixes:

* Fixed double-evaluation bug in say($a++).
* Fixed "@a" interpolation bug.
* Postfix -- now returns the value instead of numified value.
* Lone bare blocks in statement level are now always executed.
* Fixed grep/map/push/unshift parsing so they are properly binOp now.
* Fixed prefix function parsing bug that eats more parens than it should.

[Changes for 6.0.9 - February 28, 2005]

* First Perl 6 module: Test.pm.
* First Pugs Apocryphon: docs/01Overview.html.
* More than 600 unit tests, with a comprehensive coverage.
* Relicensed under GPLv2 and Artistic2.0b5.
* New flags: --version, -v, -c.
* New examples: examples/fp.p6, examples/shuffle.p6.
* New syntaxes: ?? ::, our(), chained =>, END{}, =begin END, unless.
* New primitives: defined(), unlink(), ref(), join(), require(), int()
* New magicals: $?SUBNAME, %*ENV, &?BLOCK, &?CALLER_CONTINUATION, @*INC.
* New literals: \d1234, 0d1234, qq[], qw[].
* Interpolation in double-quoted strings.
* Hashes and subscripting.
* Bare blocks now assumes outer scope's lexical pad.
* Bare blocks in statement level is now always executed.
* Closures closes properly; errors are propagated upwards.
* A first draft of "Kwid" documentation format.
* A first draft of builtins declarations.

[Changes for 6.0.8 - February 21, 2005]

* New example code snippet: examples/quicksort.p6
* Unit tests ported from th Perl5 tree. (alin, juerd)
* Hashes, Pairs and their access methods.
* Much more robust casting between arrays, lists and hashes.
* Fixed harness output problem on older perls.
* Many Posix-based IO primitives. (ycheng)
* Precedence for builtin unary/list functions are parsed correctly.
* "unless" construct.
* New primitives: "join", "split", prefix ++ and --.
* +>> etc changed to +> etc. (juerd)
* Stacking multiple prefix and postfix operators now works.
* @*INC, &?SUB, CALLER::.
* Tests for the "perlego" dialect. (juerd)
* User-defined function applications now takes arbitary expressions.
* Deep recursion detection.

[Changes for 6.0.7 - February 18, 2005]

* Beginning of synopses-based unit tests. (hcchien)
* Two code snippets that runs: examples/life.p6 and examples/mandel.p6.
* Code literals -- "sub", "pointy" and "bare" variants all works.
* Lexical subroutine declarations via "my sub".
* The "say", "exit", "die", "time", "open", "close" primitives.
* Bool.perl now prints correct literals. (lwall)
* Blocks under void contexts now evaluates automatically.
* The "..." (dotdotdot) literal.
* Errors are propagated upward using shiftT.
* Postfix ++ and --.
* Ternary ?? ::.
* Assignment to mutable variables and to array slices.
* "loop", "for" and "if" constructs.

[Changes for 6.0.5 - February 15, 2005]

* The "rand" primitive.
* Taking references of junctions no longer create a junction of references.
* Illegal divisions are caught. (viirya)
* Chained comparison for four or more terms now works. (tmoertel)
* Collapsing for JuncOne into two sets: the "none" set and the "one" set.
* The evaluator now prints some helpful debugging messages.
* New parser logic merged from Michaud and Palmer's Perl6.grammar.
* Extra semicolon and whitespace in blocks are dealt with. (viirya)
* Space around punctiation operators is now optional.
* The Eval monad now supports shift/reset/callcc, lexical and dynamic scopes.
* Improved pretty-printing code for syntactic constructs.

[Changes for 6.0.4 - February 12, 2005]

* The "eval" primitive.
* Refactor junctive logic into Junc.hs.
* "Any" and "All" now collapses operands of the same type correctly.
* "One" now collapses into an empty set when operands contains duplicates.

[Changes for 6.0.3 - February 12, 2005]

* Formal parameters declaration and binding
* Invocant-based multimethod dispatch
* Optional(?), named(+ and ++), slurpy(*) parameters with defaulting
* Extraction of higher-order placeholder variables
* Proper semantics and extraction of @_, %_ and $_
* Global variables and subroutines: &*foo, $*bar
* Context propagation from types of formal parameters
* The "returns" / "is returns" trait
* Trailing comma and semicolons are now allowed
* Better handling of exponential primitives (viirya)
* &prefix: is now consistently added for user-defined subroutines
* Junctions are now proper sets, instead of lists masqueraded as sets
* New operators: "!!" and "nor"
* The "all" junction builder now collapses nested junctions under it

[Changes for 6.0.2 - February 9, 2005]

* User-defined subroutine (with $_ and @_ as parameters)
* Variable binding
* Context propagation
* Multimethod dispatch
* Subtype distancing and casting
* Autothreading over chained comparison and multiarg functions
* List associativity
* Array references as literals
* Flattening (slurpy) star

[Changes for 6.0.1 - February 7, 2005]

* Fix building on Mac OS X. (ingy, gugod)
* Characters in single quotes should not be escaped. (juerd)
* Add one very basic test in t/. 

[Changes for 6.0.0 - February 7, 2005]

* Initial CPAN release.
* Evaluation of most simple expressions.
* Junctions and chained comparisons.
* Interactive shell and #!/usr/bin/pugs support.
