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