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