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