maximum line length in a pod (pdd) is 78 characters
[parrot.git] / NEWS
blob2a51f48a2dcfda5a4e0896e00279dc704d57b4cf
1 # $Id$
3 New in 2.3.0
4 - Features
5 - Core
6   + Allow passing parameters to the dynamic linker ('dlopen' improved)
7   + loadlib opcode added
8   + Merge of pcc_hackatron branch
9   + Recursive make for src/dynpmc removed
10 - Compilers
11 - Deprecations
12 - API
13 - Platforms
14   + Improved handling of new compilers
15 - Bugfix
16 - Tests
17 - Tools
18 - Documentation
19 - Miscellaneous
21 New in 2.2.0
22 - Core changes
23   + Most internal allocations now use the GC
24   + RNG non-randomnes fixes
25   + Elimination of much dead code
26 - API changes
27   + PMCs can now be initialized from an int
28   + Many legacy ops are removed
29 - Platforms
30   + Sun cc and Intel icc support have been restored
31   + Compiler invocation no longer goes through a Perl script
32 - Tools
33   + NCI thunks are now generated by self-hosted PIR code
35 New in 2.1.0
36 - Core changes
37   + GC performance and encapsulation were greatly improved.
38   + PMC freeze refactored.
39   + More Makefile and build improvements.
40 - API Changes
41   + The Array PMC was removed.
42   + Several deprecated vtables were removed.
43   + The OrderedHash PMC was substantialy improved.
44 - Platforms
45   + Packaging improvements on some operating systems.
46 - Tools
47   + Some cases in pbc_merge are now handled.
48   + Improvements were made to the dependency checker.
49   + New tool nativecall.pir added.
51 New in 2.0.0
52 - Features
53   + Context PMCs now support attribute-based introspection
54   + Context and CallSignature PMCs merged into CallContext
55   + .lex directive throws exceptions when used with incorrect register types
56 - Platforms
57   + Packaging improved for free OS distributions
58   + PPC, PPC64, and ARM now tested when running Linux
59 - Performance
60   + Minor improvements to the profiling runcore
61   + Improvements from the CallContext PMC merge
62 - New deprecations
63   + In/out parameters in STRING modification functions
64   + Void handling in NCI signatures
65   + Parameter passing opcodes order in PBC
66 - Tests
67   + Continued migration of core tests from Perl 5 to PIR
68 - Tools
69   + dependency checker improved
70 - Miscellaneous
71   + Deprecation cycle length changed to three months from six
72   + GC accuracy improved
73   + PMC freeze improvements; much more reliable
74   + Makefile improvements for dependency handling
76 New in 1.9.0
77 - Core
78   + Made profiling runcore output format configurable and extensible
79     options include "pprof" and "none" ("binary" and "callgrind" are planned)
80   + Added environment variables to specify profiling output type and filename
81     (PARROT_PROFILING_OUTPUT and PARROT_PROFILING_FILENAME)
82   + Began merging Freeze/Thaw and Bytecode generator/loader
83 - Compilers
84   + Included latest nqp-rx compiler, with many improvements
85     - GLOBAL:: package identifier
86     - dynamic variables look in global namespace
87     - $obj."$method" syntax
88     - :p(os) and :c(ontinue) option on regexes
89     - try/CATCH/CONTROL handling
90     - support leading & on subroutine declarations
91     - allow "category:<symbol>" names (for builtin operators)
92     - simple version of smartmatch operator
93     - simple regex matches
94     - updated HLL::Compiler with new import/export methods
95 - Miscellaneous
96   + Portability updates for RTEMS, and Intel architectures with GNU compilers
97   + Completed conversion of ticket tracking system from RT to Trac
98   + New draft of PDD31 for HLL export API and import implementation
99   + Several (build time, runtime) performance improvements
100   + Converted many tests to PIR, reducing test execution time
101   + Various bugfixes, code cleanups, and coding standard fixes
103 New in 1.8.0
104 - Functionality
105   + The FileHandle PMC now exposes the exit code of child process that was run as pipe.
106   + Experimental support for overriding VTABLE invoke in PIR objects was added.
107   + The method 'type' was added to the PackfileAnnotations PMC.
108   + The internals of the parrot calling conventions, PCC, were reworked.
109     All call paths now use a CallSignature object for passing arguments and return values.
110   + The new API-function  'Parrot_ext_call' was added for calling into C-land.
111   + The fixed-size allocator was improved.
112   + The files installed by 'make install-dev' are now covered by 'make install' as well.
113   + The experimental ops 'fetch' and 'vivify' were added.
114   + The -I option to the command 'parrot' now prepends items to the search path.
115   + The Context struct was substituted with auto attributes (context_auto_attrs branch).
116   + Use the osname determined in auto::arch in subsequent configuration steps (convert_OSNAME branch).
117   + Eliminated dependence on Perl 5 '%Config' in auto::format (auto_format_no_Config branch).
118   + MultiSub PMCs now stringify to the name of their first candidate,
119     instead of the number of candidates.
120   + The platform detection at the start of the configuration process was improved.
121   + The 'lineof' method on CodeString objects now precomputes line number information
122     to be more efficient on variable-width encoded strings.
123   + P6object now supports .WHO and .WHERE methods on protoobjects.
124 - Compilers
125   + A shiny new self-hosting implementation of NQP has been added in ext/nqp-rx.
126     - New NQP available as nqp-rx.pbc or parrot-nqp fakecutable.
127     - NQP includes direct support for grammars and regexes, including protoregexes.
128     - NQP has a new PAST-based regex engine (intended to replace PGE).
129     - Regexes may contain code assertions, parameters, lexical declarations, and more.
130     - Double-quoted strings now interpolate scalar variables and closures.
131     - Subroutine declarations are now lexical by default.
132   + PCT
133     - PAST::Block now supports an 'nsentry' attribute.
134     - PAST::Var allows 'contextual' scope.
135     - Attribute bindings now return the bound value.
136 - Platforms
137   + Fixes for the port of Parrot to RTEMS were applied. Yay, first port to a real time OS!
138   + On NetBSD, shared libs are now used.
139 - Performance
140   + Use the the fixed-sized allocator in the Context and the CallSignature PMC.
141   + Many small speed improvements.
142 - New deprecations
143   + MT19937, the Mersenne twisted pseudorandom number generator, is now hosted on github and 
144     will be removed from the Parrot core. (eligible in 2.1)
145   + The 'Parrot_call_*' functions for invoking a sub/method object from C are
146     deprecated. They are replaced by 'Parrot_ext_call'. (eligible in 2.1)
147   + All bitwise VTABLE functions are deprecated. (eligible in 2.1)
148   + All bitwise ops will become dynops. (eligible in 2.1)
149 - Realized deprecations
150   + The slice VTABLE entry was removed.
151   + The last traces of the 'malloc' garbage collector were removed.
152   + Parrot_pcc_constants() was renamed to Parrot_pcc_get_constants().
153   + The deprecated functions from the Embedding/Extension interface were removed.
154   + The library YAML/Parser/Syck.pir was removed.
155   + The VTABLE function instantiate_str() was removed.
156   + Building of parrot_nqp was removed.
157 - Tests
158   + The test coverage of the time-related ops was much improved.
159   + New testing functions in Test::More: lives_ok() and dies_ok().
160   + The Perl 5 based test scripts t/op/bitwise.t, t/op/comp.t, t/op/inf_nan.t,
161     t/op/literal.t, t/op/number.t, t/op/sprintf2.t, and t/op/00ff-dos.t were converted to PIR.
162   + The test scripts t/op/annotate.t and t/op/time.t have begun
163     to be translated from Perl 5 to PIR.
164   + In some tests the dependency on %Config from Perl 5 was eliminated.
165 - Documentation
166   + The meaning of 'p' means in NCI function call signatures was clarified.
167 - Tools
168   + The stub for a new language, as created by mk_language_shell.pl,
169     now relies on the PIR-based tools, which are replacing the Perl 5-based tools.
170   + The library Configure.pir was added.
171   + The library distutils.pir was added.
172 - Miscellaneous
173   + The mailing list parrot-users and a corresponding google group was created,
174     http://groups.google.com/group/parrot-users.
175   + Many bugfixes, code cleanups, and coding standard fixes.
177 New in 1.7.0
178 - Functionality
179   + Parrot_capture_lex has been added to the PARROT_EXPORT API
180   + PARROT_MAX_ARGS has been increased from 8 to 16 to allow for ops that take more than 8 args
181 - Performance
182   + The profiling runcore now caches metadata for improved performance
183 - Maintenance and cleanup
184   + Expanded the Parrot debugger documentation
185   + Parrot debugger now uses the new Parrot STRING API
186   + Continue to port rest of internals to use the STRING API
187 - Deprecations
188   + The JIT subsystem has been removed and is being written from the ground up. More
189     information can be found at https://trac.parrot.org/parrot/wiki/JITRewrite
190   + Implicit optional named parameters (eligible in 2.1)
191   + Continuation-based ExceptionHandlers (eligible in 2.1)
192   + Use of undocumented variables in class_init (eligible in 2.1)
193   + Parrot_oo_get_namespace (eligible in 2.1)
194 - Bugfix
195   + Improved line number tracking in IMCC
196 - Tests
197   + Converted many more Perl 5 tests to PIR
198   + Expanded test coverage of the CallSignature, Namespace, FixedPMCArray,
199     ResizeableIntegerArray and ExceptionHandler PMCs
201 New in 1.6.0
202 - Functionality
203   + Added a fixed-size structure allocator to the Garbage Collector
204   + Added a "lazy" mode to the PObj and Fixed-Size memory allocators
205   + Added a profiling runcore, which generates Callgrind-compatible output
206   + Added lexical subsystem opcodes: find_dynamic_lex, store_dynamic_lex
207   + Converted Contexts to garbage-collectable PMC structures
208   + Created a new Context API
209   + Enhanced the PMC allocator to automatically allocate ATTR structures
210 - Performance
211   + Optimized opcodes to cache the current Context for subsequent lookups
212   + Reduced string comparisons in VTABLE_isa
213 - Maintenance and cleanup
214   + Began proper encapsulation of STRING API
215   + Unified all PMC destruction functions
216   + Unified Continuation PMC and Parrot_cont structure
217   + Unified Sub PMC and Parrot_sub structure
218   + Removed PMC_EXT structure
219   + Removed PMC_Sync from PMC
220   + Removed UnionVal from PMC structure
221 - Bugfix
222   + Fixed several stack-walking bugs in Garbage Collector code
223   + Fixed bug when copying a NULL STRING, now returns empty STRING struct
224 - Tests
225   + Converted several Perl5 tests to PIR
226   + Expanded test coverage of NameSpace PMC
227 - Compilers
228   + Made Parrot Compiler Toolkit available in the base install
230 New in 1.5.0
231 - Core
232   + Removed several deprecated functions and features
233   + Removed bsr, jsr, branch_cs, and ret opcodes
234   + Removed global stacks system
235   + Changed OPS file format to include explicit preamble
236   + Changed all "new 'Iterator'" instructions into 'iter' instructions
237   + Removed Configure.pl options for specifying non-working GC cores
238   + Removed unexecuting code as found by Coverity
239   + Improvements to the Parrot Debugger
240   + Added experimental fixed-size structure allocator to the GC
241   + Added experimental lazy arena allocation to the GC
242   + Refactored hashes, keys, and iterators
243   + Added "corevm" make target to build Parrot without all the supporting libraries
244   + Removed Random PMC type and added in a "rand" dynop
245   + Optimization and Improvements to the NCI thunk generator
246   + New include file libpaths.pasm
247 - Compilers
248   + Multiple .local with same name and different type is now an error on IMCC.
249 - Platforms
250   + Improved support for detecting Fink and Macports
251   + Updated search directories for libraries
252 - Documentation
253   + "Parrot Developers Guide: PIR" released to publisher and available to purchase
254   + Improved documentation about Parrot Debugger
255   + Update PGE Documentation
256 - Miscellaneous
257   + Deprecate 'PASM1' compiler object, update to warn instead of segfault
258   + Added tests
259   + Fixes to code, documentation, and standards
261 New in 1.4.0
262 - Core
263   + Key and Iterator refactor
264   + Major pbc_to_exe generated code speed improvement
265   + New "Infinite Memory" GC core for demonstration purposes
266   + gc_debug runcore and GC-related heisenbug fixes
267   + Elimination of variable expansion in parrot_config
268   + CLI arguments are processed as Unicode by default
269   + Substantial optimizations in NCI
270   + Parrot builds on Win64
271   + Hashes can use native types as keys and values
272   + Fixed installed pbc_to_exe
273   + Simplification of PMC generation code
274   + Improved GC encapsulation and API documentation
275 - Documentation
276   + List of candidates for embedding API (docs/embed.pod)
277   + PIR book sent to publisher
278 - Testing
279   + Several conversions of Perl test to pure PIR.
280   + C indentation coding standards test improvement
281   + Improved test coverage of example code
282 - Deprecations
283   + Removal of PGE rules: <null> <fail> <sp> <lt> <gt> <dot>
284   + Removal of PGE methods: .text .item .result_object
285   + Deprecation of most dynops
286 + Miscellaneous
287   + Beginnings of OpenGL::Math library; OpenGL bindings and library marked experimental
288   + Localizing and consting fixes
289   + Many memory and thread-related leaks plugged
291 New in 1.3.0
292 - Core
293   + Optimized parts of the IO system
294   + Fixed inheritance hierarchy of FileHandle and Socket PMC types
295   + Fixed leaks involving subroutines and Parrot_Context
296   + Cleaned up and refactored GC internals, including fixes and optimizations
297   + Optimized PMC class manipulations to use type numbers instead of string names
298   + Fixed problems involving hashval calculations in strings
299   + Removed unnecessary MULTI dispatches in built-in PMCs
300   + Fixed memory leaks involving PMCs that were not properly destroyed
301   + Fixed creation of PMCProxy PMCs in correct namespaces
302   + Added preliminary Pipe support
303   + Fixed cloning of Object PMCs
304   + Added root_new opcode
305   + Added initial versions of Packfile PMCs with read/write capabilities
306 - Compilers
307   + Fixed several memory leaks in IMCC
308   + Updated PCT to use root_new opcode
309   + Added support for keyword "self" in NQP
310 - Documentation
311   + Improved and expanded /docs/book
312   + Updated project documentation
313   + Defined 'experimental' status and procedures in DEPRECATED.pod
314 - Miscellaneous
315   + Cleaned code and improved code-level documentation
316   + Various bugfixes, code cleanups, and coding standard fixes
317   + Added an experimental compiler library to help use PIR libraries from HLLs
318   + Updated OpenGL library and examples to support experimental HLL import
320 New in 1.2.0
321 - Core
322   + Fixes for pir classes inheriting from core pmcs.
323   + Cleaned up headers and reorganized some sources into subsystem directories.
324   + Clean up PMCs so libparrot.so exports far fewer vtable/method symbols.
325   + Clean up the GC API.
326   + Several unicode identifier improvements in IMCC.
327 - Deprecations
328   + Protoobject stringification is gone.
329 - Documentation
330   + Rewrite several core documents.
331   + Many reworks, improvements & additions to the Parrot Book.
332   + Installation PDD is launched out of draft.
333 - Tools
334   + Fixes for running the language shell generator outside the parrot tree.
335   + Several fixes for developing and building HLLs from an installed parrot.
336   + Configure.pl now has a --no-line-directives option to ease source level debugging.
337 - Miscellaneous
338   + Portability updates for macports, netbsd, mingw32, hpux.
339   + Several (build time, runtime) performance improvements.
340   + Lots of updates to examples and tests.
341   + Various bugfixes, code cleanups, and coding standard fixes.
343 New in 1.1.0
344 - Core
345   + Added op: load_language, find_caller_lex
346   + Socket IO are back as PMC
347   + Refactor some PMC: Hash, ManagedStruct
348   + Refactor GC API
349 - Compiler
350   + PGE
351     - Allow \x, \c, and \o in enumerated character classes (incl ranges)
352     - Add initial greedy-only version of ** <exp> quantifier
353   + PCT
354     - Add HLL source line bytecode annotations
355     - Add another dumper format to assist syntax highlighters
356     - Revise mk_language_shell.pl to updated create_language.pl
357 - Deprecations
358   + Removed ops: gcd, exec, classname, need_finalize, runinterp, substr_r
359   + Removed dynamic op: mul
360   + Removed .HLL_map directive; use interp's .hll_map() instead
361   + Removed PMCs: slice, bound_nci, ref
362   + Removed Configure.pl option: --pmc
363   + Removed PMC union struct
364 - Documentation
365   + Book
366     - Reorganization and many improvements & additions
367 - Tools
368   + Add a parrot-fuzzer
369 - Miscellaneous
370   + Improve Debian/Ubuntu package
371   + various bugfixes, code cleanups, and coding standard fixes
374 New in 1.0.0
375 - Documentation
376   + New user documentation for exceptions.
377   + Updates to Chapters 4 & 5 of the Parrot book.
378   + Improved and expanded generated HTML documentation, as the input for
379     http://docs.parrot.org.
380   + Added Compiled HTML Help (.chm) version of documentation.
381   + Cleanups and fixes.
382 - Languages
383   + Pynie
384     - left the nest and is now at http://pynie.googlecode.com/
385   + Cardinal
386     - left the nest and is now at http://github.com/cardinal
387   + APL
388     - left the nest and is now at http://paraplegic.googlecode.com/
389   + ABC, Squaak, and Befunge moved to examples/.
390   + All remaining languages moved to https://svn.parrot.org/languages/
391 - Tools
392   + Support for language builds from an installed Parrot.
393   + Expanded language shell generator for new languages.
394   + 'parrotbug' utility repurposed for the Trac interface.
395 - Deprecations
396   + Removed deprecated Tqueue and Closure PMCs.
397   + String, Key, NCI, LexPad, Iterator, Sub, Continuation, RetContinuation,
398     ExceptionHandler, ParrotLibrary, ParrotInterpreter, ParrotThread,
399     ParrotRunningThread, Rational, FixedPMCArray, ResizablePMCArray, and
400     GDBMHash PMCs now use declared attributes (ATTR), in place of the
401     deprecated UnionVal.
404 New in 0.9.1
405 - Implementation
406   + Support for portable 'Inf', 'NaN' and -0.0
407   + pbc_disassemble prints constants in constants table
408   + New experimental BigNum implementation
409   + Pair is now a dynamic loadable PMC
410   + Various function name sanification
411   + New implementation of Strings component
412   + Replace various PMC value union access code by VTABLE method invocations
413   + Replace various PMC value unions by ATTRibutes
414   + Removed SArray PMC. Use FixedPMCArray instead.
415 - Documentation
416   + Book
417     - updates to Chapter 2 (getting started)
418     - updates to Chapter 3 (PIR basics)
419     - updates to Chapter 4 (PIR subroutines)
420     - updates to Chapter 10 (HLLs)
421     - updates to Chapter 12 (opcodes)
422   + Function documentation
423   + Pod documentation style modernized; no longer Perl 5 style.
424   + PMC has an additional acronym: Poly Morphic Container
425   + The DOD (Dead Object Detection) acronym is no longer used;
426     use 'GC' to refer to the Garbage Collector component.
427 - Compilers
428   + IMCC
429     - :named flag can now take string registers as argument
430     - A single '=cut' directive is now ignored (without initial Pod directive)
431     - :vtable subs now have proper access to 'self' pseudo variable
432 - Languages
433   + add new 'Pod' documentation parser
434   + Pipp (PHP implementation):
435     - Pipp is now at http://github.com/bschmalhofer/pipp
436     - support for 'print', 'dirname', 'implode', 'str_replace',
437     - various grammar fixes
438   + ECMAScript
439     + add 'quit', 'readline' builtins
440     + fix 'Boolean' type and 'print' builtin
441   + Lua
442     - left the nest and is now at http://github.com/fperrad/lua/
443   + Rakudo
444     - left the nest and is now at http://github.com/rakudo/rakudo/
445     - build instructions can be found at http://tinyurl.com/rakudo
446   + lazy-k
447     - left the nest and is now at http://github.com/bschmalhofer/lazy-k.git
448   + unlambda
449     - left the nest and is now at http://github.com/bschmalhofer/unlambda/
450   + WMLScript
451     - left the nest and is now at http://github.com/fperrad/wmlscript.git
452   + removed Zcode implementation
453 - Tools
454   + pmc2C
455     - ATTRs are now inherited automatically in subclassing PMCs
456 - Deprecations
457   + Parrot_readbc, Parrot_loadbc renamed to Parrot_pbc_read, Parrot_pbc_load.
458   + .HLL_map directive in favour of 'hll_map' method on Parrot interpreter
459   + Data::Escape library
460 - Tools
461   + pbc_disassemble options added
462   + pbc_dump renamed from pdump
463 - Miscellaneous
464   + Parrot is now Copyright Parrot Foundation
465   + Parrot's SVN repository is now hosted at https://svn.parrot.org
466   + Various code cleanups, consting, 64-bit incompatibilities and other bug fixes
469 New in January 2009 release (0.9.0)
470 - Implementation
471   + Implemented bytecode annotations
472   + Role composition is now aware of multi-subs
473   + Unbuffered IO PMCs now autopromote when buffering is necessary
474   + Installation parrot binary and libparrot shared library now supported
475   + Class registry now respects HLLs
476 - Compilers
477   + IMCC
478     - removed keyed string indexing, e.g. $S0[1].
479     - removed slice syntax, e.g. $P0[1..2]
480     - removed .namespace <ident>/.endnamespace <ident> pair
481     - fixed 'new $P0, [classname]' syntax
482   + PIRC
483     - refactoring of various data structures
484     - various bug fixes and updates
485     - complete bytecode generation
486     - add '-x' commandline option to run compiled code
487   + PCT
488     - add 'hll' and 'subid' attributes to PAST::Block
489     - refactor loop handling code to handle last/redo/next
490     - add :pasttype('stmts') and :pasttype('null')
491     - improve "scope not found" error message
492     - allow PAST::Val nodes to contain block references
493   + PGE
494     - add "skipkey" option to PGE::OPTable
495     - allow spaces before modifiers in regexes
496     - add '(' ~ ')' goal matching syntax
497     - skip creating a class/grammar if it already exists
498 - Languages
499   + Rakudo
500     - improved error mesages in multi dispatch
501     - implemented clone method for all objects
502     - implemented MAIN sub
503     - Unicode versions of infix hyper operators
504     - refactored IO.readline
505     - basic support for Inf and NaN
506     - list and array slices with whatever star
507     - hash slices
508     - implemented last and redo
509     - pointy blocks as terms
510     - refactored variable and parameter passing
511     - improved assignment semantics
512     - improved parsing of type names and subs
513     - mostly implemented parametric roles
514     - separate types for blocks, subs and methods
515     - basic support for submethods
516     - implemented Junction autothreading of user code (not builtins yet)
517     - eval supports :lang attribute
518     - proto makes other subs in scope multis, including in role composition
519   + Befunge
520     - back to working state
521     - ported to pir
522   + Pipp
523     - add support for predefined constant __CLASS__ and __METHOD__
524     - add initial support for static members
525     - add support for namespaced constants
526     - constants are now handled as package vars
527     - variables are now lexical variables
528     - add support for superglobals in functions
529     - Call the class __constructor when there is one
530     - added incomplete support for closures
531     - removed support for the alternative parsing strategies
532     - added support for 'elsif'
533     - added support for 'do-while'
534   + HQ9+
535     - left the nest and is now at https://github.com/bschmalhofer/hq9plus/
536   + Eclectus
537     - left the nest and is now at http://github.com/bschmalhofer/eclectus/
538   + m4
539     - left the nest and is now at http://github.com/bschmalhofer/m4/
540   + Lua:
541     - add a minimalist user back trace
542   + PIR
543     - "does" and "morph" VTABLE interfaces are now overridable from PIR
544 - Miscellaneous
545   + Infrastructure
546     - 'make smoke' now generates Smolder reports sent to
547       http://smolder.plusthree.com/app/public_projects/smoke_reports/8
548   + Improved const and null correctness for C function parameters
549   + Sped up STRING manipulation (append, chop), improving PGE about 30%
550   + BOOK
551     - Added sections about Classes, OO programming, and methods.
552     - Added information about Annotations, Exceptions, and Handlers
553   + STM
554     - Removed non-functional STM subsystem
557 New in 0.8.2
558 - Implementation
559   + fixed lexical semantics
560   + added the 'capture_lex' opcode
561   + added automatic resume for nonfatal exceptions
562   + added multidispatch cache
563   + applied miscellaneous performance improvements, including startup time
564   + fixed several bugs and leaks found by Coverity Scan
565   + removed race conditions from parallel testing
566 - Compilers
567   + IMCC
568     - removed undocumented .param int <stringc> => <ident> syntax
569     - .line directive now only takes an integer argument
570     - new .file directive to specify the file name being compiled
571   + PCT
572     - properly handles lexical generation and closure semantics
573     - uses :subid instead of name lookups to reference PAST::Block nodes
574     - added PAST::Control node type (exception handlers)
575   + PGE
576     - add support for <?{{...}}> and <!{{...}}> assertions
577     - Match objects use Capture PMC instead of Capture_PIR
578   + PIRC
579     - add macro handling to PASM mode
580     - disable vanilla register allocation in PASM mode, but do allow optimization
581     - add tests and bug fixes
582     - first bits of bytecode generation. No sub calling/returning yet.
583 - Languages
584   + Rakudo
585     - fixed lexical handling and recursion
586     - refactored subtypes implementation
587     - support for quotes with multi-character delimiters
588     - implemented list slices (Positional role)
589     - list assignment
590     - reduction meta operators
591     - hyper meta operators
592     - cross meta operators
593     - more builtin functions
594     - added Nil type
595     - basic support for protos
596     - iterator on filehandle objects
597     - basic support for exception handlers
598     - warn
599   + Lua
600     - added complex & mathx libraries
601     - merged LuaClosure & LuaFunction PMC
602   + Pipp
603     - added support for a return value from user defined functions
604     - added incomplete implemention of 'require_once'
605   + Ecmascript
606     - parser fixes, parses spidermonkey's top level test/shell.js
607 - Deprecations
608   + PARROT_API is now PARROT_EXPORT
609   + PIR
610     - :lexid is now :subid
611     - .arg is now .set_arg
612     - .result is now .get_result
613     - .yield (in .begin/end_yield) is now .set_yield
614     - .return (in .begin/end_return) is now .set_return
615     - .namespace x / .endnamespace x syntax is removed
616   + Capture_PIR (runtime/parrot/library/Parrot/Capture_PIR.pir)
618 New in 0.8.1
619 - Implementation
620   + added CPAN module Storable 2.12 as a configuration and build dependency
621   + removed the pseudo PIR opcode 'addr'
622   + added the 'box' opcode
623   + fixed 'pop_eh' handling in PIR libraries and examples
624   + removed usage of .return for tailcalls (use .tailcall instead)
625   + removed 'get_hash' and 'get_array' from Capture PMC and Capture_PIR
626   + improved debugger and HLL coordination
627   + allowed MMD primitive autoboxing
628   + fixed all known memory leaks in PIR "Hello, world!"
629   + NCI signatures now JITted on x86-32 platforms (Windows and Linux)
630   + made the .const directive take a quoted type name instead of a constant
631   + made IMCC more re-entrant
632 - Languages
633   + Rakudo
634     - refactored Junctions implementation
635     - added "fire and forget" tool to rebase/rebuild/test Parrot and Rakudo
636     - updated container/reference semantics
637     - added more builtin methods and functions
638     - improved support for multilevel namespaces
639     - added support for .Str, .succ, .pred in user-defined classes
640     - implemented pointy blocks on if/loops
641     - increased STD.pm convergence
642     - added %*VM hash
643     - improved MMD candidate sorting
644     - improved integration of Num and Int
645     - implemented increment on protoobjects
646     - added initial support for MAIN subs
647     - added .PARROT method
648   + Pipp
649     - added some predefined constants
650     - added implemention of the function basename()
651   + Cardinal (Ruby)
652     - Added initial support for the classes Proc, Continuation, Queue, Dir, File, and FileStat
653     - fixed various minor bugs
654     - fixed broken Regexes
655 - Compilers
656   + PCT
657     - added '.isa' method to PCT::Node
658     - cleaned up 'immediate block' handling
659     - allowed arguments to immediate blocks in loops/conditionals
660     - metaclass objects can now 'add_method'
661   + PIRC
662     - integrated macro processing in PIRC's lexer
663     - integrated heredoc lexer in PIRC executable
664     - added preprocess and heredoc-preprocess commandline options
665     - integrated the PASM grammar into PIRC
666     - added a register allocator to optimize the built-in vanilla allocator
667     - code cleanups and documentation
668     - added 'make test' target
669    + TGE
670     - updated to work with new namespace/classname syntax
671 - Deprecations
672   + PARROT_API will become PARROT_EXPORT
673   + :lexid will become :subid
674 - Miscellaneous
675   + Documentation
676     - updates and additions to the Parrot book (see docs/book/)
677   + OpenGL
678     - minor fixes to Parrot's base OpenGL bindings
679     - converted OpenGL PIR examples to Perl 6 (two complete, one WIP)
680     - added simplified OpenGL PIR example for NCI JIT testing
681   + Tests
682     - further improvements to parallel tests
683     - tests no longer leave filesystem breadcrumbs
684     - more thorough testing of Parrot::Test itself
686 New in 0.8.0
687 - Implementation
688   + float precision expanded to 15 significant digits from 6
689   + large integers autopromoted in PIR so as not to lose precision
690   + improved precision of complex square root
691   + exception handlers can register types of exceptions they catch
692 - Languages
693   + Cardinal (Ruby)
694     - implemented gather, take, and yield builtins
695     - Range, Time, Math, GC, Kernel classes
696     - many more tests
697     - added a new committer
698   + Markdown : new lightweight markup language
699     - start implementation with PCT/NQP
700   + partcl (Tcl 8.5.4)
701     - Moved to its own repository: http://code.google.com/p/partcl/
702   + Rakudo (Perl 6)
703     - split() works with regexes
704     - implemented Str.comb
705     - ord() and chr() builtins
706     - improved parsing of literal numbers
707     - support for hyphens and dashes in identifiers
708     - next() on for-loops
709     - fixed floating point constant precision
710     - improved namespace handling, closer to STD.pm model
711     - support for exporting symbols
712 - Compilers
713   + P6object
714     - now generates classes in nested namespaces instead of :: names
715     - supports class creation in caller's HLL namespace
716   + PCT / PGE
717     - now using true nested namespaces instead of :: names
718     - cleaned up HLLCompiler interactive prompts and readline mode
719     - updated to use typed exception handler registration
720     - added initial support for loop control exceptions
721   + PIRC
722     - fixed Heredoc preprocessor
723     - cleaned up Macro preprocessor
724     - many code clean-ups, warning fixes and consting
725     - updated Makefile for easier compilation
726   + IMCC
727     - Added .tailcall syntax to replace .return in tailcall context
728 - Examples
729   + pirric (BASIC)
730     - an old style line numbered Basic interpreter able to use parrot objects
731     - example connecting to mysql via nci
732     - example using classes to write and run an embedded Basic program
733 - Documentation
734   + Book
735     - Added chapters for PCT, PMCs, and Opcodes/Runcores
736     - Expanded and improved formatting in various chapters
737     - Renumbered chapters
740 New in 0.7.1
741 - Implementation
742   + add -I and -L command line options
743   + support for null strings in NCI calls
744   + preliminary support for resumable exceptions
745   + add '.hll_map' method for dynamic HLL type mapping
746   + more parrot_debugger fixes
747   + remove obsolete '.past' extension
748 - Languages
749   + Rakudo (Perl 6)
750     - now over 3300 passing spectests
751     - precompiled modules
752     - precompiled scripts  (--target=pir can now be executed standalone)
753     - Support for @*INC and %*INC varialbes
754     - additional builtin methods and subs
755     - added 'fail' function, warnings on use of undefined values
756     - m/.../ regexes
757     - qq, qw, q quoting forms
758     - run tests in parallel
759     - gather/take
760     - Perl6MultiSub
761   + Cardinal (Ruby):
762     - 'require' and precompiled modules
763     - many new tests
764     - all Array tests pass
765     - regexes
766     - default arguments to functions
767     - new committer
768 - Compilers
769   + PCT:
770     - add :loadinit attribute for PAST::Block
771   + PIRC:
772     - major refactoring to allow all PIR keywords as identifiers
773     - links to libparrot now, so all Parrot ops are recognized as such
774     - implemented .loadlib, .HLL_map, .HLL
775 - Miscellaneous
776   + add Xlib and Mysql modules and test programs to NCI examples
777   + many updates and cleanups to PDD documents
779 New in 0.7.0
780 - Specification
781   + PDD27: add multisub lookup
782 - Implementation
783   + new concurrency implementation (see PDD25)
784   + Exception PMC now captures a return continuation
785   + improved PMC encapsulation (Iterator, Key, Pair)
786 - Languages
787   + Cardinal (Ruby):
788     - class variables
789     - parsing improvements
790     - minor additions to class builtins
791     - add support for block parameters to functions
792   + Lua:
793     - various language fixes
794     - refactor all libraries (namespace, method registration)
795     - add a OpenGL binding (still incomplete)
796     - lost user back trace (see ppd25 & pushaction)
797   + Pipp (PHP):
798     - add support for while- and for-loops
799     - add support for increment and decrement
800     - designate PHP 5.3 as the reference implementation
801     - improve support for string literals
802   + Pugs (Perl 6):
803     - removed due to bit rot
804   + Rakudo (Perl 6):
805     - now over 2200 passing spectests
806     - updated the Rakudo roadmap
807     - Perl 6 multi dispatch
808     - dispatch with slurpies
809     - class attributes ("my $.x")
810     - anonymous classes
811     - OO and metaclass improvements (.WHAT, .WHICH, .WHENCE)
812     - additional builtin methods and subs
813     - improved make test targets and harness
814   + Tcl:
815     - implement [lreverse], [lsort -command]
816     - allow [incr] to autovivify
817     - update tclsh spec target to 8.5.3
818     - fix bug in TclDict PMC, allowing ~200 more [dict] spec tests to pass
819     - update 'make spectest' fudging, using TODO instead of SKIP if possible
820 - Compilers
821   + PCT:
822     - :scope('register') for PAST::Var nodes
823     - allow invocant specification in attribute scope PAST::Var nodes
824     - correct ordering of sub generation from POST
825     - add 'loadinit' attribute to PAST::Block for block initialization
826   + PIRC:
827     - PIR registers now use the vanilla register allocator
828     - all PASM output now uses PASM registers
829     - all .locals and $registers are mapped
830     - clean-up of grammar, back-end and documentation
831     - implemented constant folding
832     - implemented instruction selection
833 - Configuration
834   + tests now clean up after themselves
835   + improved parallel test support
836   + ports/cygwin added
837   + Darwin problems fixed
838 - Tools
839   + parrot_debugger renamed from pdb, numerous tweaks
840 - Miscellaneous
841   + IMCC cleanups
842   + :vtable implies self in PIR
843   + modest core speed improvements
844   + Cygwin support improved
845   + "say" now an opcode (was dispatched to a method; see Deprecations)
846 - Deprecations
847   + ".pragma n_operators" is deprecated
848   + old PASM register syntax (without "$") is deprecated
849   + bare (unquoted) method names are deprecated
850   + "#line" will be replaced with ".line"
851   + ".HLL_map" syntax will change
852   + ".loadlib" is now separate from ".HLL"
853   + mmdvtregister and mmdvtablefind opcodes are deprecated
854   + removed getfd, getclass opcodes
855   + removed IMCC syntax that treated some methods as builtins
856   + removed numeric get_attr and set_attr vtable entries
858 New in 0.6.4
859 - Documentation
860   + removed a lot of old information from the FAQ
861   + improved function level documentation
862 - Configuration
863   + removed the configuration item 'has_gnu_m4'
864   + refactored ICU-detection
865 - Languages
866   + ChitChat
867     - improved the Smalltalk implementation
868   + Pipp
869     - renamed Plumhead to Pipp
870     - support for a lot of builtin functions.
871     - Pipp now uses PHP specific data types.
872     - converted from PCT with TGE to PCT with NQP actions
873     - improvements in the PCT variant by using optok parsing
874     - start of object support
875   + pir
876     - simple assignments work
877   + json
878     - added a PCT-based implementation of JSON parsing
879   + lolcode
880     - improved handling of symbols
881     - added support for block handling
882     - added support for globals
883   + Lua
884     - more tests
885   + Rakudo
886     - updated Range implementation
887     - added enums
888     - added generic type declarations (::T)
889     - added runtime mixing of roles with 'does' and 'but'
890     - fixed handling of implicit lexicals ($_, $!, and $/)
891     - fixed implicit method calls on $_
892     - improved complex math builtins, added Complex
893     - moved many builtins to class Any
894     - declaration of lists of variables now work
895     - improved test infrastructure
896     - 910 additional passing spec tests since last release
897     - more convergence with STD.pm grammar
898     - added named 0-ary parsing and ops
899 - Compilers
900   + PCT:
901     - allowed subroutine and method names to be a PAST tree that produces the name
902     - Improved lexical handling
903 - Tools
904   + pbc_disassemble renamed from disassemble
905 - Implementation
906   + allowed .macro_const in PIR
907   + added the flag :lexid(...) for subroutines
908   + made multiple dispatch work for sub types
909   + fixed garbage collection bug related to the metadata attached to a PMC_EXT structure
910   + added a warning when using deprecated opcodes
911   + simplified the stacks implementation
912   + fixed C++ build
913   + improved closure and lexical support
914   + improved IMCC register allocator
915   + added cache for all runtime-constant strings, reducing memory usage
916 - Miscellaneous
917   + improved OpenGL/GLU/GLUT bindings
918   + added a standard profile for Perl::Critic coding standard testing
919   + added support for smoke testing with Smolder
920   + enabled use of Test::Harness 3.0 if available, but don't require it for 'make test'
921   + added the executable 'parrot_config' to query Parrot configuration
923 New in 0.6.3
924 - Specification
925   + updated pdd09_gc.pod
926 - Languages
927   + Cardinal:
928     - dramatically improved parsing speed
929     - added support for defining and instantiating classes
930     - started fleshing out the builtin class hierarchy
931     - added support for hashes and arrays
932   + Chitchat: added the start of a smalltalk compiler
933   + Pheme: updated to match PGE changes
934   + Pynie: return statement, other minor updates
935   + Rakudo:
936     - added working list and hash contexts
937     - added 'return' statements
938     - added => pair constructor
939     - added ?? !! ternary
940     - added Range, range operators, Complex
941     - added common List, Hash methods
942     - refactored base classes
943     - added Mutable, Perl6Scalar classes
944     - added type-checking, is readonly/rw/copy for parameters
945     - added make localtest, docs/spectest-progress.csv
946     - fix named unaries
947   + Squaak: implement return statement
948   + Tcl: updated control flow exceptions to use new builtin types
949 - Compilers
950   + All tools converted to P6object metamodel
951   + PGE:
952     - <?foo> is now a zero-width match
953     - reduced backtracking to improve parsing speed
954   + PCT:
955     - added "return" PAST.op node type for subroutine returns
956     - added "keyed_int" scoping to PAST::Var
957     - fixed calls to closures
958     - automatically transcode 7-bit unicode to ascii for faster processing
959   + NQP: added "return" statement, ?? !! ternary operator
960 - Configuration
961   + expanded step gen::opengl
962 - Implementation
963   + updated function and macro names to match pdd09_gc.pod
964   + removed Super PMC
965   + add ".namespace []" as alternative to ".namespace"
966   + "make codetest" target runs standard coding tests
967 - Miscellaneous
968   + added P6object class for Perl 6 interfaces to objects in Parrot
969   + ported OpenGL/GLU/GLUT bindings to Win32, BSD, and more Mac OS X variants
970   + generate OpenGL/GLU/GLUT bindings by parsing system headers
971   + new OpenGL example shapes.pir, covering basic OpenGL 1.1 / GLUT 3 APIs
972   + new float4.pir structure-packing benchmark
973   + reduced memory use for variables
974   + improved constant string caching
975   + made code g++ and gcc (with optimizations) safe
976   + the usual collection of bugfixes and optimizations
978 New in 0.6.2
979 - Specification
980   + updated and launched pdd28_strings.pod
981   + updated pdd19_pir.pod
982 - Implementation
983   + added implementation of Rational PMC.
984   + simplified ops control flow syntax
985   + enabled backtrace on non-glibc platforms too
986   + improved some PIR error reporting
987   + removed user stack opcodes
988     (save, restore, lookback, entrytype, depth, rotate_up)
989     (NOTE: This was scheduled to occur after 0.7.0, moved up to this release)
990   + removed register stack, saveall, and restoreall opcodes
991   + removed various deprecated features and unused code
992 - Languages
993   + Amber: retired
994   + C99: grammar updated
995   + Cardinal: resurrected, method calls and do blocks work now
996   + Eclectus: use NQP as PAST generating code
997   + Lua:
998     - added big number library
999     - updated to match PGE changes
1000     - added a bytecode disassembler & a Lua 5.1 VM bytecode translator
1001   + Pheme: updated to match PGE/PCT changes
1002   + Plumhead:
1003     - use NQP as PAST generating code
1004     - use riaxpander for macro expansion
1005   + Rakudo:
1006     - updated ROADMAP
1007     - conditional and loop statement modifiers
1008     - lots of class, object, role, and method improvements
1009     - Str increment and decrement
1010     - improved spectest reporting
1011     - type checking on assignment
1012     - regexes and grammars
1013     - undef and self
1014     - placeholder vars
1015 roadmap updated
1016   + Squaak: added to repository
1017   + TAP: retired
1018 - Compilers
1019   + PGE: updated to match Synopsis 5, deprecated features removed
1020   + PCT:
1021     - improve handling of register types, conversion between registers
1022     - improved error diagnostics
1023     - add 'arity' to for loops
1024 - Configuration
1025   + added step auto::opengl
1026   + added step gen::opengl
1027   + added step gen::call_list
1028 - Miscellaneous
1029   + still more optimizations and performance improvements, especially in GC
1030   + new libraries: OpenGL/GLU/GLUT bindings (small subset working)
1031   + new dump_pbc.pl utility: PBC disassembly/source code weaver
1032   + improved C++ compiler support
1033   + optimized builds work again
1036 New in 0.6.1
1037 - Specification
1038   + drafted pdd29_compiler_tools.pod
1039   + updated pdd28_character_sets.pod draft
1040   + updated pdd19_pir.pod draft
1041 - Languages
1042   + c99: added independent C pre-processor
1043   + HQ9+: reimplemented with PCT
1044   + Lua:
1045     . reimplementation with PCT, using PAST and POST
1046     . behavior aligned wih 5.1.3
1047   + Rakudo:
1048     . implemented basic I/O, including '$*IN', '$*OUT', '$*ERR', 'prefix:='
1049     . implemented simple typing and runtime type checking
1050     . added basic multi-method dispatch
1051     . expanded named argument handling, including Pair and colonpairs
1052     . added 'Whatever' and 'Capture' classes
1053     . implemented 'handles' trait verb
1054     . added 'loop' statement
1055     . implemented 'given', 'when', 'for', 'while', 'until' statement modifiers
1056     . implemented Hash methods '.keys' and '.values'
1057     . fixed bug to get '.WHAT' working correctly
1058     . initial implementation of 'eval'
1059 - Compilers
1060   + NQP:
1061     . created a bootstrapped build, see 'make boot'
1062     . added 'infix:<', 'infix:<=', 'infix:>', 'infix:>=' relational operators
1063     . added 'postfix:++', 'postfix:--' operators
1064   + PCT:
1065     . added methods specifying default behaviors in PAST, reducing repeated code
1066     . improved symbol table lookup
1067   + PGE:
1068     . removed deprecated code including: P6Regex, P6Grammar, PAST-pm
1069 - Miscellaneous
1070   + notable speedups during compilation and execution of parrot and HLLs
1071   + pdb (the parrot debugger) can now catch parrot exceptions
1072   + better detection of glibc and gettext during configuration
1073   + various bugfixes, code cleanups, deprecations, and coding standard fixes
1076 New in 0.6.0
1077 - Specification
1078   + launched pdd18_security.pod
1079   + updated pdd17_pmc.pod
1080   + launching draft of pdd28_character_sets.pod
1081 - Documentation
1082   + cleanup of IMCC documentation
1083 - Configuration
1084   + add step auto::gettext
1085   + add step auto::crypto
1086 - Compilers
1087   + PCT:
1088     . Fix '-e' option
1089     . Phase out P6Regex in favor of Perl6Regex
1090   + IMCC:
1091     '.local Array my_arr' is illegal now
1092 - Languages
1093   + C99: reimplementation with PCT
1094   + lolcode:
1095     . various updates
1096     . add support for functions with params
1097     . add math functions
1098   + Rakudo:
1099     . support for 'say'
1100     . first cut at smart matching
1101     . indirect method calls
1102     . support for Pairs
1103     . added methods 'grep' and 'first'
1104     . implement auto{increment,decrement}
1105     . initial implementation of 'perl6doc'
1106   + Lua:
1107     . various updates
1108     . add base64 library
1109   + Cardinal: basic support for functions with parameters
1110   + Pheme: various updates
1111   + Ecmascript: various updates
1112   + Tcl: now targeting tcl 8.5.1, no more expected failures in test suite.
1113     (No, this doesn't mean everything's implemented. =-)
1114   + Eclectus: various updates
1115   + WMLScript: various updates
1116 - Implementation
1117   + PDD17 (PMCs)
1118   + Add library YAML::Dumper
1119   + Add the MD2, MD4, MD5, RIPEMD160, SHA & SHA1 PMC, as a wrapper
1120      around libcrypto
1121 - Miscellaneous
1122   + various bugfixes, code cleanups and coding standard fixes
1123   + consting
1124   + remove external Perl 5 modules from the Parrot distribution
1126 New in 0.5.3
1127 - Documentation
1128   + PDD09 (garbage collection) - approved
1129   + PDD28 (character sets) - draft started
1130   + added function documentation to some core functions
1131   + PCT beginners guide, optable guide and PAST nodes guide, bug fixes
1132 - Compilers
1133   + IMCC: plugged various memory leaks and other cleanups
1134   + PCT:
1135     . add "attribute" as a scope variant to PAST::Var nodes
1136     . add 'shift' and 'pop' methods to PAST:: nodes
1137   + NQP: add '=:=' op, tests for scalar and list contextualizers, \x escapes
1138 - Languages
1139   + APL: reimplementation with PCT
1140   + Cardinal (Ruby): reimplemention with PCT
1141   + Ecmascript: reimplementation with PCT
1142   + lolcode: improved expression parsing, ifthen, IT, YARN
1143   + lua:
1144     . aligned with Lua official release 5.1.3.
1145     . added initial PCT-based implementation.
1146   + Punie (Perl 1): refactor to use standard PCT-based filenames
1147   + Pynie (Python): add functions
1148   + Rakudo (Perl 6):
1149     . rebranded, formerly known as 'perl6'
1150     . passes many more official Perl 6 Specification tests
1151     . added 'perl6doc' utility
1152     . oo including meta?classes, objects, methods, attributes, role composition
1153     . match variables, while/until statements, traits
1154     . many new methods for Str, List, Hash, Junction
1155 - Implementation
1156 - Deprecations
1157   + PCCINVOKE syntax for named arguments using []; use () instead.
1158   + see DEPRECATED.pod for details
1159 - Miscellaneous
1160   + pbc_to_exe refactored for code reduction, portability, and maintainability
1161   + various bug fixes
1162   + #line directives added to generated JIT files, improving debugging
1163   + consting, attribute marking, refactoring, warnings cleanup
1165 New in 0.5.2
1166 - Documentation
1167   + PDD27 (multiple dispatch) - debut of new design
1168   + Numerous small updates to glossary.pod, etc
1169 - Compiler Toolkit
1170   + NQP: optional, named, and named/required parameters
1171   + PIRC: cleanups
1172   + PAST: "defined-or"
1173 - Languages
1174   + New mk_language_shell.pl script creates language stubs
1175   + LOLCODE: new
1176   + Lua: various
1177   + Eclectus: start with support for local variables and procedures,
1178     use SXML as intermediate representation
1179   + Perl 6: list builtins, compiler directives, command-line options, etc.
1180   + "make perl6" now builds a Perl 6 executable
1181   + punie: more builtins, control structures, code refactoring
1182   + pynie: builtin stubs, more tests
1183 - Implementation
1184   + New "pbc_to_exe" utility turns bytecode to executables
1185   + New set_outer method for subs
1186   + Further configuration refactoring for testability
1187   + All functions now completely headerized
1188   + Concurrency: interpreter schedulers
1189 - Deprecations
1190   + DYNSELF (changes to SELF; SELF to STATICSELF)
1191   + METHOD (replaced by renaming PCCMETHOD)
1192   + pmcinfo op (superseded by 'inspect')
1193   + get_attr, set_attr, and 8 other vtable methods
1194   + See DEPRECATED.pod for details
1195 - Miscellaneous
1196   + Many bug fixes
1197   + Minor speed enhancements with UTF-8 string handling
1198   + Debian packaging
1199   + consting, attribute marking, warnings cleanup, memory leaks plugged ...
1201 New in 0.5.1
1202 - Documentation
1203   + PDD19 (PIR) - reflect state on the ground; incorporate old IMCC docs
1204   + PDD25 (Concurrency) - launch out of draft
1205   + Improve documentation of deprecated parrot features.
1206 - Compilers
1207   + PCT: Parrot Compiler Toolkit redesigned and updated
1208   + NQP: major updates, including support for namespaces,
1209     module/class declarations, methods
1210   + IMCC: remove .sym as alias for .local. Remove .pcc_
1211     prefix for calling directives (.pcc_begin became .begin_call).
1212   + PIRC: creates an AST during the parse.
1213   + PGE: more updates to match S05 syntax.
1214 - Languages
1215   + perl6: re-implemented using PCT and NQP, new object subsystem
1216   + abc: re-implemented using PCT and NQP
1217   + eclectus: initial implementation
1218   + plumhead: add PCT variant
1219   + punie: re-implemented using PCT and NQP, extended to handle subroutines
1220     Happy 20th Birthday, Perl!
1221   + pynie: re-implemented using PCT and NQP
1222   + PIR: start conversion to NQP (under construction)
1223 - Implementation
1224   + new opcodes: 'die', 'addhandler', 'copy'
1225   + Initial implementation of Concurrency PDD
1226   + Add 'arity' method to Sub and NCI PMCs
1227 - Miscellaneous
1228   + Bug cleanup
1229   + consting, attribute marking, warnings cleanup, memory leaks, GC...
1230   + dead code removal (includes some defunct languages)
1232 New in 0.5.0
1233 - Implementation
1234   + PDD15 (OO) branch merged with trunk; this release contains a working,
1235     tested implementation of the latest OO model
1236   + Added pop_eh/push_eh_p/count_eh opcodes
1237   + Add --runcore command line option
1238   + Add gcdebug runcore to help track down GC bugs
1239   + minor improvements to IA-32 JIT
1240 - Documentation
1241   + PDD19 (PIR): updates to macros, .pcc* directives
1242   + PDD25 (Concurrency): updated
1243   + PDD26 (AST):  draft approved
1244   + PDD23 (Exceptions): draft approved
1245   + Copyright cleanups
1246 - Languages/Compilers
1247   + languages/APL: minor updates, PDD15 conformance
1248   + languages/dotnet: minor updates
1249   + languages/lua: minor updates, PDD15 conformance
1250   + languages/lisp: minor updates
1251   + languages/perl6: minor updates, PDD15 conformance
1252   + languages/plumhead: minor updates
1253   + languages/punie: minor updates, PDD15 conformance
1254   + languages/nqp: minor updates
1255   + languages/scheme: many updates, PDD15 conformance, improved tests, use
1256     PMCs instead of primitive registers to represent values
1257   + languages/tcl: bugfixes, PDD15 conformance
1258   + languages/WMLScript: minor updates
1259   + compilers/pirc: updates from PDD19, PDD06
1260   + compilers/pct: minor updates, PDD15 conformance
1261   + compilers/pge: PDD15 conformance
1262   + compilers/tge: PDD15 conformance
1263 - Configuration
1264   + Improve test coverage
1265   + Improve reporting when a step fails; allow abort on failure
1266 - Miscellaneous
1267   + More coding standard conformance, tests, cleanup, speedups,
1268     warnings cleanup
1269   + Bug cleanup, esp. GC bugs
1270   + Eliminate .imc extension (use .pir)
1271   + Simplify some core config steps to not allow interactive prompting
1272 - Removed
1273   + clear_eh opcode
1275 New in 0.4.17
1276 - Implementation
1277  + Bug fixes (including Coverity IDs 20, 22, 30, 119-122, 124-126, 129-131)
1278    Also various GC, memory, and segfault issues
1279  + Fix & reenable CGP core
1280  + Parrot's -r flag now works again (compile to and execute bytecode)
1281  + Updates to pmc2c & PIR syntaxes
1282  + Fix Complex PMC
1283  + Minor performance improvements, especially in PGE
1284 - Documentation
1285  + PDD02 "Vtables" - superceded by PDD17
1286  + PDD06 "PASM" - minor updates
1287  + PDD17 "PMC" - add VTABLE syntax, update core PMC struct, restore UnionVal
1288  + PDD19 "PIR" - early review started
1289  + PDD21 "Namespaces" - cleanup
1290  + PDD24 "Events" - draft approved
1291  + PDD25 "Concurrency" - minor updates
1292  + PDD26 "AST" - draft version begun
1293  + PIR tutorials updated
1294 - Languages/Compilers
1295  + Make scheme work with the current calling conventions, other major work.
1296  + Updates to m4, lua, compilers/pirc, languages/PIR, dotnet, tcl
1297 - Miscellaneous:
1298  + make -j functional again
1299  + Code cleanup (refactoring, optimizations)
1301 New in 0.4.16
1302 - Implementation:
1303  + Performed code review on every PMC
1304  + Modified PMC code generation to use Storable, reducing compile times
1305  + Added a makefile target to generate test coverage data of C sources
1306 - Languages:
1307  + NQP: added lists, for loops, operators, comparison and multiplicative operators
1308  + Announced Kea-CL, Kea Common Lisp, an ANSI Common Lisp implementation
1309    The repository is available at https://rgrjr.dyndns.org/svn/kea-cl/trunk/
1310 - Documentation
1311  + PDD17 "PMCs" - draft approved, the design is complete
1312  + Added more PIR tutorials, see examples/tutorial/00_README.pod
1313 - Miscellaneous:
1314  + Many bugfixes, enhancements, documentation, and coding standard updates
1315  + Deprecated PMC constants and other crufty syntax, see DEPRECATED.pod
1316  + Improved icc compiler compatibility for error line reporting
1318 New in 0.4.15
1319 - Implementation:
1320  + Lots of code review, many bugs fixed
1321  + Many more code cleanups and compiler warning levels
1322  + Started a new jit engine for 64-bit processors
1323  + Refactored configure process, with tests and new diagnostic options
1324  + Added new CodeString PMC for dynamic generation of PIR code
1325  + More pdd15 support for object metamodel.
1326 - Languages:
1327  + Added NQP ("Not Quite Perl"), a very lightweight Perl 6-like language
1328  + Significant improvements and refactors to PCT (Parrot Compiler Toolkit)
1329  + perl6 passes more spec tests
1330  + Lua works now with a PGE/TGE/PAST-pm based compiler, lives in one pbc,
1331    and the interpreter has same behavior as original.
1332 - Documentation
1333  + Added a committers' HOWTO
1334  + More PIR tutorial examples
1335  + Added PAUSE guide
1337 New in 0.4.14
1338 - Now, with Seat Belts!
1339  + added makefile targets for Sun lint, BSD lint, and splint
1340  + corrected many errors picked up by these tools
1341  + decorated source code with compiler hints, assertions, and attribute macros
1342  + automated creation of function declarations to prevent common errors
1343  + increased compiler warnings levels
1344  + converted more exceptions to a recoverable form
1345 - Languages:
1346  + updated Lisp, Lua, Perl 6, tcl, regex, Scheme ("Pheme")
1347  + Perl 6 now fetches selected tests from pugs, and even passes some
1348  + PGE modified to handle {*} action subs for top-down and bottom-up parsers,
1349    and to allow grammar subclassing
1350  + HLLCompiler now has better exception, eval, and exit support
1351  + Introduced PCT, a refactor of HLLCompiler and PAST-pm
1352 - Design:
1353  + PDD15 "Objects" - details added to 'new' and 'getattribute' opcodes
1354  + PDD17 "PMCs" - notes added on instantiation and dynamic extention in PIR
1355 - Documentation:
1356  + added Parrot-related text from "Perl 6 and Parrot Essentials" book,
1357    tutorial examples from "Learning PIR" talk, and PDD15 metamodel diagrams
1358 - Implementation:
1359  + reduced memory footprint when using named registers
1360  + implemented overridding of vtable methods by PDD15 classes
1361  + improved PDD15 support for 'new', 'instantiate', and others
1362  + added makefile targets to ease core and HLL makefile regeneration
1363  + updated parrot dubugger, "pdb", to allow loading of commands from file
1364 - Misc:
1365  + many bugfixes, enhancements, documentation, and coding standard updates
1367 New in 0.4.13
1368 - Languages:
1369  + Updated Lisp, Lua, PHP ("Plumhead"), Python ("Pynie"), ABC,
1370    WMLScript, and Tcl ("ParTcl").
1371  + Perl 6 passes all of the sanity tests.
1372  + PGE supports latest Perl 6 grammar syntax. Perl 6, Python
1373    ("Pynie"), and ABC parsers updated to match.
1374  + Updated PHP ("Plumhead") to Antlr 3.0.
1375  + Lua added the beginnings of a PGE/TGE based compiler (not yet
1376    replacing the Perl/Yapp compiler).
1377  + Lisp updated for current features, added a test suite.
1378 - Core Implementation:
1379  + Filled in features and backward compatibility for PDD 15 objects.
1380    New object metamodel passes 85% of old test suite.
1381  + GCC API symbols are visible externally only when explicitly exported.
1382  + Added generated GCC compiler attributes to increase warnings, and
1383    cleaned up resulting warnings.
1384  + Code cleanup efforts and fixed memory leaks by the cage cleaners,
1385    resulting in notable speed increases.
1386 - Misc:
1387  + Updated Parrot distribution to Artistic License 2.0, from dual
1388    Artistic 1/GPL license.
1389  + SDL examples brought up-to-date with current features.
1391 New in 0.4.12
1392 - Build:
1393  + even more refactorings and improvements in configuration system
1394  + improved tests and documentation for configuration system
1395 - Languages:
1396  + Updated abc, PHP ("Plumhead"), Lua, Tcl
1397  + Reclaimed Lisp
1398 - Design:
1399  + new PMC PDD draft partially completed
1400 - Implementation:
1401  + continued implementation of PDD 15 (Objects)
1402  + minor garbage collector and memory management improvements
1403  + several memory leaks resolved
1404  + extended support for compilers other than GCC
1405  + improved C++ compiler compatibility
1406  + enhanced support for Solaris, non-MSVC Win32, and other platforms
1408 New in 0.4.11
1410 - Compilers:
1411  + IMCC: added documentation for C-based Parrot Calling Conventions,
1412    refactorings and bug fixes
1413  + PGE: new perl6regex front end reflecting recent S05 syntax changes
1414  + PIRC: new prototype PIR parser
1415 - Languages:
1416  + Updated Lua, PHP ("Plumhead"), BASIC, pynie
1417  + Lua implements environment
1418 - Design:
1419  + PDD15 "Objects" - details added, and draft approved
1420 - Documentation:
1421  + Added guidelines for PMC documentation
1422 - Implementation:
1423  + PDD15 implementation is largely complete, including role-based composition,
1424    introspection, and C3 method resolution order
1425  + new Exporter PMC for importing globals between namespaces
1426  + new string utilities for radix conversion
1427  + PCCINVOKE and Parrot_PCCINVOKE allow calling using the full Parrot Calling
1428    Conventions from PMCs and C code respectively
1429 - Build:
1430  + Refactorings and improvements in test coverage for 'Configure.pl'
1431 - Misc:
1432  + many bugfixes, enhancements, and code cleanup
1433  + added example subversion config file
1434  + extended support for gcc, icc, and other compilers
1435  + extended support for Solaris and other platforms
1438 New in 0.4.10
1440 - Compilers:
1441  + IMCC: Parrot calling conventions now available between two C PMCs (PMINVOKE)
1442  + PGE: Match object improvements
1443  + smop: added Attribute and Class PMCs
1444  + HLLCompiler: improvements for interactive mode
1445 - PAST:
1446  + extended binding to a list of variables
1447 - Languages:
1448  + Updated Lua, PHP ("Plumhead"), Tcl ("ParTcl"), Ruby ("Cardinal")
1449  + Update PIR, regex, Zcode
1450  + New language: Pynie - a Python compiler for Parrot
1451  + Lua implements require and many other ops, improved regex support
1452  + Remove parakeet
1453 - Design:
1454  + PDD01 "Overview" - updated architecture and platform information
1455  + PDD15 "Objects" - details on roles, objects, and classes added
1456  + PDD22 "I/O" - added async ops and Status PMC details
1457 - Documentation:
1458  + Added guides for Metacommitter, Relase Manager, and Cage Cleaner roles
1459 - Implementation:
1460  + Object, Class, Role, and Attribute PMC implementation has begun
1461  + Perl 5 module "Parrot::Embed" now compiles and links on all platforms
1462 - Build:
1463  + Major improvements in test coverage for 'ops2c.pl'
1464 - Misc:
1465  + New utility: Crow, a template processor
1466  + New library module: Config/JSON for reading/writing JSON files
1467  + many bugfixes, enhancements, and coding standard updates, code cleanup
1469 New in 0.4.9
1471 - Compilers:
1472    + IMCC: Parrot calling conventions now available in C PMCs, allowing
1473      named, optional, slurpy, and flat parameter passing
1474    + PGE: extended support for Perl 5 Regexes
1475    + smop: prototype object model implementation
1476    + hllcompiler: refactored to run a configurable set of compilation stages
1477 - PAST:
1478    + redesigned assign/binding to support Perl 6 binding semantics
1479 - Languages:
1480    + Updated Lua, PHP ("Plumhead"), Tcl ("ParTcl"), perl6, perl5
1481    + New language: PIR - a PGE-based implementation of Parrot PIR
1482    + perl6 now supports binding (':=') and 'join'
1483    + lua generates tail calls, and supports its own regex flavor (PGE-based)
1484    + Pheme still works, huzzah!
1485 - Design:
1486    + PDD21 "Objects" - rewritten
1487    + PDD22 "I/O" - updated and 'TODO' tests added
1488 - Documentation:
1489    + Interface stability classification standards approved
1490    + Roles and Responsibilities documented approved
1491    + Official 'drafts' directory created (was 'clip')
1492 - Implementation:
1493    + More NameSpace and OS PMC methods implemented
1494    + Parrot executable fullname and basename now available in PIR/PASM code
1495    + new 'chomp' library function
1496 - Build:
1497    + Major improvements in test coverage for 'ops2pm.pl'
1498 - Misc:
1499    + many bugfixes, enhancements, and coding standard updates
1500    + extended support for Sun Workshop Compilers
1501    + Parrot now builds on PocketPC platform
1503 New in 0.4.8
1505 - Compilers:
1506    + HLLCompiler: added tracing options, modified api
1507    + PGE & TGE bugfixes and updates
1508 - PAST:
1509    + added global and lexical variable support
1510    + added looping constructs, arrays, hashes
1511 - Languages:
1512    + Updated PHP ("Plumhead"), Tcl ("ParTcl"),
1513      forth, perl6, lua, abc, APL, WMLScript, punie
1514    + ParTcl is passing > 24.9% of Tcl cvs-latest test suite
1515    + perl6 now supports hashes, arrays, method calls, arity-based
1516      multisubs, quoted terms, ranges (non-lazy), try blocks, $!
1517 - Design:
1518    + PDD01 "Overview" - updated
1519    + PDD22 "I/O" - rewritten and approved
1520 - Test Suite:
1521    + Converted Perl 5 Regex tests to PIR, with notable speedup
1522    + Added tests for opcodes, compilers, languages, and coding standards
1523 - Build:
1524    + Major improvements in test coverage for 'pmc2c.pl'
1525 - Misc:
1526    + many bugfixes, enhancements, and coding standard updates
1527    + extended support for non-core platforms including Cygwin, Tru64
1529 New in 0.4.7
1531 - New languages: PHP ("Plumhead"), Forth
1532 - Updated languages: Ruby ("Cardinal"), Tcl, Lua
1533 - Remove old Python implementation from Parrot repository; the new Python
1534   language code is hosted at http://pirate.tangentcode.com
1535 - Compilers:
1536    + PGE updated with more expressions, latest changes to S05
1537    + new Perl 6 grammar compiler
1538 - Integration:
1539    + Perl 5 module "Parrot::Embed" allows easy embedding of a Parrot
1540      runtime into a Perl 5 program
1541 - PIR:
1542    + new :init pragma for subs that must run before the main function
1543    + new :vtable pragma to identify subs that override PMC vtable methods,
1544      eliminating the need for special subroutine names
1545    + PIR parser/compiler does not stop on first syntax error
1546    + Vanilla register allocator ("register alligator") greatly improves
1547      performance compiling large functions
1548    + Eliminated limit on number of PIR macros
1549 - PMCs:
1550    + hash lookups return null instead of None for missing keys
1551 - Design:
1552    + PDD13 "Bytecode files: format and manipulation" - new
1553    + PDD10 "Embedding" - new
1554    + PDD25 "Concurrency" - rewritten
1555    + PDD15 "Objects" - new section on redesign requirements
1556    + PDD07 "Coding standards" - significant updates and automated tests
1557 - Test Suite:
1558    + Many many more new tests
1559 - Build Process:
1560    + autoconf compatible install options
1561 - Misc:
1562    + Namespace refinements
1563    + Coroutine improvements
1564    + An impressive swarm of other bugfixes and enhancements
1566 New in 0.4.6
1568 - New languages: Ruby ("Cardinal"), Javascript ("ecmascript")
1569 - Updated languages: Tcl, dotnet, bc, Pheme, Punie, WMLScript
1570 - Updated compilers: PGE, TGE
1571 - IMCC updates:
1572    + ".loadlib" directive expresses dependencies
1573    + ".namespace" with no parameter goes to HLL root
1574    + lexer is reentrant (reentrant grammar in progress)
1575 - Namespace improvements:
1576    + new suite of opcodes to access namespaces and globals
1577      ("find_global" and "store_global" will be phased out)
1578    + namespace '' no longer means HLL root
1579 - Design document updates:
1580     namespaces (pdd23), basic types (pdd17), embedding
1581 - Updated tool requirements for developers:
1582     flex 2.5.33, bison 2.1, perl 5.6.1
1583 - New to-do list for people new to Parrot:
1584     cage/todo.pod
1585 - The usual plethora of bugfixes and enhancements
1587 New in 0.4.5
1589 - unicode subroutine names
1590 - hierarchical class names finished including MMD support
1591 - new dotnet CLI to PIR translator
1592 - improved TGE code and compiler
1593 - APL: vector handling
1594 - new STM branch in the svn repository
1595 - the usual bugfixes and enhancements
1597 New in 0.4.4
1599 - hierarchical class names
1600 - APL compiler
1601   - under development
1602   - understands simple vector ops, strings
1603   - demonstrates use of Unicode in Parrot
1604 - pgc, a compiler for rules and operator precedence parsers
1605 - Major redesign and improvements for PGE
1606   - compilers understand named parameter options
1607   - :ratchet option implemented to support non-backtracking quantifiers
1608 - TGE (tree grammar engine) for tree transformations
1609   - tgc, tree grammar compiler
1610 - perl6 compiler
1611   - support for many operators, lexical scalars, regex matches
1612 - new pheme (Parrot scheme) compiler
1614 New in 0.4.3
1616 - namespaces partially implemented
1617 - rulec, Perl 6 rule compiler
1618 - PGE improvements including return values for closure
1619 - parts of a Perl 6 parser based on PGE
1620 - complex trigonometric methods
1621 - type of Sub PMC is now overridable by HLL
1622 - NetBSD support
1623 - many bug fixes and improvements
1625 New in 0.4.2
1627 - improved PPC and x86 JIT support including JIT compilation
1628   of very simple PASM/PIR subroutines
1629 - preliminary libreadline support
1630 - better trace and debug features
1631 - pkgconfig support
1632 - META.yml to support proper indexing on CPAN
1633 - new opcode: hcf (in "my_ops" in dynamic op library)
1634 - new File pmc for file specific ops (is_dir, is_file, copy, rename...)
1635 - named arguments and parameters (both :named("") and => syntaxes)
1636 - ongoing config improvements
1637 - tons of bug fixes and other small improvements - too much to list all
1639 New in 0.4.1
1641 - Installation: 'make install' is using standard locations now
1642   (/usr/local is the default --prefix)
1643 - Produce static and shared libraries on some systems
1644 - Configure system rearragement
1645 - OS pmc started (mkdir,cd,cwd,rm,umask,stat)
1646 - Shootout examples
1647 - Test files are now testable with 'prove'
1648 - Smoke (and smokej) outputs progress
1649 - PIR supports: I = A < B (>,<=,>=,==,!=)
1650 - Add support for octal number constants
1651 - partcl updates:
1652   - almost finish [string]; start [file]
1653   - add build tool for generating inline'd tcl builtins from templates.
1654 - Jako updates: NCI, subroutines, global variables and constants all work.
1655   (Gregor)
1657 New in 0.4.0
1659 - New lexical handling and closure support including better
1660   introspection for caller and outer
1661 - PGE (Parrot Grammar Engine) provides now compilers for P6Rule,
1662   P6Grammar, P5Regexp, and Glob
1663 - ca. 1000 new tests including 800 for Perl5 regexp
1664 - Improved unicode charset and encoding support
1665 - Calling conventions for exception handlers
1666 - Punie (Perl 1) uses TGE (Tree Grammar Engine) to convert from
1667   PGE match objects to AST via two steps of tree transformation grammars
1668 - New languages: amber and lua
1669 - The usual code fixes, cleanup, and improvements, including an overhaul
1670   of the config and test framework
1672 New in 0.3.1
1674 - Variable sized register frames are finished. Each subroutine gets
1675   the amount of registers that it actually needs. No more spilling.
1676 - Vastly improved PGE (Parrot Grammar Engine) including shift-reduce,
1677   precedence-based expression parser and support for matching of
1678   bracketed text delimited by e.g. ()[]{}'"
1679 - uniccode character classification (is_upper ...)
1680 - support for heredoc syntax in assembler
1681 - improved examples, basic JSON support
1682 - debian packaging support
1683 - the usual improvements, bug fixes, and cleanup
1684 - test count exceeds 3000
1686 New in 0.3.0
1688 - New calling conventions implemented: see PDD03 for details
1689 - Merge multiple Parrot bytecode (PBC) files into a singe PBC file
1690 - 'make smoke' target going beta
1691 - bc now supports if statements, comparison ops, prefix inc/dec
1692 - ParTcl adds [lassign], [switch] (partially); [expr] converted to a compiler
1693 - Many exciting doc updates, tests, and bugfixes, too numerous to mention
1695 New in 0.2.3
1697 - Dynamic classes now compile on Windows (including ParTcl)
1698 - New Super PMC allows easy access to superclass methods
1699 - Implement C3 method resolution order (just like Perl 6 & Python)
1700 - ParTcl has new PIR-based parser and passes more Tcl tests
1701 - added character class support in Globs to PGE
1702 - added language implementations of unlambda, Lazy-k
1703 - many bugfixes, including GC and memory leaks
1704 - the new calling scheme continued to evolve in branches/leo-ctx5
1706 New in 0.2.2
1708 - new call scheme: docs/pdds/pdd03_calling_conventions.pod
1709 - partial implementation of the new calling conventions
1710   PASM only, don't mix PIR foo() call syntax with the new scheme
1711 - grammar and rule support in PGE - the Parrot Grammar Engine
1712 - TCL passes >10% of the tcl test suite
1713 - the usual bugfixes and improvements
1715 New in 0.2.1
1717 - better HLL support (short names for object attributes, and
1718   .HLL and n_operators pragmas)
1719 - string encoding and charset can now be set independently
1720 - experimental mmap IO layer for slurping files
1721 - distinct debug and trace flag settings
1722 - glob support in PGE
1723 - new character classification opcodes and interfaces
1725 New in 0.2.0
1727 - parrot repository is now under subversion
1728 - MMD (Multi Method Dispatch) enhanced
1729 - new unary and infix opcodes that return new result PMCs
1730 - dynamic scalar PMCs inherit now almost all from Parrot core PMCs
1731 - more unification of PMCs and ParrotObjects
1732 - tailcalls for functions and methods
1733 - PGE (Parrot Grammar Engine) reworked
1734 - Pugs creates Parrot code and Pugs is a registered compiler now
1735 - new languages/lisp
1736 - the usual bug fixes and improvements
1738 New in 0.1.2
1740 - New string handling code. Strings now have charset and encoding
1741 - Parts of a generation garbage collector
1742 - Better Python code, separated in dynclasses
1743 - Parrot Grammar Engine
1744 - Improved test coverage and documentation
1746 New in 0.1.1
1748 Parrot 0.1.1 is an intermediate release with tons of updates and fixes.
1749  - Python support: Parrot runs 4/7 of the pie-thon test suite
1750  - Better OS support: more platforms, compiler, OS functions
1751  - Improved PIR syntax for method calls and <op>= assignment
1752  - Dynamic loading reworked including a "make install" target
1753  - MMD - multi method dispatch for binary vtable methods
1754  - Library improvement and cleanup
1755  - BigInt, Complex, *Array, Slice, Enumerate, None PMC classes
1756  - IA64 and hppa JIT support
1757  - Tons of fixes, improvements, new tests, and documentation updates.
1758 A lot is unfinished and keeps changing. Nethertheless Parrot is stable
1759 and usable at the surface, while internals are moving.
1761 New in 0.1.0
1762  - "Ladies and gentlemen, I give you... objects!"
1763  - Huge documentation overhaul
1764  - More supported platforms, s. PLATFORMS
1765  - Basic thread support for pthread based architectures
1766  - Basic event handling for timers and signals including:
1767  - PASM callbacks for NCI (native C) functions.
1768  - Improved platform configuration
1769  - COW stacks now working, stacks code redone
1770  - Structure handling vastly improved
1771  - Random PMC and rand primitives
1772  - Better subroutine call syntax in PIR
1773  - Make PIR subroutines compliant with pdd03
1774  - Improved profiling (DOD, GC timings)
1775  - Hash code improvements, incl. random key order support
1776  - Experimental freeze/thaw code for some PMC types
1777  - IO improvements for buffered layer and Win32
1778  - String iterators
1779  - String bitwise vtables
1780  - Many new opcodes
1781  - Support for JIT, where malloced memory isn't executable
1782  - Priority DOD scheme for objects that need timely destruction
1783  - Improved byte code loading (e.g. onLoad functions)
1784  - Language updates: forth, Perl 6/P6C, m4
1785  - Libraries: Getopt_Long, SDL, Dumper, Sort
1786  - new JAPH examples
1787  - Unified imcc and parrot test handling
1788  - Many new tests (make test reports 1386 tests)
1789  - Numerous bug fixes
1791 New in 0.0.13
1792  - The Big Move: Parrot source and build files rearranged into sub dirs
1793  - Build imcc as parrot
1794  - Objects more finished
1795  - Delegate vtable methods to byte code
1796  - Binary multi-method dispatching
1797  - Isa and does methods for PMCs
1798  - Call byte code from C
1799  - Start of extension interface
1800  - Experimental struct handling
1801  - Catch access to NULL PMCs
1802  - Experimental network socket interface code and opcodes
1803  - IO fixes and improvements
1804  - Dynamic opcode libraries
1805  - Fix-assigned opcode numbers
1806  - Argument flattening for function calls
1807  - More native call interface (NCI) signatures
1808  - Ncurses, postgres, and pcre interface libraries
1809  - Forth language is vastly improved
1810  - BSD and Win32 build improvements
1811  - Many new tests and fixes
1813 New in 0.0.12
1814  - This number intentionally left blank
1816 New in 0.0.11
1817  - Executable output
1818  - Dynamic PMC registration
1819  - Trial exception system
1820  - Beginnings of object system
1821  - Iterators
1822  - Ordered hashes
1823  - I/O system improvements
1824  - References
1825  - Documentation for basic PMC types
1826  - IMCC support of Parrot Calling Conventions
1827  - Runtime loading of chartypes (and other string improvements)
1828  - Conditional breakpoints
1829  - Dramatically accelerated sweeps for finalizable objects
1830  - Small PMCs (PMCs split into core and extensions)
1831  - Loadable bytecode packfiles
1832  - Constant PMCs
1833  - Sub variants that deal with the stack correctly
1834  - Switched runops core
1835  - Line numbers in warnings
1836  - Environment access
1837  - Many documentation cleanups
1838  - Conversion to CPS style!
1839  - BASIC debugger and many other wacky features
1840  - Filename, line number parsing support in IMCC
1842 New in 0.0.10
1843  - IMCC integration
1844  - eval
1845  - some more benchmarking
1846  - cgp core
1847  - optimized math ops
1848  - intersegment branches
1849  - more complete use of PObjs
1850  - beefed up packfiles
1851  - sub/continuation/coroutine fixes
1852  - better NCI (native calling interface)
1853  - many imcc improvements
1854  - jako improvements
1856 New in 0.0.9
1858 - Native function calling interface (Dan)
1859 - Stack/list aggregate rewrite (Leo)
1860 - Scratchpads (Jonathan Sillito)
1861 - Preliminary DotGNU support -- type conversion ops (Gopal V + Leo)
1862 - Buffer/PMC unification (Leo)
1863 - stabs debugging support for JIT (Leo)
1864 - Jako overhaul (Gregor)
1865 - Optional Lea allocator (Leo)
1866 - Parrot sprintf (Brent)
1867 - Miniparrot (Josh)
1868 - PMC Properties (Dan)
1869 - Various JIT improvements (D. Grunblatt + Leo)
1870 - Extensible packfiles (Juergen)
1871 - Restructured PMC hierarchy (Leo)
1872 - Real Scheme (Juergen)
1874 New in 0.0.8
1876 - Several new grammars and a BNF -> perl5 and perl6 converter (Jeff)
1877 - Working Perl 6 REs (Sean)
1878 - Keyed Access (Tom Hughes et al)
1879 - New PMCs (Alberto et al)
1880 - Better Documentation
1881 - New COW semantics
1882 - GC acceleration (Mike Lambert)
1883 - Lexical scope (Jonathan Sillito)
1884 - IMCC patches
1885 - JIT for the ARM
1887 New in 0.0.7
1889 - Perl 6 Grammar and Compiler (Sean)
1890 - Subroutines, coroutines, and continuations (Melvin)
1891 - GC improvements (Peter Gibbs, Mike Lambert)
1892 - Global variables (Melvin)
1893 - Intermediate bytecode compiler (Melvin, Angel)
1894 - And much, much more.
1896 New in 0.0.6
1898 - New assembler that support keyed types (Jeff)
1899 - New macro layer, allowing constants (Jeff)
1900 - New Configure.pl (Brent)
1901 - Changes to bytecode format, endian issues resolved (Melvin)
1902 - GC improvements and bug fixes (Peter Gibbs, Mike Lambert)
1903 - JIT compiler rewrite (Jason and Daniel)
1904 - Parrot assembler in Parrot (Daniel)
1905 - Parrot debugger (Daniel)
1906 - BASIC polished, Eliza.bas is new (Clint)
1907 - Cola compiler committed and working, with limited OOP (Melvin)
1908 - Keyed aggregates (Steve Fink)
1909 - Global ops (Melvin)
1910 - Compile-time speedup (Melvin)
1911 - Much documentation
1912 - New PDDs (Dan)
1913 - Contributed tetris and lzw files
1914 - And many more, from the cast of thousands
1916 New in 0.0.5
1918 - Full GC
1919 - Perl Scalar support in PMCs
1920 - Array and Hash types almost ready for prime-time
1921 - Internal support for keyed types
1922 - EMACS editing mode
1923 - New PDDs
1924 - New Language - BASIC
1925 - Regular expression compiler
1926 - More tests
1927 - Many, many bug fixes, enhancements, and speedups
1929 New in 0.0.4
1931 - Arena-based memory allocation system
1932 - Copying GC
1933 - New IO subsystem
1934 - "Predereferencing" mode - ./parrot -P - 22% speedup
1935 - JIT compiler - ./parrot -j
1936 - Parrot now builds warnings-clean on many platforms
1937 - Many more PMC methods implemented
1938 - Regular expression operations
1939 - Added a FAQ
1940 - Basic support for embedding Parrot in other programs
1941 - Warnings support
1942 - Added PDDs to distribution
1943 - Bignum library
1945 - PMC inheritance
1946 - Added an assembly optimizer
1947 - Improved string encoding/type support
1948 - Many more tests
1949 - Source reformatting
1950 - Major refactoring in packfile library
1951 - More Miniperl functionality
1952 - New PMC "clone" operator
1953 - Beginnings of key-based access to PMCs - arrays and hashes
1954 - MOPS comparisons in examples/mops/
1956 New in 0.0.3
1958 - PMCs!
1959 - Perl base scalar types implemented
1960 - A new minilanguage, Scheme
1961 - Much improved documentation
1962 - Register stacks pushing and popping
1963 - User stack pushing, popping and rotating
1964 - Jako updates: subroutines, more example programs, optimizations
1965 - test_prog renamed to 'parrot'
1967 - Added features to the assembler: @ for current location, and global
1968   labels
1969 - Build tweaks for VMS
1970 - Bytecode typing clean-ups
1971 - More platforms: OS X, HPUX, OS/2
1972 - The proliferation of runops cores reduced to one fast and one slow one
1973 - Opcode tracing, bounds checking, profiling
1974 - Vastly improved string support, with separation of encoding and
1975   charset
1976 - Lots more tests
1977 - Multiple interpreter creation support - the beginnings of threading
1978 - Much better resource handling - the beginnings of GC
1980 New in 0.0.2
1982 - Parrot now works on all core platforms
1983 - A large number of tests, in the standard Perl testing framework
1984 - A new minilanguage (Jako) which compiles to Parrot assembly
1985 - Documentation about the assembly language (docs/parrot_assembly.pod)
1987 - Separate modules for assembly (Parrot::Assemble) and bytecode
1988   manipulation (Parrot::PackFile::*, packfile.c)
1989 - Assembler completely rewritten
1990 - Better operand-type guessing in the assembler
1991 - Assembler support for '\n' etc. in string constants
1992 - Code reformatted to match the coding standards
1993 - New ops for register-constant INTEGER comparisons
1994 - Macro expansion in the assembler
1995 - IVs and NVs renamed to more friendly INTVAL and NUMVAL
1996 - Hard-coded pack("") formats removed
1997 - Better handling of floating-point numbers in assembler
1998 - Moved floats to constant table (fixing many alignment issues)