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