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