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