5 + Key and Iterator refactor
6 + Major pbc_to_exe generated code speed improvement
7 + New "Infinite Memory" GC core for demonstration purposes
8 + gc_debug runcore and GC-related heisenbug fixes
9 + Elimination of variable expansion in parrot_config
10 + CLI arguments are processed as Unicode by default
11 + Substantial optimizations in NCI
12 + Parrot builds on Win64
13 + Hashes can use native types as keys and values
14 + Fixed installed pbc_to_exe
15 + Simplification of PMC generation code
16 + Improved GC encapsulation and API documentation
18 + List of candidates for embedding API (docs/embed.pod)
19 + PIR book sent to publisher
21 + Several conversions of Perl test to pure PIR.
22 + C indentation coding standards test improvement
23 + Improved test coverage of example code
25 + Removal of PGE rules: <null> <fail> <sp> <lt> <gt> <dot>
26 + Removal of PGE methods: .text .item .result_object
27 + Deprecation of most dynops
29 + Beginnings of OpenGL::Math library; OpenGL bindings and library marked experimental
30 + Localizing and consting fixes
31 + Many memory and thread-related leaks plugged
35 + Optimized parts of the IO system
36 + Fixed inheritance hierarchy of FileHandle and Socket PMC types
37 + Fixed leaks involving subroutines and Parrot_Context
38 + Cleaned up and refactored GC internals, including fixes and optimizations
39 + Optimized PMC class manipulations to use type numbers instead of string names
40 + Fixed problems involving hashval calculations in strings
41 + Removed unnecessary MULTI dispatches in built-in PMCs
42 + Fixed memory leaks involving PMCs that were not properly destroyed
43 + Fixed creation of PMCProxy PMCs in correct namespaces
44 + Added preliminary Pipe support
45 + Fixed cloning of Object PMCs
46 + Added root_new opcode
47 + Added initial versions of Packfile PMCs with read/write capabilities
49 + Fixed several memory leaks in IMCC
50 + Updated PCT to use root_new opcode
51 + Added support for keyword "self" in NQP
53 + Improved and expanded /docs/book
54 + Updated project documentation
55 + Defined 'experimental' status and procedures in DEPRECATED.pod
57 + Cleaned code and improved code-level documentation
58 + Various bugfixes, code cleanups, and coding standard fixes
59 + Added an experimental compiler library to help use PIR libraries from HLLs
60 + Updated OpenGL library and examples to support experimental HLL import
64 + Fixes for pir classes inheriting from core pmcs.
65 + Cleaned up headers and reorganized some sources into subsystem directories.
66 + Clean up PMCs so libparrot.so exports far fewer vtable/method symbols.
67 + Clean up the GC API.
68 + Several unicode identifier improvements in IMCC.
70 + Protoobject stringification is gone.
72 + Rewrite several core documents.
73 + Many reworks, improvements & additions to the Parrot Book.
74 + Installation PDD is launched out of draft.
76 + Fixes for running the language shell generator outside the parrot tree.
77 + Several fixes for developing and building HLLs from an installed parrot.
78 + Configure.pl now has a --no-line-directives option to ease source level debugging.
80 + Portability updates for macports, netbsd, mingw32, hpux.
81 + Several (build time, runtime) performance improvements.
82 + Lots of updates to examples and tests.
83 + Various bugfixes, code cleanups, and coding standard fixes.
87 + Added op: load_language, find_caller_lex
88 + Socket IO are back as PMC
89 + Refactor some PMC: Hash, ManagedStruct
93 - Allow \x, \c, and \o in enumerated character classes (incl ranges)
94 - Add initial greedy-only version of ** <exp> quantifier
96 - Add HLL source line bytecode annotations
97 - Add another dumper format to assist syntax highlighters
98 - Revise mk_language_shell.pl to updated create_language.pl
100 + Removed ops: gcd, exec, classname, need_finalize, runinterp, substr_r
101 + Removed dynamic op: mul
102 + Removed .HLL_map directive; use interp's .hll_map() instead
103 + Removed PMCs: slice, bound_nci, ref
104 + Removed Configure.pl option: --pmc
105 + Removed PMC union struct
108 - Reorganization and many improvements & additions
110 + Add a parrot-fuzzer
112 + Improve Debian/Ubuntu package
113 + various bugfixes, code cleanups, and coding standard fixes
118 + New user documentation for exceptions.
119 + Updates to Chapters 4 & 5 of the Parrot book.
120 + Improved and expanded generated HTML documentation, as the input for
121 http://docs.parrot.org.
122 + Added Compiled HTML Help (.chm) version of documentation.
123 + Cleanups and fixes.
126 - left the nest and is now at http://pynie.googlecode.com/
128 - left the nest and is now at http://github.com/cardinal
130 - left the nest and is now at http://paraplegic.googlecode.com/
131 + ABC, Squaak, and Befunge moved to examples/.
132 + All remaining languages moved to https://svn.parrot.org/languages/
134 + Support for language builds from an installed Parrot.
135 + Expanded language shell generator for new languages.
136 + 'parrotbug' utility repurposed for the Trac interface.
138 + Removed deprecated Tqueue and Closure PMCs.
139 + String, Key, NCI, LexPad, Iterator, Sub, Continuation, RetContinuation,
140 ExceptionHandler, ParrotLibrary, ParrotInterpreter, ParrotThread,
141 ParrotRunningThread, Rational, FixedPMCArray, ResizablePMCArray, and
142 GDBMHash PMCs now use declared attributes (ATTR), in place of the
148 + Support for portable 'Inf', 'NaN' and -0.0
149 + pbc_disassemble prints constants in constants table
150 + New experimental BigNum implementation
151 + Pair is now a dynamic loadable PMC
152 + Various function name sanification
153 + New implementation of Strings component
154 + Replace various PMC value union access code by VTABLE method invocations
155 + Replace various PMC value unions by ATTRibutes
156 + Removed SArray PMC. Use FixedPMCArray instead.
159 - updates to Chapter 2 (getting started)
160 - updates to Chapter 3 (PIR basics)
161 - updates to Chapter 4 (PIR subroutines)
162 - updates to Chapter 10 (HLLs)
163 - updates to Chapter 12 (opcodes)
164 + Function documentation
165 + Pod documentation style modernized; no longer Perl 5 style.
166 + PMC has an additional acronym: Poly Morphic Container
167 + The DOD (Dead Object Detection) acronym is no longer used;
168 use 'GC' to refer to the Garbage Collector component.
171 - :named flag can now take string registers as argument
172 - A single '=cut' directive is now ignored (without initial Pod directive)
173 - :vtable subs now have proper access to 'self' pseudo variable
175 + add new 'Pod' documentation parser
176 + Pipp (PHP implementation):
177 - Pipp is now at http://github.com/bschmalhofer/pipp
178 - support for 'print', 'dirname', 'implode', 'str_replace',
179 - various grammar fixes
181 + add 'quit', 'readline' builtins
182 + fix 'Boolean' type and 'print' builtin
184 - left the nest and is now at http://github.com/fperrad/lua/
186 - left the nest and is now at http://github.com/rakudo/rakudo/
187 - build instructions can be found at http://tinyurl.com/rakudo
189 - left the nest and is now at http://github.com/bschmalhofer/lazy-k.git
191 - left the nest and is now at http://github.com/bschmalhofer/unlambda/
193 - left the nest and is now at http://github.com/fperrad/wmlscript.git
194 + removed Zcode implementation
197 - ATTRs are now inherited automatically in subclassing PMCs
199 + Parrot_readbc, Parrot_loadbc renamed to Parrot_pbc_read, Parrot_pbc_load.
200 + .HLL_map directive in favour of 'hll_map' method on Parrot interpreter
201 + Data::Escape library
203 + pbc_disassemble options added
204 + pbc_dump renamed from pdump
206 + Parrot is now Copyright Parrot Foundation
207 + Parrot's SVN repository is now hosted at https://svn.parrot.org
208 + Various code cleanups, consting, 64-bit incompatibilities and other bug fixes
211 New in January 2009 release (0.9.0)
213 + Implemented bytecode annotations
214 + Role composition is now aware of multi-subs
215 + Unbuffered IO PMCs now autopromote when buffering is necessary
216 + Installation parrot binary and libparrot shared library now supported
217 + Class registry now respects HLLs
220 - removed keyed string indexing, e.g. $S0[1].
221 - removed slice syntax, e.g. $P0[1..2]
222 - removed .namespace <ident>/.endnamespace <ident> pair
223 - fixed 'new $P0, [classname]' syntax
225 - refactoring of various data structures
226 - various bug fixes and updates
227 - complete bytecode generation
228 - add '-x' commandline option to run compiled code
230 - add 'hll' and 'subid' attributes to PAST::Block
231 - refactor loop handling code to handle last/redo/next
232 - add :pasttype('stmts') and :pasttype('null')
233 - improve "scope not found" error message
234 - allow PAST::Val nodes to contain block references
236 - add "skipkey" option to PGE::OPTable
237 - allow spaces before modifiers in regexes
238 - add '(' ~ ')' goal matching syntax
239 - skip creating a class/grammar if it already exists
242 - improved error mesages in multi dispatch
243 - implemented clone method for all objects
244 - implemented MAIN sub
245 - Unicode versions of infix hyper operators
246 - refactored IO.readline
247 - basic support for Inf and NaN
248 - list and array slices with whatever star
250 - implemented last and redo
251 - pointy blocks as terms
252 - refactored variable and parameter passing
253 - improved assignment semantics
254 - improved parsing of type names and subs
255 - mostly implemented parametric roles
256 - separate types for blocks, subs and methods
257 - basic support for submethods
258 - implemented Junction autothreading of user code (not builtins yet)
259 - eval supports :lang attribute
260 - proto makes other subs in scope multis, including in role composition
262 - back to working state
265 - add support for predefined constant __CLASS__ and __METHOD__
266 - add initial support for static members
267 - add support for namespaced constants
268 - constants are now handled as package vars
269 - variables are now lexical variables
270 - add support for superglobals in functions
271 - Call the class __constructor when there is one
272 - added incomplete support for closures
273 - removed support for the alternative parsing strategies
274 - added support for 'elsif'
275 - added support for 'do-while'
277 - left the nest and is now at https://github.com/bschmalhofer/hq9plus/
279 - left the nest and is now at http://github.com/bschmalhofer/eclectus/
281 - left the nest and is now at http://github.com/bschmalhofer/m4/
283 - add a minimalist user back trace
285 - "does" and "morph" VTABLE interfaces are now overridable from PIR
288 - 'make smoke' now generates Smolder reports sent to
289 http://smolder.plusthree.com/app/public_projects/smoke_reports/8
290 + Improved const and null correctness for C function parameters
291 + Sped up STRING manipulation (append, chop), improving PGE about 30%
293 - Added sections about Classes, OO programming, and methods.
294 - Added information about Annotations, Exceptions, and Handlers
296 - Removed non-functional STM subsystem
301 + fixed lexical semantics
302 + added the 'capture_lex' opcode
303 + added automatic resume for nonfatal exceptions
304 + added multidispatch cache
305 + applied miscellaneous performance improvements, including startup time
306 + fixed several bugs and leaks found by Coverity Scan
307 + removed race conditions from parallel testing
310 - removed undocumented .param int <stringc> => <ident> syntax
311 - .line directive now only takes an integer argument
312 - new .file directive to specify the file name being compiled
314 - properly handles lexical generation and closure semantics
315 - uses :subid instead of name lookups to reference PAST::Block nodes
316 - added PAST::Control node type (exception handlers)
318 - add support for <?{{...}}> and <!{{...}}> assertions
319 - Match objects use Capture PMC instead of Capture_PIR
321 - add macro handling to PASM mode
322 - disable vanilla register allocation in PASM mode, but do allow optimization
323 - add tests and bug fixes
324 - first bits of bytecode generation. No sub calling/returning yet.
327 - fixed lexical handling and recursion
328 - refactored subtypes implementation
329 - support for quotes with multi-character delimiters
330 - implemented list slices (Positional role)
332 - reduction meta operators
333 - hyper meta operators
334 - cross meta operators
335 - more builtin functions
337 - basic support for protos
338 - iterator on filehandle objects
339 - basic support for exception handlers
342 - added complex & mathx libraries
343 - merged LuaClosure & LuaFunction PMC
345 - added support for a return value from user defined functions
346 - added incomplete implemention of 'require_once'
348 - parser fixes, parses spidermonkey's top level test/shell.js
350 + PARROT_API is now PARROT_EXPORT
352 - :lexid is now :subid
353 - .arg is now .set_arg
354 - .result is now .get_result
355 - .yield (in .begin/end_yield) is now .set_yield
356 - .return (in .begin/end_return) is now .set_return
357 - .namespace x / .endnamespace x syntax is removed
358 + Capture_PIR (runtime/parrot/library/Parrot/Capture_PIR.pir)
362 + added CPAN module Storable 2.12 as a configuration and build dependency
363 + removed the pseudo PIR opcode 'addr'
364 + added the 'box' opcode
365 + fixed 'pop_eh' handling in PIR libraries and examples
366 + removed usage of .return for tailcalls (use .tailcall instead)
367 + removed 'get_hash' and 'get_array' from Capture PMC and Capture_PIR
368 + improved debugger and HLL coordination
369 + allowed MMD primitive autoboxing
370 + fixed all known memory leaks in PIR "Hello, world!"
371 + NCI signatures now JITted on x86-32 platforms (Windows and Linux)
372 + made the .const directive take a quoted type name instead of a constant
373 + made IMCC more re-entrant
376 - refactored Junctions implementation
377 - added "fire and forget" tool to rebase/rebuild/test Parrot and Rakudo
378 - updated container/reference semantics
379 - added more builtin methods and functions
380 - improved support for multilevel namespaces
381 - added support for .Str, .succ, .pred in user-defined classes
382 - implemented pointy blocks on if/loops
383 - increased STD.pm convergence
385 - improved MMD candidate sorting
386 - improved integration of Num and Int
387 - implemented increment on protoobjects
388 - added initial support for MAIN subs
389 - added .PARROT method
391 - added some predefined constants
392 - added implemention of the function basename()
394 - Added initial support for the classes Proc, Continuation, Queue, Dir, File, and FileStat
395 - fixed various minor bugs
396 - fixed broken Regexes
399 - added '.isa' method to PCT::Node
400 - cleaned up 'immediate block' handling
401 - allowed arguments to immediate blocks in loops/conditionals
402 - metaclass objects can now 'add_method'
404 - integrated macro processing in PIRC's lexer
405 - integrated heredoc lexer in PIRC executable
406 - added preprocess and heredoc-preprocess commandline options
407 - integrated the PASM grammar into PIRC
408 - added a register allocator to optimize the built-in vanilla allocator
409 - code cleanups and documentation
410 - added 'make test' target
412 - updated to work with new namespace/classname syntax
414 + PARROT_API will become PARROT_EXPORT
415 + :lexid will become :subid
418 - updates and additions to the Parrot book (see docs/book/)
420 - minor fixes to Parrot's base OpenGL bindings
421 - converted OpenGL PIR examples to Perl 6 (two complete, one WIP)
422 - added simplified OpenGL PIR example for NCI JIT testing
424 - further improvements to parallel tests
425 - tests no longer leave filesystem breadcrumbs
426 - more thorough testing of Parrot::Test itself
430 + float precision expanded to 15 significant digits from 6
431 + large integers autopromoted in PIR so as not to lose precision
432 + improved precision of complex square root
433 + exception handlers can register types of exceptions they catch
436 - implemented gather, take, and yield builtins
437 - Range, Time, Math, GC, Kernel classes
439 - added a new committer
440 + Markdown : new lightweight markup language
441 - start implementation with PCT/NQP
443 - Moved to its own repository: http://code.google.com/p/partcl/
445 - split() works with regexes
446 - implemented Str.comb
447 - ord() and chr() builtins
448 - improved parsing of literal numbers
449 - support for hyphens and dashes in identifiers
450 - next() on for-loops
451 - fixed floating point constant precision
452 - improved namespace handling, closer to STD.pm model
453 - support for exporting symbols
456 - now generates classes in nested namespaces instead of :: names
457 - supports class creation in caller's HLL namespace
459 - now using true nested namespaces instead of :: names
460 - cleaned up HLLCompiler interactive prompts and readline mode
461 - updated to use typed exception handler registration
462 - added initial support for loop control exceptions
464 - fixed Heredoc preprocessor
465 - cleaned up Macro preprocessor
466 - many code clean-ups, warning fixes and consting
467 - updated Makefile for easier compilation
469 - Added .tailcall syntax to replace .return in tailcall context
472 - an old style line numbered Basic interpreter able to use parrot objects
473 - example connecting to mysql via nci
474 - example using classes to write and run an embedded Basic program
477 - Added chapters for PCT, PMCs, and Opcodes/Runcores
478 - Expanded and improved formatting in various chapters
479 - Renumbered chapters
484 + add -I and -L command line options
485 + support for null strings in NCI calls
486 + preliminary support for resumable exceptions
487 + add '.hll_map' method for dynamic HLL type mapping
488 + more parrot_debugger fixes
489 + remove obsolete '.past' extension
492 - now over 3300 passing spectests
493 - precompiled modules
494 - precompiled scripts (--target=pir can now be executed standalone)
495 - Support for @*INC and %*INC varialbes
496 - additional builtin methods and subs
497 - added 'fail' function, warnings on use of undefined values
499 - qq, qw, q quoting forms
500 - run tests in parallel
504 - 'require' and precompiled modules
506 - all Array tests pass
508 - default arguments to functions
512 - add :loadinit attribute for PAST::Block
514 - major refactoring to allow all PIR keywords as identifiers
515 - links to libparrot now, so all Parrot ops are recognized as such
516 - implemented .loadlib, .HLL_map, .HLL
518 + add Xlib and Mysql modules and test programs to NCI examples
519 + many updates and cleanups to PDD documents
523 + PDD27: add multisub lookup
525 + new concurrency implementation (see PDD25)
526 + Exception PMC now captures a return continuation
527 + improved PMC encapsulation (Iterator, Key, Pair)
531 - parsing improvements
532 - minor additions to class builtins
533 - add support for block parameters to functions
535 - various language fixes
536 - refactor all libraries (namespace, method registration)
537 - add a OpenGL binding (still incomplete)
538 - lost user back trace (see ppd25 & pushaction)
540 - add support for while- and for-loops
541 - add support for increment and decrement
542 - designate PHP 5.3 as the reference implementation
543 - improve support for string literals
545 - removed due to bit rot
547 - now over 2200 passing spectests
548 - updated the Rakudo roadmap
549 - Perl 6 multi dispatch
550 - dispatch with slurpies
551 - class attributes ("my $.x")
553 - OO and metaclass improvements (.WHAT, .WHICH, .WHENCE)
554 - additional builtin methods and subs
555 - improved make test targets and harness
557 - implement [lreverse], [lsort -command]
558 - allow [incr] to autovivify
559 - update tclsh spec target to 8.5.3
560 - fix bug in TclDict PMC, allowing ~200 more [dict] spec tests to pass
561 - update 'make spectest' fudging, using TODO instead of SKIP if possible
564 - :scope('register') for PAST::Var nodes
565 - allow invocant specification in attribute scope PAST::Var nodes
566 - correct ordering of sub generation from POST
567 - add 'loadinit' attribute to PAST::Block for block initialization
569 - PIR registers now use the vanilla register allocator
570 - all PASM output now uses PASM registers
571 - all .locals and $registers are mapped
572 - clean-up of grammar, back-end and documentation
573 - implemented constant folding
574 - implemented instruction selection
576 + tests now clean up after themselves
577 + improved parallel test support
579 + Darwin problems fixed
581 + parrot_debugger renamed from pdb, numerous tweaks
584 + :vtable implies self in PIR
585 + modest core speed improvements
586 + Cygwin support improved
587 + "say" now an opcode (was dispatched to a method; see Deprecations)
589 + ".pragma n_operators" is deprecated
590 + old PASM register syntax (without "$") is deprecated
591 + bare (unquoted) method names are deprecated
592 + "#line" will be replaced with ".line"
593 + ".HLL_map" syntax will change
594 + ".loadlib" is now separate from ".HLL"
595 + mmdvtregister and mmdvtablefind opcodes are deprecated
596 + removed getfd, getclass opcodes
597 + removed IMCC syntax that treated some methods as builtins
598 + removed numeric get_attr and set_attr vtable entries
602 + removed a lot of old information from the FAQ
603 + improved function level documentation
605 + removed the configuration item 'has_gnu_m4'
606 + refactored ICU-detection
609 - improved the Smalltalk implementation
611 - renamed Plumhead to Pipp
612 - support for a lot of builtin functions.
613 - Pipp now uses PHP specific data types.
614 - converted from PCT with TGE to PCT with NQP actions
615 - improvements in the PCT variant by using optok parsing
616 - start of object support
618 - simple assignments work
620 - added a PCT-based implementation of JSON parsing
622 - improved handling of symbols
623 - added support for block handling
624 - added support for globals
628 - updated Range implementation
630 - added generic type declarations (::T)
631 - added runtime mixing of roles with 'does' and 'but'
632 - fixed handling of implicit lexicals ($_, $!, and $/)
633 - fixed implicit method calls on $_
634 - improved complex math builtins, added Complex
635 - moved many builtins to class Any
636 - declaration of lists of variables now work
637 - improved test infrastructure
638 - 910 additional passing spec tests since last release
639 - more convergence with STD.pm grammar
640 - added named 0-ary parsing and ops
643 - allowed subroutine and method names to be a PAST tree that produces the name
644 - Improved lexical handling
646 + pbc_disassemble renamed from disassemble
648 + allowed .macro_const in PIR
649 + added the flag :lexid(...) for subroutines
650 + made multiple dispatch work for sub types
651 + fixed garbage collection bug related to the metadata attached to a PMC_EXT structure
652 + added a warning when using deprecated opcodes
653 + simplified the stacks implementation
655 + improved closure and lexical support
656 + improved IMCC register allocator
657 + added cache for all runtime-constant strings, reducing memory usage
659 + improved OpenGL/GLU/GLUT bindings
660 + added a standard profile for Perl::Critic coding standard testing
661 + added support for smoke testing with Smolder
662 + enabled use of Test::Harness 3.0 if available, but don't require it for 'make test'
663 + added the executable 'parrot_config' to query Parrot configuration
667 + updated pdd09_gc.pod
670 - dramatically improved parsing speed
671 - added support for defining and instantiating classes
672 - started fleshing out the builtin class hierarchy
673 - added support for hashes and arrays
674 + Chitchat: added the start of a smalltalk compiler
675 + Pheme: updated to match PGE changes
676 + Pynie: return statement, other minor updates
678 - added working list and hash contexts
679 - added 'return' statements
680 - added => pair constructor
681 - added ?? !! ternary
682 - added Range, range operators, Complex
683 - added common List, Hash methods
684 - refactored base classes
685 - added Mutable, Perl6Scalar classes
686 - added type-checking, is readonly/rw/copy for parameters
687 - added make localtest, docs/spectest-progress.csv
689 + Squaak: implement return statement
690 + Tcl: updated control flow exceptions to use new builtin types
692 + All tools converted to P6object metamodel
694 - <?foo> is now a zero-width match
695 - reduced backtracking to improve parsing speed
697 - added "return" PAST.op node type for subroutine returns
698 - added "keyed_int" scoping to PAST::Var
699 - fixed calls to closures
700 - automatically transcode 7-bit unicode to ascii for faster processing
701 + NQP: added "return" statement, ?? !! ternary operator
703 + expanded step gen::opengl
705 + updated function and macro names to match pdd09_gc.pod
707 + add ".namespace []" as alternative to ".namespace"
708 + "make codetest" target runs standard coding tests
710 + added P6object class for Perl 6 interfaces to objects in Parrot
711 + ported OpenGL/GLU/GLUT bindings to Win32, BSD, and more Mac OS X variants
712 + generate OpenGL/GLU/GLUT bindings by parsing system headers
713 + new OpenGL example shapes.pir, covering basic OpenGL 1.1 / GLUT 3 APIs
714 + new float4.pir structure-packing benchmark
715 + reduced memory use for variables
716 + improved constant string caching
717 + made code g++ and gcc (with optimizations) safe
718 + the usual collection of bugfixes and optimizations
722 + updated and launched pdd28_strings.pod
723 + updated pdd19_pir.pod
725 + added implementation of Rational PMC.
726 + simplified ops control flow syntax
727 + enabled backtrace on non-glibc platforms too
728 + improved some PIR error reporting
729 + removed user stack opcodes
730 (save, restore, lookback, entrytype, depth, rotate_up)
731 (NOTE: This was scheduled to occur after 0.7.0, moved up to this release)
732 + removed register stack, saveall, and restoreall opcodes
733 + removed various deprecated features and unused code
736 + C99: grammar updated
737 + Cardinal: resurrected, method calls and do blocks work now
738 + Eclectus: use NQP as PAST generating code
740 - added big number library
741 - updated to match PGE changes
742 - added a bytecode disassembler & a Lua 5.1 VM bytecode translator
743 + Pheme: updated to match PGE/PCT changes
745 - use NQP as PAST generating code
746 - use riaxpander for macro expansion
749 - conditional and loop statement modifiers
750 - lots of class, object, role, and method improvements
751 - Str increment and decrement
752 - improved spectest reporting
753 - type checking on assignment
754 - regexes and grammars
758 + Squaak: added to repository
761 + PGE: updated to match Synopsis 5, deprecated features removed
763 - improve handling of register types, conversion between registers
764 - improved error diagnostics
765 - add 'arity' to for loops
767 + added step auto::opengl
768 + added step gen::opengl
769 + added step gen::call_list
771 + still more optimizations and performance improvements, especially in GC
772 + new libraries: OpenGL/GLU/GLUT bindings (small subset working)
773 + new dump_pbc.pl utility: PBC disassembly/source code weaver
774 + improved C++ compiler support
775 + optimized builds work again
780 + drafted pdd29_compiler_tools.pod
781 + updated pdd28_character_sets.pod draft
782 + updated pdd19_pir.pod draft
784 + c99: added independent C pre-processor
785 + HQ9+: reimplemented with PCT
787 . reimplementation with PCT, using PAST and POST
788 . behavior aligned wih 5.1.3
790 . implemented basic I/O, including '$*IN', '$*OUT', '$*ERR', 'prefix:='
791 . implemented simple typing and runtime type checking
792 . added basic multi-method dispatch
793 . expanded named argument handling, including Pair and colonpairs
794 . added 'Whatever' and 'Capture' classes
795 . implemented 'handles' trait verb
796 . added 'loop' statement
797 . implemented 'given', 'when', 'for', 'while', 'until' statement modifiers
798 . implemented Hash methods '.keys' and '.values'
799 . fixed bug to get '.WHAT' working correctly
800 . initial implementation of 'eval'
803 . created a bootstrapped build, see 'make boot'
804 . added 'infix:<', 'infix:<=', 'infix:>', 'infix:>=' relational operators
805 . added 'postfix:++', 'postfix:--' operators
807 . added methods specifying default behaviors in PAST, reducing repeated code
808 . improved symbol table lookup
810 . removed deprecated code including: P6Regex, P6Grammar, PAST-pm
812 + notable speedups during compilation and execution of parrot and HLLs
813 + pdb (the parrot debugger) can now catch parrot exceptions
814 + better detection of glibc and gettext during configuration
815 + various bugfixes, code cleanups, deprecations, and coding standard fixes
820 + launched pdd18_security.pod
821 + updated pdd17_pmc.pod
822 + launching draft of pdd28_character_sets.pod
824 + cleanup of IMCC documentation
826 + add step auto::gettext
827 + add step auto::crypto
831 . Phase out P6Regex in favor of Perl6Regex
833 '.local Array my_arr' is illegal now
835 + C99: reimplementation with PCT
838 . add support for functions with params
842 . first cut at smart matching
843 . indirect method calls
845 . added methods 'grep' and 'first'
846 . implement auto{increment,decrement}
847 . initial implementation of 'perl6doc'
851 + Cardinal: basic support for functions with parameters
852 + Pheme: various updates
853 + Ecmascript: various updates
854 + Tcl: now targeting tcl 8.5.1, no more expected failures in test suite.
855 (No, this doesn't mean everything's implemented. =-)
856 + Eclectus: various updates
857 + WMLScript: various updates
860 + Add library YAML::Dumper
861 + Add the MD2, MD4, MD5, RIPEMD160, SHA & SHA1 PMC, as a wrapper
864 + various bugfixes, code cleanups and coding standard fixes
866 + remove external Perl 5 modules from the Parrot distribution
870 + PDD09 (garbage collection) - approved
871 + PDD28 (character sets) - draft started
872 + added function documentation to some core functions
873 + PCT beginners guide, optable guide and PAST nodes guide, bug fixes
875 + IMCC: plugged various memory leaks and other cleanups
877 . add "attribute" as a scope variant to PAST::Var nodes
878 . add 'shift' and 'pop' methods to PAST:: nodes
879 + NQP: add '=:=' op, tests for scalar and list contextualizers, \x escapes
881 + APL: reimplementation with PCT
882 + Cardinal (Ruby): reimplemention with PCT
883 + Ecmascript: reimplementation with PCT
884 + lolcode: improved expression parsing, ifthen, IT, YARN
886 . aligned with Lua official release 5.1.3.
887 . added initial PCT-based implementation.
888 + Punie (Perl 1): refactor to use standard PCT-based filenames
889 + Pynie (Python): add functions
891 . rebranded, formerly known as 'perl6'
892 . passes many more official Perl 6 Specification tests
893 . added 'perl6doc' utility
894 . oo including meta?classes, objects, methods, attributes, role composition
895 . match variables, while/until statements, traits
896 . many new methods for Str, List, Hash, Junction
899 + PCCINVOKE syntax for named arguments using []; use () instead.
900 + see DEPRECATED.pod for details
902 + pbc_to_exe refactored for code reduction, portability, and maintainability
904 + #line directives added to generated JIT files, improving debugging
905 + consting, attribute marking, refactoring, warnings cleanup
909 + PDD27 (multiple dispatch) - debut of new design
910 + Numerous small updates to glossary.pod, etc
912 + NQP: optional, named, and named/required parameters
916 + New mk_language_shell.pl script creates language stubs
919 + Eclectus: start with support for local variables and procedures,
920 use SXML as intermediate representation
921 + Perl 6: list builtins, compiler directives, command-line options, etc.
922 + "make perl6" now builds a Perl 6 executable
923 + punie: more builtins, control structures, code refactoring
924 + pynie: builtin stubs, more tests
926 + New "pbc_to_exe" utility turns bytecode to executables
927 + New set_outer method for subs
928 + Further configuration refactoring for testability
929 + All functions now completely headerized
930 + Concurrency: interpreter schedulers
932 + DYNSELF (changes to SELF; SELF to STATICSELF)
933 + METHOD (replaced by renaming PCCMETHOD)
934 + pmcinfo op (superseded by 'inspect')
935 + get_attr, set_attr, and 8 other vtable methods
936 + See DEPRECATED.pod for details
939 + Minor speed enhancements with UTF-8 string handling
941 + consting, attribute marking, warnings cleanup, memory leaks plugged ...
945 + PDD19 (PIR) - reflect state on the ground; incorporate old IMCC docs
946 + PDD25 (Concurrency) - launch out of draft
947 + Improve documentation of deprecated parrot features.
949 + PCT: Parrot Compiler Toolkit redesigned and updated
950 + NQP: major updates, including support for namespaces,
951 module/class declarations, methods
952 + IMCC: remove .sym as alias for .local. Remove .pcc_
953 prefix for calling directives (.pcc_begin became .begin_call).
954 + PIRC: creates an AST during the parse.
955 + PGE: more updates to match S05 syntax.
957 + perl6: re-implemented using PCT and NQP, new object subsystem
958 + abc: re-implemented using PCT and NQP
959 + eclectus: initial implementation
960 + plumhead: add PCT variant
961 + punie: re-implemented using PCT and NQP, extended to handle subroutines
962 Happy 20th Birthday, Perl!
963 + pynie: re-implemented using PCT and NQP
964 + PIR: start conversion to NQP (under construction)
966 + new opcodes: 'die', 'addhandler', 'copy'
967 + Initial implementation of Concurrency PDD
968 + Add 'arity' method to Sub and NCI PMCs
971 + consting, attribute marking, warnings cleanup, memory leaks, GC...
972 + dead code removal (includes some defunct languages)
976 + PDD15 (OO) branch merged with trunk; this release contains a working,
977 tested implementation of the latest OO model
978 + Added pop_eh/push_eh_p/count_eh opcodes
979 + Add --runcore command line option
980 + Add gcdebug runcore to help track down GC bugs
981 + minor improvements to IA-32 JIT
983 + PDD19 (PIR): updates to macros, .pcc* directives
984 + PDD25 (Concurrency): updated
985 + PDD26 (AST): draft approved
986 + PDD23 (Exceptions): draft approved
988 - Languages/Compilers
989 + languages/APL: minor updates, PDD15 conformance
990 + languages/dotnet: minor updates
991 + languages/lua: minor updates, PDD15 conformance
992 + languages/lisp: minor updates
993 + languages/perl6: minor updates, PDD15 conformance
994 + languages/plumhead: minor updates
995 + languages/punie: minor updates, PDD15 conformance
996 + languages/nqp: minor updates
997 + languages/scheme: many updates, PDD15 conformance, improved tests, use
998 PMCs instead of primitive registers to represent values
999 + languages/tcl: bugfixes, PDD15 conformance
1000 + languages/WMLScript: minor updates
1001 + compilers/pirc: updates from PDD19, PDD06
1002 + compilers/pct: minor updates, PDD15 conformance
1003 + compilers/pge: PDD15 conformance
1004 + compilers/tge: PDD15 conformance
1006 + Improve test coverage
1007 + Improve reporting when a step fails; allow abort on failure
1009 + More coding standard conformance, tests, cleanup, speedups,
1011 + Bug cleanup, esp. GC bugs
1012 + Eliminate .imc extension (use .pir)
1013 + Simplify some core config steps to not allow interactive prompting
1019 + Bug fixes (including Coverity IDs 20, 22, 30, 119-122, 124-126, 129-131)
1020 Also various GC, memory, and segfault issues
1021 + Fix & reenable CGP core
1022 + Parrot's -r flag now works again (compile to and execute bytecode)
1023 + Updates to pmc2c & PIR syntaxes
1025 + Minor performance improvements, especially in PGE
1027 + PDD02 "Vtables" - superceded by PDD17
1028 + PDD06 "PASM" - minor updates
1029 + PDD17 "PMC" - add VTABLE syntax, update core PMC struct, restore UnionVal
1030 + PDD19 "PIR" - early review started
1031 + PDD21 "Namespaces" - cleanup
1032 + PDD24 "Events" - draft approved
1033 + PDD25 "Concurrency" - minor updates
1034 + PDD26 "AST" - draft version begun
1035 + PIR tutorials updated
1036 - Languages/Compilers
1037 + Make scheme work with the current calling conventions, other major work.
1038 + Updates to m4, lua, compilers/pirc, languages/PIR, dotnet, tcl
1040 + make -j functional again
1041 + Code cleanup (refactoring, optimizations)
1045 + Performed code review on every PMC
1046 + Modified PMC code generation to use Storable, reducing compile times
1047 + Added a makefile target to generate test coverage data of C sources
1049 + NQP: added lists, for loops, operators, comparison and multiplicative operators
1050 + Announced Kea-CL, Kea Common Lisp, an ANSI Common Lisp implementation
1051 The repository is available at https://rgrjr.dyndns.org/svn/kea-cl/trunk/
1053 + PDD17 "PMCs" - draft approved, the design is complete
1054 + Added more PIR tutorials, see examples/tutorial/00_README.pod
1056 + Many bugfixes, enhancements, documentation, and coding standard updates
1057 + Deprecated PMC constants and other crufty syntax, see DEPRECATED.pod
1058 + Improved icc compiler compatibility for error line reporting
1062 + Lots of code review, many bugs fixed
1063 + Many more code cleanups and compiler warning levels
1064 + Started a new jit engine for 64-bit processors
1065 + Refactored configure process, with tests and new diagnostic options
1066 + Added new CodeString PMC for dynamic generation of PIR code
1067 + More pdd15 support for object metamodel.
1069 + Added NQP ("Not Quite Perl"), a very lightweight Perl 6-like language
1070 + Significant improvements and refactors to PCT (Parrot Compiler Toolkit)
1071 + perl6 passes more spec tests
1072 + Lua works now with a PGE/TGE/PAST-pm based compiler, lives in one pbc,
1073 and the interpreter has same behavior as original.
1075 + Added a committers' HOWTO
1076 + More PIR tutorial examples
1080 - Now, with Seat Belts!
1081 + added makefile targets for Sun lint, BSD lint, and splint
1082 + corrected many errors picked up by these tools
1083 + decorated source code with compiler hints, assertions, and attribute macros
1084 + automated creation of function declarations to prevent common errors
1085 + increased compiler warnings levels
1086 + converted more exceptions to a recoverable form
1088 + updated Lisp, Lua, Perl 6, tcl, regex, Scheme ("Pheme")
1089 + Perl 6 now fetches selected tests from pugs, and even passes some
1090 + PGE modified to handle {*} action subs for top-down and bottom-up parsers,
1091 and to allow grammar subclassing
1092 + HLLCompiler now has better exception, eval, and exit support
1093 + Introduced PCT, a refactor of HLLCompiler and PAST-pm
1095 + PDD15 "Objects" - details added to 'new' and 'getattribute' opcodes
1096 + PDD17 "PMCs" - notes added on instantiation and dynamic extention in PIR
1098 + added Parrot-related text from "Perl 6 and Parrot Essentials" book,
1099 tutorial examples from "Learning PIR" talk, and PDD15 metamodel diagrams
1101 + reduced memory footprint when using named registers
1102 + implemented overridding of vtable methods by PDD15 classes
1103 + improved PDD15 support for 'new', 'instantiate', and others
1104 + added makefile targets to ease core and HLL makefile regeneration
1105 + updated parrot dubugger, "pdb", to allow loading of commands from file
1107 + many bugfixes, enhancements, documentation, and coding standard updates
1111 + Updated Lisp, Lua, PHP ("Plumhead"), Python ("Pynie"), ABC,
1112 WMLScript, and Tcl ("ParTcl").
1113 + Perl 6 passes all of the sanity tests.
1114 + PGE supports latest Perl 6 grammar syntax. Perl 6, Python
1115 ("Pynie"), and ABC parsers updated to match.
1116 + Updated PHP ("Plumhead") to Antlr 3.0.
1117 + Lua added the beginnings of a PGE/TGE based compiler (not yet
1118 replacing the Perl/Yapp compiler).
1119 + Lisp updated for current features, added a test suite.
1120 - Core Implementation:
1121 + Filled in features and backward compatibility for PDD 15 objects.
1122 New object metamodel passes 85% of old test suite.
1123 + GCC API symbols are visible externally only when explicitly exported.
1124 + Added generated GCC compiler attributes to increase warnings, and
1125 cleaned up resulting warnings.
1126 + Code cleanup efforts and fixed memory leaks by the cage cleaners,
1127 resulting in notable speed increases.
1129 + Updated Parrot distribution to Artistic License 2.0, from dual
1130 Artistic 1/GPL license.
1131 + SDL examples brought up-to-date with current features.
1135 + even more refactorings and improvements in configuration system
1136 + improved tests and documentation for configuration system
1138 + Updated abc, PHP ("Plumhead"), Lua, Tcl
1141 + new PMC PDD draft partially completed
1143 + continued implementation of PDD 15 (Objects)
1144 + minor garbage collector and memory management improvements
1145 + several memory leaks resolved
1146 + extended support for compilers other than GCC
1147 + improved C++ compiler compatibility
1148 + enhanced support for Solaris, non-MSVC Win32, and other platforms
1153 + IMCC: added documentation for C-based Parrot Calling Conventions,
1154 refactorings and bug fixes
1155 + PGE: new perl6regex front end reflecting recent S05 syntax changes
1156 + PIRC: new prototype PIR parser
1158 + Updated Lua, PHP ("Plumhead"), BASIC, pynie
1159 + Lua implements environment
1161 + PDD15 "Objects" - details added, and draft approved
1163 + Added guidelines for PMC documentation
1165 + PDD15 implementation is largely complete, including role-based composition,
1166 introspection, and C3 method resolution order
1167 + new Exporter PMC for importing globals between namespaces
1168 + new string utilities for radix conversion
1169 + PCCINVOKE and Parrot_PCCINVOKE allow calling using the full Parrot Calling
1170 Conventions from PMCs and C code respectively
1172 + Refactorings and improvements in test coverage for 'Configure.pl'
1174 + many bugfixes, enhancements, and code cleanup
1175 + added example subversion config file
1176 + extended support for gcc, icc, and other compilers
1177 + extended support for Solaris and other platforms
1183 + IMCC: Parrot calling conventions now available between two C PMCs (PMINVOKE)
1184 + PGE: Match object improvements
1185 + smop: added Attribute and Class PMCs
1186 + HLLCompiler: improvements for interactive mode
1188 + extended binding to a list of variables
1190 + Updated Lua, PHP ("Plumhead"), Tcl ("ParTcl"), Ruby ("Cardinal")
1191 + Update PIR, regex, Zcode
1192 + New language: Pynie - a Python compiler for Parrot
1193 + Lua implements require and many other ops, improved regex support
1196 + PDD01 "Overview" - updated architecture and platform information
1197 + PDD15 "Objects" - details on roles, objects, and classes added
1198 + PDD22 "I/O" - added async ops and Status PMC details
1200 + Added guides for Metacommitter, Relase Manager, and Cage Cleaner roles
1202 + Object, Class, Role, and Attribute PMC implementation has begun
1203 + Perl 5 module "Parrot::Embed" now compiles and links on all platforms
1205 + Major improvements in test coverage for 'ops2c.pl'
1207 + New utility: Crow, a template processor
1208 + New library module: Config/JSON for reading/writing JSON files
1209 + many bugfixes, enhancements, and coding standard updates, code cleanup
1214 + IMCC: Parrot calling conventions now available in C PMCs, allowing
1215 named, optional, slurpy, and flat parameter passing
1216 + PGE: extended support for Perl 5 Regexes
1217 + smop: prototype object model implementation
1218 + hllcompiler: refactored to run a configurable set of compilation stages
1220 + redesigned assign/binding to support Perl 6 binding semantics
1222 + Updated Lua, PHP ("Plumhead"), Tcl ("ParTcl"), perl6, perl5
1223 + New language: PIR - a PGE-based implementation of Parrot PIR
1224 + perl6 now supports binding (':=') and 'join'
1225 + lua generates tail calls, and supports its own regex flavor (PGE-based)
1226 + Pheme still works, huzzah!
1228 + PDD21 "Objects" - rewritten
1229 + PDD22 "I/O" - updated and 'TODO' tests added
1231 + Interface stability classification standards approved
1232 + Roles and Responsibilities documented approved
1233 + Official 'drafts' directory created (was 'clip')
1235 + More NameSpace and OS PMC methods implemented
1236 + Parrot executable fullname and basename now available in PIR/PASM code
1237 + new 'chomp' library function
1239 + Major improvements in test coverage for 'ops2pm.pl'
1241 + many bugfixes, enhancements, and coding standard updates
1242 + extended support for Sun Workshop Compilers
1243 + Parrot now builds on PocketPC platform
1248 + HLLCompiler: added tracing options, modified api
1249 + PGE & TGE bugfixes and updates
1251 + added global and lexical variable support
1252 + added looping constructs, arrays, hashes
1254 + Updated PHP ("Plumhead"), Tcl ("ParTcl"),
1255 forth, perl6, lua, abc, APL, WMLScript, punie
1256 + ParTcl is passing > 24.9% of Tcl cvs-latest test suite
1257 + perl6 now supports hashes, arrays, method calls, arity-based
1258 multisubs, quoted terms, ranges (non-lazy), try blocks, $!
1260 + PDD01 "Overview" - updated
1261 + PDD22 "I/O" - rewritten and approved
1263 + Converted Perl 5 Regex tests to PIR, with notable speedup
1264 + Added tests for opcodes, compilers, languages, and coding standards
1266 + Major improvements in test coverage for 'pmc2c.pl'
1268 + many bugfixes, enhancements, and coding standard updates
1269 + extended support for non-core platforms including Cygwin, Tru64
1273 - New languages: PHP ("Plumhead"), Forth
1274 - Updated languages: Ruby ("Cardinal"), Tcl, Lua
1275 - Remove old Python implementation from Parrot repository; the new Python
1276 language code is hosted at http://pirate.tangentcode.com
1278 + PGE updated with more expressions, latest changes to S05
1279 + new Perl 6 grammar compiler
1281 + Perl 5 module "Parrot::Embed" allows easy embedding of a Parrot
1282 runtime into a Perl 5 program
1284 + new :init pragma for subs that must run before the main function
1285 + new :vtable pragma to identify subs that override PMC vtable methods,
1286 eliminating the need for special subroutine names
1287 + PIR parser/compiler does not stop on first syntax error
1288 + Vanilla register allocator ("register alligator") greatly improves
1289 performance compiling large functions
1290 + Eliminated limit on number of PIR macros
1292 + hash lookups return null instead of None for missing keys
1294 + PDD13 "Bytecode files: format and manipulation" - new
1295 + PDD10 "Embedding" - new
1296 + PDD25 "Concurrency" - rewritten
1297 + PDD15 "Objects" - new section on redesign requirements
1298 + PDD07 "Coding standards" - significant updates and automated tests
1300 + Many many more new tests
1302 + autoconf compatible install options
1304 + Namespace refinements
1305 + Coroutine improvements
1306 + An impressive swarm of other bugfixes and enhancements
1310 - New languages: Ruby ("Cardinal"), Javascript ("ecmascript")
1311 - Updated languages: Tcl, dotnet, bc, Pheme, Punie, WMLScript
1312 - Updated compilers: PGE, TGE
1314 + ".loadlib" directive expresses dependencies
1315 + ".namespace" with no parameter goes to HLL root
1316 + lexer is reentrant (reentrant grammar in progress)
1317 - Namespace improvements:
1318 + new suite of opcodes to access namespaces and globals
1319 ("find_global" and "store_global" will be phased out)
1320 + namespace '' no longer means HLL root
1321 - Design document updates:
1322 namespaces (pdd23), basic types (pdd17), embedding
1323 - Updated tool requirements for developers:
1324 flex 2.5.33, bison 2.1, perl 5.6.1
1325 - New to-do list for people new to Parrot:
1327 - The usual plethora of bugfixes and enhancements
1331 - unicode subroutine names
1332 - hierarchical class names finished including MMD support
1333 - new dotnet CLI to PIR translator
1334 - improved TGE code and compiler
1335 - APL: vector handling
1336 - new STM branch in the svn repository
1337 - the usual bugfixes and enhancements
1341 - hierarchical class names
1344 - understands simple vector ops, strings
1345 - demonstrates use of Unicode in Parrot
1346 - pgc, a compiler for rules and operator precedence parsers
1347 - Major redesign and improvements for PGE
1348 - compilers understand named parameter options
1349 - :ratchet option implemented to support non-backtracking quantifiers
1350 - TGE (tree grammar engine) for tree transformations
1351 - tgc, tree grammar compiler
1353 - support for many operators, lexical scalars, regex matches
1354 - new pheme (Parrot scheme) compiler
1358 - namespaces partially implemented
1359 - rulec, Perl 6 rule compiler
1360 - PGE improvements including return values for closure
1361 - parts of a Perl 6 parser based on PGE
1362 - complex trigonometric methods
1363 - type of Sub PMC is now overridable by HLL
1365 - many bug fixes and improvements
1369 - improved PPC and x86 JIT support including JIT compilation
1370 of very simple PASM/PIR subroutines
1371 - preliminary libreadline support
1372 - better trace and debug features
1374 - META.yml to support proper indexing on CPAN
1375 - new opcode: hcf (in "my_ops" in dynamic op library)
1376 - new File pmc for file specific ops (is_dir, is_file, copy, rename...)
1377 - named arguments and parameters (both :named("") and => syntaxes)
1378 - ongoing config improvements
1379 - tons of bug fixes and other small improvements - too much to list all
1383 - Installation: 'make install' is using standard locations now
1384 (/usr/local is the default --prefix)
1385 - Produce static and shared libraries on some systems
1386 - Configure system rearragement
1387 - OS pmc started (mkdir,cd,cwd,rm,umask,stat)
1389 - Test files are now testable with 'prove'
1390 - Smoke (and smokej) outputs progress
1391 - PIR supports: I = A < B (>,<=,>=,==,!=)
1392 - Add support for octal number constants
1394 - almost finish [string]; start [file]
1395 - add build tool for generating inline'd tcl builtins from templates.
1396 - Jako updates: NCI, subroutines, global variables and constants all work.
1401 - New lexical handling and closure support including better
1402 introspection for caller and outer
1403 - PGE (Parrot Grammar Engine) provides now compilers for P6Rule,
1404 P6Grammar, P5Regexp, and Glob
1405 - ca. 1000 new tests including 800 for Perl5 regexp
1406 - Improved unicode charset and encoding support
1407 - Calling conventions for exception handlers
1408 - Punie (Perl 1) uses TGE (Tree Grammar Engine) to convert from
1409 PGE match objects to AST via two steps of tree transformation grammars
1410 - New languages: amber and lua
1411 - The usual code fixes, cleanup, and improvements, including an overhaul
1412 of the config and test framework
1416 - Variable sized register frames are finished. Each subroutine gets
1417 the amount of registers that it actually needs. No more spilling.
1418 - Vastly improved PGE (Parrot Grammar Engine) including shift-reduce,
1419 precedence-based expression parser and support for matching of
1420 bracketed text delimited by e.g. ()[]{}'"
1421 - uniccode character classification (is_upper ...)
1422 - support for heredoc syntax in assembler
1423 - improved examples, basic JSON support
1424 - debian packaging support
1425 - the usual improvements, bug fixes, and cleanup
1426 - test count exceeds 3000
1430 - New calling conventions implemented: see PDD03 for details
1431 - Merge multiple Parrot bytecode (PBC) files into a singe PBC file
1432 - 'make smoke' target going beta
1433 - bc now supports if statements, comparison ops, prefix inc/dec
1434 - ParTcl adds [lassign], [switch] (partially); [expr] converted to a compiler
1435 - Many exciting doc updates, tests, and bugfixes, too numerous to mention
1439 - Dynamic classes now compile on Windows (including ParTcl)
1440 - New Super PMC allows easy access to superclass methods
1441 - Implement C3 method resolution order (just like Perl 6 & Python)
1442 - ParTcl has new PIR-based parser and passes more Tcl tests
1443 - added character class support in Globs to PGE
1444 - added language implementations of unlambda, Lazy-k
1445 - many bugfixes, including GC and memory leaks
1446 - the new calling scheme continued to evolve in branches/leo-ctx5
1450 - new call scheme: docs/pdds/pdd03_calling_conventions.pod
1451 - partial implementation of the new calling conventions
1452 PASM only, don't mix PIR foo() call syntax with the new scheme
1453 - grammar and rule support in PGE - the Parrot Grammar Engine
1454 - TCL passes >10% of the tcl test suite
1455 - the usual bugfixes and improvements
1459 - better HLL support (short names for object attributes, and
1460 .HLL and n_operators pragmas)
1461 - string encoding and charset can now be set independently
1462 - experimental mmap IO layer for slurping files
1463 - distinct debug and trace flag settings
1464 - glob support in PGE
1465 - new character classification opcodes and interfaces
1469 - parrot repository is now under subversion
1470 - MMD (Multi Method Dispatch) enhanced
1471 - new unary and infix opcodes that return new result PMCs
1472 - dynamic scalar PMCs inherit now almost all from Parrot core PMCs
1473 - more unification of PMCs and ParrotObjects
1474 - tailcalls for functions and methods
1475 - PGE (Parrot Grammar Engine) reworked
1476 - Pugs creates Parrot code and Pugs is a registered compiler now
1477 - new languages/lisp
1478 - the usual bug fixes and improvements
1482 - New string handling code. Strings now have charset and encoding
1483 - Parts of a generation garbage collector
1484 - Better Python code, separated in dynclasses
1485 - Parrot Grammar Engine
1486 - Improved test coverage and documentation
1490 Parrot 0.1.1 is an intermediate release with tons of updates and fixes.
1491 - Python support: Parrot runs 4/7 of the pie-thon test suite
1492 - Better OS support: more platforms, compiler, OS functions
1493 - Improved PIR syntax for method calls and <op>= assignment
1494 - Dynamic loading reworked including a "make install" target
1495 - MMD - multi method dispatch for binary vtable methods
1496 - Library improvement and cleanup
1497 - BigInt, Complex, *Array, Slice, Enumerate, None PMC classes
1498 - IA64 and hppa JIT support
1499 - Tons of fixes, improvements, new tests, and documentation updates.
1500 A lot is unfinished and keeps changing. Nethertheless Parrot is stable
1501 and usable at the surface, while internals are moving.
1504 - "Ladies and gentlemen, I give you... objects!"
1505 - Huge documentation overhaul
1506 - More supported platforms, s. PLATFORMS
1507 - Basic thread support for pthread based architectures
1508 - Basic event handling for timers and signals including:
1509 - PASM callbacks for NCI (native C) functions.
1510 - Improved platform configuration
1511 - COW stacks now working, stacks code redone
1512 - Structure handling vastly improved
1513 - Random PMC and rand primitives
1514 - Better subroutine call syntax in PIR
1515 - Make PIR subroutines compliant with pdd03
1516 - Improved profiling (DOD, GC timings)
1517 - Hash code improvements, incl. random key order support
1518 - Experimental freeze/thaw code for some PMC types
1519 - IO improvements for buffered layer and Win32
1521 - String bitwise vtables
1523 - Support for JIT, where malloced memory isn't executable
1524 - Priority DOD scheme for objects that need timely destruction
1525 - Improved byte code loading (e.g. onLoad functions)
1526 - Language updates: forth, Perl 6/P6C, m4
1527 - Libraries: Getopt_Long, SDL, Dumper, Sort
1529 - Unified imcc and parrot test handling
1530 - Many new tests (make test reports 1386 tests)
1531 - Numerous bug fixes
1534 - The Big Move: Parrot source and build files rearranged into sub dirs
1535 - Build imcc as parrot
1536 - Objects more finished
1537 - Delegate vtable methods to byte code
1538 - Binary multi-method dispatching
1539 - Isa and does methods for PMCs
1540 - Call byte code from C
1541 - Start of extension interface
1542 - Experimental struct handling
1543 - Catch access to NULL PMCs
1544 - Experimental network socket interface code and opcodes
1545 - IO fixes and improvements
1546 - Dynamic opcode libraries
1547 - Fix-assigned opcode numbers
1548 - Argument flattening for function calls
1549 - More native call interface (NCI) signatures
1550 - Ncurses, postgres, and pcre interface libraries
1551 - Forth language is vastly improved
1552 - BSD and Win32 build improvements
1553 - Many new tests and fixes
1556 - This number intentionally left blank
1560 - Dynamic PMC registration
1561 - Trial exception system
1562 - Beginnings of object system
1565 - I/O system improvements
1567 - Documentation for basic PMC types
1568 - IMCC support of Parrot Calling Conventions
1569 - Runtime loading of chartypes (and other string improvements)
1570 - Conditional breakpoints
1571 - Dramatically accelerated sweeps for finalizable objects
1572 - Small PMCs (PMCs split into core and extensions)
1573 - Loadable bytecode packfiles
1575 - Sub variants that deal with the stack correctly
1576 - Switched runops core
1577 - Line numbers in warnings
1578 - Environment access
1579 - Many documentation cleanups
1580 - Conversion to CPS style!
1581 - BASIC debugger and many other wacky features
1582 - Filename, line number parsing support in IMCC
1587 - some more benchmarking
1589 - optimized math ops
1590 - intersegment branches
1591 - more complete use of PObjs
1592 - beefed up packfiles
1593 - sub/continuation/coroutine fixes
1594 - better NCI (native calling interface)
1595 - many imcc improvements
1600 - Native function calling interface (Dan)
1601 - Stack/list aggregate rewrite (Leo)
1602 - Scratchpads (Jonathan Sillito)
1603 - Preliminary DotGNU support -- type conversion ops (Gopal V + Leo)
1604 - Buffer/PMC unification (Leo)
1605 - stabs debugging support for JIT (Leo)
1606 - Jako overhaul (Gregor)
1607 - Optional Lea allocator (Leo)
1608 - Parrot sprintf (Brent)
1610 - PMC Properties (Dan)
1611 - Various JIT improvements (D. Grunblatt + Leo)
1612 - Extensible packfiles (Juergen)
1613 - Restructured PMC hierarchy (Leo)
1614 - Real Scheme (Juergen)
1618 - Several new grammars and a BNF -> perl5 and perl6 converter (Jeff)
1619 - Working Perl 6 REs (Sean)
1620 - Keyed Access (Tom Hughes et al)
1621 - New PMCs (Alberto et al)
1622 - Better Documentation
1624 - GC acceleration (Mike Lambert)
1625 - Lexical scope (Jonathan Sillito)
1631 - Perl 6 Grammar and Compiler (Sean)
1632 - Subroutines, coroutines, and continuations (Melvin)
1633 - GC improvements (Peter Gibbs, Mike Lambert)
1634 - Global variables (Melvin)
1635 - Intermediate bytecode compiler (Melvin, Angel)
1636 - And much, much more.
1640 - New assembler that support keyed types (Jeff)
1641 - New macro layer, allowing constants (Jeff)
1642 - New Configure.pl (Brent)
1643 - Changes to bytecode format, endian issues resolved (Melvin)
1644 - GC improvements and bug fixes (Peter Gibbs, Mike Lambert)
1645 - JIT compiler rewrite (Jason and Daniel)
1646 - Parrot assembler in Parrot (Daniel)
1647 - Parrot debugger (Daniel)
1648 - BASIC polished, Eliza.bas is new (Clint)
1649 - Cola compiler committed and working, with limited OOP (Melvin)
1650 - Keyed aggregates (Steve Fink)
1651 - Global ops (Melvin)
1652 - Compile-time speedup (Melvin)
1653 - Much documentation
1655 - Contributed tetris and lzw files
1656 - And many more, from the cast of thousands
1661 - Perl Scalar support in PMCs
1662 - Array and Hash types almost ready for prime-time
1663 - Internal support for keyed types
1664 - EMACS editing mode
1666 - New Language - BASIC
1667 - Regular expression compiler
1669 - Many, many bug fixes, enhancements, and speedups
1673 - Arena-based memory allocation system
1676 - "Predereferencing" mode - ./parrot -P - 22% speedup
1677 - JIT compiler - ./parrot -j
1678 - Parrot now builds warnings-clean on many platforms
1679 - Many more PMC methods implemented
1680 - Regular expression operations
1682 - Basic support for embedding Parrot in other programs
1684 - Added PDDs to distribution
1688 - Added an assembly optimizer
1689 - Improved string encoding/type support
1691 - Source reformatting
1692 - Major refactoring in packfile library
1693 - More Miniperl functionality
1694 - New PMC "clone" operator
1695 - Beginnings of key-based access to PMCs - arrays and hashes
1696 - MOPS comparisons in examples/mops/
1701 - Perl base scalar types implemented
1702 - A new minilanguage, Scheme
1703 - Much improved documentation
1704 - Register stacks pushing and popping
1705 - User stack pushing, popping and rotating
1706 - Jako updates: subroutines, more example programs, optimizations
1707 - test_prog renamed to 'parrot'
1709 - Added features to the assembler: @ for current location, and global
1711 - Build tweaks for VMS
1712 - Bytecode typing clean-ups
1713 - More platforms: OS X, HPUX, OS/2
1714 - The proliferation of runops cores reduced to one fast and one slow one
1715 - Opcode tracing, bounds checking, profiling
1716 - Vastly improved string support, with separation of encoding and
1719 - Multiple interpreter creation support - the beginnings of threading
1720 - Much better resource handling - the beginnings of GC
1724 - Parrot now works on all core platforms
1725 - A large number of tests, in the standard Perl testing framework
1726 - A new minilanguage (Jako) which compiles to Parrot assembly
1727 - Documentation about the assembly language (docs/parrot_assembly.pod)
1729 - Separate modules for assembly (Parrot::Assemble) and bytecode
1730 manipulation (Parrot::PackFile::*, packfile.c)
1731 - Assembler completely rewritten
1732 - Better operand-type guessing in the assembler
1733 - Assembler support for '\n' etc. in string constants
1734 - Code reformatted to match the coding standards
1735 - New ops for register-constant INTEGER comparisons
1736 - Macro expansion in the assembler
1737 - IVs and NVs renamed to more friendly INTVAL and NUMVAL
1738 - Hard-coded pack("") formats removed
1739 - Better handling of floating-point numbers in assembler
1740 - Moved floats to constant table (fixing many alignment issues)