5 + Inlined hashing and comparison functions
6 + Hash memory allocation moved from system malloc to lazy allocated
7 + Avoided infinite catching of exceptions while dying from exception
9 + Added a check for duplicate vtable entries in PMCs
10 + Building Parrot with Perl 5.12 and gcc-4.5 / g++-4.5
11 + Eliminated cruft left over after dynops_mapping
12 + Improved charset and string encoding
13 + Better organisation of programs by reposition it to "tools/build" and "tools/release"
14 + Implemented Exception clone vtable function
15 + Added experimental function Parrot_getpid and getpid method
16 + Closed a lot of tickets
18 + Added more core pmc tests
19 + Rearranged some tests with C coverage
21 + Set up a test site for github trac plugin at http://mksig.org/trac/
22 + Mirror Parrot on github
23 + Code of Trac plugin at github is on http://github.com/cotto/github-trac
25 + Fixed problem with imcc HLL in load_bytecode difference between loading a pbc and compiling a pir
29 + cleanups in packfile and freeze/thaw handling
30 + Hash optimizations that improve HLL startup and run time
31 + As always, many bug fixes and other optimizations
33 + some runtime library cleanups
35 + added more tests to improve coverage
36 + new codingstd test for documentation in .pmc files
38 + added documentation to .pmc files (some still missing but headers in place)
39 + general documentation improvements and bringing up-to-date
41 + Updated version included from http://github.com/perl6/nqp-rx includes
46 + Plug some memory leaks
47 + As always, bug fixes and some optimizations
49 + added (experimental) URI::Escape
51 + Improved test coverage of core parrot
53 + Updated the Squaak tutorial to use modern NQP-rx and PCT
55 + The Fedora package 'parrot-devel' install the files for syntax-highlighting
56 and automatic indenting for the vim editor
58 + Updated version included from http://github.com/perl6/nqp-rx includes
59 new or improved: regex backtracking, named assertions, interactive mode,
60 and setting (a minimal but useful runtime library)
64 + Added ByteBuffer PMC to allow direct byte manipulation
65 + Modified some PMC vtable functions to reduce complexity, simplifying coverage.
66 + Modified PAST to generate symbolic PASM constants in PIR output.
67 + General STRING API cleanups
68 + Increased test coverage of core PMCs
69 + Fixed up 'exit' opcode, added CONTROL_EXIT exception type.
70 + Experimental 'unroll' opcode renamed to 'finalize'
72 + Added proper support for multisubs and multimethods
73 + Fixed sigspace handling ** quantifier in regexes
75 + Added use of inversion lists for charclass lists in regexes
77 + EPEL (Extra Packages for Enterprise Linux) packages for RHEL6.beta are available
78 - Begin moving towards Lorito, the ops refactor to enable pervasive self-hosting and JIT compilation.
79 + All ops are now built with the self-hosted opsc compiler.
80 + For more Information about Lorito see:
81 http://trac.parrot.org/parrot/wiki/Lorito
82 http://trac.parrot.org/parrot/wiki/LoritoRoadmap
86 + Various long-standing bugs in IMCC were fixed
87 + STRINGs are now immutable.
88 + use STRINGNULL instead of NULL when working with strings
89 + Fixed storage of methods in the NameSpace PMC
90 + Added :nsentry flag to force method to be stored in the NameSpace
91 + Added StringBuilder and PackfileDebug PMCs
92 + Added experimental opcodes find_codepoint and unroll
94 + Fixed reporting of line numbers in IMCC
95 + Removed deprecated NQP compiler, replaced with new NQP-RX
96 + Removed NCIGen compiler
98 + Tools to distribute on CPAN were removed
99 + Deprecated dynpmcs have been removed to external repositories
100 + Removed RetContinuation PMC
101 + Removed CGoto, CGP, and Switch runcores
103 + Many tests for the extend/embed interface were added
104 + done_testing() is now implemented in Test::More
106 + The fakexecutable tapir is renamed parrot-prove
107 + Performance fixes to the pbc_to_exe tool
108 + Fix data_json to work outside of trunk
109 + The dynpmc GzipHandle (zlib wrapper) was added
110 + The library Archive/Tar.pir was added.
111 + The library Archive/Zip.pir was added.
112 + The libraries LWP.pir, HTTP/Message.pir & URI.pir were added.
114 + Six Parrot-related projects accepted to GSoC
115 + Improve use of const and other compiler hints
119 + Allow passing parameters to the dynamic linker ('dlopen' improved)
120 + loadlib opcode added
121 + Calling conventions are now much more consistent, and follows natural
122 semantics of handling arguments and return values
123 + Recursive make for src/dynpmc removed
124 + Datatype STRINGNULL for a single Null STRING added
125 + config_lib.pasm replaced with config_lib.pir
127 + Improved handling of new compilers
128 + Cygwin packages will be updated again with Parrot releases
129 + Fedora packages add desktop files
130 + gzip and bzip2 compressed tar files for releases
132 + tapir executable added; tapir is a TAP test harness
133 + Added TAP options --merge --ignore-exit
135 + 3 month cycle for supported releases
136 + Review and vote of GSoC applications
140 + Most internal allocations now use the GC
141 + RNG non-randomnes fixes
142 + Elimination of much dead code
144 + PMCs can now be initialized from an int
145 + Many legacy ops are removed
147 + Sun cc and Intel icc support have been restored
148 + Compiler invocation no longer goes through a Perl script
150 + NCI thunks are now generated by self-hosted PIR code
154 + GC performance and encapsulation were greatly improved.
155 + PMC freeze refactored.
156 + More Makefile and build improvements.
158 + The Array PMC was removed.
159 + Several deprecated vtables were removed.
160 + The OrderedHash PMC was substantialy improved.
162 + Packaging improvements on some operating systems.
164 + Some cases in pbc_merge are now handled.
165 + Improvements were made to the dependency checker.
166 + New tool nativecall.pir added.
170 + Context PMCs now support attribute-based introspection
171 + Context and CallSignature PMCs merged into CallContext
172 + .lex directive throws exceptions when used with incorrect register types
174 + Packaging improved for free OS distributions
175 + PPC, PPC64, and ARM now tested when running Linux
177 + Minor improvements to the profiling runcore
178 + Improvements from the CallContext PMC merge
180 + In/out parameters in STRING modification functions
181 + Void handling in NCI signatures
182 + Parameter passing opcodes order in PBC
184 + Continued migration of core tests from Perl 5 to PIR
186 + dependency checker improved
188 + Deprecation cycle length changed to three months from six
189 + GC accuracy improved
190 + PMC freeze improvements; much more reliable
191 + Makefile improvements for dependency handling
195 + Made profiling runcore output format configurable and extensible
196 options include "pprof" and "none" ("binary" and "callgrind" are planned)
197 + Added environment variables to specify profiling output type and filename
198 (PARROT_PROFILING_OUTPUT and PARROT_PROFILING_FILENAME)
199 + Began merging Freeze/Thaw and Bytecode generator/loader
201 + Included latest nqp-rx compiler, with many improvements
202 - GLOBAL:: package identifier
203 - dynamic variables look in global namespace
204 - $obj."$method" syntax
205 - :p(os) and :c(ontinue) option on regexes
206 - try/CATCH/CONTROL handling
207 - support leading & on subroutine declarations
208 - allow "category:<symbol>" names (for builtin operators)
209 - simple version of smartmatch operator
210 - simple regex matches
211 - updated HLL::Compiler with new import/export methods
213 + Portability updates for RTEMS, and Intel architectures with GNU compilers
214 + Completed conversion of ticket tracking system from RT to Trac
215 + New draft of PDD31 for HLL export API and import implementation
216 + Several (build time, runtime) performance improvements
217 + Converted many tests to PIR, reducing test execution time
218 + Various bugfixes, code cleanups, and coding standard fixes
222 + The FileHandle PMC now exposes the exit code of child process that was run as pipe.
223 + Experimental support for overriding VTABLE invoke in PIR objects was added.
224 + The method 'type' was added to the PackfileAnnotations PMC.
225 + The internals of the parrot calling conventions, PCC, were reworked.
226 All call paths now use a CallSignature object for passing arguments and return values.
227 + The new API-function 'Parrot_ext_call' was added for calling into C-land.
228 + The fixed-size allocator was improved.
229 + The files installed by 'make install-dev' are now covered by 'make install' as well.
230 + The experimental ops 'fetch' and 'vivify' were added.
231 + The -I option to the command 'parrot' now prepends items to the search path.
232 + The Context struct was substituted with auto attributes (context_auto_attrs branch).
233 + Use the osname determined in auto::arch in subsequent configuration steps (convert_OSNAME branch).
234 + Eliminated dependence on Perl 5 '%Config' in auto::format (auto_format_no_Config branch).
235 + MultiSub PMCs now stringify to the name of their first candidate,
236 instead of the number of candidates.
237 + The platform detection at the start of the configuration process was improved.
238 + The 'lineof' method on CodeString objects now precomputes line number information
239 to be more efficient on variable-width encoded strings.
240 + P6object now supports .WHO and .WHERE methods on protoobjects.
242 + A shiny new self-hosting implementation of NQP has been added in ext/nqp-rx.
243 - New NQP available as nqp-rx.pbc or parrot-nqp fakecutable.
244 - NQP includes direct support for grammars and regexes, including protoregexes.
245 - NQP has a new PAST-based regex engine (intended to replace PGE).
246 - Regexes may contain code assertions, parameters, lexical declarations, and more.
247 - Double-quoted strings now interpolate scalar variables and closures.
248 - Subroutine declarations are now lexical by default.
250 - PAST::Block now supports an 'nsentry' attribute.
251 - PAST::Var allows 'contextual' scope.
252 - Attribute bindings now return the bound value.
254 + Fixes for the port of Parrot to RTEMS were applied. Yay, first port to a real time OS!
255 + On NetBSD, shared libs are now used.
257 + Use the the fixed-sized allocator in the Context and the CallSignature PMC.
258 + Many small speed improvements.
260 + MT19937, the Mersenne twisted pseudorandom number generator, is now hosted on github and
261 will be removed from the Parrot core. (eligible in 2.1)
262 + The 'Parrot_call_*' functions for invoking a sub/method object from C are
263 deprecated. They are replaced by 'Parrot_ext_call'. (eligible in 2.1)
264 + All bitwise VTABLE functions are deprecated. (eligible in 2.1)
265 + All bitwise ops will become dynops. (eligible in 2.1)
266 - Realized deprecations
267 + The slice VTABLE entry was removed.
268 + The last traces of the 'malloc' garbage collector were removed.
269 + Parrot_pcc_constants() was renamed to Parrot_pcc_get_constants().
270 + The deprecated functions from the Embedding/Extension interface were removed.
271 + The library YAML/Parser/Syck.pir was removed.
272 + The VTABLE function instantiate_str() was removed.
273 + Building of parrot_nqp was removed.
275 + The test coverage of the time-related ops was much improved.
276 + New testing functions in Test::More: lives_ok() and dies_ok().
277 + The Perl 5 based test scripts t/op/bitwise.t, t/op/comp.t, t/op/inf_nan.t,
278 t/op/literal.t, t/op/number.t, t/op/sprintf2.t, and t/op/00ff-dos.t were converted to PIR.
279 + The test scripts t/op/annotate.t and t/op/time.t have begun
280 to be translated from Perl 5 to PIR.
281 + In some tests the dependency on %Config from Perl 5 was eliminated.
283 + The meaning of 'p' means in NCI function call signatures was clarified.
285 + The stub for a new language, as created by mk_language_shell.pl,
286 now relies on the PIR-based tools, which are replacing the Perl 5-based tools.
287 + The library Configure.pir was added.
288 + The library distutils.pir was added.
290 + The mailing list parrot-users and a corresponding google group was created,
291 http://groups.google.com/group/parrot-users.
292 + Many bugfixes, code cleanups, and coding standard fixes.
296 + Parrot_capture_lex has been added to the PARROT_EXPORT API
297 + PARROT_MAX_ARGS has been increased from 8 to 16 to allow for ops that take more than 8 args
299 + The profiling runcore now caches metadata for improved performance
300 - Maintenance and cleanup
301 + Expanded the Parrot debugger documentation
302 + Parrot debugger now uses the new Parrot STRING API
303 + Continue to port rest of internals to use the STRING API
305 + The JIT subsystem has been removed and is being written from the ground up. More
306 information can be found at https://trac.parrot.org/parrot/wiki/JITRewrite
307 + Implicit optional named parameters (eligible in 2.1)
308 + Continuation-based ExceptionHandlers (eligible in 2.1)
309 + Use of undocumented variables in class_init (eligible in 2.1)
310 + Parrot_oo_get_namespace (eligible in 2.1)
312 + Improved line number tracking in IMCC
314 + Converted many more Perl 5 tests to PIR
315 + Expanded test coverage of the CallSignature, Namespace, FixedPMCArray,
316 ResizeableIntegerArray and ExceptionHandler PMCs
320 + Added a fixed-size structure allocator to the Garbage Collector
321 + Added a "lazy" mode to the PObj and Fixed-Size memory allocators
322 + Added a profiling runcore, which generates Callgrind-compatible output
323 + Added lexical subsystem opcodes: find_dynamic_lex, store_dynamic_lex
324 + Converted Contexts to garbage-collectable PMC structures
325 + Created a new Context API
326 + Enhanced the PMC allocator to automatically allocate ATTR structures
328 + Optimized opcodes to cache the current Context for subsequent lookups
329 + Reduced string comparisons in VTABLE_isa
330 - Maintenance and cleanup
331 + Began proper encapsulation of STRING API
332 + Unified all PMC destruction functions
333 + Unified Continuation PMC and Parrot_cont structure
334 + Unified Sub PMC and Parrot_sub structure
335 + Removed PMC_EXT structure
336 + Removed PMC_Sync from PMC
337 + Removed UnionVal from PMC structure
339 + Fixed several stack-walking bugs in Garbage Collector code
340 + Fixed bug when copying a NULL STRING, now returns empty STRING struct
342 + Converted several Perl5 tests to PIR
343 + Expanded test coverage of NameSpace PMC
345 + Made Parrot Compiler Toolkit available in the base install
349 + Removed several deprecated functions and features
350 + Removed bsr, jsr, branch_cs, and ret opcodes
351 + Removed global stacks system
352 + Changed OPS file format to include explicit preamble
353 + Changed all "new 'Iterator'" instructions into 'iter' instructions
354 + Removed Configure.pl options for specifying non-working GC cores
355 + Removed unexecuting code as found by Coverity
356 + Improvements to the Parrot Debugger
357 + Added experimental fixed-size structure allocator to the GC
358 + Added experimental lazy arena allocation to the GC
359 + Refactored hashes, keys, and iterators
360 + Added "corevm" make target to build Parrot without all the supporting libraries
361 + Removed Random PMC type and added in a "rand" dynop
362 + Optimization and Improvements to the NCI thunk generator
363 + New include file libpaths.pasm
365 + Multiple .local with same name and different type is now an error on IMCC.
367 + Improved support for detecting Fink and Macports
368 + Updated search directories for libraries
370 + "Parrot Developers Guide: PIR" released to publisher and available to purchase
371 + Improved documentation about Parrot Debugger
372 + Update PGE Documentation
374 + Deprecate 'PASM1' compiler object, update to warn instead of segfault
376 + Fixes to code, documentation, and standards
380 + Key and Iterator refactor
381 + Major pbc_to_exe generated code speed improvement
382 + New "Infinite Memory" GC core for demonstration purposes
383 + gc_debug runcore and GC-related heisenbug fixes
384 + Elimination of variable expansion in parrot_config
385 + CLI arguments are processed as Unicode by default
386 + Substantial optimizations in NCI
387 + Parrot builds on Win64
388 + Hashes can use native types as keys and values
389 + Fixed installed pbc_to_exe
390 + Simplification of PMC generation code
391 + Improved GC encapsulation and API documentation
393 + List of candidates for embedding API (docs/embed.pod)
394 + PIR book sent to publisher
396 + Several conversions of Perl test to pure PIR.
397 + C indentation coding standards test improvement
398 + Improved test coverage of example code
400 + Removal of PGE rules: <null> <fail> <sp> <lt> <gt> <dot>
401 + Removal of PGE methods: .text .item .result_object
402 + Deprecation of most dynops
404 + Beginnings of OpenGL::Math library; OpenGL bindings and library marked experimental
405 + Localizing and consting fixes
406 + Many memory and thread-related leaks plugged
410 + Optimized parts of the IO system
411 + Fixed inheritance hierarchy of FileHandle and Socket PMC types
412 + Fixed leaks involving subroutines and Parrot_Context
413 + Cleaned up and refactored GC internals, including fixes and optimizations
414 + Optimized PMC class manipulations to use type numbers instead of string names
415 + Fixed problems involving hashval calculations in strings
416 + Removed unnecessary MULTI dispatches in built-in PMCs
417 + Fixed memory leaks involving PMCs that were not properly destroyed
418 + Fixed creation of PMCProxy PMCs in correct namespaces
419 + Added preliminary Pipe support
420 + Fixed cloning of Object PMCs
421 + Added root_new opcode
422 + Added initial versions of Packfile PMCs with read/write capabilities
424 + Fixed several memory leaks in IMCC
425 + Updated PCT to use root_new opcode
426 + Added support for keyword "self" in NQP
428 + Improved and expanded /docs/book
429 + Updated project documentation
430 + Defined 'experimental' status and procedures in DEPRECATED.pod
432 + Cleaned code and improved code-level documentation
433 + Various bugfixes, code cleanups, and coding standard fixes
434 + Added an experimental compiler library to help use PIR libraries from HLLs
435 + Updated OpenGL library and examples to support experimental HLL import
439 + Fixes for pir classes inheriting from core pmcs.
440 + Cleaned up headers and reorganized some sources into subsystem directories.
441 + Clean up PMCs so libparrot.so exports far fewer vtable/method symbols.
442 + Clean up the GC API.
443 + Several unicode identifier improvements in IMCC.
445 + Protoobject stringification is gone.
447 + Rewrite several core documents.
448 + Many reworks, improvements & additions to the Parrot Book.
449 + Installation PDD is launched out of draft.
451 + Fixes for running the language shell generator outside the parrot tree.
452 + Several fixes for developing and building HLLs from an installed parrot.
453 + Configure.pl now has a --no-line-directives option to ease source level debugging.
455 + Portability updates for macports, netbsd, mingw32, hpux.
456 + Several (build time, runtime) performance improvements.
457 + Lots of updates to examples and tests.
458 + Various bugfixes, code cleanups, and coding standard fixes.
462 + Added op: load_language, find_caller_lex
463 + Socket IO are back as PMC
464 + Refactor some PMC: Hash, ManagedStruct
468 - Allow \x, \c, and \o in enumerated character classes (incl ranges)
469 - Add initial greedy-only version of ** <exp> quantifier
471 - Add HLL source line bytecode annotations
472 - Add another dumper format to assist syntax highlighters
473 - Revise mk_language_shell.pl to updated create_language.pl
475 + Removed ops: gcd, exec, classname, need_finalize, runinterp, substr_r
476 + Removed dynamic op: mul
477 + Removed .HLL_map directive; use interp's .hll_map() instead
478 + Removed PMCs: slice, bound_nci, ref
479 + Removed Configure.pl option: --pmc
480 + Removed PMC union struct
483 - Reorganization and many improvements & additions
485 + Add a parrot-fuzzer
487 + Improve Debian/Ubuntu package
488 + various bugfixes, code cleanups, and coding standard fixes
493 + New user documentation for exceptions.
494 + Updates to Chapters 4 & 5 of the Parrot book.
495 + Improved and expanded generated HTML documentation, as the input for
496 http://docs.parrot.org.
497 + Added Compiled HTML Help (.chm) version of documentation.
498 + Cleanups and fixes.
501 - left the nest and is now at http://pynie.googlecode.com/
503 - left the nest and is now at http://github.com/cardinal
505 - left the nest and is now at http://paraplegic.googlecode.com/
506 + ABC, Squaak, and Befunge moved to examples/.
507 + All remaining languages moved to https://svn.parrot.org/languages/
509 + Support for language builds from an installed Parrot.
510 + Expanded language shell generator for new languages.
511 + 'parrotbug' utility repurposed for the Trac interface.
513 + Removed deprecated Tqueue and Closure PMCs.
514 + String, Key, NCI, LexPad, Iterator, Sub, Continuation, RetContinuation,
515 ExceptionHandler, ParrotLibrary, ParrotInterpreter, ParrotThread,
516 ParrotRunningThread, Rational, FixedPMCArray, ResizablePMCArray, and
517 GDBMHash PMCs now use declared attributes (ATTR), in place of the
523 + Support for portable 'Inf', 'NaN' and -0.0
524 + pbc_disassemble prints constants in constants table
525 + New experimental BigNum implementation
526 + Pair is now a dynamic loadable PMC
527 + Various function name sanification
528 + New implementation of Strings component
529 + Replace various PMC value union access code by VTABLE method invocations
530 + Replace various PMC value unions by ATTRibutes
531 + Removed SArray PMC. Use FixedPMCArray instead.
534 - updates to Chapter 2 (getting started)
535 - updates to Chapter 3 (PIR basics)
536 - updates to Chapter 4 (PIR subroutines)
537 - updates to Chapter 10 (HLLs)
538 - updates to Chapter 12 (opcodes)
539 + Function documentation
540 + Pod documentation style modernized; no longer Perl 5 style.
541 + PMC has an additional acronym: Poly Morphic Container
542 + The DOD (Dead Object Detection) acronym is no longer used;
543 use 'GC' to refer to the Garbage Collector component.
546 - :named flag can now take string registers as argument
547 - A single '=cut' directive is now ignored (without initial Pod directive)
548 - :vtable subs now have proper access to 'self' pseudo variable
550 + add new 'Pod' documentation parser
551 + Pipp (PHP implementation):
552 - Pipp is now at http://github.com/bschmalhofer/pipp
553 - support for 'print', 'dirname', 'implode', 'str_replace',
554 - various grammar fixes
556 + add 'quit', 'readline' builtins
557 + fix 'Boolean' type and 'print' builtin
559 - left the nest and is now at http://github.com/fperrad/lua/
561 - left the nest and is now at http://github.com/rakudo/rakudo/
562 - build instructions can be found at http://tinyurl.com/rakudo
564 - left the nest and is now at http://github.com/bschmalhofer/lazy-k.git
566 - left the nest and is now at http://github.com/bschmalhofer/unlambda/
568 - left the nest and is now at http://github.com/fperrad/wmlscript.git
569 + removed Zcode implementation
572 - ATTRs are now inherited automatically in subclassing PMCs
574 + Parrot_readbc, Parrot_loadbc renamed to Parrot_pbc_read, Parrot_pbc_load.
575 + .HLL_map directive in favour of 'hll_map' method on Parrot interpreter
576 + Data::Escape library
578 + pbc_disassemble options added
579 + pbc_dump renamed from pdump
581 + Parrot is now Copyright Parrot Foundation
582 + Parrot's SVN repository is now hosted at https://svn.parrot.org
583 + Various code cleanups, consting, 64-bit incompatibilities and other bug fixes
586 New in January 2009 release (0.9.0)
588 + Implemented bytecode annotations
589 + Role composition is now aware of multi-subs
590 + Unbuffered IO PMCs now autopromote when buffering is necessary
591 + Installation parrot binary and libparrot shared library now supported
592 + Class registry now respects HLLs
595 - removed keyed string indexing, e.g. $S0[1].
596 - removed slice syntax, e.g. $P0[1..2]
597 - removed .namespace <ident>/.endnamespace <ident> pair
598 - fixed 'new $P0, [classname]' syntax
600 - refactoring of various data structures
601 - various bug fixes and updates
602 - complete bytecode generation
603 - add '-x' commandline option to run compiled code
605 - add 'hll' and 'subid' attributes to PAST::Block
606 - refactor loop handling code to handle last/redo/next
607 - add :pasttype('stmts') and :pasttype('null')
608 - improve "scope not found" error message
609 - allow PAST::Val nodes to contain block references
611 - add "skipkey" option to PGE::OPTable
612 - allow spaces before modifiers in regexes
613 - add '(' ~ ')' goal matching syntax
614 - skip creating a class/grammar if it already exists
617 - improved error mesages in multi dispatch
618 - implemented clone method for all objects
619 - implemented MAIN sub
620 - Unicode versions of infix hyper operators
621 - refactored IO.readline
622 - basic support for Inf and NaN
623 - list and array slices with whatever star
625 - implemented last and redo
626 - pointy blocks as terms
627 - refactored variable and parameter passing
628 - improved assignment semantics
629 - improved parsing of type names and subs
630 - mostly implemented parametric roles
631 - separate types for blocks, subs and methods
632 - basic support for submethods
633 - implemented Junction autothreading of user code (not builtins yet)
634 - eval supports :lang attribute
635 - proto makes other subs in scope multis, including in role composition
637 - back to working state
640 - add support for predefined constant __CLASS__ and __METHOD__
641 - add initial support for static members
642 - add support for namespaced constants
643 - constants are now handled as package vars
644 - variables are now lexical variables
645 - add support for superglobals in functions
646 - Call the class __constructor when there is one
647 - added incomplete support for closures
648 - removed support for the alternative parsing strategies
649 - added support for 'elsif'
650 - added support for 'do-while'
652 - left the nest and is now at https://github.com/bschmalhofer/hq9plus/
654 - left the nest and is now at http://github.com/bschmalhofer/eclectus/
656 - left the nest and is now at http://github.com/bschmalhofer/m4/
658 - add a minimalist user back trace
660 - "does" and "morph" VTABLE interfaces are now overridable from PIR
663 - 'make smoke' now generates Smolder reports sent to
664 http://smolder.plusthree.com/app/public_projects/smoke_reports/8
665 + Improved const and null correctness for C function parameters
666 + Sped up STRING manipulation (append, chop), improving PGE about 30%
668 - Added sections about Classes, OO programming, and methods.
669 - Added information about Annotations, Exceptions, and Handlers
671 - Removed non-functional STM subsystem
676 + fixed lexical semantics
677 + added the 'capture_lex' opcode
678 + added automatic resume for nonfatal exceptions
679 + added multidispatch cache
680 + applied miscellaneous performance improvements, including startup time
681 + fixed several bugs and leaks found by Coverity Scan
682 + removed race conditions from parallel testing
685 - removed undocumented .param int <stringc> => <ident> syntax
686 - .line directive now only takes an integer argument
687 - new .file directive to specify the file name being compiled
689 - properly handles lexical generation and closure semantics
690 - uses :subid instead of name lookups to reference PAST::Block nodes
691 - added PAST::Control node type (exception handlers)
693 - add support for <?{{...}}> and <!{{...}}> assertions
694 - Match objects use Capture PMC instead of Capture_PIR
696 - add macro handling to PASM mode
697 - disable vanilla register allocation in PASM mode, but do allow optimization
698 - add tests and bug fixes
699 - first bits of bytecode generation. No sub calling/returning yet.
702 - fixed lexical handling and recursion
703 - refactored subtypes implementation
704 - support for quotes with multi-character delimiters
705 - implemented list slices (Positional role)
707 - reduction meta operators
708 - hyper meta operators
709 - cross meta operators
710 - more builtin functions
712 - basic support for protos
713 - iterator on filehandle objects
714 - basic support for exception handlers
717 - added complex & mathx libraries
718 - merged LuaClosure & LuaFunction PMC
720 - added support for a return value from user defined functions
721 - added incomplete implemention of 'require_once'
723 - parser fixes, parses spidermonkey's top level test/shell.js
725 + PARROT_API is now PARROT_EXPORT
727 - :lexid is now :subid
728 - .arg is now .set_arg
729 - .result is now .get_result
730 - .yield (in .begin/end_yield) is now .set_yield
731 - .return (in .begin/end_return) is now .set_return
732 - .namespace x / .endnamespace x syntax is removed
733 + Capture_PIR (runtime/parrot/library/Parrot/Capture_PIR.pir)
737 + added CPAN module Storable 2.12 as a configuration and build dependency
738 + removed the pseudo PIR opcode 'addr'
739 + added the 'box' opcode
740 + fixed 'pop_eh' handling in PIR libraries and examples
741 + removed usage of .return for tailcalls (use .tailcall instead)
742 + removed 'get_hash' and 'get_array' from Capture PMC and Capture_PIR
743 + improved debugger and HLL coordination
744 + allowed MMD primitive autoboxing
745 + fixed all known memory leaks in PIR "Hello, world!"
746 + NCI signatures now JITted on x86-32 platforms (Windows and Linux)
747 + made the .const directive take a quoted type name instead of a constant
748 + made IMCC more re-entrant
751 - refactored Junctions implementation
752 - added "fire and forget" tool to rebase/rebuild/test Parrot and Rakudo
753 - updated container/reference semantics
754 - added more builtin methods and functions
755 - improved support for multilevel namespaces
756 - added support for .Str, .succ, .pred in user-defined classes
757 - implemented pointy blocks on if/loops
758 - increased STD.pm convergence
760 - improved MMD candidate sorting
761 - improved integration of Num and Int
762 - implemented increment on protoobjects
763 - added initial support for MAIN subs
764 - added .PARROT method
766 - added some predefined constants
767 - added implemention of the function basename()
769 - Added initial support for the classes Proc, Continuation, Queue, Dir, File, and FileStat
770 - fixed various minor bugs
771 - fixed broken Regexes
774 - added '.isa' method to PCT::Node
775 - cleaned up 'immediate block' handling
776 - allowed arguments to immediate blocks in loops/conditionals
777 - metaclass objects can now 'add_method'
779 - integrated macro processing in PIRC's lexer
780 - integrated heredoc lexer in PIRC executable
781 - added preprocess and heredoc-preprocess commandline options
782 - integrated the PASM grammar into PIRC
783 - added a register allocator to optimize the built-in vanilla allocator
784 - code cleanups and documentation
785 - added 'make test' target
787 - updated to work with new namespace/classname syntax
789 + PARROT_API will become PARROT_EXPORT
790 + :lexid will become :subid
793 - updates and additions to the Parrot book (see docs/book/)
795 - minor fixes to Parrot's base OpenGL bindings
796 - converted OpenGL PIR examples to Perl 6 (two complete, one WIP)
797 - added simplified OpenGL PIR example for NCI JIT testing
799 - further improvements to parallel tests
800 - tests no longer leave filesystem breadcrumbs
801 - more thorough testing of Parrot::Test itself
805 + float precision expanded to 15 significant digits from 6
806 + large integers autopromoted in PIR so as not to lose precision
807 + improved precision of complex square root
808 + exception handlers can register types of exceptions they catch
811 - implemented gather, take, and yield builtins
812 - Range, Time, Math, GC, Kernel classes
814 - added a new committer
815 + Markdown : new lightweight markup language
816 - start implementation with PCT/NQP
818 - Moved to its own repository: http://code.google.com/p/partcl/
820 - split() works with regexes
821 - implemented Str.comb
822 - ord() and chr() builtins
823 - improved parsing of literal numbers
824 - support for hyphens and dashes in identifiers
825 - next() on for-loops
826 - fixed floating point constant precision
827 - improved namespace handling, closer to STD.pm model
828 - support for exporting symbols
831 - now generates classes in nested namespaces instead of :: names
832 - supports class creation in caller's HLL namespace
834 - now using true nested namespaces instead of :: names
835 - cleaned up HLLCompiler interactive prompts and readline mode
836 - updated to use typed exception handler registration
837 - added initial support for loop control exceptions
839 - fixed Heredoc preprocessor
840 - cleaned up Macro preprocessor
841 - many code clean-ups, warning fixes and consting
842 - updated Makefile for easier compilation
844 - Added .tailcall syntax to replace .return in tailcall context
847 - an old style line numbered Basic interpreter able to use parrot objects
848 - example connecting to mysql via nci
849 - example using classes to write and run an embedded Basic program
852 - Added chapters for PCT, PMCs, and Opcodes/Runcores
853 - Expanded and improved formatting in various chapters
854 - Renumbered chapters
859 + add -I and -L command line options
860 + support for null strings in NCI calls
861 + preliminary support for resumable exceptions
862 + add '.hll_map' method for dynamic HLL type mapping
863 + more parrot_debugger fixes
864 + remove obsolete '.past' extension
867 - now over 3300 passing spectests
868 - precompiled modules
869 - precompiled scripts (--target=pir can now be executed standalone)
870 - Support for @*INC and %*INC varialbes
871 - additional builtin methods and subs
872 - added 'fail' function, warnings on use of undefined values
874 - qq, qw, q quoting forms
875 - run tests in parallel
879 - 'require' and precompiled modules
881 - all Array tests pass
883 - default arguments to functions
887 - add :loadinit attribute for PAST::Block
889 - major refactoring to allow all PIR keywords as identifiers
890 - links to libparrot now, so all Parrot ops are recognized as such
891 - implemented .loadlib, .HLL_map, .HLL
893 + add Xlib and Mysql modules and test programs to NCI examples
894 + many updates and cleanups to PDD documents
898 + PDD27: add multisub lookup
900 + new concurrency implementation (see PDD25)
901 + Exception PMC now captures a return continuation
902 + improved PMC encapsulation (Iterator, Key, Pair)
906 - parsing improvements
907 - minor additions to class builtins
908 - add support for block parameters to functions
910 - various language fixes
911 - refactor all libraries (namespace, method registration)
912 - add a OpenGL binding (still incomplete)
913 - lost user back trace (see ppd25 & pushaction)
915 - add support for while- and for-loops
916 - add support for increment and decrement
917 - designate PHP 5.3 as the reference implementation
918 - improve support for string literals
920 - removed due to bit rot
922 - now over 2200 passing spectests
923 - updated the Rakudo roadmap
924 - Perl 6 multi dispatch
925 - dispatch with slurpies
926 - class attributes ("my $.x")
928 - OO and metaclass improvements (.WHAT, .WHICH, .WHENCE)
929 - additional builtin methods and subs
930 - improved make test targets and harness
932 - implement [lreverse], [lsort -command]
933 - allow [incr] to autovivify
934 - update tclsh spec target to 8.5.3
935 - fix bug in TclDict PMC, allowing ~200 more [dict] spec tests to pass
936 - update 'make spectest' fudging, using TODO instead of SKIP if possible
939 - :scope('register') for PAST::Var nodes
940 - allow invocant specification in attribute scope PAST::Var nodes
941 - correct ordering of sub generation from POST
942 - add 'loadinit' attribute to PAST::Block for block initialization
944 - PIR registers now use the vanilla register allocator
945 - all PASM output now uses PASM registers
946 - all .locals and $registers are mapped
947 - clean-up of grammar, back-end and documentation
948 - implemented constant folding
949 - implemented instruction selection
951 + tests now clean up after themselves
952 + improved parallel test support
954 + Darwin problems fixed
956 + parrot_debugger renamed from pdb, numerous tweaks
959 + :vtable implies self in PIR
960 + modest core speed improvements
961 + Cygwin support improved
962 + "say" now an opcode (was dispatched to a method; see Deprecations)
964 + ".pragma n_operators" is deprecated
965 + old PASM register syntax (without "$") is deprecated
966 + bare (unquoted) method names are deprecated
967 + "#line" will be replaced with ".line"
968 + ".HLL_map" syntax will change
969 + ".loadlib" is now separate from ".HLL"
970 + mmdvtregister and mmdvtablefind opcodes are deprecated
971 + removed getfd, getclass opcodes
972 + removed IMCC syntax that treated some methods as builtins
973 + removed numeric get_attr and set_attr vtable entries
977 + removed a lot of old information from the FAQ
978 + improved function level documentation
980 + removed the configuration item 'has_gnu_m4'
981 + refactored ICU-detection
984 - improved the Smalltalk implementation
986 - renamed Plumhead to Pipp
987 - support for a lot of builtin functions.
988 - Pipp now uses PHP specific data types.
989 - converted from PCT with TGE to PCT with NQP actions
990 - improvements in the PCT variant by using optok parsing
991 - start of object support
993 - simple assignments work
995 - added a PCT-based implementation of JSON parsing
997 - improved handling of symbols
998 - added support for block handling
999 - added support for globals
1003 - updated Range implementation
1005 - added generic type declarations (::T)
1006 - added runtime mixing of roles with 'does' and 'but'
1007 - fixed handling of implicit lexicals ($_, $!, and $/)
1008 - fixed implicit method calls on $_
1009 - improved complex math builtins, added Complex
1010 - moved many builtins to class Any
1011 - declaration of lists of variables now work
1012 - improved test infrastructure
1013 - 910 additional passing spec tests since last release
1014 - more convergence with STD.pm grammar
1015 - added named 0-ary parsing and ops
1018 - allowed subroutine and method names to be a PAST tree that produces the name
1019 - Improved lexical handling
1021 + pbc_disassemble renamed from disassemble
1023 + allowed .macro_const in PIR
1024 + added the flag :lexid(...) for subroutines
1025 + made multiple dispatch work for sub types
1026 + fixed garbage collection bug related to the metadata attached to a PMC_EXT structure
1027 + added a warning when using deprecated opcodes
1028 + simplified the stacks implementation
1030 + improved closure and lexical support
1031 + improved IMCC register allocator
1032 + added cache for all runtime-constant strings, reducing memory usage
1034 + improved OpenGL/GLU/GLUT bindings
1035 + added a standard profile for Perl::Critic coding standard testing
1036 + added support for smoke testing with Smolder
1037 + enabled use of Test::Harness 3.0 if available, but don't require it for 'make test'
1038 + added the executable 'parrot_config' to query Parrot configuration
1042 + updated pdd09_gc.pod
1045 - dramatically improved parsing speed
1046 - added support for defining and instantiating classes
1047 - started fleshing out the builtin class hierarchy
1048 - added support for hashes and arrays
1049 + Chitchat: added the start of a smalltalk compiler
1050 + Pheme: updated to match PGE changes
1051 + Pynie: return statement, other minor updates
1053 - added working list and hash contexts
1054 - added 'return' statements
1055 - added => pair constructor
1056 - added ?? !! ternary
1057 - added Range, range operators, Complex
1058 - added common List, Hash methods
1059 - refactored base classes
1060 - added Mutable, Perl6Scalar classes
1061 - added type-checking, is readonly/rw/copy for parameters
1062 - added make localtest, docs/spectest-progress.csv
1064 + Squaak: implement return statement
1065 + Tcl: updated control flow exceptions to use new builtin types
1067 + All tools converted to P6object metamodel
1069 - <?foo> is now a zero-width match
1070 - reduced backtracking to improve parsing speed
1072 - added "return" PAST.op node type for subroutine returns
1073 - added "keyed_int" scoping to PAST::Var
1074 - fixed calls to closures
1075 - automatically transcode 7-bit unicode to ascii for faster processing
1076 + NQP: added "return" statement, ?? !! ternary operator
1078 + expanded step gen::opengl
1080 + updated function and macro names to match pdd09_gc.pod
1082 + add ".namespace []" as alternative to ".namespace"
1083 + "make codetest" target runs standard coding tests
1085 + added P6object class for Perl 6 interfaces to objects in Parrot
1086 + ported OpenGL/GLU/GLUT bindings to Win32, BSD, and more Mac OS X variants
1087 + generate OpenGL/GLU/GLUT bindings by parsing system headers
1088 + new OpenGL example shapes.pir, covering basic OpenGL 1.1 / GLUT 3 APIs
1089 + new float4.pir structure-packing benchmark
1090 + reduced memory use for variables
1091 + improved constant string caching
1092 + made code g++ and gcc (with optimizations) safe
1093 + the usual collection of bugfixes and optimizations
1097 + updated and launched pdd28_strings.pod
1098 + updated pdd19_pir.pod
1100 + added implementation of Rational PMC.
1101 + simplified ops control flow syntax
1102 + enabled backtrace on non-glibc platforms too
1103 + improved some PIR error reporting
1104 + removed user stack opcodes
1105 (save, restore, lookback, entrytype, depth, rotate_up)
1106 (NOTE: This was scheduled to occur after 0.7.0, moved up to this release)
1107 + removed register stack, saveall, and restoreall opcodes
1108 + removed various deprecated features and unused code
1111 + C99: grammar updated
1112 + Cardinal: resurrected, method calls and do blocks work now
1113 + Eclectus: use NQP as PAST generating code
1115 - added big number library
1116 - updated to match PGE changes
1117 - added a bytecode disassembler & a Lua 5.1 VM bytecode translator
1118 + Pheme: updated to match PGE/PCT changes
1120 - use NQP as PAST generating code
1121 - use riaxpander for macro expansion
1124 - conditional and loop statement modifiers
1125 - lots of class, object, role, and method improvements
1126 - Str increment and decrement
1127 - improved spectest reporting
1128 - type checking on assignment
1129 - regexes and grammars
1133 + Squaak: added to repository
1136 + PGE: updated to match Synopsis 5, deprecated features removed
1138 - improve handling of register types, conversion between registers
1139 - improved error diagnostics
1140 - add 'arity' to for loops
1142 + added step auto::opengl
1143 + added step gen::opengl
1144 + added step gen::call_list
1146 + still more optimizations and performance improvements, especially in GC
1147 + new libraries: OpenGL/GLU/GLUT bindings (small subset working)
1148 + new dump_pbc.pl utility: PBC disassembly/source code weaver
1149 + improved C++ compiler support
1150 + optimized builds work again
1155 + drafted pdd29_compiler_tools.pod
1156 + updated pdd28_character_sets.pod draft
1157 + updated pdd19_pir.pod draft
1159 + c99: added independent C pre-processor
1160 + HQ9+: reimplemented with PCT
1162 . reimplementation with PCT, using PAST and POST
1163 . behavior aligned wih 5.1.3
1165 . implemented basic I/O, including '$*IN', '$*OUT', '$*ERR', 'prefix:='
1166 . implemented simple typing and runtime type checking
1167 . added basic multi-method dispatch
1168 . expanded named argument handling, including Pair and colonpairs
1169 . added 'Whatever' and 'Capture' classes
1170 . implemented 'handles' trait verb
1171 . added 'loop' statement
1172 . implemented 'given', 'when', 'for', 'while', 'until' statement modifiers
1173 . implemented Hash methods '.keys' and '.values'
1174 . fixed bug to get '.WHAT' working correctly
1175 . initial implementation of 'eval'
1178 . created a bootstrapped build, see 'make boot'
1179 . added 'infix:<', 'infix:<=', 'infix:>', 'infix:>=' relational operators
1180 . added 'postfix:++', 'postfix:--' operators
1182 . added methods specifying default behaviors in PAST, reducing repeated code
1183 . improved symbol table lookup
1185 . removed deprecated code including: P6Regex, P6Grammar, PAST-pm
1187 + notable speedups during compilation and execution of parrot and HLLs
1188 + pdb (the parrot debugger) can now catch parrot exceptions
1189 + better detection of glibc and gettext during configuration
1190 + various bugfixes, code cleanups, deprecations, and coding standard fixes
1195 + launched pdd18_security.pod
1196 + updated pdd17_pmc.pod
1197 + launching draft of pdd28_character_sets.pod
1199 + cleanup of IMCC documentation
1201 + add step auto::gettext
1202 + add step auto::crypto
1206 . Phase out P6Regex in favor of Perl6Regex
1208 '.local Array my_arr' is illegal now
1210 + C99: reimplementation with PCT
1213 . add support for functions with params
1214 . add math functions
1217 . first cut at smart matching
1218 . indirect method calls
1220 . added methods 'grep' and 'first'
1221 . implement auto{increment,decrement}
1222 . initial implementation of 'perl6doc'
1225 . add base64 library
1226 + Cardinal: basic support for functions with parameters
1227 + Pheme: various updates
1228 + Ecmascript: various updates
1229 + Tcl: now targeting tcl 8.5.1, no more expected failures in test suite.
1230 (No, this doesn't mean everything's implemented. =-)
1231 + Eclectus: various updates
1232 + WMLScript: various updates
1235 + Add library YAML::Dumper
1236 + Add the MD2, MD4, MD5, RIPEMD160, SHA & SHA1 PMC, as a wrapper
1239 + various bugfixes, code cleanups and coding standard fixes
1241 + remove external Perl 5 modules from the Parrot distribution
1245 + PDD09 (garbage collection) - approved
1246 + PDD28 (character sets) - draft started
1247 + added function documentation to some core functions
1248 + PCT beginners guide, optable guide and PAST nodes guide, bug fixes
1250 + IMCC: plugged various memory leaks and other cleanups
1252 . add "attribute" as a scope variant to PAST::Var nodes
1253 . add 'shift' and 'pop' methods to PAST:: nodes
1254 + NQP: add '=:=' op, tests for scalar and list contextualizers, \x escapes
1256 + APL: reimplementation with PCT
1257 + Cardinal (Ruby): reimplemention with PCT
1258 + Ecmascript: reimplementation with PCT
1259 + lolcode: improved expression parsing, ifthen, IT, YARN
1261 . aligned with Lua official release 5.1.3.
1262 . added initial PCT-based implementation.
1263 + Punie (Perl 1): refactor to use standard PCT-based filenames
1264 + Pynie (Python): add functions
1266 . rebranded, formerly known as 'perl6'
1267 . passes many more official Perl 6 Specification tests
1268 . added 'perl6doc' utility
1269 . oo including meta?classes, objects, methods, attributes, role composition
1270 . match variables, while/until statements, traits
1271 . many new methods for Str, List, Hash, Junction
1274 + PCCINVOKE syntax for named arguments using []; use () instead.
1275 + see DEPRECATED.pod for details
1277 + pbc_to_exe refactored for code reduction, portability, and maintainability
1279 + #line directives added to generated JIT files, improving debugging
1280 + consting, attribute marking, refactoring, warnings cleanup
1284 + PDD27 (multiple dispatch) - debut of new design
1285 + Numerous small updates to glossary.pod, etc
1287 + NQP: optional, named, and named/required parameters
1289 + PAST: "defined-or"
1291 + New mk_language_shell.pl script creates language stubs
1294 + Eclectus: start with support for local variables and procedures,
1295 use SXML as intermediate representation
1296 + Perl 6: list builtins, compiler directives, command-line options, etc.
1297 + "make perl6" now builds a Perl 6 executable
1298 + punie: more builtins, control structures, code refactoring
1299 + pynie: builtin stubs, more tests
1301 + New "pbc_to_exe" utility turns bytecode to executables
1302 + New set_outer method for subs
1303 + Further configuration refactoring for testability
1304 + All functions now completely headerized
1305 + Concurrency: interpreter schedulers
1307 + DYNSELF (changes to SELF; SELF to STATICSELF)
1308 + METHOD (replaced by renaming PCCMETHOD)
1309 + pmcinfo op (superseded by 'inspect')
1310 + get_attr, set_attr, and 8 other vtable methods
1311 + See DEPRECATED.pod for details
1314 + Minor speed enhancements with UTF-8 string handling
1316 + consting, attribute marking, warnings cleanup, memory leaks plugged ...
1320 + PDD19 (PIR) - reflect state on the ground; incorporate old IMCC docs
1321 + PDD25 (Concurrency) - launch out of draft
1322 + Improve documentation of deprecated parrot features.
1324 + PCT: Parrot Compiler Toolkit redesigned and updated
1325 + NQP: major updates, including support for namespaces,
1326 module/class declarations, methods
1327 + IMCC: remove .sym as alias for .local. Remove .pcc_
1328 prefix for calling directives (.pcc_begin became .begin_call).
1329 + PIRC: creates an AST during the parse.
1330 + PGE: more updates to match S05 syntax.
1332 + perl6: re-implemented using PCT and NQP, new object subsystem
1333 + abc: re-implemented using PCT and NQP
1334 + eclectus: initial implementation
1335 + plumhead: add PCT variant
1336 + punie: re-implemented using PCT and NQP, extended to handle subroutines
1337 Happy 20th Birthday, Perl!
1338 + pynie: re-implemented using PCT and NQP
1339 + PIR: start conversion to NQP (under construction)
1341 + new opcodes: 'die', 'addhandler', 'copy'
1342 + Initial implementation of Concurrency PDD
1343 + Add 'arity' method to Sub and NCI PMCs
1346 + consting, attribute marking, warnings cleanup, memory leaks, GC...
1347 + dead code removal (includes some defunct languages)
1351 + PDD15 (OO) branch merged with trunk; this release contains a working,
1352 tested implementation of the latest OO model
1353 + Added pop_eh/push_eh_p/count_eh opcodes
1354 + Add --runcore command line option
1355 + Add gcdebug runcore to help track down GC bugs
1356 + minor improvements to IA-32 JIT
1358 + PDD19 (PIR): updates to macros, .pcc* directives
1359 + PDD25 (Concurrency): updated
1360 + PDD26 (AST): draft approved
1361 + PDD23 (Exceptions): draft approved
1362 + Copyright cleanups
1363 - Languages/Compilers
1364 + languages/APL: minor updates, PDD15 conformance
1365 + languages/dotnet: minor updates
1366 + languages/lua: minor updates, PDD15 conformance
1367 + languages/lisp: minor updates
1368 + languages/perl6: minor updates, PDD15 conformance
1369 + languages/plumhead: minor updates
1370 + languages/punie: minor updates, PDD15 conformance
1371 + languages/nqp: minor updates
1372 + languages/scheme: many updates, PDD15 conformance, improved tests, use
1373 PMCs instead of primitive registers to represent values
1374 + languages/tcl: bugfixes, PDD15 conformance
1375 + languages/WMLScript: minor updates
1376 + compilers/pirc: updates from PDD19, PDD06
1377 + compilers/pct: minor updates, PDD15 conformance
1378 + compilers/pge: PDD15 conformance
1379 + compilers/tge: PDD15 conformance
1381 + Improve test coverage
1382 + Improve reporting when a step fails; allow abort on failure
1384 + More coding standard conformance, tests, cleanup, speedups,
1386 + Bug cleanup, esp. GC bugs
1387 + Eliminate .imc extension (use .pir)
1388 + Simplify some core config steps to not allow interactive prompting
1394 + Bug fixes (including Coverity IDs 20, 22, 30, 119-122, 124-126, 129-131)
1395 Also various GC, memory, and segfault issues
1396 + Fix & reenable CGP core
1397 + Parrot's -r flag now works again (compile to and execute bytecode)
1398 + Updates to pmc2c & PIR syntaxes
1400 + Minor performance improvements, especially in PGE
1402 + PDD02 "Vtables" - superceded by PDD17
1403 + PDD06 "PASM" - minor updates
1404 + PDD17 "PMC" - add VTABLE syntax, update core PMC struct, restore UnionVal
1405 + PDD19 "PIR" - early review started
1406 + PDD21 "Namespaces" - cleanup
1407 + PDD24 "Events" - draft approved
1408 + PDD25 "Concurrency" - minor updates
1409 + PDD26 "AST" - draft version begun
1410 + PIR tutorials updated
1411 - Languages/Compilers
1412 + Make scheme work with the current calling conventions, other major work.
1413 + Updates to m4, lua, compilers/pirc, languages/PIR, dotnet, tcl
1415 + make -j functional again
1416 + Code cleanup (refactoring, optimizations)
1420 + Performed code review on every PMC
1421 + Modified PMC code generation to use Storable, reducing compile times
1422 + Added a makefile target to generate test coverage data of C sources
1424 + NQP: added lists, for loops, operators, comparison and multiplicative operators
1425 + Announced Kea-CL, Kea Common Lisp, an ANSI Common Lisp implementation
1426 The repository is available at https://rgrjr.dyndns.org/svn/kea-cl/trunk/
1428 + PDD17 "PMCs" - draft approved, the design is complete
1429 + Added more PIR tutorials, see examples/tutorial/00_README.pod
1431 + Many bugfixes, enhancements, documentation, and coding standard updates
1432 + Deprecated PMC constants and other crufty syntax, see DEPRECATED.pod
1433 + Improved icc compiler compatibility for error line reporting
1437 + Lots of code review, many bugs fixed
1438 + Many more code cleanups and compiler warning levels
1439 + Started a new jit engine for 64-bit processors
1440 + Refactored configure process, with tests and new diagnostic options
1441 + Added new CodeString PMC for dynamic generation of PIR code
1442 + More pdd15 support for object metamodel.
1444 + Added NQP ("Not Quite Perl"), a very lightweight Perl 6-like language
1445 + Significant improvements and refactors to PCT (Parrot Compiler Toolkit)
1446 + perl6 passes more spec tests
1447 + Lua works now with a PGE/TGE/PAST-pm based compiler, lives in one pbc,
1448 and the interpreter has same behavior as original.
1450 + Added a committers' HOWTO
1451 + More PIR tutorial examples
1455 - Now, with Seat Belts!
1456 + added makefile targets for Sun lint, BSD lint, and splint
1457 + corrected many errors picked up by these tools
1458 + decorated source code with compiler hints, assertions, and attribute macros
1459 + automated creation of function declarations to prevent common errors
1460 + increased compiler warnings levels
1461 + converted more exceptions to a recoverable form
1463 + updated Lisp, Lua, Perl 6, tcl, regex, Scheme ("Pheme")
1464 + Perl 6 now fetches selected tests from pugs, and even passes some
1465 + PGE modified to handle {*} action subs for top-down and bottom-up parsers,
1466 and to allow grammar subclassing
1467 + HLLCompiler now has better exception, eval, and exit support
1468 + Introduced PCT, a refactor of HLLCompiler and PAST-pm
1470 + PDD15 "Objects" - details added to 'new' and 'getattribute' opcodes
1471 + PDD17 "PMCs" - notes added on instantiation and dynamic extention in PIR
1473 + added Parrot-related text from "Perl 6 and Parrot Essentials" book,
1474 tutorial examples from "Learning PIR" talk, and PDD15 metamodel diagrams
1476 + reduced memory footprint when using named registers
1477 + implemented overridding of vtable methods by PDD15 classes
1478 + improved PDD15 support for 'new', 'instantiate', and others
1479 + added makefile targets to ease core and HLL makefile regeneration
1480 + updated parrot dubugger, "pdb", to allow loading of commands from file
1482 + many bugfixes, enhancements, documentation, and coding standard updates
1486 + Updated Lisp, Lua, PHP ("Plumhead"), Python ("Pynie"), ABC,
1487 WMLScript, and Tcl ("ParTcl").
1488 + Perl 6 passes all of the sanity tests.
1489 + PGE supports latest Perl 6 grammar syntax. Perl 6, Python
1490 ("Pynie"), and ABC parsers updated to match.
1491 + Updated PHP ("Plumhead") to Antlr 3.0.
1492 + Lua added the beginnings of a PGE/TGE based compiler (not yet
1493 replacing the Perl/Yapp compiler).
1494 + Lisp updated for current features, added a test suite.
1495 - Core Implementation:
1496 + Filled in features and backward compatibility for PDD 15 objects.
1497 New object metamodel passes 85% of old test suite.
1498 + GCC API symbols are visible externally only when explicitly exported.
1499 + Added generated GCC compiler attributes to increase warnings, and
1500 cleaned up resulting warnings.
1501 + Code cleanup efforts and fixed memory leaks by the cage cleaners,
1502 resulting in notable speed increases.
1504 + Updated Parrot distribution to Artistic License 2.0, from dual
1505 Artistic 1/GPL license.
1506 + SDL examples brought up-to-date with current features.
1510 + even more refactorings and improvements in configuration system
1511 + improved tests and documentation for configuration system
1513 + Updated abc, PHP ("Plumhead"), Lua, Tcl
1516 + new PMC PDD draft partially completed
1518 + continued implementation of PDD 15 (Objects)
1519 + minor garbage collector and memory management improvements
1520 + several memory leaks resolved
1521 + extended support for compilers other than GCC
1522 + improved C++ compiler compatibility
1523 + enhanced support for Solaris, non-MSVC Win32, and other platforms
1528 + IMCC: added documentation for C-based Parrot Calling Conventions,
1529 refactorings and bug fixes
1530 + PGE: new perl6regex front end reflecting recent S05 syntax changes
1531 + PIRC: new prototype PIR parser
1533 + Updated Lua, PHP ("Plumhead"), BASIC, pynie
1534 + Lua implements environment
1536 + PDD15 "Objects" - details added, and draft approved
1538 + Added guidelines for PMC documentation
1540 + PDD15 implementation is largely complete, including role-based composition,
1541 introspection, and C3 method resolution order
1542 + new Exporter PMC for importing globals between namespaces
1543 + new string utilities for radix conversion
1544 + PCCINVOKE and Parrot_PCCINVOKE allow calling using the full Parrot Calling
1545 Conventions from PMCs and C code respectively
1547 + Refactorings and improvements in test coverage for 'Configure.pl'
1549 + many bugfixes, enhancements, and code cleanup
1550 + added example subversion config file
1551 + extended support for gcc, icc, and other compilers
1552 + extended support for Solaris and other platforms
1558 + IMCC: Parrot calling conventions now available between two C PMCs (PMINVOKE)
1559 + PGE: Match object improvements
1560 + smop: added Attribute and Class PMCs
1561 + HLLCompiler: improvements for interactive mode
1563 + extended binding to a list of variables
1565 + Updated Lua, PHP ("Plumhead"), Tcl ("ParTcl"), Ruby ("Cardinal")
1566 + Update PIR, regex, Zcode
1567 + New language: Pynie - a Python compiler for Parrot
1568 + Lua implements require and many other ops, improved regex support
1571 + PDD01 "Overview" - updated architecture and platform information
1572 + PDD15 "Objects" - details on roles, objects, and classes added
1573 + PDD22 "I/O" - added async ops and Status PMC details
1575 + Added guides for Metacommitter, Relase Manager, and Cage Cleaner roles
1577 + Object, Class, Role, and Attribute PMC implementation has begun
1578 + Perl 5 module "Parrot::Embed" now compiles and links on all platforms
1580 + Major improvements in test coverage for 'ops2c.pl'
1582 + New utility: Crow, a template processor
1583 + New library module: Config/JSON for reading/writing JSON files
1584 + many bugfixes, enhancements, and coding standard updates, code cleanup
1589 + IMCC: Parrot calling conventions now available in C PMCs, allowing
1590 named, optional, slurpy, and flat parameter passing
1591 + PGE: extended support for Perl 5 Regexes
1592 + smop: prototype object model implementation
1593 + hllcompiler: refactored to run a configurable set of compilation stages
1595 + redesigned assign/binding to support Perl 6 binding semantics
1597 + Updated Lua, PHP ("Plumhead"), Tcl ("ParTcl"), perl6, perl5
1598 + New language: PIR - a PGE-based implementation of Parrot PIR
1599 + perl6 now supports binding (':=') and 'join'
1600 + lua generates tail calls, and supports its own regex flavor (PGE-based)
1601 + Pheme still works, huzzah!
1603 + PDD21 "Objects" - rewritten
1604 + PDD22 "I/O" - updated and 'TODO' tests added
1606 + Interface stability classification standards approved
1607 + Roles and Responsibilities documented approved
1608 + Official 'drafts' directory created (was 'clip')
1610 + More NameSpace and OS PMC methods implemented
1611 + Parrot executable fullname and basename now available in PIR/PASM code
1612 + new 'chomp' library function
1614 + Major improvements in test coverage for 'ops2pm.pl'
1616 + many bugfixes, enhancements, and coding standard updates
1617 + extended support for Sun Workshop Compilers
1618 + Parrot now builds on PocketPC platform
1623 + HLLCompiler: added tracing options, modified api
1624 + PGE & TGE bugfixes and updates
1626 + added global and lexical variable support
1627 + added looping constructs, arrays, hashes
1629 + Updated PHP ("Plumhead"), Tcl ("ParTcl"),
1630 forth, perl6, lua, abc, APL, WMLScript, punie
1631 + ParTcl is passing > 24.9% of Tcl cvs-latest test suite
1632 + perl6 now supports hashes, arrays, method calls, arity-based
1633 multisubs, quoted terms, ranges (non-lazy), try blocks, $!
1635 + PDD01 "Overview" - updated
1636 + PDD22 "I/O" - rewritten and approved
1638 + Converted Perl 5 Regex tests to PIR, with notable speedup
1639 + Added tests for opcodes, compilers, languages, and coding standards
1641 + Major improvements in test coverage for 'pmc2c.pl'
1643 + many bugfixes, enhancements, and coding standard updates
1644 + extended support for non-core platforms including Cygwin, Tru64
1648 - New languages: PHP ("Plumhead"), Forth
1649 - Updated languages: Ruby ("Cardinal"), Tcl, Lua
1650 - Remove old Python implementation from Parrot repository; the new Python
1651 language code is hosted at http://pirate.tangentcode.com
1653 + PGE updated with more expressions, latest changes to S05
1654 + new Perl 6 grammar compiler
1656 + Perl 5 module "Parrot::Embed" allows easy embedding of a Parrot
1657 runtime into a Perl 5 program
1659 + new :init pragma for subs that must run before the main function
1660 + new :vtable pragma to identify subs that override PMC vtable methods,
1661 eliminating the need for special subroutine names
1662 + PIR parser/compiler does not stop on first syntax error
1663 + Vanilla register allocator ("register alligator") greatly improves
1664 performance compiling large functions
1665 + Eliminated limit on number of PIR macros
1667 + hash lookups return null instead of None for missing keys
1669 + PDD13 "Bytecode files: format and manipulation" - new
1670 + PDD10 "Embedding" - new
1671 + PDD25 "Concurrency" - rewritten
1672 + PDD15 "Objects" - new section on redesign requirements
1673 + PDD07 "Coding standards" - significant updates and automated tests
1675 + Many many more new tests
1677 + autoconf compatible install options
1679 + Namespace refinements
1680 + Coroutine improvements
1681 + An impressive swarm of other bugfixes and enhancements
1685 - New languages: Ruby ("Cardinal"), Javascript ("ecmascript")
1686 - Updated languages: Tcl, dotnet, bc, Pheme, Punie, WMLScript
1687 - Updated compilers: PGE, TGE
1689 + ".loadlib" directive expresses dependencies
1690 + ".namespace" with no parameter goes to HLL root
1691 + lexer is reentrant (reentrant grammar in progress)
1692 - Namespace improvements:
1693 + new suite of opcodes to access namespaces and globals
1694 ("find_global" and "store_global" will be phased out)
1695 + namespace '' no longer means HLL root
1696 - Design document updates:
1697 namespaces (pdd23), basic types (pdd17), embedding
1698 - Updated tool requirements for developers:
1699 flex 2.5.33, bison 2.1, perl 5.6.1
1700 - New to-do list for people new to Parrot:
1702 - The usual plethora of bugfixes and enhancements
1706 - unicode subroutine names
1707 - hierarchical class names finished including MMD support
1708 - new dotnet CLI to PIR translator
1709 - improved TGE code and compiler
1710 - APL: vector handling
1711 - new STM branch in the svn repository
1712 - the usual bugfixes and enhancements
1716 - hierarchical class names
1719 - understands simple vector ops, strings
1720 - demonstrates use of Unicode in Parrot
1721 - pgc, a compiler for rules and operator precedence parsers
1722 - Major redesign and improvements for PGE
1723 - compilers understand named parameter options
1724 - :ratchet option implemented to support non-backtracking quantifiers
1725 - TGE (tree grammar engine) for tree transformations
1726 - tgc, tree grammar compiler
1728 - support for many operators, lexical scalars, regex matches
1729 - new pheme (Parrot scheme) compiler
1733 - namespaces partially implemented
1734 - rulec, Perl 6 rule compiler
1735 - PGE improvements including return values for closure
1736 - parts of a Perl 6 parser based on PGE
1737 - complex trigonometric methods
1738 - type of Sub PMC is now overridable by HLL
1740 - many bug fixes and improvements
1744 - improved PPC and x86 JIT support including JIT compilation
1745 of very simple PASM/PIR subroutines
1746 - preliminary libreadline support
1747 - better trace and debug features
1749 - META.yml to support proper indexing on CPAN
1750 - new opcode: hcf (in "my_ops" in dynamic op library)
1751 - new File pmc for file specific ops (is_dir, is_file, copy, rename...)
1752 - named arguments and parameters (both :named("") and => syntaxes)
1753 - ongoing config improvements
1754 - tons of bug fixes and other small improvements - too much to list all
1758 - Installation: 'make install' is using standard locations now
1759 (/usr/local is the default --prefix)
1760 - Produce static and shared libraries on some systems
1761 - Configure system rearragement
1762 - OS pmc started (mkdir,cd,cwd,rm,umask,stat)
1764 - Test files are now testable with 'prove'
1765 - Smoke (and smokej) outputs progress
1766 - PIR supports: I = A < B (>,<=,>=,==,!=)
1767 - Add support for octal number constants
1769 - almost finish [string]; start [file]
1770 - add build tool for generating inline'd tcl builtins from templates.
1771 - Jako updates: NCI, subroutines, global variables and constants all work.
1776 - New lexical handling and closure support including better
1777 introspection for caller and outer
1778 - PGE (Parrot Grammar Engine) provides now compilers for P6Rule,
1779 P6Grammar, P5Regexp, and Glob
1780 - ca. 1000 new tests including 800 for Perl5 regexp
1781 - Improved unicode charset and encoding support
1782 - Calling conventions for exception handlers
1783 - Punie (Perl 1) uses TGE (Tree Grammar Engine) to convert from
1784 PGE match objects to AST via two steps of tree transformation grammars
1785 - New languages: amber and lua
1786 - The usual code fixes, cleanup, and improvements, including an overhaul
1787 of the config and test framework
1791 - Variable sized register frames are finished. Each subroutine gets
1792 the amount of registers that it actually needs. No more spilling.
1793 - Vastly improved PGE (Parrot Grammar Engine) including shift-reduce,
1794 precedence-based expression parser and support for matching of
1795 bracketed text delimited by e.g. ()[]{}'"
1796 - uniccode character classification (is_upper ...)
1797 - support for heredoc syntax in assembler
1798 - improved examples, basic JSON support
1799 - debian packaging support
1800 - the usual improvements, bug fixes, and cleanup
1801 - test count exceeds 3000
1805 - New calling conventions implemented: see PDD03 for details
1806 - Merge multiple Parrot bytecode (PBC) files into a singe PBC file
1807 - 'make smoke' target going beta
1808 - bc now supports if statements, comparison ops, prefix inc/dec
1809 - ParTcl adds [lassign], [switch] (partially); [expr] converted to a compiler
1810 - Many exciting doc updates, tests, and bugfixes, too numerous to mention
1814 - Dynamic classes now compile on Windows (including ParTcl)
1815 - New Super PMC allows easy access to superclass methods
1816 - Implement C3 method resolution order (just like Perl 6 & Python)
1817 - ParTcl has new PIR-based parser and passes more Tcl tests
1818 - added character class support in Globs to PGE
1819 - added language implementations of unlambda, Lazy-k
1820 - many bugfixes, including GC and memory leaks
1821 - the new calling scheme continued to evolve in branches/leo-ctx5
1825 - new call scheme: docs/pdds/pdd03_calling_conventions.pod
1826 - partial implementation of the new calling conventions
1827 PASM only, don't mix PIR foo() call syntax with the new scheme
1828 - grammar and rule support in PGE - the Parrot Grammar Engine
1829 - TCL passes >10% of the tcl test suite
1830 - the usual bugfixes and improvements
1834 - better HLL support (short names for object attributes, and
1835 .HLL and n_operators pragmas)
1836 - string encoding and charset can now be set independently
1837 - experimental mmap IO layer for slurping files
1838 - distinct debug and trace flag settings
1839 - glob support in PGE
1840 - new character classification opcodes and interfaces
1844 - parrot repository is now under subversion
1845 - MMD (Multi Method Dispatch) enhanced
1846 - new unary and infix opcodes that return new result PMCs
1847 - dynamic scalar PMCs inherit now almost all from Parrot core PMCs
1848 - more unification of PMCs and ParrotObjects
1849 - tailcalls for functions and methods
1850 - PGE (Parrot Grammar Engine) reworked
1851 - Pugs creates Parrot code and Pugs is a registered compiler now
1852 - new languages/lisp
1853 - the usual bug fixes and improvements
1857 - New string handling code. Strings now have charset and encoding
1858 - Parts of a generation garbage collector
1859 - Better Python code, separated in dynclasses
1860 - Parrot Grammar Engine
1861 - Improved test coverage and documentation
1865 Parrot 0.1.1 is an intermediate release with tons of updates and fixes.
1866 - Python support: Parrot runs 4/7 of the pie-thon test suite
1867 - Better OS support: more platforms, compiler, OS functions
1868 - Improved PIR syntax for method calls and <op>= assignment
1869 - Dynamic loading reworked including a "make install" target
1870 - MMD - multi method dispatch for binary vtable methods
1871 - Library improvement and cleanup
1872 - BigInt, Complex, *Array, Slice, Enumerate, None PMC classes
1873 - IA64 and hppa JIT support
1874 - Tons of fixes, improvements, new tests, and documentation updates.
1875 A lot is unfinished and keeps changing. Nethertheless Parrot is stable
1876 and usable at the surface, while internals are moving.
1879 - "Ladies and gentlemen, I give you... objects!"
1880 - Huge documentation overhaul
1881 - More supported platforms, s. PLATFORMS
1882 - Basic thread support for pthread based architectures
1883 - Basic event handling for timers and signals including:
1884 - PASM callbacks for NCI (native C) functions.
1885 - Improved platform configuration
1886 - COW stacks now working, stacks code redone
1887 - Structure handling vastly improved
1888 - Random PMC and rand primitives
1889 - Better subroutine call syntax in PIR
1890 - Make PIR subroutines compliant with pdd03
1891 - Improved profiling (DOD, GC timings)
1892 - Hash code improvements, incl. random key order support
1893 - Experimental freeze/thaw code for some PMC types
1894 - IO improvements for buffered layer and Win32
1896 - String bitwise vtables
1898 - Support for JIT, where malloced memory isn't executable
1899 - Priority DOD scheme for objects that need timely destruction
1900 - Improved byte code loading (e.g. onLoad functions)
1901 - Language updates: forth, Perl 6/P6C, m4
1902 - Libraries: Getopt_Long, SDL, Dumper, Sort
1904 - Unified imcc and parrot test handling
1905 - Many new tests (make test reports 1386 tests)
1906 - Numerous bug fixes
1909 - The Big Move: Parrot source and build files rearranged into sub dirs
1910 - Build imcc as parrot
1911 - Objects more finished
1912 - Delegate vtable methods to byte code
1913 - Binary multi-method dispatching
1914 - Isa and does methods for PMCs
1915 - Call byte code from C
1916 - Start of extension interface
1917 - Experimental struct handling
1918 - Catch access to NULL PMCs
1919 - Experimental network socket interface code and opcodes
1920 - IO fixes and improvements
1921 - Dynamic opcode libraries
1922 - Fix-assigned opcode numbers
1923 - Argument flattening for function calls
1924 - More native call interface (NCI) signatures
1925 - Ncurses, postgres, and pcre interface libraries
1926 - Forth language is vastly improved
1927 - BSD and Win32 build improvements
1928 - Many new tests and fixes
1931 - This number intentionally left blank
1935 - Dynamic PMC registration
1936 - Trial exception system
1937 - Beginnings of object system
1940 - I/O system improvements
1942 - Documentation for basic PMC types
1943 - IMCC support of Parrot Calling Conventions
1944 - Runtime loading of chartypes (and other string improvements)
1945 - Conditional breakpoints
1946 - Dramatically accelerated sweeps for finalizable objects
1947 - Small PMCs (PMCs split into core and extensions)
1948 - Loadable bytecode packfiles
1950 - Sub variants that deal with the stack correctly
1951 - Switched runops core
1952 - Line numbers in warnings
1953 - Environment access
1954 - Many documentation cleanups
1955 - Conversion to CPS style!
1956 - BASIC debugger and many other wacky features
1957 - Filename, line number parsing support in IMCC
1962 - some more benchmarking
1964 - optimized math ops
1965 - intersegment branches
1966 - more complete use of PObjs
1967 - beefed up packfiles
1968 - sub/continuation/coroutine fixes
1969 - better NCI (native calling interface)
1970 - many imcc improvements
1975 - Native function calling interface (Dan)
1976 - Stack/list aggregate rewrite (Leo)
1977 - Scratchpads (Jonathan Sillito)
1978 - Preliminary DotGNU support -- type conversion ops (Gopal V + Leo)
1979 - Buffer/PMC unification (Leo)
1980 - stabs debugging support for JIT (Leo)
1981 - Jako overhaul (Gregor)
1982 - Optional Lea allocator (Leo)
1983 - Parrot sprintf (Brent)
1985 - PMC Properties (Dan)
1986 - Various JIT improvements (D. Grunblatt + Leo)
1987 - Extensible packfiles (Juergen)
1988 - Restructured PMC hierarchy (Leo)
1989 - Real Scheme (Juergen)
1993 - Several new grammars and a BNF -> perl5 and perl6 converter (Jeff)
1994 - Working Perl 6 REs (Sean)
1995 - Keyed Access (Tom Hughes et al)
1996 - New PMCs (Alberto et al)
1997 - Better Documentation
1999 - GC acceleration (Mike Lambert)
2000 - Lexical scope (Jonathan Sillito)
2006 - Perl 6 Grammar and Compiler (Sean)
2007 - Subroutines, coroutines, and continuations (Melvin)
2008 - GC improvements (Peter Gibbs, Mike Lambert)
2009 - Global variables (Melvin)
2010 - Intermediate bytecode compiler (Melvin, Angel)
2011 - And much, much more.
2015 - New assembler that support keyed types (Jeff)
2016 - New macro layer, allowing constants (Jeff)
2017 - New Configure.pl (Brent)
2018 - Changes to bytecode format, endian issues resolved (Melvin)
2019 - GC improvements and bug fixes (Peter Gibbs, Mike Lambert)
2020 - JIT compiler rewrite (Jason and Daniel)
2021 - Parrot assembler in Parrot (Daniel)
2022 - Parrot debugger (Daniel)
2023 - BASIC polished, Eliza.bas is new (Clint)
2024 - Cola compiler committed and working, with limited OOP (Melvin)
2025 - Keyed aggregates (Steve Fink)
2026 - Global ops (Melvin)
2027 - Compile-time speedup (Melvin)
2028 - Much documentation
2030 - Contributed tetris and lzw files
2031 - And many more, from the cast of thousands
2036 - Perl Scalar support in PMCs
2037 - Array and Hash types almost ready for prime-time
2038 - Internal support for keyed types
2039 - EMACS editing mode
2041 - New Language - BASIC
2042 - Regular expression compiler
2044 - Many, many bug fixes, enhancements, and speedups
2048 - Arena-based memory allocation system
2051 - "Predereferencing" mode - ./parrot -P - 22% speedup
2052 - JIT compiler - ./parrot -j
2053 - Parrot now builds warnings-clean on many platforms
2054 - Many more PMC methods implemented
2055 - Regular expression operations
2057 - Basic support for embedding Parrot in other programs
2059 - Added PDDs to distribution
2063 - Added an assembly optimizer
2064 - Improved string encoding/type support
2066 - Source reformatting
2067 - Major refactoring in packfile library
2068 - More Miniperl functionality
2069 - New PMC "clone" operator
2070 - Beginnings of key-based access to PMCs - arrays and hashes
2071 - MOPS comparisons in examples/mops/
2076 - Perl base scalar types implemented
2077 - A new minilanguage, Scheme
2078 - Much improved documentation
2079 - Register stacks pushing and popping
2080 - User stack pushing, popping and rotating
2081 - Jako updates: subroutines, more example programs, optimizations
2082 - test_prog renamed to 'parrot'
2084 - Added features to the assembler: @ for current location, and global
2086 - Build tweaks for VMS
2087 - Bytecode typing clean-ups
2088 - More platforms: OS X, HPUX, OS/2
2089 - The proliferation of runops cores reduced to one fast and one slow one
2090 - Opcode tracing, bounds checking, profiling
2091 - Vastly improved string support, with separation of encoding and
2094 - Multiple interpreter creation support - the beginnings of threading
2095 - Much better resource handling - the beginnings of GC
2099 - Parrot now works on all core platforms
2100 - A large number of tests, in the standard Perl testing framework
2101 - A new minilanguage (Jako) which compiles to Parrot assembly
2102 - Documentation about the assembly language (docs/parrot_assembly.pod)
2104 - Separate modules for assembly (Parrot::Assemble) and bytecode
2105 manipulation (Parrot::PackFile::*, packfile.c)
2106 - Assembler completely rewritten
2107 - Better operand-type guessing in the assembler
2108 - Assembler support for '\n' etc. in string constants
2109 - Code reformatted to match the coding standards
2110 - New ops for register-constant INTEGER comparisons
2111 - Macro expansion in the assembler
2112 - IVs and NVs renamed to more friendly INTVAL and NUMVAL
2113 - Hard-coded pack("") formats removed
2114 - Better handling of floating-point numbers in assembler
2115 - Moved floats to constant table (fixing many alignment issues)