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