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