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