= Changes for 6.2.11 (r8934) - Feb 1, 2006

== Bundled Modules

=== New Perl 6 modules

* [ext/Parse-Rule/] - A Rules engine port in perl 6
* [ext/Rosetta/] - A federated relational database (incomplete)
* [ext/Rosetta-Engine-Native/] - A back-end for Rosetta testing (incomplete)

=== Updated modules

* [ext/File-Spec/] - Rewritten to define its own exported wrapper subs
* [ext/Locale-KeyedText/] - Rewrote with a strong resemblence to the original
** Split up `translate_message()` for more granular Translator usage
** Objects now become something useful when coerced into a string
** Added `Locale::KeyedText::L::en`, LKT now throws Message exceptions
** Template Modules now have a different variable interpolation format
** Created 2 running [examples/] from pod that was removed from KeyedText.pm
** Deleted old test suite (yet to be replaced); now only tests compilation
* [ext/libwww-perl] - Rewrote `HTTP::Header::Util` with gather/take syntax
* [ext/Test] - `&fail` renamed to `&flunk` to avoid conflict with builtin

=== Experimental modules (in misc/, not installed)

* [misc/Parser-Mini/] - Experimental *thin* p6 parser
* misc/Rosetta-Incubator/ broken up:
** Locale::KeyedText was merged into the rewritten one in ext/
** SQL::Routine and Rosetta were merged together, became Rosetta in ext/
** The license of Rosetta is now GPL (with extra linking provision)
** Remainder (SQLBuilder, SQLParser, Eng/Generic, Emu/DBI) was deleted
* [misc/sixpan/] - Prototype of new CPAN tools in Perl 5

== Test, Examples and Documentations

* Add timing data prints to smoke harness, to help spot hanging/slow tests
* Tests in [ext/] and [t/] - Temporary workaround the breaking of `use_ok`
* [Makefile.PL] - Begins with an overview POD section on the build system
* [TASKS] - Tracking current things to do
* [docs/AES/S17draft.pod] - Draft synopsis for Perl 6's concurrency
* [docs/AES/S22draft.pod] - Draft synopsis for Perl 6's CPAN
* [docs/articles/tpr.pod] - An introduction article to Pugs
* [docs/feather] - Feather.perl6.nl web site
* [docs/getting_started] - Pointers for people new to Pugs
* [docs/notes/context_coercion.pod] - Notes on implementing contexts
* [docs/notes/context_coersion.pod] - Notes on implementing contexts
* [docs/notes/docs_evil_plan.txt] - Plan for Perl 6 documentation
* [docs/notes/multimethods.pod] - Description of the canonical MMD algorithm
* [docs/p6doc/] - Perl 6 language tutorials and documentation
* [docs/quickref/] - Various updates and improvements from new Synopses
* [docs/quickref/fears] - assorted fears about Perl 6
* [examples/cookbook/] - New recipes
* [examples/network/wiki/] - demo wiki
* [examples/rpn/] - RPN calculator in Perl 6, Perl 6, and Haskell
* [util/run-smoke.pl] - Support for `PUGS_SMOKE_EXCLUDE_EXT` environment variable
* [util/catalog_tests.pl] - Annotate smoke reports with colored sources/specs

== Feature Changes

* Adverbial number forms: `:16<deadbeef>` and `:16[14,15]`
** This change obsoletes `hex()` and `oct()`
* Calling private methods with `self!method`
* Deep eager sequential evaluation (aka /steamroll/) operator `&prefix:<**>`
* Multisub declarations in the same scope can now be exported selectively
* Named arguments are now decided at parse time, not as runtime Pair objects
* New YAML tree-dump backends: `-C Parse-YAML`, `-C PIR-YAML`, `-C PIL1-YAML`
* New `\x[abcd]` and `\x[1,2,3,]` forms instead of `\x{abcd}` in qq-strings
* New backend: `-CParse-Pretty`, to show a pretty parse tree
* Parameter syntax changes:
** `+$arg` becomes `:$arg`
** `++$arg` and `+$arg is required` becomes `:$arg!`
** `?$arg` becomes `$arg?`
* Round-trip data serialization with `.yaml` and `eval(..., :lang<yaml>)`
* Support for multiline inputs in interactive shell
* The build system now supports Cygwin again
* Two or more underscores in numbers (eg. `1__0`) is no longer accepted
* Unary `^` support: `^10` is a shorthand for `0..^10`
* `$+x` is now accepted as a shorthand for `$CALLER::x`
* `$CALLER::x` now only sees `env $x` in outer dynamic scopes, not `my $x`
* `$obj.clone` support
* `%*INC` now contains module interface structures, not file system pathnames
* `&die` and `&fail` can take an object argument without stringifying it
* `eqv` is now spelled `===`
* `pugs file.p6 --options` now passes options to the program, not to Pugs
* `self` is an alias for `$?SELF`
* `use Module` now imports its symbols lexically at the consumer's use time
* `use Perl-6` parses correctly now

== Bug Fixes

* Bareword `foo.bar` now always parses as `::foo.bar`, never `foo(.bar)`
* Binding a block to `&infix:<operator>` in BEGIN time now affects parsing
* Fixed embedding of threaded parrot
* Fixed evaluation order in array and hash access
* Fixed splice on scalar
* Improved detection of null patterns; this fixes some endless loops
* Improved hash parsing. `{("a"=>3),}.ref` is again ::Hash, not ::Block
* Infix macros no longer cause parsefail
* Lazy `{...}` executes its closure at most once
* Method calls on simple index lookups now gets dispatched correctly
* Parse (but no implementation) for scoped packages
* When `m:P5/(...)?/` captures nothing, $0 no longer evaluates to true
* `$.foo.bar()` correctly dispatches on the runtime type of `$.foo`
* `&splice` was destroying existing bindings on the array
* `.perl` stringification now escapes unprintable characters
* `1**Inf`, `0**0` and `Inf**0` are defined to 1 regardless of architecture
* `3..2` and `'z'..'a'` return empty lists
* `\(1,2,3,4).elems` no longer throws an exception
* `zip(@a; @b; @c)` no longer flattens the arrays together

== Backends

=== JavaScript backend

* Division by zero raises an error, not return NaN like JS does
* Fix problems with `[=>]` and related operators
* New operators implemented: `+| +& +^ +< +> ~& ~| ~^ +^ ~^`
* PIL/JS compilation now works with exported multisubs
* Support for using Perl 5 modules in JavaScript backend via `-B JS-Perl5`
* `$*PID`
* `.assuming`
* `FIRST {...}` blocks
* `state $variable`
* `unlink()`

=== Parrot backend

* Parrot 0.4.1+ is now required for Parrot targeting and embedding
* Closure creation no longer triggers segfaults
* Lexical variables are now truly lexical instead of emulated by temps
* Upon program exit, embedded Parrot/Perl5 objects are finalized correctly
* Support for modules with lexical imports
* When looking for an external parrot, look in `%ENV<PARROT_PATH>` first

=== PIL^N backend

* New VM written in Haskell which uses the domain specific language PIL^N
** Based on the Perl6-ObjectSpace prototype
** Optionally built with `make pil` (and interactively as `make pili`)
** See [src/PIL/Native/] for the source code
* Class Meta-Model written and bootstrapped in PIL^N
** Basic tests for Meta-Model in [t/pil/]
* Role Meta-Model partially complete in PIL^N
* Some basic Container types written in PIL^N
** See [docs/notes/piln_object_repr_types.pod] for implementation notes
* Haskell implementation of Perl 6 Rules and precedence parser
** See [src/Text/Parser/] for the source code

=== Perl6-ObjectSpace

* Prototype Perl 5 backend, served as the inspiration for the PIL^N backend
** Currently somewhat out of sync with PIL^N
** See [perl5/Perl6-ObjectSpace/] for the source code
* Core set of /native types/ written in Perl 5
** Class Meta-Model bootstrapped using only the native types
** Role Meta-Model and Container types not yet supported
* Based on work from the [perl5/Perl6-MetaModel/]

= Changes for 6.2.10 (r7520) - Oct 10, 2005

== Feature Changes

=== Shared components

* Support for the Haskell Cabal framework, exposing Pugs as a library to other
  Haskell users, paving the way for use in IDEs, as well as future Inline::Pugs
  and Inline::GHC modules
* Adopted the code convention of expanding literal tab chars to spaces
* JavaScript backend can be invoked with `pugs -B JS`
* Perl 5 backend can be invoked with `pugs -B Perl5`
* Pugs will now compile version ranges in 'use/require' statements
* Significant backend enhancements; see below
* `$?PUGS_BACKEND` can be used to tell which runtime is in use 
* `exec` emulated (partially) on Win32

=== JavaScript backend

* Passes 91% of the main test suite (including TODO failures)
* Integrated with MetaModel 1.0
* Faster code generation, taking advantage of `-CPerl5` output.
* Switched to continuation passing style (CPS) to properly support
  `return()`, `&?CALLER_CONTINUATION`, coroutines, and `sleep()`
* Improved support for binding and autodereferentiation
* Initial support for multi subs
* Initial support for symbolic dereferentiation
* List construction no longer creates new containers
* Miscellaneous performance improvements
* Named-only arguments (`+$x` and `++$x`) can't be passed positionally anymore
* Parts of the Prelude can be written in Perl 5 now to improve performance
* Perl 5-like regular expressions mostly working
* Proper UTF-8 handling
* Support for "monkey-but" (`$foo but {...}`)
* Support for `$CALLER::` and `$OUTER::`
* Support for `lazy {...}` blocks for delayed evaluation
* Support for `temp` and `let` declarations
* Support for array and hash autovivification
* Support for array and hash slices
* Support for evaluating expressions in the PIL2JS shell (`:e <exp>`)
* Support for junctions
* Support for loading JSAN modules by using `use jsan:Module.Name`
* Support for lvalue subroutines (`foo() = ...`)
* Support for slurpy hashes in subroutine signatures
* Support for the `Proxy` class (not yet user-visible)
* Support for the `eqv` operator
* Using `for` with only one element to loop over works now
* `int()` works correctly on special values like `Inf` or `NaN` now
* `substr()` returns a r/w proxy: `substr($str, $pos, $len) = $replacement`

=== Perl 5 backend

* Passes 33% of the main test suite (including TODO failures)
* Integrated with the Perl 5 edition of MetaModel 2.0
* Compiles and runs Perl 6 version of `Test.pm`
* Infinite lazy lists, Pairs, References, and intrinsic classes
* Multi Sub, Class, Match, exceptions, types and subtypes
* Scalar, Hash and Array containers, with tieing, binding and read-onlyness
* Support for an extensive list of operators
* Supports eval() with Perl 5 and Perl 6 code
* `%ENV` is shared with Perl 5; `@INC` is separate from `@Perl5::INC`

== Bug Fixes

=== Shared components

* Fixed `foo {1}.blah` being misparsed as `foo({1}).blah`
* Fixed a hashref infinite loop
* Fixed infinite loop on sub { 1 }.pairs
* Multiple `sub foo` no longer silently means `multi foo`

=== JavaScript backend

* Fixed evaluation order of assignments and bindings
* Fixed `.values` and `.kv` to return aliases

== Bundled Modules

=== New Perl 6 modules

* Perl6-Container-Array, Perl6-Value-List:
  prototype modules for implementing Lazy lists in Perl 6.
* Log-Selective
* Cipher - Cipher API suite for cryptographic ciphers
* FA-DFA

=== Updated modules

* Locale-KeyedText: Synchronized with p5 version 1.6.2
* Test-Builder: new APIs, including test_pass() and test_fail()

=== Experimental modules (in misc/, not installed)

* Blondie, prototype compiler for native code generation and type-inferencing
  with Attribute Grammers 
* XML::SAX
* Getopt::Long
* Rosetta-Incubator, a complete set of Rosetta[|::*] and SQL::Routine[|::*]
  modules, restarted development at 2005.09.29

== Test, Examples and Documentations

* Many new tests and test refactoring, we now have 10300+ tests
* Documentation for draft GC API at `docs/notes/GC.pod`
* Data file for curcular prelude exploratory diagram at
  `docs/notes/compilation_of_circular_prelude.graffle`, some
  examples at `docs/notes/circular_prelude_stuff.pl`
* Collaborative journal at `/docs/journal`
* Autrijus's CUFP talk at `/mirror/pugs/docs/talks/cufp2005.txt`
* Theory Model proposal at `docs/notes/theory.pod`

= Changes for 6.2.9 (r6050) - Aug 4, 2005

== Pugs Internals

* New build system in `inc/PugsBuild`
** Configuration preferences are stored in `config.yml`
** Persists across builds, overridable via `%*ENV<PUGS_BUILD_OPTS>`
* `$CALLER::_` is now again usable in defaults.
* JavaScript Backend
** Actively progressing in `perl5/PIL2JS`
** Passes 64.00% of the Pugs test suite
* Perl5 Backend
** Begun in `perl5/PIL-Run`
** Primitive interactive shell as `crude_repl.pl`
* Object MetaModel
** Perl 5 prototype is mostly self-hosting 
** New C3-based method dispatch algorithm
** JavaScript version partially completed
** Java version begun (in very early stages)
* Pugs Intermediate Language
** New runcore design begun in `src/PIL`
** QuickCheck-based specification tests added
* Precompilation for arbitrary modules (not enabled by default)

== Bundled Modules

* New Perl 6 modules:
** `MIME::Base64`
** `Recurrence`
** `Span`
* Additions to `libwww-perl`:
** `HTTP::Cookies`
** `HTTP::Query`
** `HTTP::Request::CGI`
** `HTTP::Status`
** `URI::Escape`
* Additions to `DateTime`:
** `DateTime::Set`

== Test, Examples and Documentations

* Many new tests and test refactoring, we now have 8100+ tests
* A number of additions to `examples/cookbook`
* Beginning of Rule-based grammars for Perl6 in `modules/Grammars`
* SVG generation examples in `examples/graphics`
* `STATUS` document added to the top level to keep track of current progress
* `docs/notes/plan` expanded and added macro-related issues
* `examples/algorithms/Newton.pm` implements the newton method with currying
* `examples/network/evalbot.p6` gets safe &print primitive
* `examples/network/seenbot.p6` gets pretty duration printing
* `examples/network/svnbot.p6` supports branch information
* `examples/ppt/cat.p6` added to Perl Power Tools
* iblech's LUGA talk as `Anatomie_eines_Compilers_am_Beispiel_von_Pugs.latex`
* ingy's OSCON talk as `oscon-apocalypse.spork`

== Bug Fixes

* Fix pair binding for functions expecting pairs as arguments
* Global destruction is now guaranteed upon program exit
* Parameter's defaults are now evaluated in its original lexical scope
* Parser for hash subscripting was globbing whitespaces after it
* Primitive listops now handles Pairs as regular arguments
* Various `+$foos` in sub signatures changed to `?$foo` in `Test.pm`
* `%h<x>>` was misparsed as `%h{'x>'}`
* `-Inf` now stringifies as `-Inf`, not `-Infinity`
* `.end` and `.elems` no longer work as scalar methods
* `/a/ ~~ "a"` now works the same way as `"a" ~~ /a/`

= Changes for 6.2.8 (r5577) - July 13, 2005

== Pugs Internals

* Added code generation backends: `PIR`, `PIL`
** Pugs can now generate PIL (Pugs Intermediate Language)
** ...and emit PIR (Parrot Intermediate Representation) from PIL
** New `make pirsmoke` target runs test suite using PIR backend
** `Test.pm` can be compiled to PIR 
** `Prelude/PIR.pm` added with Perl 6 versions of some builtins
** `pugs -CPIL -e 'say 123'` for dumping PIL from code
* Implicit variables like `$^a` now only work in bare blocks
* Initial support for `%*INC`: multiple `require` calls run only once
* Named binding is now done in an inferencing phase before positional binding
* New Haskell builtins: `IO::tell` and internal filehandle test functions
* New PIR-specific builtin: `leave`
* New Prelude builtins: `File::seek`, `localtime`, `trans`
* New builtin classes: `Proxy`, `Control::Caller`, `Time::Local`
* New trait for Prelude.pm: `is builtin` (installs into the global namespace)
* Pairs in variables now bind to named parameters just like pair literals do
* Parse `trusts ClassName` and `my $foo is trait_name` as no-ops
* Parse fractional number literals starting with a leading dot: `.1` `-.1`
* Qualified names and exports now dealt with consistently
* Support for `does RoleName` and `is ClassName` within class declarations
* `&foo` in module `Foo` now looks up `&Foo::foo` as well
* `@?INIT` and `@?CHECK` renamed back to `@*INIT` and `@*CHECK` space
* `Bare` and `Parametric` types merged into `Block`
* `MY`, `OUR`, `OUTER`, `CALLER` can no longer be used as user-defined packages
* `Prelude.pm` is now pre-compiled to reduce startup time
* `multi foo { ... }` is now a shorthand for `multi sub foo { ... }`
* `my Foo $foo .= new(...)` parses and works
* `our` variables in packages now generate qualified symbols
* `use perl5:DBI` replaces the old `use DBI--perl5` syntax

== Bundled Modules

* New Perl 6 modules:
** `DateTime::Set`
** `DateTime`
** `HTTP::Server::Simple`
** `Module::Pluggable::Fast`
** `Perldoc` (partial port)
** `Set::Infinite`
** `Span`
** `Tree::Visitor` and `Tree::Visitor::FindByPath`
** `WTemplate` - the first Perl 6 templating engine
* New Pugs-specific modules:
** `Perl-Compiler`, a PIL representation in Perl 6
** `perl5/PIL-Run`, a Perl 5 prototype of Perl 6 runtime environment
** `perl5/Perl6-MetaModel`, a Perl 5 prototype of Perl 6 object model
* Completed port: `Locale::KeyedText`
** Compiles, executes, and passes whole pristine test suite
** Updated version to 1.5.0, corresponding to the Perl 5 version 1.05
** Some skips and workarounds remain due to missing Pugs features
* Completed port: `Test::Builder`

== Test, Examples and Documentations

* Examples of methods acting on builtin types in `examples/vmethods/`
* Interpreter and debugger for the l33t language in `examples/obfu/l33t.p6`
* Low level sanity tests in `t/01-sanity/` for the PIR code emitter
* More JAPHs added to `examples/japhs/`
* New directories: `examples/continuation` and `examples/unitfunctions`
* Overview of PIL-based compilation roadmap in `docs/notes/plan`
* Perl 6 Rule grammar and related files added to `module/Grammars/`
* Script to generate Haskell source's import graph as `util/importgraph.pl`
* Updates and cleanups to PA01; master copy is now `docs/01Overview.kwid`
* YAPC::NA talk: /Apocalypse Now/ (in `docs/talks/Apocalypse_Now.spork`)

== Bug Fixes

* Call parrot with `-C` (CGP) instead of `-j` (JIT) runcore to avoid segfaults
* Fixed `!~` to mean negated `~~` instead of `ne`
* Fixed `.isa` to agree with smartmatch results
* Fixed order of method invocation in `BUILDALL` and `DESTROYALL`
* New environment variable `PUGS_PARROT_OPTS` for invoking external parrot
* Qualified and global variables may now be used without declaration
* `$hashref.does(Hash)` now returns true
* `&say =:= &say` now evaluates to true
* `(42).kv` now dies and `(42,).kv` works
* `[1] <=> [2]` no longer misparsed as `[1]{'='}[2]`
* `caller` now counts `eval` and the topmost `main` as one frame
* `qq{ ... { code } ... }` no longer ignores the interpolated code 
* `redo` and `next` now works correctly inside loop blocks
* `sleep()` returns seconds slept instead of undef
* `try` is now capable of catching all type casting errors

= 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 Documentation

* 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

= Changes for 6.2.6 (r4318) - June 2, 2005

== Pugs Internals

* Pugs can now embed Perl 5 and use CPAN modules
** Perl 5 objects, classes and functions are understood by Pugs
** Pugs objects, classes and functions are understood by Perl 5
** These types can also be used in round-trip callbacks
* All user-defined classes now inherit from "Object"
* Bare blocks now belongs to the `Bare` type; pointy subs are still `Block`
* Class methods: `My::Class.foo()`
* Class objects are initialised from the default class tree
* Exclusive-range operators: `^..`, `..^` and `^..^`
* Experimental compiler backend `Pugs.Compile.Pugs2` (not yet working)
* Experimental `&code.body` support for reified ASTs
* Experimental embed API in `src/perl5/pugsembed.h`
* Fully qualified subroutine names are now parsed
* More core modules refactored for improved compilation speed and readability
* Multi-invocant calls like `foo($x, $y: $z)` are no longer legal
* New builtins: `evalfile`, `nothing`, `getc`
* Parameterless bare blocks now get an implicit $_ by default
* Parameterless pointy blocks no longer get a default parameter list
* Parrot compilation backend now handles qualified subroutine names
* Pugs now has a /Safe/ mode, enable by the PUGS_SAFEMODE environment variable
* Stub implementation for `.does` as an alias of `.isa` (no Roles yet)
* Unix-only builtins: `opendir`, `readdir`, `rewinddir`, `closedir`
* `$str.split(/rule/)` and `$str.split($delim)`
* `&infix<=>` can now be used as the assignment operator
* `Prelude.pm` added to `src/perl6` to implement S29 builtins in Perl 6
* `SUPER::`, `BUILDALL` and `DESTROYALL`
* `is export` now works as specified
* `loop {...} while`, `loop {...} until`
* `map` and `reduce` can now take n-ary functions. 
* `when .does(Foo)`, `when $_.does(Foo)` and `when Foo`

== Bundled Modules

* Many more code sketches and documentation added to `Perl-MetaModel`
* New `Benchmark` module added
* `CGI` has been improved:
** Now has: `escapeHTML`, `unescapeHTML`, `redirect`
** Supports more HTTP headers in `header`
** New module `CGI::Util` added
* New `Date` module added
* New `Text::Glob` module added
* New `libwww-perl` distribution added
** `LWP-Simple` now moved here
** `HTTP::Headers`, `HTTP::Message` modules added
* `Test::Builder` is now dangerously close to completely working
* `fp` now exports `&identity` instead of `&id` to avoid clash with `$obj.id`
* `use lib 'path';` now works

== Tests, Examples and Documentations

* Some new test and several tests refactored, we now have 7200+ tests
* Pugs Apocryphon 2 improved and edited in `docs/02Internals.pod`
* Many improvements to `util/perl6.vim` to handle new features 
* More Haddock documentation added to the Haskell source
* New IRC bot `evalbot` added to `examples/network`
* New JAPH for Italian Perl Workshop added in `examples/japh`
* Perl 6 port of Perl Power Tools begun in `examples/ppt`
* Some new additions and cleanup of the cookbook
* `examples/network/screen-nodestatus.p6` added to monitor hosts in GNU screen

== Bug Fixes

* Hyper-reduction prefix operators such as `[+]«` are now parsed
* Single-character class names were not parsed correctly
* Stringifying a Rule no longer throws an uncatchable exception
* Use of undeclared types in signatures no longer breaks MMD
* `(1 => 2 ?? 3 :: 4)` now always constructs a pair
* `Foo.bar()` now dispatches to `&Foo::bar` instead of to `&Class::bar`
* `Foo.isa(Foo)` no longer means `Class.isa(foo)`
* `pugs -MFoo` now means `use Foo`, not `require Foo`
* `readline()` now reads utf-8
* `times` now really works on Win32
* `when .isa(Foo)` is no longer parsed as `when $_ ~~ .isa(Foo)` now

= 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 `$obj.id()`
* 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`
* `&code.name` 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 as well as the 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 allow Perl 6 in 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::cmp_ok` now gives better diagnostic messages
* `fp` module added for functional programming

== Tests, Examples and Documentations

* Many new tests; 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 in `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 under `t/rules/`
* Replaced `force_todo()` with `:todo`

== Bug Fixes

* Bare blocks containing `$_` are now executed correctly
* Correct parsing for user-defined nullary functions
* Hash and array sub parameters are now read-only by default, same as scalars
* Post-term invocation in interpolation no longer eats 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)` now dispatches based on all the 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

= Changes for 6.2.3 (r3111) - May 12, 2005

== Pugs Internals

* Pugs can now embed Parrot or use an external `parrot` executable
** Under embedded mode, Pugs is a registered Parrot compiler
** `eval_parrot` and `require_parrot` builtins for running PIR code
** `pugs -BParrot` can compile Perl 6 program to PIR and run it in-memory
* Perl 6 Rules support via Parrot/PGE:
** Named rules and subrule support
** The former `$0` (entire match) is now `$<>`
** `$0` is now the same as `~$/[0]`, i.e. the same as Perl 5's `$1`
** `.from`, `.to`, `.matches`
** `//`, `rx//`, `m//`, `rule{}`
** `s///` and `//` in statement level operates on `$_`
* Basic Object support:
** Accessors generated for public attributes
** Identity operator: `=:=`
** Method chaining: `$foo.bar().baz()`
** Method invocant: `method foo ($self: $x)` and topicalized as `$_` 
** Public and private attributes, as well as `has $.attr is rw`
** `$obj ~~ Class` support
** `$obj.clone()` support
** `class Foo {}` works (no inheritance yet)
* Experimental `eval_yaml()` support to parse YAML streams
* Experimental support for prefix reduce metaoperator `[+]`
* Hyper operators now works on arrays too
* Improved `.perl()` format for array, hash and pair objects
* Much faster random access to arrays; it's now O(1) instead of O(n)
* Much improved MMD support
* New `is lazy` trait for parameters
* Refactoring of large Haskell modules to improve compilation speed
* Support for building a profiled Pugs
* Undef in grouped lhs: `my ($x, undef, $y) = 1..3;` is now legal
* `$thread.kill`, `$thread.detach`, `$thread.join`
* `%hash.pick`, `@array.pick` and `(list).pick`
* `reduce` primitive
* `state $var` implemented
* `system(Str: List)` and `exec(Str: List)` on Unix platforms

== Bundled Modules

* All modules have their own `ChangeLog` now
* `Algorithm::TokenBucket`, with closure objects
* `Config::Tiny`, with closure objects
* `Kwid::Event::Parser`, with procedures
* `Net::IRC`, with closure objects
* `Perl::MetaModel`, prototype of Perl 6 OO meta-model in Perl 6
* `Pod::Stream::Parser` renamed to `Pod::Event::Parser` and added more functionality
* `Set`, with Perl 6 objects
* `Test::Builder`, with Perl 6 objects (parses, but does not work yet)
* `Tree::Simple`, with closure objects

== Tests, Examples and Documentations

* Many new test and several tests refactored, we now have 4921 tests
* Documentation for `hangman.p6` added in `examples/games/hangman.pod`
* New "Monads in Perl 6" example in `examples/functional/monads.p6`
* Script to generate a Pugs Live CD in `util/livecd`
* Several IRC bots added to `examples/network` including svnbot and logbot
* TODO tests now use `:todo<reason>` for better reporting
* The first Perl 6 poem in `examples/poetry/`

== Bug Fixes

* Logical short-circuiting operators no longer flattens references
* Prohibit Array and Hash dereference on plain values
* Slurpy context no longer flattens
* Stringifying IO handles is no longer fatal
* `$*PID` now works on Win32
* `%*ENV` now completely works on Win32
* `(a => 3+4)` is now parsed as `(a => (3+4))`, not `(a => 3)+4`
* `any().pick` no longer dies
* `my @x = [1]; @x[0][0] = 2` should now work
* `next` in nested `for {}` blocks no longer escapes the outer loop
* `to => 123` parses again; arrow pairs now always trumps unary functions
* `{}` in P5 rules is no longer closure interpolation

= Changes for 6.2.2 (r2604) - May 1, 2005

== Pugs Internals

* Many performance speed-ups, including:
** New, much much faster implementation type for Pad
** Replace Data.HashTable with STM Map
** Restructured the Eval monad to be reusable on compilers and interpreters
** Position handling and statement reduction logic re-written
** Add strictness to core Monad and object structures
* Functions declared as unary are now parsed as such
* Global subroutine declaration is now visible in the whole file
* Improved Parrot compiler backend support for mod_pugs
* Much better error messages, tracking source file range for expressions
* New loop control routines: `next` and `redo`
* On Win32, `-s` and `-z` now work correctly
* Optimized build is now default; use `make unoptimized` to turn it off
* Pugs can now build on Cygwin
* `#line 123` and `#line 123 "filename"` both work
* `&infix:<%>` raises trappable exception when modulus is zero
* `(undef, $x) = (1, 2)` is now supported
* `@array.end` implemented
* `BEGIN {...}` blocks now work on both statement-level and term level
* `for @a { say }` is now parsed as `for @a -> $_ is rw { say }`
* `for @a -> () { ... }` now consumes one element at a time
* `my $var ::= expr` works
* `print (4)+4` now prints 8, because the whitespace is no longer skipped
* `use Module;` supported and happens at `BEGIN` time
* `|=` `^=` `&=` for junctions

== Tests, Examples and Documentations

* Many new tests and cleanup of older tests, we are now at 4600+ tests
* API documentation available in `docs/haddock/`
* Added an example of IRC bot into `examples/network`
* Added simple POD parser into `ext/Pod-Stream-Parser`
* Added support for generating Haskell documentation with `make haddock`
* Added the tic-tac-toe game from perlmonks into `examples/games/`
* Parallel `make smoke` when `%ENV<PUGS_TESTS_CONCURRENT>` is greater than 1
* Patched local `Test::Harness` to display number of TODO tests
* Progressive powerset generator from perlmonks added to `examples/`
* Smoke testing tool now includes timing data in YAML harness data
* German talk /Perl 6, genau jetzt!/ finished

== Bug Fixes

* Constant references now automatically dereference when used in rvalue context
* Junctive `^` should join junctions instead of autothread them
* Lone block does not count as /simple expression/ anymore
* Repair single statements in shell to preserve lexical context
* Repair the `list` context hinter
* The dot in `123.ref` is now parsed correctly as `(123).ref`
* `$_` in subroutine signatures is no longer slurpy by default
* `$x = \$x` no longer causes an infinite loop
* `NaN` calculations no longer causes infinite loop
* `last if foo` now means `last() if foo()` instead of `last(if(foo()))`
* `one(1,1).pick` bug fixed; it should return `undef`
* `splice([], 1)` no longer causes division by zero errors

= Changes for 6.2.1 (r2288) - April 24, 2005

== Pugs Internals

* Unification of the quoting code, most quoting constructs now work
** <<>> now works
** Regular expressions are parsed as `qq//`, but without backslash protection
** Hash subscripts using `<>` or `<<>>` are parsed as general quotations
** This means interpolation, etc. is done just like `q:w` or `qq:ww`
** `$<delim>` not interpolate in quoting constructs
** `$)`, `$]`, `$#` and `$<ws>` do not interpolate in `rx:P5//` constructs
* Assigning a `List` into a `Scalar` now vivifies it into an `Array`
* Assigning to pairs now works as expected
* Autoextracted `$_` is now `rw` by default
* Better handling for size extensions and `exists()` for negative indices
* Bindings implemented for multiple variables
* Experimental support for `eval_haskell()` builtin
* First stab at a lexical `$*CWD` variable 
* Index in slices now defaults to List: `@a[func_returns_array()]` now works
* Initialize readline properly in interactive shell
* Junctive types in subroutine signatures `sub foo (Str|Array)`
* New builtins: `>>~<<`, `kill()`, `splice`, `readdir()` (list context only)
* Pairs are now always objects and never values
* Passing too many slurpy arguments is now an exception
* Regexps now support `:P5` and `:Perl5` as well as `:perl5`
* Storing into negative array elements now works
* The `Any` parameter type no longer inhibits juctive autothreading
* Variables in rvalue context no longer returns its references
* `%h<>` now acts just like `%h{}` in both lhs and rhs
* `%h<x>` now means `%h{'x'}` instead of `%h{'x',}`
* `'key' => val` now works as named param just like `key => val` did
* `(sub {3} | sub {2})()` implemented
* `:P5` flags now work as `:P5<imsgx>` and `:i` `:g` works too
* `:l filename` no longer needs double quotes in the Shell
* `<>` (list quoting) is now always in list context
* `is rw` and `is copy` implemented in full
* `list()` now actually imposes list context
* `want()` has been implemented, returning a simple string

== Tests, Examples and Documentations

* Many new tests and cleanup of older tests, we are now at 4500+ tests
** removed all usages of todo_* functions since the are now deprecated
* Added `isnt()`, `unlike()`, `skip_rest`, `throws_ok` functions to `Test.pm`
* Added some Perl 6 related talks in `docs/talks`
* Added the `make smoke` target to `Makefile`
* Additions and improvements to the `util/catalog_tests.pl` scripts
* Improvements to `examples/network` and added README file
* Improvments to the `util/p5_to_p6.pl` script
* Major refactoring of the Test.pm module (see `ext/Test/ChangeLog` for details)
* Memory game, first web application written in Perl 6
* New Perl 6 tutorial generator ported to Pugs in `examples/tutorial_gen/`
* New naive baysian text classifier add in `examples/naive_bayesian`
* New quote generator script in `examples/motd`
* Params are now loaded on-demand in `CGI.pm` to take advantage of encoding
* Several new additions to the Perl 6 Cookbook
* Svn graphing script added to `util/`
* Test smoke scripts converted to use `Test::Tap::Model`
* The `fp.p6` file has been broken into seperate files in `examples/fp/`
* UTF-8 URL decoding added to `CGI.pm`

== Bug Fixes

* Accessing `@array[1000]` (without setting it) no longer extends `@array`
* Code blocks as subroutine arguments now results in correct arity
* Code objects now returns the correct subtypes
* Comma is no longer flattened as arguments for infix and postfix functions
* Corrected `chmod` prototype
* Fixed infinite bug when evaluating `+((1|2).values)`
* Fixed passing references into bound variables in subroutines
* Fixed segfault with `:r` in interactive shell
* Hyper operators now extends to the longer, not shorter, lists
* Inf/NaN handling for `**` now works
* Manpage for `Perl6::Pugs` now generated correctly
* RValues at the right hand of array assignment are flattened to prevent loops
* Restore `%h<str> = want()` to impose string context on rhs
* Setting `$*CWD` to invalid directory is no longer fatal
* Slurpy params now applies *-flattening to its arguments
* `$x = 1|2; $x = 3` no longer treats `1|2` as a constant
* `%h<a>` or `%h{'a'}` no longer eats trailing spaces interpolated strings
* `(1,(2,3))` in scalar context is now `[1,[2,3]]`
* `**` no longer truncates the exponent to integer
* `=` now assigns correct slurpy context to rhs
* `=cut` without a newline at EOF is now parsed correctly
* `return() if 1` now works correctly

= Changes for 6.2.0 (r1921) - April 13, 2005

== Pugs Internals

* Major refactor of ITypes subsystem, we now have:
** Nested structures: `$a{1}[2]{3}`
** Autovivification: `$a{1}[2]{3} = <b>`
** Tied magic: `%ENV<USER>`
** Proxy scalars: `%ENV<PATH> ~= '/tmp'`
** Slice assignment: `@x[1,2] = <a b>`
** Anonymous arrays: `[1..10][0] = 0`
** Lazy IArray structures: "Infinite lists, constant time"
** Infinite slices: `@x[1...]`
** and much much more ...
* Experimental support for link external Haskell libraries
** One such module is SHA1.pm: http://tpe.freepan.org/repos/ingy/SHA1/
* New builtins:
** `sum`, `log`, `log10`, `sign`, `pi`, `tan`, `cos`, `atan`
** `zip`, `hash`, `pair`, `isa`, `bytes`, `chars`, `codes`, `graphs`
* New type specific builtins;
** `.kv`, `.pairs`, `.delete`, `.exists`
** `.pick`, `.keys`, `.values`
* Several file test operators
** `-r`, `-w`, `-x`, `-e`, `-z`, `-s`, `-f`, `-d`
* Support for `$*UID`, `$*EUID`, `$*GID`, and `$*EGID` on *nix
* Stacked file test operators now (mostly) work
* Added `is rw` trait for subroutine parameters
* `$*PID` now works on *nix systems 
* Several command line switches implemented: `-I` `-p` `-n` and more
* `s:perl5/.../{ <code> }/` works correctly
* Type casting errors are now more descriptive
* `require ""` now works on UTF-8 files
* Regex substitution is now UTF-8 safe
* `sort {}` now works
* Some support for the /splat/ star `*` 

== Tests, Examples and Documentations

* Many new tests and cleaning up of older tests, we now have 4200+
* `examples/games/hangman.p6` added, with `AUTHORS` as the dictionary file
* `READTHEM` added; recommended reading for aspiring Pugs hackers
* The Perl 6 Cookbook is well underway at `examples/cookbook/`
* Working perl6 modules added to `ext/`
** CGI.pm
** lib.pm
** HTML::Entities
* Several Working Drafts added to `docs/`
** Apocalypse 20 - Debugging
** Synopsis 26 - Perl Documentation
** Synopsis 28 - Special Variables
** Synopsis 27 - Perl Culture (with CPAN drinking game rules)
** Synopsis 29 - Builtin Functions
* Early work on Perl 6 Object System in `docs/class/`

== Bug Fixes

* Parens no longer required for; `last()` and `return()`
* Fixed issue with binding invocant parameters
* Fixed parsing issue with `lc $, $y`
* `$_` now behaves correctly in most cases
* `exit()` now triggers `END {}` correctly
* `undef $x` now works correctly ($x is rw)
* Fixed parsing of default parameters: `sub foo (+$x = 3, +$y = 4)`
* `say` and `print` now default to `$_`
* `map { ... } @list` now parses correctly
* `loop { ... }` now works correctly
* `int(3) + 4` now parses correctly
* Fix parsefail bug on false unaries
* `for (@list)` no longer flattens `@list`
* `$var.method $param` is now illegal: use `$var.method($param)`
* `readline()` in list context is no longer evaluated lazily
* `$list.join('|')` now works
* `xor` and `^^` now returns the true operand instead of `bool::true`
* Named bindings to `%_` repaired

= Changes 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 responds 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 (r690) - 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`
* New example: `hanoi.p6`
* 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 (r335) - 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
* Hashes, Pairs and their access methods
* Much more robust casting between arrays, lists and hashes
* Fixed harness output problem on older perls
* Many Posix