5 + Profiling runcore can now be used to generate Callgrind-compatible output
6 + PMC allocator now automatically allocates ATTR structures
7 + Added fixed-size structure allocator to GC
8 + Contexts are now garbage-collectable
9 + Created a new Context API
10 + Op definitions cache the current Context for subsequent lookups
11 + Unified Continuation PMC and Parrot_cont structure
12 + Unified Sub PMC and Parrot_sub structure
13 + Began proper encapsulation of STRING API
14 + Modify PMC structure to remove UnionVal
15 + Removed PMC_EXT structure
16 + Removed PMC_Sync from PMC
17 + Added a "Lazy" mode to the PObj and Fixed-Size allocators
18 + Reduce string comparisons in VTABLE_isa
19 + Unified all PMC destruction functions
20 + Added several fixes for stack-walking GC code
21 + Copying a NULL string now returns an empty STRING structure
22 + Add find_dynamic_lex and store_dynamic_lex opcodes
24 + Convert several Perl5 tests to PIR
25 + Expand test coverage of NameSpace PMC
27 + PCT is now included in "make install"
31 + Removed several deprecated functions and features
32 + Removed bsr, jsr, branch_cs, and ret opcodes
33 + Removed global stacks system
34 + Changed OPS file format to include explicit preamble
35 + Changed all "new 'Iterator'" instructions into 'iter' instructions
36 + Removed Configure.pl options for specifying non-working GC cores
37 + Removed unexecuting code as found by Coverity
38 + Improvements to the Parrot Debugger
39 + Added experimental fixed-size structure allocator to the GC
40 + Added experimental lazy arena allocation to the GC
41 + Refactored hashes, keys, and iterators
42 + Added "corevm" make target to build Parrot without all the supporting libraries
43 + Removed Random PMC type and added in a "rand" dynop
44 + Optimization and Improvements to the NCI thunk generator
45 + New include file libpaths.pasm
47 + Multiple .local with same name and different type is now an error on IMCC.
49 + Improved support for detecting Fink and Macports
50 + Updated search directories for libraries
52 + "Parrot Developers Guide: PIR" released to publisher and available to purchase
53 + Improved documentation about Parrot Debugger
54 + Update PGE Documentation
56 + Deprecate 'PASM1' compiler object, update to warn instead of segfault
58 + Fixes to code, documentation, and standards
62 + Key and Iterator refactor
63 + Major pbc_to_exe generated code speed improvement
64 + New "Infinite Memory" GC core for demonstration purposes
65 + gc_debug runcore and GC-related heisenbug fixes
66 + Elimination of variable expansion in parrot_config
67 + CLI arguments are processed as Unicode by default
68 + Substantial optimizations in NCI
69 + Parrot builds on Win64
70 + Hashes can use native types as keys and values
71 + Fixed installed pbc_to_exe
72 + Simplification of PMC generation code
73 + Improved GC encapsulation and API documentation
75 + List of candidates for embedding API (docs/embed.pod)
76 + PIR book sent to publisher
78 + Several conversions of Perl test to pure PIR.
79 + C indentation coding standards test improvement
80 + Improved test coverage of example code
82 + Removal of PGE rules: <null> <fail> <sp> <lt> <gt> <dot>
83 + Removal of PGE methods: .text .item .result_object
84 + Deprecation of most dynops
86 + Beginnings of OpenGL::Math library; OpenGL bindings and library marked experimental
87 + Localizing and consting fixes
88 + Many memory and thread-related leaks plugged
92 + Optimized parts of the IO system
93 + Fixed inheritance hierarchy of FileHandle and Socket PMC types
94 + Fixed leaks involving subroutines and Parrot_Context
95 + Cleaned up and refactored GC internals, including fixes and optimizations
96 + Optimized PMC class manipulations to use type numbers instead of string names
97 + Fixed problems involving hashval calculations in strings
98 + Removed unnecessary MULTI dispatches in built-in PMCs
99 + Fixed memory leaks involving PMCs that were not properly destroyed
100 + Fixed creation of PMCProxy PMCs in correct namespaces
101 + Added preliminary Pipe support
102 + Fixed cloning of Object PMCs
103 + Added root_new opcode
104 + Added initial versions of Packfile PMCs with read/write capabilities
106 + Fixed several memory leaks in IMCC
107 + Updated PCT to use root_new opcode
108 + Added support for keyword "self" in NQP
110 + Improved and expanded /docs/book
111 + Updated project documentation
112 + Defined 'experimental' status and procedures in DEPRECATED.pod
114 + Cleaned code and improved code-level documentation
115 + Various bugfixes, code cleanups, and coding standard fixes
116 + Added an experimental compiler library to help use PIR libraries from HLLs
117 + Updated OpenGL library and examples to support experimental HLL import
121 + Fixes for pir classes inheriting from core pmcs.
122 + Cleaned up headers and reorganized some sources into subsystem directories.
123 + Clean up PMCs so libparrot.so exports far fewer vtable/method symbols.
124 + Clean up the GC API.
125 + Several unicode identifier improvements in IMCC.
127 + Protoobject stringification is gone.
129 + Rewrite several core documents.
130 + Many reworks, improvements & additions to the Parrot Book.
131 + Installation PDD is launched out of draft.
133 + Fixes for running the language shell generator outside the parrot tree.
134 + Several fixes for developing and building HLLs from an installed parrot.
135 + Configure.pl now has a --no-line-directives option to ease source level debugging.
137 + Portability updates for macports, netbsd, mingw32, hpux.
138 + Several (build time, runtime) performance improvements.
139 + Lots of updates to examples and tests.
140 + Various bugfixes, code cleanups, and coding standard fixes.
144 + Added op: load_language, find_caller_lex
145 + Socket IO are back as PMC
146 + Refactor some PMC: Hash, ManagedStruct
150 - Allow \x, \c, and \o in enumerated character classes (incl ranges)
151 - Add initial greedy-only version of ** <exp> quantifier
153 - Add HLL source line bytecode annotations
154 - Add another dumper format to assist syntax highlighters
155 - Revise mk_language_shell.pl to updated create_language.pl
157 + Removed ops: gcd, exec, classname, need_finalize, runinterp, substr_r
158 + Removed dynamic op: mul
159 + Removed .HLL_map directive; use interp's .hll_map() instead
160 + Removed PMCs: slice, bound_nci, ref
161 + Removed Configure.pl option: --pmc
162 + Removed PMC union struct
165 - Reorganization and many improvements & additions
167 + Add a parrot-fuzzer
169 + Improve Debian/Ubuntu package
170 + various bugfixes, code cleanups, and coding standard fixes
175 + New user documentation for exceptions.
176 + Updates to Chapters 4 & 5 of the Parrot book.
177 + Improved and expanded generated HTML documentation, as the input for
178 http://docs.parrot.org.
179 + Added Compiled HTML Help (.chm) version of documentation.
180 + Cleanups and fixes.
183 - left the nest and is now at http://pynie.googlecode.com/
185 - left the nest and is now at http://github.com/cardinal
187 - left the nest and is now at http://paraplegic.googlecode.com/
188 + ABC, Squaak, and Befunge moved to examples/.
189 + All remaining languages moved to https://svn.parrot.org/languages/
191 + Support for language builds from an installed Parrot.
192 + Expanded language shell generator for new languages.
193 + 'parrotbug' utility repurposed for the Trac interface.
195 + Removed deprecated Tqueue and Closure PMCs.
196 + String, Key, NCI, LexPad, Iterator, Sub, Continuation, RetContinuation,
197 ExceptionHandler, ParrotLibrary, ParrotInterpreter, ParrotThread,
198 ParrotRunningThread, Rational, FixedPMCArray, ResizablePMCArray, and
199 GDBMHash PMCs now use declared attributes (ATTR), in place of the
205 + Support for portable 'Inf', 'NaN' and -0.0
206 + pbc_disassemble prints constants in constants table
207 + New experimental BigNum implementation
208 + Pair is now a dynamic loadable PMC
209 + Various function name sanification
210 + New implementation of Strings component
211 + Replace various PMC value union access code by VTABLE method invocations
212 + Replace various PMC value unions by ATTRibutes
213 + Removed SArray PMC. Use FixedPMCArray instead.
216 - updates to Chapter 2 (getting started)
217 - updates to Chapter 3 (PIR basics)
218 - updates to Chapter 4 (PIR subroutines)
219 - updates to Chapter 10 (HLLs)
220 - updates to Chapter 12 (opcodes)
221 + Function documentation
222 + Pod documentation style modernized; no longer Perl 5 style.
223 + PMC has an additional acronym: Poly Morphic Container
224 + The DOD (Dead Object Detection) acronym is no longer used;
225 use 'GC' to refer to the Garbage Collector component.
228 - :named flag can now take string registers as argument
229 - A single '=cut' directive is now ignored (without initial Pod directive)
230 - :vtable subs now have proper access to 'self' pseudo variable
232 + add new 'Pod' documentation parser
233 + Pipp (PHP implementation):
234 - Pipp is now at http://github.com/bschmalhofer/pipp
235 - support for 'print', 'dirname', 'implode', 'str_replace',
236 - various grammar fixes
238 + add 'quit', 'readline' builtins
239 + fix 'Boolean' type and 'print' builtin
241 - left the nest and is now at http://github.com/fperrad/lua/
243 - left the nest and is now at http://github.com/rakudo/rakudo/
244 - build instructions can be found at http://tinyurl.com/rakudo
246 - left the nest and is now at http://github.com/bschmalhofer/lazy-k.git
248 - left the nest and is now at http://github.com/bschmalhofer/unlambda/
250 - left the nest and is now at http://github.com/fperrad/wmlscript.git
251 + removed Zcode implementation
254 - ATTRs are now inherited automatically in subclassing PMCs
256 + Parrot_readbc, Parrot_loadbc renamed to Parrot_pbc_read, Parrot_pbc_load.
257 + .HLL_map directive in favour of 'hll_map' method on Parrot interpreter
258 + Data::Escape library
260 + pbc_disassemble options added
261 + pbc_dump renamed from pdump
263 + Parrot is now Copyright Parrot Foundation
264 + Parrot's SVN repository is now hosted at https://svn.parrot.org
265 + Various code cleanups, consting, 64-bit incompatibilities and other bug fixes
268 New in January 2009 release (0.9.0)
270 + Implemented bytecode annotations
271 + Role composition is now aware of multi-subs
272 + Unbuffered IO PMCs now autopromote when buffering is necessary
273 + Installation parrot binary and libparrot shared library now supported
274 + Class registry now respects HLLs
277 - removed keyed string indexing, e.g. $S0[1].
278 - removed slice syntax, e.g. $P0[1..2]
279 - removed .namespace <ident>/.endnamespace <ident> pair
280 - fixed 'new $P0, [classname]' syntax
282 - refactoring of various data structures
283 - various bug fixes and updates
284 - complete bytecode generation
285 - add '-x' commandline option to run compiled code
287 - add 'hll' and 'subid' attributes to PAST::Block
288 - refactor loop handling code to handle last/redo/next
289 - add :pasttype('stmts') and :pasttype('null')
290 - improve "scope not found" error message
291 - allow PAST::Val nodes to contain block references
293 - add "skipkey" option to PGE::OPTable
294 - allow spaces before modifiers in regexes
295 - add '(' ~ ')' goal matching syntax
296 - skip creating a class/grammar if it already exists
299 - improved error mesages in multi dispatch
300 - implemented clone method for all objects
301 - implemented MAIN sub
302 - Unicode versions of infix hyper operators
303 - refactored IO.readline
304 - basic support for Inf and NaN
305 - list and array slices with whatever star
307 - implemented last and redo
308 - pointy blocks as terms
309 - refactored variable and parameter passing
310 - improved assignment semantics
311 - improved parsing of type names and subs
312 - mostly implemented parametric roles
313 - separate types for blocks, subs and methods
314 - basic support for submethods
315 - implemented Junction autothreading of user code (not builtins yet)
316 - eval supports :lang attribute
317 - proto makes other subs in scope multis, including in role composition
319 - back to working state
322 - add support for predefined constant __CLASS__ and __METHOD__
323 - add initial support for static members
324 - add support for namespaced constants
325 - constants are now handled as package vars
326 - variables are now lexical variables
327 - add support for superglobals in functions
328 - Call the class __constructor when there is one
329 - added incomplete support for closures
330 - removed support for the alternative parsing strategies
331 - added support for 'elsif'
332 - added support for 'do-while'
334 - left the nest and is now at https://github.com/bschmalhofer/hq9plus/
336 - left the nest and is now at http://github.com/bschmalhofer/eclectus/
338 - left the nest and is now at http://github.com/bschmalhofer/m4/
340 - add a minimalist user back trace
342 - "does" and "morph" VTABLE interfaces are now overridable from PIR
345 - 'make smoke' now generates Smolder reports sent to
346 http://smolder.plusthree.com/app/public_projects/smoke_reports/8
347 + Improved const and null correctness for C function parameters
348 + Sped up STRING manipulation (append, chop), improving PGE about 30%
350 - Added sections about Classes, OO programming, and methods.
351 - Added information about Annotations, Exceptions, and Handlers
353 - Removed non-functional STM subsystem
358 + fixed lexical semantics
359 + added the 'capture_lex' opcode
360 + added automatic resume for nonfatal exceptions
361 + added multidispatch cache
362 + applied miscellaneous performance improvements, including startup time
363 + fixed several bugs and leaks found by Coverity Scan
364 + removed race conditions from parallel testing
367 - removed undocumented .param int <stringc> => <ident> syntax
368 - .line directive now only takes an integer argument
369 - new .file directive to specify the file name being compiled
371 - properly handles lexical generation and closure semantics
372 - uses :subid instead of name lookups to reference PAST::Block nodes
373 - added PAST::Control node type (exception handlers)
375 - add support for <?{{...}}> and <!{{...}}> assertions
376 - Match objects use Capture PMC instead of Capture_PIR
378 - add macro handling to PASM mode
379 - disable vanilla register allocation in PASM mode, but do allow optimization
380 - add tests and bug fixes
381 - first bits of bytecode generation. No sub calling/returning yet.
384 - fixed lexical handling and recursion
385 - refactored subtypes implementation
386 - support for quotes with multi-character delimiters
387 - implemented list slices (Positional role)
389 - reduction meta operators
390 - hyper meta operators
391 - cross meta operators
392 - more builtin functions
394 - basic support for protos
395 - iterator on filehandle objects
396 - basic support for exception handlers
399 - added complex & mathx libraries
400 - merged LuaClosure & LuaFunction PMC
402 - added support for a return value from user defined functions
403 - added incomplete implemention of 'require_once'
405 - parser fixes, parses spidermonkey's top level test/shell.js
407 + PARROT_API is now PARROT_EXPORT
409 - :lexid is now :subid
410 - .arg is now .set_arg
411 - .result is now .get_result
412 - .yield (in .begin/end_yield) is now .set_yield
413 - .return (in .begin/end_return) is now .set_return
414 - .namespace x / .endnamespace x syntax is removed
415 + Capture_PIR (runtime/parrot/library/Parrot/Capture_PIR.pir)
419 + added CPAN module Storable 2.12 as a configuration and build dependency
420 + removed the pseudo PIR opcode 'addr'
421 + added the 'box' opcode
422 + fixed 'pop_eh' handling in PIR libraries and examples
423 + removed usage of .return for tailcalls (use .tailcall instead)
424 + removed 'get_hash' and 'get_array' from Capture PMC and Capture_PIR
425 + improved debugger and HLL coordination
426 + allowed MMD primitive autoboxing
427 + fixed all known memory leaks in PIR "Hello, world!"
428 + NCI signatures now JITted on x86-32 platforms (Windows and Linux)
429 + made the .const directive take a quoted type name instead of a constant
430 + made IMCC more re-entrant
433 - refactored Junctions implementation
434 - added "fire and forget" tool to rebase/rebuild/test Parrot and Rakudo
435 - updated container/reference semantics
436 - added more builtin methods and functions
437 - improved support for multilevel namespaces
438 - added support for .Str, .succ, .pred in user-defined classes
439 - implemented pointy blocks on if/loops
440 - increased STD.pm convergence
442 - improved MMD candidate sorting
443 - improved integration of Num and Int
444 - implemented increment on protoobjects
445 - added initial support for MAIN subs
446 - added .PARROT method
448 - added some predefined constants
449 - added implemention of the function basename()
451 - Added initial support for the classes Proc, Continuation, Queue, Dir, File, and FileStat
452 - fixed various minor bugs
453 - fixed broken Regexes
456 - added '.isa' method to PCT::Node
457 - cleaned up 'immediate block' handling
458 - allowed arguments to immediate blocks in loops/conditionals
459 - metaclass objects can now 'add_method'
461 - integrated macro processing in PIRC's lexer
462 - integrated heredoc lexer in PIRC executable
463 - added preprocess and heredoc-preprocess commandline options
464 - integrated the PASM grammar into PIRC
465 - added a register allocator to optimize the built-in vanilla allocator
466 - code cleanups and documentation
467 - added 'make test' target
469 - updated to work with new namespace/classname syntax
471 + PARROT_API will become PARROT_EXPORT
472 + :lexid will become :subid
475 - updates and additions to the Parrot book (see docs/book/)
477 - minor fixes to Parrot's base OpenGL bindings
478 - converted OpenGL PIR examples to Perl 6 (two complete, one WIP)
479 - added simplified OpenGL PIR example for NCI JIT testing
481 - further improvements to parallel tests
482 - tests no longer leave filesystem breadcrumbs
483 - more thorough testing of Parrot::Test itself
487 + float precision expanded to 15 significant digits from 6
488 + large integers autopromoted in PIR so as not to lose precision
489 + improved precision of complex square root
490 + exception handlers can register types of exceptions they catch
493 - implemented gather, take, and yield builtins
494 - Range, Time, Math, GC, Kernel classes
496 - added a new committer
497 + Markdown : new lightweight markup language
498 - start implementation with PCT/NQP
500 - Moved to its own repository: http://code.google.com/p/partcl/
502 - split() works with regexes
503 - implemented Str.comb
504 - ord() and chr() builtins
505 - improved parsing of literal numbers
506 - support for hyphens and dashes in identifiers
507 - next() on for-loops
508 - fixed floating point constant precision
509 - improved namespace handling, closer to STD.pm model
510 - support for exporting symbols
513 - now generates classes in nested namespaces instead of :: names
514 - supports class creation in caller's HLL namespace
516 - now using true nested namespaces instead of :: names
517 - cleaned up HLLCompiler interactive prompts and readline mode
518 - updated to use typed exception handler registration
519 - added initial support for loop control exceptions
521 - fixed Heredoc preprocessor
522 - cleaned up Macro preprocessor
523 - many code clean-ups, warning fixes and consting
524 - updated Makefile for easier compilation
526 - Added .tailcall syntax to replace .return in tailcall context
529 - an old style line numbered Basic interpreter able to use parrot objects
530 - example connecting to mysql via nci
531 - example using classes to write and run an embedded Basic program
534 - Added chapters for PCT, PMCs, and Opcodes/Runcores
535 - Expanded and improved formatting in various chapters
536 - Renumbered chapters
541 + add -I and -L command line options
542 + support for null strings in NCI calls
543 + preliminary support for resumable exceptions
544 + add '.hll_map' method for dynamic HLL type mapping
545 + more parrot_debugger fixes
546 + remove obsolete '.past' extension
549 - now over 3300 passing spectests
550 - precompiled modules
551 - precompiled scripts (--target=pir can now be executed standalone)
552 - Support for @*INC and %*INC varialbes
553 - additional builtin methods and subs
554 - added 'fail' function, warnings on use of undefined values
556 - qq, qw, q quoting forms
557 - run tests in parallel
561 - 'require' and precompiled modules
563 - all Array tests pass
565 - default arguments to functions
569 - add :loadinit attribute for PAST::Block
571 - major refactoring to allow all PIR keywords as identifiers
572 - links to libparrot now, so all Parrot ops are recognized as such
573 - implemented .loadlib, .HLL_map, .HLL
575 + add Xlib and Mysql modules and test programs to NCI examples
576 + many updates and cleanups to PDD documents
580 + PDD27: add multisub lookup
582 + new concurrency implementation (see PDD25)
583 + Exception PMC now captures a return continuation
584 + improved PMC encapsulation (Iterator, Key, Pair)
588 - parsing improvements
589 - minor additions to class builtins
590 - add support for block parameters to functions
592 - various language fixes
593 - refactor all libraries (namespace, method registration)
594 - add a OpenGL binding (still incomplete)
595 - lost user back trace (see ppd25 & pushaction)
597 - add support for while- and for-loops
598 - add support for increment and decrement
599 - designate PHP 5.3 as the reference implementation
600 - improve support for string literals
602 - removed due to bit rot
604 - now over 2200 passing spectests
605 - updated the Rakudo roadmap
606 - Perl 6 multi dispatch
607 - dispatch with slurpies
608 - class attributes ("my $.x")
610 - OO and metaclass improvements (.WHAT, .WHICH, .WHENCE)
611 - additional builtin methods and subs
612 - improved make test targets and harness
614 - implement [lreverse], [lsort -command]
615 - allow [incr] to autovivify
616 - update tclsh spec target to 8.5.3
617 - fix bug in TclDict PMC, allowing ~200 more [dict] spec tests to pass
618 - update 'make spectest' fudging, using TODO instead of SKIP if possible
621 - :scope('register') for PAST::Var nodes
622 - allow invocant specification in attribute scope PAST::Var nodes
623 - correct ordering of sub generation from POST
624 - add 'loadinit' attribute to PAST::Block for block initialization
626 - PIR registers now use the vanilla register allocator
627 - all PASM output now uses PASM registers
628 - all .locals and $registers are mapped
629 - clean-up of grammar, back-end and documentation
630 - implemented constant folding
631 - implemented instruction selection
633 + tests now clean up after themselves
634 + improved parallel test support
636 + Darwin problems fixed
638 + parrot_debugger renamed from pdb, numerous tweaks
641 + :vtable implies self in PIR
642 + modest core speed improvements
643 + Cygwin support improved
644 + "say" now an opcode (was dispatched to a method; see Deprecations)
646 + ".pragma n_operators" is deprecated
647 + old PASM register syntax (without "$") is deprecated
648 + bare (unquoted) method names are deprecated
649 + "#line" will be replaced with ".line"
650 + ".HLL_map" syntax will change
651 + ".loadlib" is now separate from ".HLL"
652 + mmdvtregister and mmdvtablefind opcodes are deprecated
653 + removed getfd, getclass opcodes
654 + removed IMCC syntax that treated some methods as builtins
655 + removed numeric get_attr and set_attr vtable entries
659 + removed a lot of old information from the FAQ
660 + improved function level documentation
662 + removed the configuration item 'has_gnu_m4'
663 + refactored ICU-detection
666 - improved the Smalltalk implementation
668 - renamed Plumhead to Pipp
669 - support for a lot of builtin functions.
670 - Pipp now uses PHP specific data types.
671 - converted from PCT with TGE to PCT with NQP actions
672 - improvements in the PCT variant by using optok parsing
673 - start of object support
675 - simple assignments work
677 - added a PCT-based implementation of JSON parsing
679 - improved handling of symbols
680 - added support for block handling
681 - added support for globals
685 - updated Range implementation
687 - added generic type declarations (::T)
688 - added runtime mixing of roles with 'does' and 'but'
689 - fixed handling of implicit lexicals ($_, $!, and $/)
690 - fixed implicit method calls on $_
691 - improved complex math builtins, added Complex
692 - moved many builtins to class Any
693 - declaration of lists of variables now work
694 - improved test infrastructure
695 - 910 additional passing spec tests since last release
696 - more convergence with STD.pm grammar
697 - added named 0-ary parsing and ops
700 - allowed subroutine and method names to be a PAST tree that produces the name
701 - Improved lexical handling
703 + pbc_disassemble renamed from disassemble
705 + allowed .macro_const in PIR
706 + added the flag :lexid(...) for subroutines
707 + made multiple dispatch work for sub types
708 + fixed garbage collection bug related to the metadata attached to a PMC_EXT structure
709 + added a warning when using deprecated opcodes
710 + simplified the stacks implementation
712 + improved closure and lexical support
713 + improved IMCC register allocator
714 + added cache for all runtime-constant strings, reducing memory usage
716 + improved OpenGL/GLU/GLUT bindings
717 + added a standard profile for Perl::Critic coding standard testing
718 + added support for smoke testing with Smolder
719 + enabled use of Test::Harness 3.0 if available, but don't require it for 'make test'
720 + added the executable 'parrot_config' to query Parrot configuration
724 + updated pdd09_gc.pod
727 - dramatically improved parsing speed
728 - added support for defining and instantiating classes
729 - started fleshing out the builtin class hierarchy
730 - added support for hashes and arrays
731 + Chitchat: added the start of a smalltalk compiler
732 + Pheme: updated to match PGE changes
733 + Pynie: return statement, other minor updates
735 - added working list and hash contexts
736 - added 'return' statements
737 - added => pair constructor
738 - added ?? !! ternary
739 - added Range, range operators, Complex
740 - added common List, Hash methods
741 - refactored base classes
742 - added Mutable, Perl6Scalar classes
743 - added type-checking, is readonly/rw/copy for parameters
744 - added make localtest, docs/spectest-progress.csv
746 + Squaak: implement return statement
747 + Tcl: updated control flow exceptions to use new builtin types
749 + All tools converted to P6object metamodel
751 - <?foo> is now a zero-width match
752 - reduced backtracking to improve parsing speed
754 - added "return" PAST.op node type for subroutine returns
755 - added "keyed_int" scoping to PAST::Var
756 - fixed calls to closures
757 - automatically transcode 7-bit unicode to ascii for faster processing
758 + NQP: added "return" statement, ?? !! ternary operator
760 + expanded step gen::opengl
762 + updated function and macro names to match pdd09_gc.pod
764 + add ".namespace []" as alternative to ".namespace"
765 + "make codetest" target runs standard coding tests
767 + added P6object class for Perl 6 interfaces to objects in Parrot
768 + ported OpenGL/GLU/GLUT bindings to Win32, BSD, and more Mac OS X variants
769 + generate OpenGL/GLU/GLUT bindings by parsing system headers
770 + new OpenGL example shapes.pir, covering basic OpenGL 1.1 / GLUT 3 APIs
771 + new float4.pir structure-packing benchmark
772 + reduced memory use for variables
773 + improved constant string caching
774 + made code g++ and gcc (with optimizations) safe
775 + the usual collection of bugfixes and optimizations
779 + updated and launched pdd28_strings.pod
780 + updated pdd19_pir.pod
782 + added implementation of Rational PMC.
783 + simplified ops control flow syntax
784 + enabled backtrace on non-glibc platforms too
785 + improved some PIR error reporting
786 + removed user stack opcodes
787 (save, restore, lookback, entrytype, depth, rotate_up)
788 (NOTE: This was scheduled to occur after 0.7.0, moved up to this release)
789 + removed register stack, saveall, and restoreall opcodes
790 + removed various deprecated features and unused code
793 + C99: grammar updated
794 + Cardinal: resurrected, method calls and do blocks work now
795 + Eclectus: use NQP as PAST generating code
797 - added big number library
798 - updated to match PGE changes
799 - added a bytecode disassembler & a Lua 5.1 VM bytecode translator
800 + Pheme: updated to match PGE/PCT changes
802 - use NQP as PAST generating code
803 - use riaxpander for macro expansion
806 - conditional and loop statement modifiers
807 - lots of class, object, role, and method improvements
808 - Str increment and decrement
809 - improved spectest reporting
810 - type checking on assignment
811 - regexes and grammars
815 + Squaak: added to repository
818 + PGE: updated to match Synopsis 5, deprecated features removed
820 - improve handling of register types, conversion between registers
821 - improved error diagnostics
822 - add 'arity' to for loops
824 + added step auto::opengl
825 + added step gen::opengl
826 + added step gen::call_list
828 + still more optimizations and performance improvements, especially in GC
829 + new libraries: OpenGL/GLU/GLUT bindings (small subset working)
830 + new dump_pbc.pl utility: PBC disassembly/source code weaver
831 + improved C++ compiler support
832 + optimized builds work again
837 + drafted pdd29_compiler_tools.pod
838 + updated pdd28_character_sets.pod draft
839 + updated pdd19_pir.pod draft
841 + c99: added independent C pre-processor
842 + HQ9+: reimplemented with PCT
844 . reimplementation with PCT, using PAST and POST
845 . behavior aligned wih 5.1.3
847 . implemented basic I/O, including '$*IN', '$*OUT', '$*ERR', 'prefix:='
848 . implemented simple typing and runtime type checking
849 . added basic multi-method dispatch
850 . expanded named argument handling, including Pair and colonpairs
851 . added 'Whatever' and 'Capture' classes
852 . implemented 'handles' trait verb
853 . added 'loop' statement
854 . implemented 'given', 'when', 'for', 'while', 'until' statement modifiers
855 . implemented Hash methods '.keys' and '.values'
856 . fixed bug to get '.WHAT' working correctly
857 . initial implementation of 'eval'
860 . created a bootstrapped build, see 'make boot'
861 . added 'infix:<', 'infix:<=', 'infix:>', 'infix:>=' relational operators
862 . added 'postfix:++', 'postfix:--' operators
864 . added methods specifying default behaviors in PAST, reducing repeated code
865 . improved symbol table lookup
867 . removed deprecated code including: P6Regex, P6Grammar, PAST-pm
869 + notable speedups during compilation and execution of parrot and HLLs
870 + pdb (the parrot debugger) can now catch parrot exceptions
871 + better detection of glibc and gettext during configuration
872 + various bugfixes, code cleanups, deprecations, and coding standard fixes
877 + launched pdd18_security.pod
878 + updated pdd17_pmc.pod
879 + launching draft of pdd28_character_sets.pod
881 + cleanup of IMCC documentation
883 + add step auto::gettext
884 + add step auto::crypto
888 . Phase out P6Regex in favor of Perl6Regex
890 '.local Array my_arr' is illegal now
892 + C99: reimplementation with PCT
895 . add support for functions with params
899 . first cut at smart matching
900 . indirect method calls
902 . added methods 'grep' and 'first'
903 . implement auto{increment,decrement}
904 . initial implementation of 'perl6doc'
908 + Cardinal: basic support for functions with parameters
909 + Pheme: various updates
910 + Ecmascript: various updates
911 + Tcl: now targeting tcl 8.5.1, no more expected failures in test suite.
912 (No, this doesn't mean everything's implemented. =-)
913 + Eclectus: various updates
914 + WMLScript: various updates
917 + Add library YAML::Dumper
918 + Add the MD2, MD4, MD5, RIPEMD160, SHA & SHA1 PMC, as a wrapper
921 + various bugfixes, code cleanups and coding standard fixes
923 + remove external Perl 5 modules from the Parrot distribution
927 + PDD09 (garbage collection) - approved
928 + PDD28 (character sets) - draft started
929 + added function documentation to some core functions
930 + PCT beginners guide, optable guide and PAST nodes guide, bug fixes
932 + IMCC: plugged various memory leaks and other cleanups
934 . add "attribute" as a scope variant to PAST::Var nodes
935 . add 'shift' and 'pop' methods to PAST:: nodes
936 + NQP: add '=:=' op, tests for scalar and list contextualizers, \x escapes
938 + APL: reimplementation with PCT
939 + Cardinal (Ruby): reimplemention with PCT
940 + Ecmascript: reimplementation with PCT
941 + lolcode: improved expression parsing, ifthen, IT, YARN
943 . aligned with Lua official release 5.1.3.
944 . added initial PCT-based implementation.
945 + Punie (Perl 1): refactor to use standard PCT-based filenames
946 + Pynie (Python): add functions
948 . rebranded, formerly known as 'perl6'
949 . passes many more official Perl 6 Specification tests
950 . added 'perl6doc' utility
951 . oo including meta?classes, objects, methods, attributes, role composition
952 . match variables, while/until statements, traits
953 . many new methods for Str, List, Hash, Junction
956 + PCCINVOKE syntax for named arguments using []; use () instead.
957 + see DEPRECATED.pod for details
959 + pbc_to_exe refactored for code reduction, portability, and maintainability
961 + #line directives added to generated JIT files, improving debugging
962 + consting, attribute marking, refactoring, warnings cleanup
966 + PDD27 (multiple dispatch) - debut of new design
967 + Numerous small updates to glossary.pod, etc
969 + NQP: optional, named, and named/required parameters
973 + New mk_language_shell.pl script creates language stubs
976 + Eclectus: start with support for local variables and procedures,
977 use SXML as intermediate representation
978 + Perl 6: list builtins, compiler directives, command-line options, etc.
979 + "make perl6" now builds a Perl 6 executable
980 + punie: more builtins, control structures, code refactoring
981 + pynie: builtin stubs, more tests
983 + New "pbc_to_exe" utility turns bytecode to executables
984 + New set_outer method for subs
985 + Further configuration refactoring for testability
986 + All functions now completely headerized
987 + Concurrency: interpreter schedulers
989 + DYNSELF (changes to SELF; SELF to STATICSELF)
990 + METHOD (replaced by renaming PCCMETHOD)
991 + pmcinfo op (superseded by 'inspect')
992 + get_attr, set_attr, and 8 other vtable methods
993 + See DEPRECATED.pod for details
996 + Minor speed enhancements with UTF-8 string handling
998 + consting, attribute marking, warnings cleanup, memory leaks plugged ...
1002 + PDD19 (PIR) - reflect state on the ground; incorporate old IMCC docs
1003 + PDD25 (Concurrency) - launch out of draft
1004 + Improve documentation of deprecated parrot features.
1006 + PCT: Parrot Compiler Toolkit redesigned and updated
1007 + NQP: major updates, including support for namespaces,
1008 module/class declarations, methods
1009 + IMCC: remove .sym as alias for .local. Remove .pcc_
1010 prefix for calling directives (.pcc_begin became .begin_call).
1011 + PIRC: creates an AST during the parse.
1012 + PGE: more updates to match S05 syntax.
1014 + perl6: re-implemented using PCT and NQP, new object subsystem
1015 + abc: re-implemented using PCT and NQP
1016 + eclectus: initial implementation
1017 + plumhead: add PCT variant
1018 + punie: re-implemented using PCT and NQP, extended to handle subroutines
1019 Happy 20th Birthday, Perl!
1020 + pynie: re-implemented using PCT and NQP
1021 + PIR: start conversion to NQP (under construction)
1023 + new opcodes: 'die', 'addhandler', 'copy'
1024 + Initial implementation of Concurrency PDD
1025 + Add 'arity' method to Sub and NCI PMCs
1028 + consting, attribute marking, warnings cleanup, memory leaks, GC...
1029 + dead code removal (includes some defunct languages)
1033 + PDD15 (OO) branch merged with trunk; this release contains a working,
1034 tested implementation of the latest OO model
1035 + Added pop_eh/push_eh_p/count_eh opcodes
1036 + Add --runcore command line option
1037 + Add gcdebug runcore to help track down GC bugs
1038 + minor improvements to IA-32 JIT
1040 + PDD19 (PIR): updates to macros, .pcc* directives
1041 + PDD25 (Concurrency): updated
1042 + PDD26 (AST): draft approved
1043 + PDD23 (Exceptions): draft approved
1044 + Copyright cleanups
1045 - Languages/Compilers
1046 + languages/APL: minor updates, PDD15 conformance
1047 + languages/dotnet: minor updates
1048 + languages/lua: minor updates, PDD15 conformance
1049 + languages/lisp: minor updates
1050 + languages/perl6: minor updates, PDD15 conformance
1051 + languages/plumhead: minor updates
1052 + languages/punie: minor updates, PDD15 conformance
1053 + languages/nqp: minor updates
1054 + languages/scheme: many updates, PDD15 conformance, improved tests, use
1055 PMCs instead of primitive registers to represent values
1056 + languages/tcl: bugfixes, PDD15 conformance
1057 + languages/WMLScript: minor updates
1058 + compilers/pirc: updates from PDD19, PDD06
1059 + compilers/pct: minor updates, PDD15 conformance
1060 + compilers/pge: PDD15 conformance
1061 + compilers/tge: PDD15 conformance
1063 + Improve test coverage
1064 + Improve reporting when a step fails; allow abort on failure
1066 + More coding standard conformance, tests, cleanup, speedups,
1068 + Bug cleanup, esp. GC bugs
1069 + Eliminate .imc extension (use .pir)
1070 + Simplify some core config steps to not allow interactive prompting
1076 + Bug fixes (including Coverity IDs 20, 22, 30, 119-122, 124-126, 129-131)
1077 Also various GC, memory, and segfault issues
1078 + Fix & reenable CGP core
1079 + Parrot's -r flag now works again (compile to and execute bytecode)
1080 + Updates to pmc2c & PIR syntaxes
1082 + Minor performance improvements, especially in PGE
1084 + PDD02 "Vtables" - superceded by PDD17
1085 + PDD06 "PASM" - minor updates
1086 + PDD17 "PMC" - add VTABLE syntax, update core PMC struct, restore UnionVal
1087 + PDD19 "PIR" - early review started
1088 + PDD21 "Namespaces" - cleanup
1089 + PDD24 "Events" - draft approved
1090 + PDD25 "Concurrency" - minor updates
1091 + PDD26 "AST" - draft version begun
1092 + PIR tutorials updated
1093 - Languages/Compilers
1094 + Make scheme work with the current calling conventions, other major work.
1095 + Updates to m4, lua, compilers/pirc, languages/PIR, dotnet, tcl
1097 + make -j functional again
1098 + Code cleanup (refactoring, optimizations)
1102 + Performed code review on every PMC
1103 + Modified PMC code generation to use Storable, reducing compile times
1104 + Added a makefile target to generate test coverage data of C sources
1106 + NQP: added lists, for loops, operators, comparison and multiplicative operators
1107 + Announced Kea-CL, Kea Common Lisp, an ANSI Common Lisp implementation
1108 The repository is available at https://rgrjr.dyndns.org/svn/kea-cl/trunk/
1110 + PDD17 "PMCs" - draft approved, the design is complete
1111 + Added more PIR tutorials, see examples/tutorial/00_README.pod
1113 + Many bugfixes, enhancements, documentation, and coding standard updates
1114 + Deprecated PMC constants and other crufty syntax, see DEPRECATED.pod
1115 + Improved icc compiler compatibility for error line reporting
1119 + Lots of code review, many bugs fixed
1120 + Many more code cleanups and compiler warning levels
1121 + Started a new jit engine for 64-bit processors
1122 + Refactored configure process, with tests and new diagnostic options
1123 + Added new CodeString PMC for dynamic generation of PIR code
1124 + More pdd15 support for object metamodel.
1126 + Added NQP ("Not Quite Perl"), a very lightweight Perl 6-like language
1127 + Significant improvements and refactors to PCT (Parrot Compiler Toolkit)
1128 + perl6 passes more spec tests
1129 + Lua works now with a PGE/TGE/PAST-pm based compiler, lives in one pbc,
1130 and the interpreter has same behavior as original.
1132 + Added a committers' HOWTO
1133 + More PIR tutorial examples
1137 - Now, with Seat Belts!
1138 + added makefile targets for Sun lint, BSD lint, and splint
1139 + corrected many errors picked up by these tools
1140 + decorated source code with compiler hints, assertions, and attribute macros
1141 + automated creation of function declarations to prevent common errors
1142 + increased compiler warnings levels
1143 + converted more exceptions to a recoverable form
1145 + updated Lisp, Lua, Perl 6, tcl, regex, Scheme ("Pheme")
1146 + Perl 6 now fetches selected tests from pugs, and even passes some
1147 + PGE modified to handle {*} action subs for top-down and bottom-up parsers,
1148 and to allow grammar subclassing
1149 + HLLCompiler now has better exception, eval, and exit support
1150 + Introduced PCT, a refactor of HLLCompiler and PAST-pm
1152 + PDD15 "Objects" - details added to 'new' and 'getattribute' opcodes
1153 + PDD17 "PMCs" - notes added on instantiation and dynamic extention in PIR
1155 + added Parrot-related text from "Perl 6 and Parrot Essentials" book,
1156 tutorial examples from "Learning PIR" talk, and PDD15 metamodel diagrams
1158 + reduced memory footprint when using named registers
1159 + implemented overridding of vtable methods by PDD15 classes
1160 + improved PDD15 support for 'new', 'instantiate', and others
1161 + added makefile targets to ease core and HLL makefile regeneration
1162 + updated parrot dubugger, "pdb", to allow loading of commands from file
1164 + many bugfixes, enhancements, documentation, and coding standard updates
1168 + Updated Lisp, Lua, PHP ("Plumhead"), Python ("Pynie"), ABC,
1169 WMLScript, and Tcl ("ParTcl").
1170 + Perl 6 passes all of the sanity tests.
1171 + PGE supports latest Perl 6 grammar syntax. Perl 6, Python
1172 ("Pynie"), and ABC parsers updated to match.
1173 + Updated PHP ("Plumhead") to Antlr 3.0.
1174 + Lua added the beginnings of a PGE/TGE based compiler (not yet
1175 replacing the Perl/Yapp compiler).
1176 + Lisp updated for current features, added a test suite.
1177 - Core Implementation:
1178 + Filled in features and backward compatibility for PDD 15 objects.
1179 New object metamodel passes 85% of old test suite.
1180 + GCC API symbols are visible externally only when explicitly exported.
1181 + Added generated GCC compiler attributes to increase warnings, and
1182 cleaned up resulting warnings.
1183 + Code cleanup efforts and fixed memory leaks by the cage cleaners,
1184 resulting in notable speed increases.
1186 + Updated Parrot distribution to Artistic License 2.0, from dual
1187 Artistic 1/GPL license.
1188 + SDL examples brought up-to-date with current features.
1192 + even more refactorings and improvements in configuration system
1193 + improved tests and documentation for configuration system
1195 + Updated abc, PHP ("Plumhead"), Lua, Tcl
1198 + new PMC PDD draft partially completed
1200 + continued implementation of PDD 15 (Objects)
1201 + minor garbage collector and memory management improvements
1202 + several memory leaks resolved
1203 + extended support for compilers other than GCC
1204 + improved C++ compiler compatibility
1205 + enhanced support for Solaris, non-MSVC Win32, and other platforms
1210 + IMCC: added documentation for C-based Parrot Calling Conventions,
1211 refactorings and bug fixes
1212 + PGE: new perl6regex front end reflecting recent S05 syntax changes
1213 + PIRC: new prototype PIR parser
1215 + Updated Lua, PHP ("Plumhead"), BASIC, pynie
1216 + Lua implements environment
1218 + PDD15 "Objects" - details added, and draft approved
1220 + Added guidelines for PMC documentation
1222 + PDD15 implementation is largely complete, including role-based composition,
1223 introspection, and C3 method resolution order
1224 + new Exporter PMC for importing globals between namespaces
1225 + new string utilities for radix conversion
1226 + PCCINVOKE and Parrot_PCCINVOKE allow calling using the full Parrot Calling
1227 Conventions from PMCs and C code respectively
1229 + Refactorings and improvements in test coverage for 'Configure.pl'
1231 + many bugfixes, enhancements, and code cleanup
1232 + added example subversion config file
1233 + extended support for gcc, icc, and other compilers
1234 + extended support for Solaris and other platforms
1240 + IMCC: Parrot calling conventions now available between two C PMCs (PMINVOKE)
1241 + PGE: Match object improvements
1242 + smop: added Attribute and Class PMCs
1243 + HLLCompiler: improvements for interactive mode
1245 + extended binding to a list of variables
1247 + Updated Lua, PHP ("Plumhead"), Tcl ("ParTcl"), Ruby ("Cardinal")
1248 + Update PIR, regex, Zcode
1249 + New language: Pynie - a Python compiler for Parrot
1250 + Lua implements require and many other ops, improved regex support
1253 + PDD01 "Overview" - updated architecture and platform information
1254 + PDD15 "Objects" - details on roles, objects, and classes added
1255 + PDD22 "I/O" - added async ops and Status PMC details
1257 + Added guides for Metacommitter, Relase Manager, and Cage Cleaner roles
1259 + Object, Class, Role, and Attribute PMC implementation has begun
1260 + Perl 5 module "Parrot::Embed" now compiles and links on all platforms
1262 + Major improvements in test coverage for 'ops2c.pl'
1264 + New utility: Crow, a template processor
1265 + New library module: Config/JSON for reading/writing JSON files
1266 + many bugfixes, enhancements, and coding standard updates, code cleanup
1271 + IMCC: Parrot calling conventions now available in C PMCs, allowing
1272 named, optional, slurpy, and flat parameter passing
1273 + PGE: extended support for Perl 5 Regexes
1274 + smop: prototype object model implementation
1275 + hllcompiler: refactored to run a configurable set of compilation stages
1277 + redesigned assign/binding to support Perl 6 binding semantics
1279 + Updated Lua, PHP ("Plumhead"), Tcl ("ParTcl"), perl6, perl5
1280 + New language: PIR - a PGE-based implementation of Parrot PIR
1281 + perl6 now supports binding (':=') and 'join'
1282 + lua generates tail calls, and supports its own regex flavor (PGE-based)
1283 + Pheme still works, huzzah!
1285 + PDD21 "Objects" - rewritten
1286 + PDD22 "I/O" - updated and 'TODO' tests added
1288 + Interface stability classification standards approved
1289 + Roles and Responsibilities documented approved
1290 + Official 'drafts' directory created (was 'clip')
1292 + More NameSpace and OS PMC methods implemented
1293 + Parrot executable fullname and basename now available in PIR/PASM code
1294 + new 'chomp' library function
1296 + Major improvements in test coverage for 'ops2pm.pl'
1298 + many bugfixes, enhancements, and coding standard updates
1299 + extended support for Sun Workshop Compilers
1300 + Parrot now builds on PocketPC platform
1305 + HLLCompiler: added tracing options, modified api
1306 + PGE & TGE bugfixes and updates
1308 + added global and lexical variable support
1309 + added looping constructs, arrays, hashes
1311 + Updated PHP ("Plumhead"), Tcl ("ParTcl"),
1312 forth, perl6, lua, abc, APL, WMLScript, punie
1313 + ParTcl is passing > 24.9% of Tcl cvs-latest test suite
1314 + perl6 now supports hashes, arrays, method calls, arity-based
1315 multisubs, quoted terms, ranges (non-lazy), try blocks, $!
1317 + PDD01 "Overview" - updated
1318 + PDD22 "I/O" - rewritten and approved
1320 + Converted Perl 5 Regex tests to PIR, with notable speedup
1321 + Added tests for opcodes, compilers, languages, and coding standards
1323 + Major improvements in test coverage for 'pmc2c.pl'
1325 + many bugfixes, enhancements, and coding standard updates
1326 + extended support for non-core platforms including Cygwin, Tru64
1330 - New languages: PHP ("Plumhead"), Forth
1331 - Updated languages: Ruby ("Cardinal"), Tcl, Lua
1332 - Remove old Python implementation from Parrot repository; the new Python
1333 language code is hosted at http://pirate.tangentcode.com
1335 + PGE updated with more expressions, latest changes to S05
1336 + new Perl 6 grammar compiler
1338 + Perl 5 module "Parrot::Embed" allows easy embedding of a Parrot
1339 runtime into a Perl 5 program
1341 + new :init pragma for subs that must run before the main function
1342 + new :vtable pragma to identify subs that override PMC vtable methods,
1343 eliminating the need for special subroutine names
1344 + PIR parser/compiler does not stop on first syntax error
1345 + Vanilla register allocator ("register alligator") greatly improves
1346 performance compiling large functions
1347 + Eliminated limit on number of PIR macros
1349 + hash lookups return null instead of None for missing keys
1351 + PDD13 "Bytecode files: format and manipulation" - new
1352 + PDD10 "Embedding" - new
1353 + PDD25 "Concurrency" - rewritten
1354 + PDD15 "Objects" - new section on redesign requirements
1355 + PDD07 "Coding standards" - significant updates and automated tests
1357 + Many many more new tests
1359 + autoconf compatible install options
1361 + Namespace refinements
1362 + Coroutine improvements
1363 + An impressive swarm of other bugfixes and enhancements
1367 - New languages: Ruby ("Cardinal"), Javascript ("ecmascript")
1368 - Updated languages: Tcl, dotnet, bc, Pheme, Punie, WMLScript
1369 - Updated compilers: PGE, TGE
1371 + ".loadlib" directive expresses dependencies
1372 + ".namespace" with no parameter goes to HLL root
1373 + lexer is reentrant (reentrant grammar in progress)
1374 - Namespace improvements:
1375 + new suite of opcodes to access namespaces and globals
1376 ("find_global" and "store_global" will be phased out)
1377 + namespace '' no longer means HLL root
1378 - Design document updates:
1379 namespaces (pdd23), basic types (pdd17), embedding
1380 - Updated tool requirements for developers:
1381 flex 2.5.33, bison 2.1, perl 5.6.1
1382 - New to-do list for people new to Parrot:
1384 - The usual plethora of bugfixes and enhancements
1388 - unicode subroutine names
1389 - hierarchical class names finished including MMD support
1390 - new dotnet CLI to PIR translator
1391 - improved TGE code and compiler
1392 - APL: vector handling
1393 - new STM branch in the svn repository
1394 - the usual bugfixes and enhancements
1398 - hierarchical class names
1401 - understands simple vector ops, strings
1402 - demonstrates use of Unicode in Parrot
1403 - pgc, a compiler for rules and operator precedence parsers
1404 - Major redesign and improvements for PGE
1405 - compilers understand named parameter options
1406 - :ratchet option implemented to support non-backtracking quantifiers
1407 - TGE (tree grammar engine) for tree transformations
1408 - tgc, tree grammar compiler
1410 - support for many operators, lexical scalars, regex matches
1411 - new pheme (Parrot scheme) compiler
1415 - namespaces partially implemented
1416 - rulec, Perl 6 rule compiler
1417 - PGE improvements including return values for closure
1418 - parts of a Perl 6 parser based on PGE
1419 - complex trigonometric methods
1420 - type of Sub PMC is now overridable by HLL
1422 - many bug fixes and improvements
1426 - improved PPC and x86 JIT support including JIT compilation
1427 of very simple PASM/PIR subroutines
1428 - preliminary libreadline support
1429 - better trace and debug features
1431 - META.yml to support proper indexing on CPAN
1432 - new opcode: hcf (in "my_ops" in dynamic op library)
1433 - new File pmc for file specific ops (is_dir, is_file, copy, rename...)
1434 - named arguments and parameters (both :named("") and => syntaxes)
1435 - ongoing config improvements
1436 - tons of bug fixes and other small improvements - too much to list all
1440 - Installation: 'make install' is using standard locations now
1441 (/usr/local is the default --prefix)
1442 - Produce static and shared libraries on some systems
1443 - Configure system rearragement
1444 - OS pmc started (mkdir,cd,cwd,rm,umask,stat)
1446 - Test files are now testable with 'prove'
1447 - Smoke (and smokej) outputs progress
1448 - PIR supports: I = A < B (>,<=,>=,==,!=)
1449 - Add support for octal number constants
1451 - almost finish [string]; start [file]
1452 - add build tool for generating inline'd tcl builtins from templates.
1453 - Jako updates: NCI, subroutines, global variables and constants all work.
1458 - New lexical handling and closure support including better
1459 introspection for caller and outer
1460 - PGE (Parrot Grammar Engine) provides now compilers for P6Rule,
1461 P6Grammar, P5Regexp, and Glob
1462 - ca. 1000 new tests including 800 for Perl5 regexp
1463 - Improved unicode charset and encoding support
1464 - Calling conventions for exception handlers
1465 - Punie (Perl 1) uses TGE (Tree Grammar Engine) to convert from
1466 PGE match objects to AST via two steps of tree transformation grammars
1467 - New languages: amber and lua
1468 - The usual code fixes, cleanup, and improvements, including an overhaul
1469 of the config and test framework
1473 - Variable sized register frames are finished. Each subroutine gets
1474 the amount of registers that it actually needs. No more spilling.
1475 - Vastly improved PGE (Parrot Grammar Engine) including shift-reduce,
1476 precedence-based expression parser and support for matching of
1477 bracketed text delimited by e.g. ()[]{}'"
1478 - uniccode character classification (is_upper ...)
1479 - support for heredoc syntax in assembler
1480 - improved examples, basic JSON support
1481 - debian packaging support
1482 - the usual improvements, bug fixes, and cleanup
1483 - test count exceeds 3000
1487 - New calling conventions implemented: see PDD03 for details
1488 - Merge multiple Parrot bytecode (PBC) files into a singe PBC file
1489 - 'make smoke' target going beta
1490 - bc now supports if statements, comparison ops, prefix inc/dec
1491 - ParTcl adds [lassign], [switch] (partially); [expr] converted to a compiler
1492 - Many exciting doc updates, tests, and bugfixes, too numerous to mention
1496 - Dynamic classes now compile on Windows (including ParTcl)
1497 - New Super PMC allows easy access to superclass methods
1498 - Implement C3 method resolution order (just like Perl 6 & Python)
1499 - ParTcl has new PIR-based parser and passes more Tcl tests
1500 - added character class support in Globs to PGE
1501 - added language implementations of unlambda, Lazy-k
1502 - many bugfixes, including GC and memory leaks
1503 - the new calling scheme continued to evolve in branches/leo-ctx5
1507 - new call scheme: docs/pdds/pdd03_calling_conventions.pod
1508 - partial implementation of the new calling conventions
1509 PASM only, don't mix PIR foo() call syntax with the new scheme
1510 - grammar and rule support in PGE - the Parrot Grammar Engine
1511 - TCL passes >10% of the tcl test suite
1512 - the usual bugfixes and improvements
1516 - better HLL support (short names for object attributes, and
1517 .HLL and n_operators pragmas)
1518 - string encoding and charset can now be set independently
1519 - experimental mmap IO layer for slurping files
1520 - distinct debug and trace flag settings
1521 - glob support in PGE
1522 - new character classification opcodes and interfaces
1526 - parrot repository is now under subversion
1527 - MMD (Multi Method Dispatch) enhanced
1528 - new unary and infix opcodes that return new result PMCs
1529 - dynamic scalar PMCs inherit now almost all from Parrot core PMCs
1530 - more unification of PMCs and ParrotObjects
1531 - tailcalls for functions and methods
1532 - PGE (Parrot Grammar Engine) reworked
1533 - Pugs creates Parrot code and Pugs is a registered compiler now
1534 - new languages/lisp
1535 - the usual bug fixes and improvements
1539 - New string handling code. Strings now have charset and encoding
1540 - Parts of a generation garbage collector
1541 - Better Python code, separated in dynclasses
1542 - Parrot Grammar Engine
1543 - Improved test coverage and documentation
1547 Parrot 0.1.1 is an intermediate release with tons of updates and fixes.
1548 - Python support: Parrot runs 4/7 of the pie-thon test suite
1549 - Better OS support: more platforms, compiler, OS functions
1550 - Improved PIR syntax for method calls and <op>= assignment
1551 - Dynamic loading reworked including a "make install" target
1552 - MMD - multi method dispatch for binary vtable methods
1553 - Library improvement and cleanup
1554 - BigInt, Complex, *Array, Slice, Enumerate, None PMC classes
1555 - IA64 and hppa JIT support
1556 - Tons of fixes, improvements, new tests, and documentation updates.
1557 A lot is unfinished and keeps changing. Nethertheless Parrot is stable
1558 and usable at the surface, while internals are moving.
1561 - "Ladies and gentlemen, I give you... objects!"
1562 - Huge documentation overhaul
1563 - More supported platforms, s. PLATFORMS
1564 - Basic thread support for pthread based architectures
1565 - Basic event handling for timers and signals including:
1566 - PASM callbacks for NCI (native C) functions.
1567 - Improved platform configuration
1568 - COW stacks now working, stacks code redone
1569 - Structure handling vastly improved
1570 - Random PMC and rand primitives
1571 - Better subroutine call syntax in PIR
1572 - Make PIR subroutines compliant with pdd03
1573 - Improved profiling (DOD, GC timings)
1574 - Hash code improvements, incl. random key order support
1575 - Experimental freeze/thaw code for some PMC types
1576 - IO improvements for buffered layer and Win32
1578 - String bitwise vtables
1580 - Support for JIT, where malloced memory isn't executable
1581 - Priority DOD scheme for objects that need timely destruction
1582 - Improved byte code loading (e.g. onLoad functions)
1583 - Language updates: forth, Perl 6/P6C, m4
1584 - Libraries: Getopt_Long, SDL, Dumper, Sort
1586 - Unified imcc and parrot test handling
1587 - Many new tests (make test reports 1386 tests)
1588 - Numerous bug fixes
1591 - The Big Move: Parrot source and build files rearranged into sub dirs
1592 - Build imcc as parrot
1593 - Objects more finished
1594 - Delegate vtable methods to byte code
1595 - Binary multi-method dispatching
1596 - Isa and does methods for PMCs
1597 - Call byte code from C
1598 - Start of extension interface
1599 - Experimental struct handling
1600 - Catch access to NULL PMCs
1601 - Experimental network socket interface code and opcodes
1602 - IO fixes and improvements
1603 - Dynamic opcode libraries
1604 - Fix-assigned opcode numbers
1605 - Argument flattening for function calls
1606 - More native call interface (NCI) signatures
1607 - Ncurses, postgres, and pcre interface libraries
1608 - Forth language is vastly improved
1609 - BSD and Win32 build improvements
1610 - Many new tests and fixes
1613 - This number intentionally left blank
1617 - Dynamic PMC registration
1618 - Trial exception system
1619 - Beginnings of object system
1622 - I/O system improvements
1624 - Documentation for basic PMC types
1625 - IMCC support of Parrot Calling Conventions
1626 - Runtime loading of chartypes (and other string improvements)
1627 - Conditional breakpoints
1628 - Dramatically accelerated sweeps for finalizable objects
1629 - Small PMCs (PMCs split into core and extensions)
1630 - Loadable bytecode packfiles
1632 - Sub variants that deal with the stack correctly
1633 - Switched runops core
1634 - Line numbers in warnings
1635 - Environment access
1636 - Many documentation cleanups
1637 - Conversion to CPS style!
1638 - BASIC debugger and many other wacky features
1639 - Filename, line number parsing support in IMCC
1644 - some more benchmarking
1646 - optimized math ops
1647 - intersegment branches
1648 - more complete use of PObjs
1649 - beefed up packfiles
1650 - sub/continuation/coroutine fixes
1651 - better NCI (native calling interface)
1652 - many imcc improvements
1657 - Native function calling interface (Dan)
1658 - Stack/list aggregate rewrite (Leo)
1659 - Scratchpads (Jonathan Sillito)
1660 - Preliminary DotGNU support -- type conversion ops (Gopal V + Leo)
1661 - Buffer/PMC unification (Leo)
1662 - stabs debugging support for JIT (Leo)
1663 - Jako overhaul (Gregor)
1664 - Optional Lea allocator (Leo)
1665 - Parrot sprintf (Brent)
1667 - PMC Properties (Dan)
1668 - Various JIT improvements (D. Grunblatt + Leo)
1669 - Extensible packfiles (Juergen)
1670 - Restructured PMC hierarchy (Leo)
1671 - Real Scheme (Juergen)
1675 - Several new grammars and a BNF -> perl5 and perl6 converter (Jeff)
1676 - Working Perl 6 REs (Sean)
1677 - Keyed Access (Tom Hughes et al)
1678 - New PMCs (Alberto et al)
1679 - Better Documentation
1681 - GC acceleration (Mike Lambert)
1682 - Lexical scope (Jonathan Sillito)
1688 - Perl 6 Grammar and Compiler (Sean)
1689 - Subroutines, coroutines, and continuations (Melvin)
1690 - GC improvements (Peter Gibbs, Mike Lambert)
1691 - Global variables (Melvin)
1692 - Intermediate bytecode compiler (Melvin, Angel)
1693 - And much, much more.
1697 - New assembler that support keyed types (Jeff)
1698 - New macro layer, allowing constants (Jeff)
1699 - New Configure.pl (Brent)
1700 - Changes to bytecode format, endian issues resolved (Melvin)
1701 - GC improvements and bug fixes (Peter Gibbs, Mike Lambert)
1702 - JIT compiler rewrite (Jason and Daniel)
1703 - Parrot assembler in Parrot (Daniel)
1704 - Parrot debugger (Daniel)
1705 - BASIC polished, Eliza.bas is new (Clint)
1706 - Cola compiler committed and working, with limited OOP (Melvin)
1707 - Keyed aggregates (Steve Fink)
1708 - Global ops (Melvin)
1709 - Compile-time speedup (Melvin)
1710 - Much documentation
1712 - Contributed tetris and lzw files
1713 - And many more, from the cast of thousands
1718 - Perl Scalar support in PMCs
1719 - Array and Hash types almost ready for prime-time
1720 - Internal support for keyed types
1721 - EMACS editing mode
1723 - New Language - BASIC
1724 - Regular expression compiler
1726 - Many, many bug fixes, enhancements, and speedups
1730 - Arena-based memory allocation system
1733 - "Predereferencing" mode - ./parrot -P - 22% speedup
1734 - JIT compiler - ./parrot -j
1735 - Parrot now builds warnings-clean on many platforms
1736 - Many more PMC methods implemented
1737 - Regular expression operations
1739 - Basic support for embedding Parrot in other programs
1741 - Added PDDs to distribution
1745 - Added an assembly optimizer
1746 - Improved string encoding/type support
1748 - Source reformatting
1749 - Major refactoring in packfile library
1750 - More Miniperl functionality
1751 - New PMC "clone" operator
1752 - Beginnings of key-based access to PMCs - arrays and hashes
1753 - MOPS comparisons in examples/mops/
1758 - Perl base scalar types implemented
1759 - A new minilanguage, Scheme
1760 - Much improved documentation
1761 - Register stacks pushing and popping
1762 - User stack pushing, popping and rotating
1763 - Jako updates: subroutines, more example programs, optimizations
1764 - test_prog renamed to 'parrot'
1766 - Added features to the assembler: @ for current location, and global
1768 - Build tweaks for VMS
1769 - Bytecode typing clean-ups
1770 - More platforms: OS X, HPUX, OS/2
1771 - The proliferation of runops cores reduced to one fast and one slow one
1772 - Opcode tracing, bounds checking, profiling
1773 - Vastly improved string support, with separation of encoding and
1776 - Multiple interpreter creation support - the beginnings of threading
1777 - Much better resource handling - the beginnings of GC
1781 - Parrot now works on all core platforms
1782 - A large number of tests, in the standard Perl testing framework
1783 - A new minilanguage (Jako) which compiles to Parrot assembly
1784 - Documentation about the assembly language (docs/parrot_assembly.pod)
1786 - Separate modules for assembly (Parrot::Assemble) and bytecode
1787 manipulation (Parrot::PackFile::*, packfile.c)
1788 - Assembler completely rewritten
1789 - Better operand-type guessing in the assembler
1790 - Assembler support for '\n' etc. in string constants
1791 - Code reformatted to match the coding standards
1792 - New ops for register-constant INTEGER comparisons
1793 - Macro expansion in the assembler
1794 - IVs and NVs renamed to more friendly INTVAL and NUMVAL
1795 - Hard-coded pack("") formats removed
1796 - Better handling of floating-point numbers in assembler
1797 - Moved floats to constant table (fixing many alignment issues)