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