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