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