== Changed for 6.0.14 - April 4, 2005

=== Pugs Internals

* We now require GHC 6.4 on all platforms
* Added socket primitives: `listen()`, `connect()`, `accept()`
* Added thread primitives: `async()`, `yield()`
* Added string primitives: `chr()`, `ord()`, `hex()`, `split()`
* Adverb pairs: `:key(123)`, `:key<abc>`, `:key[1,2,3]` and `:key`
* `pugscc` may now be invoked outside the pugs source tree
* `slurp()` now works on IO handles
* Non-interpolated `q//` literals
* Tentative `%?CONFIG` hash
* `pugs -V:configvar` now displays that config variable
* Command line improvements (`-I`, `-l`, `-e`, etc.)
* Minimal IMC compiler as `src/IMC.hs`
* Began work on GADTs; the Pad now holds `Symbol Val` types only
* Support definition and invocation of subs with namespaces

=== Tests, Examples and Documentations

* Many new tests: we have around 3850 now.
* `modules/` have been relocated to FreePAN. See `modules/README`
* `t/Synopsis/` have been relocated to Perl6::Bible on CPAN.
* HTML generated by testgraph now reponds to mouseover
* New autosmoker script added
* Many cross-referencer improvements
* Normalize all `t/` to begin with `#!/usr/bin/pugs`
* `VICTUALS` file added on April Fools
* Debian package scripts in `debian/`
* Updates on the Vim syntax file as `util/perl6.vim`
* `Pugs::MakeMaker` is renamed to `Perl6::MakeMaker`
* First Pugs obfuscation in `examples/obfu/`
* HTTP server and client examples in `examples/network/`

=== Bug Fixes

* `~~` now takes variables on the right hand side
* Correct installation locations for `ext/` modules
* `{ block }` in `qq` and `rx` no longer skips trailing whitespaces
* `pugs -e` may now use `@*ARGS` in the one-liner
* `rx:perl:g` no longer ignores the `:g`
* `$:x` and `$.x` now parsed as variable names
* Readline support is correctly probed on `Makefile.PL` time
* Mimick Perl 5's behaviour for function that defaults to `$_`

== Changes for 6.0.13 - March 27, 2005

=== Pugs Internals

* Support for `given`, `when` and `elsif` statements
* Support for Perl5 style `-I` on the command line
* Command line equivalents of shell commands `:i` and `!`.
* Regex now supports `s:perl5///` and `s:perl5:g///`
* `$1`, `$2` etc can be used in `s:perl5:g///` substitutions 
* Experimental *pugscc* backends generating limited Parrot and Haskell code
* Refactored the /VSub/ type to support currying 
* Support for currying: `&foo.assuming(param => 'bar')`
* New file test primitives: `-d` and `-f`
* New logical primitive: `?|`
* Experimental support for `eval_perl5` (not built by default)
* Experimental Inline support; see `ext/SHA1` for example 
* New magicals: `$*EXECUTABLE_NAME` and `$*PROGRAM_NAME`
* Several numeric builtins: `atan2`, `cos`, `sin`, `sqrt`, `exp`
* Beginings of a Pugs class meta-model

=== Test, Examples and Documentations

* New test for junctions, regexp and more; about 3200 tests now
* Added 200+ new TODO tests for objects in `t/oo/`
* Added 20 new Perl 5 modules ported to Perl 6
* Added `t/README`, `modules/README` and `modules/PORTING_HOWTO`
* Much work on the test-cataloger and Synopsis cross-referencer
* Work on plan for smoke testing framework using *YAML* and *Test::Harness*
* Work on HTML output gathered from *Test::Harness* YAML output
* Actual working port of most of *File::Spec* complete with tests and docs
* Added support for outputing test logs with *Test.pm*
* Added documentation to *pugscc*
* Several TODO tests for command line options
* `fix_authors.pl` now handles UTF8 input 
* New golf-based tests in `t/examples/golf.t`
* Added `examples/mandel.p5` for benchmarking against `mandel.p6`
* The first JAPH for Pugs in `examples/japh/`

=== Bug Fixes

* Numification now uses the same lexer as numeric literals
* Passing pairs to named parameters works
* Fixed 2-element lists to be proper pairs
* Fixed some error reporting issues in *Test.pm*
* `$!` now has the correct value after `eval`
* `END {...}` now runs after `die`
* Hash keys are now strings
* Contextual logicals like `+^` and `~^` are parsed correctly

== 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 ~~ 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 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.