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