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