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