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