Ticket #330: NEWS

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