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