tagged release 0.6.4
[parrot.git] / NEWS
blobdd9815aa085937b60081f318528fd1b0cb3fafbb
1 # $Id$
3 New in 0.6.4
4 - Documentation
5   + removed a lot of old information from the FAQ
6   + improved function level documentation
7 - Configuration
8   + removed the configuration item 'has_gnu_m4'
9   + refactored ICU-detection
10 - Languages
11   + ChitChat
12     - improved the Smalltalk implementation
13   + Pipp
14     - renamed Plumhead to Pipp
15     - support for a lot of builtin functions.
16     - Pipp now uses PHP specific data types.
17     - converted from PCT with TGE to PCT with NQP actions
18     - improvements in the PCT variant by using optok parsing
19     - start of object support
20   + pir
21     - simple assignments work
22   + json
23     - added a PCT-based implementation of JSON parsing
24   + lolcode
25     - improved handling of symbols
26     - added support for block handling
27     - added support for globals
28   + Lua
29     - more tests
30   + Rakudo
31     - updated Range implementation
32     - added enums
33     - added generic type declarations (::T)
34     - added runtime mixing of roles with 'does' and 'but'
35     - added generic type declarations
36     - fixed handling of implicit lexicals ($_, $!, and $/)
37     - fixed implicit method calls on $_
38     - improved complex math builtins, added Complex
39     - moved many builtins to class Any
40     - declaration of lists of variables now work
41     - improved test infrastructure
42     - 910 additional passing spec tests since last release
43     - more convergence with STD.pm grammar
44     - added named 0-ary parsing and ops
45 - Compilers
46   + PCT:
47     - allowed subroutine and method names to be a PAST tree that produces the name
48     - Improved lexical handling
49 - Tools
50   + pbc_disassemble renamed from disassemble
51 - Implementation
52   + allowed .macro_const in PIR
53   + added the flag :lexid(...) for subroutines
54   + made multiple dispatch work for sub types
55   + fixed garbage collection bug related to the metadata attached to a PMC_EXT structure
56   + added a warning when using deprecated opcodes
57   + simplified the stacks implementation
58   + fixed C++ build
59   + improved closure and lexical support
60   + improved IMCC register allocator
61   + added cache for all runtime-constant strings, reducing memory usage
62 - Miscellaneous
63   + improved OpenGL/GLU/GLUT bindings
64   + added a standard profile for Perl::Critic coding standard testing
65   + added support for smoke testing with Smolder
66   + enabled use of Test::Harness 3.0 if available, but don't require it for 'make test'
67   + added the executable 'parrot_config' to query Parrot configuration
69 New in 0.6.3
70 - Specification
71   + updated pdd09_gc.pod
72 - Languages
73   + Cardinal:
74     - dramatically improved parsing speed
75     - added support for defining and instantiating classes
76     - started fleshing out the builtin class hierarchy
77     - added support for hashes and arrays
78   + Chitchat: added the start of a smalltalk compiler
79   + Pheme: updated to match PGE changes
80   + Pynie: return statement, other minor updates
81   + Rakudo:
82     - added working list and hash contexts
83     - added 'return' statements
84     - added => pair constructor
85     - added ?? !! ternary
86     - added Range, range operators, Complex
87     - added common List, Hash methods
88     - refactored base classes
89     - added Mutable, Perl6Scalar classes
90     - added type-checking, is readonly/rw/copy for parameters
91     - added make localtest, docs/spectest-progress.csv
92     - fix named unaries
93   + Squaak: implement return statement
94   + Tcl: updated control flow exceptions to use new builtin types
95 - Compilers
96   + All tools converted to P6object metamodel
97   + PGE:
98     - <?foo> is now a zero-width match
99     - reduced backtracking to improve parsing speed
100   + PCT:
101     - added "return" PAST.op node type for subroutine returns
102     - added "keyed_int" scoping to PAST::Var
103     - fixed calls to closures
104     - automatically transcode 7-bit unicode to ascii for faster processing
105   + NQP: added "return" statement, ?? !! ternary operator
106 - Configuration
107   + expanded step gen::opengl
108 - Implementation
109   + updated function and macro names to match pdd09_gc.pod
110   + removed Super PMC
111   + add ".namespace []" as alternative to ".namespace"
112   + "make codetest" target runs standard coding tests
113 - Miscellaneous
114   + added P6object class for Perl 6 interfaces to objects in Parrot
115   + ported OpenGL/GLU/GLUT bindings to Win32, BSD, and more Mac OS X variants
116   + generate OpenGL/GLU/GLUT bindings by parsing system headers
117   + new OpenGL example shapes.pir, covering basic OpenGL 1.1 / GLUT 3 APIs
118   + new float4.pir structure-packing benchmark
119   + reduced memory use for variables
120   + improved constant string caching
121   + made code g++ and gcc (with optimizations) safe
122   + the usual collection of bugfixes and optimizations
124 New in 0.6.2
125 - Specification
126   + updated and launched pdd28_strings.pod
127   + updated pdd19_pir.pod
128 - Implementation
129   + added implementation of Rational PMC.
130   + simplified ops control flow syntax
131   + enabled backtrace on non-glibc platforms too
132   + improved some PIR error reporting
133   + removed user stack opcodes
134     (save, restore, lookback, entrytype, depth, rotate_up)
135     (NOTE: This was scheduled to occur after 0.7.0, moved up to this release)
136   + removed register stack, saveall, and restoreall opcodes
137   + removed various deprecated features and unused code
138 - Languages
139   + Amber: retired
140   + C99: grammar updated
141   + Cardinal: resurrected, method calls and do blocks work now
142   + Eclectus: use NQP as PAST generating code
143   + Lua:
144     - added big number library
145     - updated to match PGE changes
146     - added a bytecode disassembler & a Lua 5.1 VM bytecode translator
147   + Pheme: updated to match PGE/PCT changes
148   + Plumhead:
149     - use NQP as PAST generating code
150     - use riaxpander for macro expansion
151   + Rakudo:
152     - updated ROADMAP
153     - conditional and loop statement modifiers
154     - lots of class, object, role, and method improvements
155     - Str increment and decrement
156     - improved spectest reporting
157     - type checking on assignment
158     - regexes and grammars
159     - undef and self
160     - placeholder vars
161 roadmap updated
162   + Squaak: added to repository
163   + TAP: retired
164 - Compilers
165   + PGE: updated to match Synopsis 5, deprecated features removed
166   + PCT:
167     - improve handling of register types, conversion between registers
168     - improved error diagnostics
169     - add 'arity' to for loops
170 - Configuration
171   + added step auto::opengl
172   + added step gen::opengl
173   + added step gen::call_list
174 - Miscellaneous
175   + still more optimizations and performance improvements, especially in GC
176   + new libraries: OpenGL/GLU/GLUT bindings (small subset working)
177   + new dump_pbc.pl utility: PBC disassembly/source code weaver
178   + improved C++ compiler support
179   + optimized builds work again
182 New in 0.6.1
183 - Specification
184   + drafted pdd29_compiler_tools.pod
185   + updated pdd28_character_sets.pod draft
186   + updated pdd19_pir.pod draft
187 - Languages
188   + c99: added independent C pre-processor
189   + HQ9+: reimplemented with PCT
190   + Lua:
191     . reimplementation with PCT, using PAST and POST
192     . behavior aligned wih 5.1.3
193   + Rakudo:
194     . implemented basic I/O, including '$*IN', '$*OUT', '$*ERR', 'prefix:='
195     . implemented simple typing and runtime type checking
196     . added basic multi-method dispatch
197     . expanded named argument handling, including Pair and colonpairs
198     . added 'Whatever' and 'Capture' classes
199     . implemented 'handles' trait verb
200     . added 'loop' statement
201     . implemented 'given', 'when', 'for', 'while', 'until' statement modifiers
202     . implemented Hash methods '.keys' and '.values'
203     . fixed bug to get '.WHAT' working correctly
204     . initial implementation of 'eval'
205 - Compilers
206   + NQP:
207     . created a bootstrapped build, see 'make boot'
208     . added 'infix:<', 'infix:<=', 'infix:>', 'infix:>=' relational operators
209     . added 'postfix:++', 'postfix:--' operators
210   + PCT:
211     . added methods specifying default behaviors in PAST, reducing repeated code
212     . improved symbol table lookup
213   + PGE:
214     . removed deprecated code including: P6Regex, P6Grammar, PAST-pm
215 - Miscellaneous
216   + notable speedups during compilation and execution of parrot and HLLs
217   + pdb (the parrot debugger) can now catch parrot exceptions
218   + better detection of glibc and gettext during configuration
219   + various bugfixes, code cleanups, deprecations, and coding standard fixes
222 New in 0.6.0
223 - Specification
224   + launched pdd18_security.pod
225   + updated pdd17_pmc.pod
226   + launching draft of pdd28_character_sets.pod
227 - Documentation
228   + cleanup of IMCC documentation
229 - Configuration
230   + add step auto::gettext
231   + add step auto::crypto
232 - Compilers
233   + PCT:
234     . Fix '-e' option
235     . Phase out P6Regex in favor of Perl6Regex
236   + IMCC:
237     '.local Array my_arr' is illegal now
238 - Languages
239   + C99: reimplementation with PCT
240   + lolcode:
241     . various updates
242     . add support for functions with params
243     . add math functions
244   + Rakudo:
245     . support for 'say'
246     . first cut at smart matching
247     . indirect method calls
248     . support for Pairs
249     . added methods 'grep' and 'first'
250     . implement auto{increment,decrement}
251     . initial implementation of 'perl6doc'
252   + Lua:
253     . various updates
254     . add base64 library
255   + Cardinal: basic support for functions with parameters
256   + Pheme: various updates
257   + Ecmascript: various updates
258   + Tcl: now targeting tcl 8.5.1, no more expected failures in test suite.
259     (No, this doesn't mean everything's implemented. =-)
260   + Eclectus: various updates
261   + WMLScript: various updates
262 - Implementation
263   + PDD17 (PMCs)
264   + Add library YAML::Dumper
265   + Add the MD2, MD4, MD5, RIPEMD160, SHA & SHA1 PMC, as a wrapper
266      around libcrypto
267 - Miscellaneous
268   + various bugfixes, code cleanups and coding standard fixes
269   + consting
270   + remove external Perl 5 modules from the Parrot distribution
272 New in 0.5.3
273 - Documentation
274   + PDD09 (garbage collection) - approved
275   + PDD28 (character sets) - draft started
276   + added function documentation to some core functions
277   + PCT beginners guide, optable guide and PAST nodes guide, bug fixes
278 - Compilers
279   + IMCC: plugged various memory leaks and other cleanups
280   + PCT:
281     . add "attribute" as a scope variant to PAST::Var nodes
282     . add 'shift' and 'pop' methods to PAST:: nodes
283   + NQP: add '=:=' op, tests for scalar and list contextualizers, \x escapes
284 - Languages
285   + APL: reimplementation with PCT
286   + Cardinal (Ruby): reimplemention with PCT
287   + Ecmascript: reimplementation with PCT
288   + lolcode: improved expression parsing, ifthen, IT, YARN
289   + lua:
290     . aligned with Lua official release 5.1.3.
291     . added initial PCT-based implementation.
292   + Punie (Perl 1): refactor to use standard PCT-based filenames
293   + Pynie (Python): add functions
294   + Rakudo (Perl 6):
295     . rebranded, formerly known as 'perl6'
296     . passes many more official Perl 6 Specification tests
297     . added 'perl6doc' utility
298     . oo including meta?classes, objects, methods, attributes, role composition
299     . match variables, while/until statements, traits
300     . many new methods for Str, List, Hash, Junction
301 - Implementation
302 - Deprecations
303   + PCCINVOKE syntax for named arguments using []; use () instead.
304   + see DEPRECATED.pod for details
305 - Miscellaneous
306   + pbc_to_exe refactored for code reduction, portability, and maintainability
307   + various bug fixes
308   + #line directives added to generated JIT files, improving debugging
309   + consting, attribute marking, refactoring, warnings cleanup
311 New in 0.5.2
312 - Documentation
313   + PDD27 (multiple dispatch) - debut of new design
314   + Numerous small updates to glossary.pod, etc
315 - Compiler Toolkit
316   + NQP: optional, named, and named/required parameters
317   + PIRC: cleanups
318   + PAST: "defined-or"
319 - Languages
320   + New mk_language_shell.pl script creates language stubs
321   + LOLCODE: new
322   + Lua: various
323   + Eclectus: start with support for local variables and procedures,
324     use SXML as intermediate representation
325   + Perl 6: list builtins, compiler directives, command-line options, etc.
326   + "make perl6" now builds a Perl 6 executable
327   + punie: more builtins, control structures, code refactoring
328   + pynie: builtin stubs, more tests
329 - Implementation
330   + New "pbc_to_exe" utility turns bytecode to executables
331   + New set_outer method for subs
332   + Further configuration refactoring for testability
333   + All functions now completely headerized
334   + Concurrency: interpreter schedulers
335 - Deprecations
336   + DYNSELF (changes to SELF; SELF to STATICSELF)
337   + METHOD (replaced by renaming PCCMETHOD)
338   + pmcinfo op (superseded by 'inspect')
339   + get_attr, set_attr, and 8 other vtable methods
340   + See DEPRECATED.pod for details
341 - Miscellaneous
342   + Many bug fixes
343   + Minor speed enhancements with UTF-8 string handling
344   + Debian packaging
345   + consting, attribute marking, warnings cleanup, memory leaks plugged ...
347 New in 0.5.1
348 - Documentation
349   + PDD19 (PIR) - reflect state on the ground; incorporate old IMCC docs
350   + PDD25 (Concurrency) - launch out of draft
351   + Improve documentation of deprecated parrot features.
352 - Compilers
353   + PCT: Parrot Compiler Toolkit redesigned and updated
354   + NQP: major updates, including support for namespaces,
355     module/class declarations, methods
356   + IMCC: remove .sym as alias for .local. Remove .pcc_
357     prefix for calling directives (.pcc_begin became .begin_call).
358   + PIRC: creates an AST during the parse.
359   + PGE: more updates to match S05 syntax.
360 - Languages
361   + perl6: re-implemented using PCT and NQP, new object subsystem
362   + abc: re-implemented using PCT and NQP
363   + eclectus: initial implementation
364   + plumhead: add PCT variant
365   + punie: re-implemented using PCT and NQP, extended to handle subroutines
366     Happy 20th Birthday, Perl!
367   + pynie: re-implemented using PCT and NQP
368   + PIR: start conversion to NQP (under construction)
369 - Implementation
370   + new opcodes: 'die', 'addhandler', 'copy'
371   + Initial implementation of Concurrency PDD
372   + Add 'arity' method to Sub and NCI PMCs
373 - Miscellaneous
374   + Bug cleanup
375   + consting, attribute marking, warnings cleanup, memory leaks, GC...
376   + dead code removal (includes some defunct languages)
378 New in 0.5.0
379 - Implementation
380   + PDD15 (OO) branch merged with trunk; this release contains a working,
381     tested implementation of the latest OO model
382   + Added pop_eh/push_eh_p/count_eh opcodes
383   + Add --runcore command line option
384   + Add gcdebug runcore to help track down GC bugs
385   + minor improvements to IA-32 JIT
386 - Documentation
387   + PDD19 (PIR): updates to macros, .pcc* directives
388   + PDD25 (Concurrency): updated
389   + PDD26 (AST):  draft approved
390   + PDD23 (Exceptions): draft approved
391   + Copyright cleanups
392 - Languages/Compilers
393   + languages/APL: minor updates, PDD15 conformance
394   + languages/dotnet: minor updates
395   + languages/lua: minor updates, PDD15 conformance
396   + languages/lisp: minor updates
397   + languages/perl6: minor updates, PDD15 conformance
398   + languages/plumhead: minor updates
399   + languages/punie: minor updates, PDD15 conformance
400   + languages/nqp: minor updates
401   + languages/scheme: many updates, PDD15 conformance, improved tests, use
402     PMCs instead of primitive registers to represent values
403   + languages/tcl: bugfixes, PDD15 conformance
404   + languages/WMLScript: minor updates
405   + compilers/pirc: updates from PDD19, PDD06
406   + compilers/pct: minor updates, PDD15 conformance
407   + compilers/pge: PDD15 conformance
408   + compilers/tge: PDD15 conformance
409 - Configuration
410   + Improve test coverage
411   + Improve reporting when a step fails; allow abort on failure
412 - Miscellaneous
413   + More coding standard conformance, tests, cleanup, speedups,
414     warnings cleanup
415   + Bug cleanup, esp. GC bugs
416   + Eliminate .imc extension (use .pir)
417   + Simplify some core config steps to not allow interactive prompting
418 - Removed
419   + clear_eh opcode
421 New in 0.4.17
422 - Implementation
423  + Bug fixes (including Coverity IDs 20, 22, 30, 119-122, 124-126, 129-131)
424    Also various GC, memory, and segfault issues
425  + Fix & reenable CGP core
426  + Parrot's -r flag now works again (compile to and execute bytecode)
427  + Updates to pmc2c & PIR syntaxes
428  + Fix Complex PMC
429  + Minor performance improvements, especially in PGE
430 - Documentation
431  + PDD02 "Vtables" - superceded by PDD17
432  + PDD06 "PASM" - minor updates
433  + PDD17 "PMC" - add VTABLE syntax, update core PMC struct, restore UnionVal
434  + PDD19 "PIR" - early review started
435  + PDD21 "Namespaces" - cleanup
436  + PDD24 "Events" - draft approved
437  + PDD25 "Concurrency" - minor updates
438  + PDD26 "AST" - draft version begun
439  + PIR tutorials updated
440 - Languages/Compilers
441  + Make scheme work with the current calling conventions, other major work.
442  + Updates to m4, lua, compilers/pirc, languages/PIR, dotnet, tcl
443 - Miscellaneous:
444  + make -j functional again
445  + Code cleanup (refactoring, optimizations)
447 New in 0.4.16
448 - Implementation:
449  + Performed code review on every PMC
450  + Modified PMC code generation to use Storable, reducing compile times
451  + Added a makefile target to generate test coverage data of C sources
452 - Languages:
453  + NQP: added lists, for loops, operators, comparison and multiplicative operators
454  + Announced Kea-CL, Kea Common Lisp, an ANSI Common Lisp implementation
455    The repository is available at https://rgrjr.dyndns.org/svn/kea-cl/trunk/
456 - Documentation
457  + PDD17 "PMCs" - draft approved, the design is complete
458  + Added more PIR tutorials, see examples/tutorial/00_README.pod
459 - Miscellaneous:
460  + Many bugfixes, enhancements, documentation, and coding standard updates
461  + Deprecated PMC constants and other crufty syntax, see DEPRECATED.pod
462  + Improved icc compiler compatibility for error line reporting
464 New in 0.4.15
465 - Implementation:
466  + Lots of code review, many bugs fixed
467  + Many more code cleanups and compiler warning levels
468  + Started a new jit engine for 64-bit processors
469  + Refactored configure process, with tests and new diagnostic options
470  + Added new CodeString PMC for dynamic generation of PIR code
471  + More pdd15 support for object metamodel.
472 - Languages:
473  + Added NQP ("Not Quite Perl"), a very lightweight Perl 6-like language
474  + Significant improvements and refactors to PCT (Parrot Compiler Toolkit)
475  + perl6 passes more spec tests
476  + Lua works now with a PGE/TGE/PAST-pm based compiler, lives in one pbc,
477    and the interpreter has same behavior as original.
478 - Documentation
479  + Added a committers' HOWTO
480  + More PIR tutorial examples
481  + Added PAUSE guide
483 New in 0.4.14
484 - Now, with Seat Belts!
485  + added makefile targets for Sun lint, BSD lint, and splint
486  + corrected many errors picked up by these tools
487  + decorated source code with compiler hints, assertions, and attribute macros
488  + automated creation of function declarations to prevent common errors
489  + increased compiler warnings levels
490  + converted more exceptions to a recoverable form
491 - Languages:
492  + updated Lisp, Lua, Perl 6, tcl, regex, Scheme ("Pheme")
493  + Perl 6 now fetches selected tests from pugs, and even passes some
494  + PGE modified to handle {*} action subs for top-down and bottom-up parsers,
495    and to allow grammar subclassing
496  + HLLCompiler now has better exception, eval, and exit support
497  + Introduced PCT, a refactor of HLLCompiler and PAST-pm
498 - Design:
499  + PDD15 "Objects" - details added to 'new' and 'getattribute' opcodes
500  + PDD17 "PMCs" - notes added on instantiation and dynamic extention in PIR
501 - Documentation:
502  + added Parrot-related text from "Perl 6 and Parrot Essentials" book,
503    tutorial examples from "Learning PIR" talk, and PDD15 metamodel diagrams
504 - Implementation:
505  + reduced memory footprint when using named registers
506  + implemented overridding of vtable methods by PDD15 classes
507  + improved PDD15 support for 'new', 'instantiate', and others
508  + added makefile targets to ease core and HLL makefile regeneration
509  + updated parrot dubugger, "pdb", to allow loading of commands from file
510 - Misc:
511  + many bugfixes, enhancements, documentation, and coding standard updates
513 New in 0.4.13
514 - Languages:
515  + Updated Lisp, Lua, PHP ("Plumhead"), Python ("Pynie"), ABC,
516    WMLScript, and Tcl ("ParTcl").
517  + Perl 6 passes all of the sanity tests.
518  + PGE supports latest Perl 6 grammar syntax. Perl 6, Python
519    ("Pynie"), and ABC parsers updated to match.
520  + Updated PHP ("Plumhead") to Antlr 3.0.
521  + Lua added the beginnings of a PGE/TGE based compiler (not yet
522    replacing the Perl/Yapp compiler).
523  + Lisp updated for current features, added a test suite.
524 - Core Implementation:
525  + Filled in features and backward compatibility for PDD 15 objects.
526    New object metamodel passes 85% of old test suite.
527  + GCC API symbols are visible externally only when explicitly exported.
528  + Added generated GCC compiler attributes to increase warnings, and
529    cleaned up resulting warnings.
530  + Code cleanup efforts and fixed memory leaks by the cage cleaners,
531    resulting in notable speed increases.
532 - Misc:
533  + Updated Parrot distribution to Artistic License 2.0, from dual
534    Artistic 1/GPL license.
535  + SDL examples brought up-to-date with current features.
537 New in 0.4.12
538 - Build:
539  + even more refactorings and improvements in configuration system
540  + improved tests and documentation for configuration system
541 - Languages:
542  + Updated abc, PHP ("Plumhead"), Lua, Tcl
543  + Reclaimed Lisp
544 - Design:
545  + new PMC PDD draft partially completed
546 - Implementation:
547  + continued implementation of PDD 15 (Objects)
548  + minor garbage collector and memory management improvements
549  + several memory leaks resolved
550  + extended support for compilers other than GCC
551  + improved C++ compiler compatibility
552  + enhanced support for Solaris, non-MSVC Win32, and other platforms
554 New in 0.4.11
556 - Compilers:
557  + IMCC: added documentation for C-based Parrot Calling Conventions,
558    refactorings and bug fixes
559  + PGE: new perl6regex front end reflecting recent S05 syntax changes
560  + PIRC: new prototype PIR parser
561 - Languages:
562  + Updated Lua, PHP ("Plumhead"), BASIC, pynie
563  + Lua implements environment
564 - Design:
565  + PDD15 "Objects" - details added, and draft approved
566 - Documentation:
567  + Added guidelines for PMC documentation
568 - Implementation:
569  + PDD15 implementation is largely complete, including role-based composition,
570    introspection, and C3 method resolution order
571  + new Exporter PMC for importing globals between namespaces
572  + new string utilities for radix conversion
573  + PCCINVOKE and Parrot_PCCINVOKE allow calling using the full Parrot Calling
574    Conventions from PMCs and C code respectively
575 - Build:
576  + Refactorings and improvements in test coverage for 'Configure.pl'
577 - Misc:
578  + many bugfixes, enhancements, and code cleanup
579  + added example subversion config file
580  + extended support for gcc, icc, and other compilers
581  + extended support for Solaris and other platforms
584 New in 0.4.10
586 - Compilers:
587  + IMCC: Parrot calling conventions now available between two C PMCs (PMINVOKE)
588  + PGE: Match object improvements
589  + smop: added Attribute and Class PMCs
590  + HLLCompiler: improvements for interactive mode
591 - PAST:
592  + extended binding to a list of variables
593 - Languages:
594  + Updated Lua, PHP ("Plumhead"), Tcl ("ParTcl"), Ruby ("Cardinal")
595  + Update PIR, regex, Zcode
596  + New language: Pynie - a Python compiler for Parrot
597  + Lua implements require and many other ops, improved regex support
598  + Remove parakeet
599 - Design:
600  + PDD01 "Overview" - updated architecture and platform information
601  + PDD15 "Objects" - details on roles, objects, and classes added
602  + PDD22 "I/O" - added async ops and Status PMC details
603 - Documentation:
604  + Added guides for Metacommitter, Relase Manager, and Cage Cleaner roles
605 - Implementation:
606  + Object, Class, Role, and Attribute PMC implementation has begun
607  + Perl 5 module "Parrot::Embed" now compiles and links on all platforms
608 - Build:
609  + Major improvements in test coverage for 'ops2c.pl'
610 - Misc:
611  + New utility: Crow, a template processor
612  + New library module: Config/JSON for reading/writing JSON files
613  + many bugfixes, enhancements, and coding standard updates, code cleanup
615 New in 0.4.9
617 - Compilers:
618    + IMCC: Parrot calling conventions now available in C PMCs, allowing
619      named, optional, slurpy, and flat parameter passing
620    + PGE: extended support for Perl 5 Regexes
621    + smop: prototype object model implementation
622    + hllcompiler: refactored to run a configurable set of compilation stages
623 - PAST:
624    + redesigned assign/binding to support Perl 6 binding semantics
625 - Languages:
626    + Updated Lua, PHP ("Plumhead"), Tcl ("ParTcl"), perl6, perl5
627    + New language: PIR - a PGE-based implementation of Parrot PIR
628    + perl6 now supports binding (':=') and 'join'
629    + lua generates tail calls, and supports its own regex flavor (PGE-based)
630    + Pheme still works, huzzah!
631 - Design:
632    + PDD21 "Objects" - rewritten
633    + PDD22 "I/O" - updated and 'TODO' tests added
634 - Documentation:
635    + Interface stability classification standards approved
636    + Roles and Responsibilities documented approved
637    + Official 'drafts' directory created (was 'clip')
638 - Implementation:
639    + More NameSpace and OS PMC methods implemented
640    + Parrot executable fullname and basename now available in PIR/PASM code
641    + new 'chomp' library function
642 - Build:
643    + Major improvements in test coverage for 'ops2pm.pl'
644 - Misc:
645    + many bugfixes, enhancements, and coding standard updates
646    + extended support for Sun Workshop Compilers
647    + Parrot now builds on PocketPC platform
649 New in 0.4.8
651 - Compilers:
652    + HLLCompiler: added tracing options, modified api
653    + PGE & TGE bugfixes and updates
654 - PAST:
655    + added global and lexical variable support
656    + added looping constructs, arrays, hashes
657 - Languages:
658    + Updated PHP ("Plumhead"), Tcl ("ParTcl"),
659      forth, perl6, lua, abc, APL, WMLScript, punie
660    + ParTcl is passing > 24.9% of Tcl cvs-latest test suite
661    + perl6 now supports hashes, arrays, method calls, arity-based
662      multisubs, quoted terms, ranges (non-lazy), try blocks, $!
663 - Design:
664    + PDD01 "Overview" - updated
665    + PDD22 "I/O" - rewritten and approved
666 - Test Suite:
667    + Converted Perl 5 Regex tests to PIR, with notable speedup
668    + Added tests for opcodes, compilers, languages, and coding standards
669 - Build:
670    + Major improvements in test coverage for 'pmc2c.pl'
671 - Misc:
672    + many bugfixes, enhancements, and coding standard updates
673    + extended support for non-core platforms including Cygwin, Tru64
675 New in 0.4.7
677 - New languages: PHP ("Plumhead"), Forth
678 - Updated languages: Ruby ("Cardinal"), Tcl, Lua
679 - Remove old Python implementation from Parrot repository; the new Python
680   language code is hosted at http://pirate.tangentcode.com
681 - Compilers:
682    + PGE updated with more expressions, latest changes to S05
683    + new Perl 6 grammar compiler
684 - Integration:
685    + Perl 5 module "Parrot::Embed" allows easy embedding of a Parrot
686      runtime into a Perl 5 program
687 - PIR:
688    + new :init pragma for subs that must run before the main function
689    + new :vtable pragma to identify subs that override PMC vtable methods,
690      eliminating the need for special subroutine names
691    + PIR parser/compiler does not stop on first syntax error
692    + Vanilla register allocator ("register alligator") greatly improves
693      performance compiling large functions
694    + Eliminated limit on number of PIR macros
695 - PMCs:
696    + hash lookups return null instead of None for missing keys
697 - Design:
698    + PDD13 "Bytecode files: format and manipulation" - new
699    + PDD10 "Embedding" - new
700    + PDD25 "Concurrency" - rewritten
701    + PDD15 "Objects" - new section on redesign requirements
702    + PDD07 "Coding standards" - significant updates and automated tests
703 - Test Suite:
704    + Many many more new tests
705 - Build Process:
706    + autoconf compatible install options
707 - Misc:
708    + Namespace refinements
709    + Coroutine improvements
710    + An impressive swarm of other bugfixes and enhancements
712 New in 0.4.6
714 - New languages: Ruby ("Cardinal"), Javascript ("ecmascript")
715 - Updated languages: Tcl, dotnet, bc, Pheme, Punie, WMLScript
716 - Updated compilers: PGE, TGE
717 - IMCC updates:
718    + ".loadlib" directive expresses dependencies
719    + ".namespace" with no parameter goes to HLL root
720    + lexer is reentrant (reentrant grammar in progress)
721 - Namespace improvements:
722    + new suite of opcodes to access namespaces and globals
723      ("find_global" and "store_global" will be phased out)
724    + namespace '' no longer means HLL root
725 - Design document updates:
726     namespaces (pdd23), basic types (pdd17), embedding
727 - Updated tool requirements for developers:
728     flex 2.5.33, bison 2.1, perl 5.6.1
729 - New to-do list for people new to Parrot:
730     cage/todo.pod
731 - The usual plethora of bugfixes and enhancements
733 New in 0.4.5
735 - unicode subroutine names
736 - hierarchical class names finished including MMD support
737 - new dotnet CLI to PIR translator
738 - improved TGE code and compiler
739 - APL: vector handling
740 - new STM branch in the svn repository
741 - the usual bugfixes and enhancements
743 New in 0.4.4
745 - hierarchical class names
746 - APL compiler
747   - under development
748   - understands simple vector ops, strings
749   - demonstrates use of Unicode in Parrot
750 - pgc, a compiler for rules and operator precedence parsers
751 - Major redesign and improvements for PGE
752   - compilers understand named parameter options
753   - :ratchet option implemented to support non-backtracking quantifiers
754 - TGE (tree grammar engine) for tree transformations
755   - tgc, tree grammar compiler
756 - perl6 compiler
757   - support for many operators, lexical scalars, regex matches
758 - new pheme (Parrot scheme) compiler
760 New in 0.4.3
762 - namespaces partially implemented
763 - rulec, Perl 6 rule compiler
764 - PGE improvements including return values for closure
765 - parts of a Perl 6 parser based on PGE
766 - complex trigonometric methods
767 - type of Sub PMC is now overridable by HLL
768 - NetBSD support
769 - many bug fixes and improvements
771 New in 0.4.2
773 - improved PPC and x86 JIT support including JIT compilation
774   of very simple PASM/PIR subroutines
775 - preliminary libreadline support
776 - better trace and debug features
777 - pkgconfig support
778 - META.yml to support proper indexing on CPAN
779 - new opcode: hcf (in "my_ops" in dynamic op library)
780 - new File pmc for file specific ops (is_dir, is_file, copy, rename...)
781 - named arguments and parameters (both :named("") and => syntaxes)
782 - ongoing config improvements
783 - tons of bug fixes and other small improvements - too much to list all
785 New in 0.4.1
787 - Installation: 'make install' is using standard locations now
788   (/usr/local is the default --prefix)
789 - Produce static and shared libraries on some systems
790 - Configure system rearragement
791 - OS pmc started (mkdir,cd,cwd,rm,umask,stat)
792 - Shootout examples
793 - Test files are now testable with 'prove'
794 - Smoke (and smokej) outputs progress
795 - PIR supports: I = A < B (>,<=,>=,==,!=)
796 - Add support for octal number constants
797 - partcl updates:
798   - almost finish [string]; start [file]
799   - add build tool for generating inline'd tcl builtins from templates.
800 - Jako updates: NCI, subroutines, global variables and constants all work.
801   (Gregor)
803 New in 0.4.0
805 - New lexical handling and closure support including better
806   introspection for caller and outer
807 - PGE (Parrot Grammar Engine) provides now compilers for P6Rule,
808   P6Grammar, P5Regexp, and Glob
809 - ca. 1000 new tests including 800 for Perl5 regexp
810 - Improved unicode charset and encoding support
811 - Calling conventions for exception handlers
812 - Punie (Perl 1) uses TGE (Tree Grammar Engine) to convert from
813   PGE match objects to AST via two steps of tree transformation grammars
814 - New languages: amber and lua
815 - The usual code fixes, cleanup, and improvements, including an overhaul
816   of the config and test framework
818 New in 0.3.1
820 - Variable sized register frames are finished. Each subroutine gets
821   the amount of registers that it actually needs. No more spilling.
822 - Vastly improved PGE (Parrot Grammar Engine) including shift-reduce,
823   precedence-based expression parser and support for matching of
824   bracketed text delimited by e.g. ()[]{}'"
825 - uniccode character classification (is_upper ...)
826 - support for heredoc syntax in assembler
827 - improved examples, basic JSON support
828 - debian packaging support
829 - the usual improvements, bug fixes, and cleanup
830 - test count exceeds 3000
832 New in 0.3.0
834 - New calling conventions implemented: see PDD03 for details
835 - Merge multiple Parrot bytecode (PBC) files into a singe PBC file
836 - 'make smoke' target going beta
837 - bc now supports if statements, comparison ops, prefix inc/dec
838 - ParTcl adds [lassign], [switch] (partially); [expr] converted to a compiler
839 - Many exciting doc updates, tests, and bugfixes, too numerous to mention
841 New in 0.2.3
843 - Dynamic classes now compile on Windows (including ParTcl)
844 - New Super PMC allows easy access to superclass methods
845 - Implement C3 method resolution order (just like Perl 6 & Python)
846 - ParTcl has new PIR-based parser and passes more Tcl tests
847 - added character class support in Globs to PGE
848 - added language implementations of unlambda, Lazy-k
849 - many bugfixes, including GC and memory leaks
850 - the new calling scheme continued to evolve in branches/leo-ctx5
852 New in 0.2.2
854 - new call scheme: docs/pdds/pdd03_calling_conventions.pod
855 - partial implementation of the new calling conventions
856   PASM only, don't mix PIR foo() call syntax with the new scheme
857 - grammar and rule support in PGE - the Parrot Grammar Engine
858 - TCL passes >10% of the tcl test suite
859 - the usual bugfixes and improvements
861 New in 0.2.1
863 - better HLL support (short names for object attributes, and
864   .HLL and n_operators pragmas)
865 - string encoding and charset can now be set independently
866 - experimental mmap IO layer for slurping files
867 - distinct debug and trace flag settings
868 - glob support in PGE
869 - new character classification opcodes and interfaces
871 New in 0.2.0
873 - parrot repository is now under subversion
874 - MMD (Multi Method Dispatch) enhanced
875 - new unary and infix opcodes that return new result PMCs
876 - dynamic scalar PMCs inherit now almost all from Parrot core PMCs
877 - more unification of PMCs and ParrotObjects
878 - tailcalls for functions and methods
879 - PGE (Parrot Grammar Engine) reworked
880 - Pugs creates Parrot code and Pugs is a registered compiler now
881 - new languages/lisp
882 - the usual bug fixes and improvements
884 New in 0.1.2
886 - New string handling code. Strings now have charset and encoding
887 - Parts of a generation garbage collector
888 - Better Python code, separated in dynclasses
889 - Parrot Grammar Engine
890 - Improved test coverage and documentation
892 New in 0.1.1
894 Parrot 0.1.1 is an intermediate release with tons of updates and fixes.
895  - Python support: Parrot runs 4/7 of the pie-thon test suite
896  - Better OS support: more platforms, compiler, OS functions
897  - Improved PIR syntax for method calls and <op>= assignment
898  - Dynamic loading reworked including a "make install" target
899  - MMD - multi method dispatch for binary vtable methods
900  - Library improvement and cleanup
901  - BigInt, Complex, *Array, Slice, Enumerate, None PMC classes
902  - IA64 and hppa JIT support
903  - Tons of fixes, improvements, new tests, and documentation updates.
904 A lot is unfinished and keeps changing. Nethertheless Parrot is stable
905 and usable at the surface, while internals are moving.
907 New in 0.1.0
908  - "Ladies and gentlemen, I give you... objects!"
909  - Huge documentation overhaul
910  - More supported platforms, s. PLATFORMS
911  - Basic thread support for pthread based architectures
912  - Basic event handling for timers and signals including:
913  - PASM callbacks for NCI (native C) functions.
914  - Improved platform configuration
915  - COW stacks now working, stacks code redone
916  - Structure handling vastly improved
917  - Random PMC and rand primitives
918  - Better subroutine call syntax in PIR
919  - Make PIR subroutines compliant with pdd03
920  - Improved profiling (DOD, GC timings)
921  - Hash code improvements, incl. random key order support
922  - Experimental freeze/thaw code for some PMC types
923  - IO improvements for buffered layer and Win32
924  - String iterators
925  - String bitwise vtables
926  - Many new opcodes
927  - Support for JIT, where malloced memory isn't executable
928  - Priority DOD scheme for objects that need timely destruction
929  - Improved byte code loading (e.g. onLoad functions)
930  - Language updates: forth, Perl 6/P6C, m4
931  - Libraries: Getopt_Long, SDL, Dumper, Sort
932  - new JAPH examples
933  - Unified imcc and parrot test handling
934  - Many new tests (make test reports 1386 tests)
935  - Numerous bug fixes
937 New in 0.0.13
938  - The Big Move: Parrot source and build files rearranged into sub dirs
939  - Build imcc as parrot
940  - Objects more finished
941  - Delegate vtable methods to byte code
942  - Binary multi-method dispatching
943  - Isa and does methods for PMCs
944  - Call byte code from C
945  - Start of extension interface
946  - Experimental struct handling
947  - Catch access to NULL PMCs
948  - Experimental network socket interface code and opcodes
949  - IO fixes and improvements
950  - Dynamic opcode libraries
951  - Fix-assigned opcode numbers
952  - Argument flattening for function calls
953  - More native call interface (NCI) signatures
954  - Ncurses, postgres, and pcre interface libraries
955  - Forth language is vastly improved
956  - BSD and Win32 build improvements
957  - Many new tests and fixes
959 New in 0.0.12
960  - This number intentionally left blank
962 New in 0.0.11
963  - Executable output
964  - Dynamic PMC registration
965  - Trial exception system
966  - Beginnings of object system
967  - Iterators
968  - Ordered hashes
969  - I/O system improvements
970  - References
971  - Documentation for basic PMC types
972  - IMCC support of Parrot Calling Conventions
973  - Runtime loading of chartypes (and other string improvements)
974  - Conditional breakpoints
975  - Dramatically accelerated sweeps for finalizable objects
976  - Small PMCs (PMCs split into core and extensions)
977  - Loadable bytecode packfiles
978  - Constant PMCs
979  - Sub variants that deal with the stack correctly
980  - Switched runops core
981  - Line numbers in warnings
982  - Environment access
983  - Many documentation cleanups
984  - Conversion to CPS style!
985  - BASIC debugger and many other wacky features
986  - Filename, line number parsing support in IMCC
988 New in 0.0.10
989  - IMCC integration
990  - eval
991  - some more benchmarking
992  - cgp core
993  - optimized math ops
994  - intersegment branches
995  - more complete use of PObjs
996  - beefed up packfiles
997  - sub/continuation/coroutine fixes
998  - better NCI (native calling interface)
999  - many imcc improvements
1000  - jako improvements
1002 New in 0.0.9
1004 - Native function calling interface (Dan)
1005 - Stack/list aggregate rewrite (Leo)
1006 - Scratchpads (Jonathan Sillito)
1007 - Preliminary DotGNU support -- type conversion ops (Gopal V + Leo)
1008 - Buffer/PMC unification (Leo)
1009 - stabs debugging support for JIT (Leo)
1010 - Jako overhaul (Gregor)
1011 - Optional Lea allocator (Leo)
1012 - Parrot sprintf (Brent)
1013 - Miniparrot (Josh)
1014 - PMC Properties (Dan)
1015 - Various JIT improvements (D. Grunblatt + Leo)
1016 - Extensible packfiles (Juergen)
1017 - Restructured PMC hierarchy (Leo)
1018 - Real Scheme (Juergen)
1020 New in 0.0.8
1022 - Several new grammars and a BNF -> perl5 and perl6 converter (Jeff)
1023 - Working Perl 6 REs (Sean)
1024 - Keyed Access (Tom Hughes et al)
1025 - New PMCs (Alberto et al)
1026 - Better Documentation
1027 - New COW semantics
1028 - GC acceleration (Mike Lambert)
1029 - Lexical scope (Jonathan Sillito)
1030 - IMCC patches
1031 - JIT for the ARM
1033 New in 0.0.7
1035 - Perl 6 Grammar and Compiler (Sean)
1036 - Subroutines, coroutines, and continuations (Melvin)
1037 - GC improvements (Peter Gibbs, Mike Lambert)
1038 - Global variables (Melvin)
1039 - Intermediate bytecode compiler (Melvin, Angel)
1040 - And much, much more.
1042 New in 0.0.6
1044 - New assembler that support keyed types (Jeff)
1045 - New macro layer, allowing constants (Jeff)
1046 - New Configure.pl (Brent)
1047 - Changes to bytecode format, endian issues resolved (Melvin)
1048 - GC improvements and bug fixes (Peter Gibbs, Mike Lambert)
1049 - JIT compiler rewrite (Jason and Daniel)
1050 - Parrot assembler in Parrot (Daniel)
1051 - Parrot debugger (Daniel)
1052 - BASIC polished, Eliza.bas is new (Clint)
1053 - Cola compiler committed and working, with limited OOP (Melvin)
1054 - Keyed aggregates (Steve Fink)
1055 - Global ops (Melvin)
1056 - Compile-time speedup (Melvin)
1057 - Much documentation
1058 - New PDDs (Dan)
1059 - Contributed tetris and lzw files
1060 - And many more, from the cast of thousands
1062 New in 0.0.5
1064 - Full GC
1065 - Perl Scalar support in PMCs
1066 - Array and Hash types almost ready for prime-time
1067 - Internal support for keyed types
1068 - EMACS editing mode
1069 - New PDDs
1070 - New Language - BASIC
1071 - Regular expression compiler
1072 - More tests
1073 - Many, many bug fixes, enhancements, and speedups
1075 New in 0.0.4
1077 - Arena-based memory allocation system
1078 - Copying GC
1079 - New IO subsystem
1080 - "Predereferencing" mode - ./parrot -P - 22% speedup
1081 - JIT compiler - ./parrot -j
1082 - Parrot now builds warnings-clean on many platforms
1083 - Many more PMC methods implemented
1084 - Regular expression operations
1085 - Added a FAQ
1086 - Basic support for embedding Parrot in other programs
1087 - Warnings support
1088 - Added PDDs to distribution
1089 - Bignum library
1091 - PMC inheritance
1092 - Added an assembly optimizer
1093 - Improved string encoding/type support
1094 - Many more tests
1095 - Source reformatting
1096 - Major refactoring in packfile library
1097 - More Miniperl functionality
1098 - New PMC "clone" operator
1099 - Beginnings of key-based access to PMCs - arrays and hashes
1100 - MOPS comparisons in examples/mops/
1102 New in 0.0.3
1104 - PMCs!
1105 - Perl base scalar types implemented
1106 - A new minilanguage, Scheme
1107 - Much improved documentation
1108 - Register stacks pushing and popping
1109 - User stack pushing, popping and rotating
1110 - Jako updates: subroutines, more example programs, optimizations
1111 - test_prog renamed to 'parrot'
1113 - Added features to the assembler: @ for current location, and global
1114   labels
1115 - Build tweaks for VMS
1116 - Bytecode typing clean-ups
1117 - More platforms: OS X, HPUX, OS/2
1118 - The proliferation of runops cores reduced to one fast and one slow one
1119 - Opcode tracing, bounds checking, profiling
1120 - Vastly improved string support, with separation of encoding and
1121   charset
1122 - Lots more tests
1123 - Multiple interpreter creation support - the beginnings of threading
1124 - Much better resource handling - the beginnings of GC
1126 New in 0.0.2
1128 - Parrot now works on all core platforms
1129 - A large number of tests, in the standard Perl testing framework
1130 - A new minilanguage (Jako) which compiles to Parrot assembly
1131 - Documentation about the assembly language (docs/parrot_assembly.pod)
1133 - Separate modules for assembly (Parrot::Assemble) and bytecode
1134   manipulation (Parrot::PackFile::*, packfile.c)
1135 - Assembler completely rewritten
1136 - Better operand-type guessing in the assembler
1137 - Assembler support for '\n' etc. in string constants
1138 - Code reformatted to match the coding standards
1139 - New ops for register-constant INTEGER comparisons
1140 - Macro expansion in the assembler
1141 - IVs and NVs renamed to more friendly INTVAL and NUMVAL
1142 - Hard-coded pack("") formats removed
1143 - Better handling of floating-point numbers in assembler
1144 - Moved floats to constant table (fixing many alignment issues)