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