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