fix codetest failure - ASSERT_ARGS does not have a ; after and
[parrot.git] / NEWS
blob46a0db53e9ec26cb97200088cb651b3a65c79442
1 # $Id$
3 New in 2.8.0
4 - Core
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
8   + Some svn fixes
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
17 - Testing
18   + Added more core pmc tests
19   + Rearranged some tests with C coverage
20 - GitMigration
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
24 - Compilers
25   + Fixed problem with imcc HLL in load_bytecode difference between loading a pbc and compiling a pir
27 New in 2.7.0
28 - Core
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
32 - Runtime
33   + some runtime library cleanups
34 - Testing
35   + added more tests to improve coverage
36   + new codingstd test for documentation in .pmc files
37 - Documentation
38   + added documentation to .pmc files (some still missing but headers in place)
39   + general documentation improvements and bringing up-to-date
40 - NQP-rx
41   + Updated version included from http://github.com/perl6/nqp-rx includes
42     speed improvements
44 New in 2.6.0
45 - Core
46   + Plug some memory leaks
47   + As always, bug fixes and some optimizations
48 - Runtime
49   + added (experimental) URI::Escape
50 - Testing
51   + Improved test coverage of core parrot
52 - Documentation
53   + Updated the Squaak tutorial to use modern NQP-rx and PCT
54 - Platforms
55   + The Fedora package 'parrot-devel' install the files for syntax-highlighting
56     and automatic indenting for the vim editor
57 - NQP-rx
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)
62 New in 2.5.0
63 - Core
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'
71 - NQP-rx
72   + Added proper support for multisubs and multimethods
73   + Fixed sigspace handling ** quantifier in regexes
74   + Added \e strings
75   + Added use of inversion lists for charclass lists in regexes
76 - Platforms
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
84 New in 2.4.0
85 - Core
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
93 - Compilers
94   + Fixed reporting of line numbers in IMCC
95   + Removed deprecated NQP compiler, replaced with new NQP-RX
96   + Removed NCIGen compiler
97 - Deprecations
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
102 - Tests
103   + Many tests for the extend/embed interface were added
104   + done_testing() is now implemented in Test::More
105 - Tools
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.
113 - Miscellaneous
114   + Six Parrot-related projects accepted to GSoC
115   + Improve use of const and other compiler hints
117 New in 2.3.0
118 - Core
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
126 - Platforms
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
131 - Tools
132   + tapir executable added; tapir is a TAP test harness
133   + Added TAP options --merge --ignore-exit
134 - Miscellaneous
135   + 3 month cycle for supported releases
136   + Review and vote of GSoC applications
138 New in 2.2.0
139 - Core changes
140   + Most internal allocations now use the GC
141   + RNG non-randomnes fixes
142   + Elimination of much dead code
143 - API changes
144   + PMCs can now be initialized from an int
145   + Many legacy ops are removed
146 - Platforms
147   + Sun cc and Intel icc support have been restored
148   + Compiler invocation no longer goes through a Perl script
149 - Tools
150   + NCI thunks are now generated by self-hosted PIR code
152 New in 2.1.0
153 - Core changes
154   + GC performance and encapsulation were greatly improved.
155   + PMC freeze refactored.
156   + More Makefile and build improvements.
157 - API Changes
158   + The Array PMC was removed.
159   + Several deprecated vtables were removed.
160   + The OrderedHash PMC was substantialy improved.
161 - Platforms
162   + Packaging improvements on some operating systems.
163 - Tools
164   + Some cases in pbc_merge are now handled.
165   + Improvements were made to the dependency checker.
166   + New tool nativecall.pir added.
168 New in 2.0.0
169 - Features
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
173 - Platforms
174   + Packaging improved for free OS distributions
175   + PPC, PPC64, and ARM now tested when running Linux
176 - Performance
177   + Minor improvements to the profiling runcore
178   + Improvements from the CallContext PMC merge
179 - New deprecations
180   + In/out parameters in STRING modification functions
181   + Void handling in NCI signatures
182   + Parameter passing opcodes order in PBC
183 - Tests
184   + Continued migration of core tests from Perl 5 to PIR
185 - Tools
186   + dependency checker improved
187 - Miscellaneous
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
193 New in 1.9.0
194 - Core
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
200 - Compilers
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
212 - Miscellaneous
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
220 New in 1.8.0
221 - Functionality
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.
241 - Compilers
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.
249   + PCT
250     - PAST::Block now supports an 'nsentry' attribute.
251     - PAST::Var allows 'contextual' scope.
252     - Attribute bindings now return the bound value.
253 - Platforms
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.
256 - Performance
257   + Use the the fixed-sized allocator in the Context and the CallSignature PMC.
258   + Many small speed improvements.
259 - New deprecations
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.
274 - Tests
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.
282 - Documentation
283   + The meaning of 'p' means in NCI function call signatures was clarified.
284 - Tools
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.
289 - Miscellaneous
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.
294 New in 1.7.0
295 - Functionality
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
298 - Performance
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
304 - Deprecations
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)
311 - Bugfix
312   + Improved line number tracking in IMCC
313 - Tests
314   + Converted many more Perl 5 tests to PIR
315   + Expanded test coverage of the CallSignature, Namespace, FixedPMCArray,
316     ResizeableIntegerArray and ExceptionHandler PMCs
318 New in 1.6.0
319 - Functionality
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
327 - Performance
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
338 - Bugfix
339   + Fixed several stack-walking bugs in Garbage Collector code
340   + Fixed bug when copying a NULL STRING, now returns empty STRING struct
341 - Tests
342   + Converted several Perl5 tests to PIR
343   + Expanded test coverage of NameSpace PMC
344 - Compilers
345   + Made Parrot Compiler Toolkit available in the base install
347 New in 1.5.0
348 - Core
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
364 - Compilers
365   + Multiple .local with same name and different type is now an error on IMCC.
366 - Platforms
367   + Improved support for detecting Fink and Macports
368   + Updated search directories for libraries
369 - Documentation
370   + "Parrot Developers Guide: PIR" released to publisher and available to purchase
371   + Improved documentation about Parrot Debugger
372   + Update PGE Documentation
373 - Miscellaneous
374   + Deprecate 'PASM1' compiler object, update to warn instead of segfault
375   + Added tests
376   + Fixes to code, documentation, and standards
378 New in 1.4.0
379 - Core
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
392 - Documentation
393   + List of candidates for embedding API (docs/embed.pod)
394   + PIR book sent to publisher
395 - Testing
396   + Several conversions of Perl test to pure PIR.
397   + C indentation coding standards test improvement
398   + Improved test coverage of example code
399 - Deprecations
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
403 + Miscellaneous
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
408 New in 1.3.0
409 - Core
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
423 - Compilers
424   + Fixed several memory leaks in IMCC
425   + Updated PCT to use root_new opcode
426   + Added support for keyword "self" in NQP
427 - Documentation
428   + Improved and expanded /docs/book
429   + Updated project documentation
430   + Defined 'experimental' status and procedures in DEPRECATED.pod
431 - Miscellaneous
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
437 New in 1.2.0
438 - Core
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.
444 - Deprecations
445   + Protoobject stringification is gone.
446 - Documentation
447   + Rewrite several core documents.
448   + Many reworks, improvements & additions to the Parrot Book.
449   + Installation PDD is launched out of draft.
450 - Tools
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.
454 - Miscellaneous
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.
460 New in 1.1.0
461 - Core
462   + Added op: load_language, find_caller_lex
463   + Socket IO are back as PMC
464   + Refactor some PMC: Hash, ManagedStruct
465   + Refactor GC API
466 - Compiler
467   + PGE
468     - Allow \x, \c, and \o in enumerated character classes (incl ranges)
469     - Add initial greedy-only version of ** <exp> quantifier
470   + PCT
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
474 - Deprecations
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
481 - Documentation
482   + Book
483     - Reorganization and many improvements & additions
484 - Tools
485   + Add a parrot-fuzzer
486 - Miscellaneous
487   + Improve Debian/Ubuntu package
488   + various bugfixes, code cleanups, and coding standard fixes
491 New in 1.0.0
492 - Documentation
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.
499 - Languages
500   + Pynie
501     - left the nest and is now at http://pynie.googlecode.com/
502   + Cardinal
503     - left the nest and is now at http://github.com/cardinal
504   + APL
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/
508 - Tools
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.
512 - Deprecations
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
518     deprecated UnionVal.
521 New in 0.9.1
522 - Implementation
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.
532 - Documentation
533   + Book
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.
544 - Compilers
545   + IMCC
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
549 - Languages
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
555   + ECMAScript
556     + add 'quit', 'readline' builtins
557     + fix 'Boolean' type and 'print' builtin
558   + Lua
559     - left the nest and is now at http://github.com/fperrad/lua/
560   + Rakudo
561     - left the nest and is now at http://github.com/rakudo/rakudo/
562     - build instructions can be found at http://tinyurl.com/rakudo
563   + lazy-k
564     - left the nest and is now at http://github.com/bschmalhofer/lazy-k.git
565   + unlambda
566     - left the nest and is now at http://github.com/bschmalhofer/unlambda/
567   + WMLScript
568     - left the nest and is now at http://github.com/fperrad/wmlscript.git
569   + removed Zcode implementation
570 - Tools
571   + pmc2C
572     - ATTRs are now inherited automatically in subclassing PMCs
573 - Deprecations
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
577 - Tools
578   + pbc_disassemble options added
579   + pbc_dump renamed from pdump
580 - Miscellaneous
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)
587 - Implementation
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
593 - Compilers
594   + IMCC
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
599   + PIRC
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
604   + PCT
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
610   + PGE
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
615 - Languages
616   + Rakudo
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
624     - hash slices
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
636   + Befunge
637     - back to working state
638     - ported to pir
639   + Pipp
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'
651   + HQ9+
652     - left the nest and is now at https://github.com/bschmalhofer/hq9plus/
653   + Eclectus
654     - left the nest and is now at http://github.com/bschmalhofer/eclectus/
655   + m4
656     - left the nest and is now at http://github.com/bschmalhofer/m4/
657   + Lua:
658     - add a minimalist user back trace
659   + PIR
660     - "does" and "morph" VTABLE interfaces are now overridable from PIR
661 - Miscellaneous
662   + Infrastructure
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%
667   + BOOK
668     - Added sections about Classes, OO programming, and methods.
669     - Added information about Annotations, Exceptions, and Handlers
670   + STM
671     - Removed non-functional STM subsystem
674 New in 0.8.2
675 - Implementation
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
683 - Compilers
684   + IMCC
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
688   + PCT
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)
692   + PGE
693     - add support for <?{{...}}> and <!{{...}}> assertions
694     - Match objects use Capture PMC instead of Capture_PIR
695   + PIRC
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.
700 - Languages
701   + Rakudo
702     - fixed lexical handling and recursion
703     - refactored subtypes implementation
704     - support for quotes with multi-character delimiters
705     - implemented list slices (Positional role)
706     - list assignment
707     - reduction meta operators
708     - hyper meta operators
709     - cross meta operators
710     - more builtin functions
711     - added Nil type
712     - basic support for protos
713     - iterator on filehandle objects
714     - basic support for exception handlers
715     - warn
716   + Lua
717     - added complex & mathx libraries
718     - merged LuaClosure & LuaFunction PMC
719   + Pipp
720     - added support for a return value from user defined functions
721     - added incomplete implemention of 'require_once'
722   + Ecmascript
723     - parser fixes, parses spidermonkey's top level test/shell.js
724 - Deprecations
725   + PARROT_API is now PARROT_EXPORT
726   + PIR
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)
735 New in 0.8.1
736 - Implementation
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
749 - Languages
750   + Rakudo
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
759     - added %*VM hash
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
765   + Pipp
766     - added some predefined constants
767     - added implemention of the function basename()
768   + Cardinal (Ruby)
769     - Added initial support for the classes Proc, Continuation, Queue, Dir, File, and FileStat
770     - fixed various minor bugs
771     - fixed broken Regexes
772 - Compilers
773   + PCT
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'
778   + PIRC
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
786    + TGE
787     - updated to work with new namespace/classname syntax
788 - Deprecations
789   + PARROT_API will become PARROT_EXPORT
790   + :lexid will become :subid
791 - Miscellaneous
792   + Documentation
793     - updates and additions to the Parrot book (see docs/book/)
794   + OpenGL
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
798   + Tests
799     - further improvements to parallel tests
800     - tests no longer leave filesystem breadcrumbs
801     - more thorough testing of Parrot::Test itself
803 New in 0.8.0
804 - Implementation
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
809 - Languages
810   + Cardinal (Ruby)
811     - implemented gather, take, and yield builtins
812     - Range, Time, Math, GC, Kernel classes
813     - many more tests
814     - added a new committer
815   + Markdown : new lightweight markup language
816     - start implementation with PCT/NQP
817   + partcl (Tcl 8.5.4)
818     - Moved to its own repository: http://code.google.com/p/partcl/
819   + Rakudo (Perl 6)
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
829 - Compilers
830   + P6object
831     - now generates classes in nested namespaces instead of :: names
832     - supports class creation in caller's HLL namespace
833   + PCT / PGE
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
838   + PIRC
839     - fixed Heredoc preprocessor
840     - cleaned up Macro preprocessor
841     - many code clean-ups, warning fixes and consting
842     - updated Makefile for easier compilation
843   + IMCC
844     - Added .tailcall syntax to replace .return in tailcall context
845 - Examples
846   + pirric (BASIC)
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
850 - Documentation
851   + Book
852     - Added chapters for PCT, PMCs, and Opcodes/Runcores
853     - Expanded and improved formatting in various chapters
854     - Renumbered chapters
857 New in 0.7.1
858 - Implementation
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
865 - Languages
866   + Rakudo (Perl 6)
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
873     - m/.../ regexes
874     - qq, qw, q quoting forms
875     - run tests in parallel
876     - gather/take
877     - Perl6MultiSub
878   + Cardinal (Ruby):
879     - 'require' and precompiled modules
880     - many new tests
881     - all Array tests pass
882     - regexes
883     - default arguments to functions
884     - new committer
885 - Compilers
886   + PCT:
887     - add :loadinit attribute for PAST::Block
888   + PIRC:
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
892 - Miscellaneous
893   + add Xlib and Mysql modules and test programs to NCI examples
894   + many updates and cleanups to PDD documents
896 New in 0.7.0
897 - Specification
898   + PDD27: add multisub lookup
899 - Implementation
900   + new concurrency implementation (see PDD25)
901   + Exception PMC now captures a return continuation
902   + improved PMC encapsulation (Iterator, Key, Pair)
903 - Languages
904   + Cardinal (Ruby):
905     - class variables
906     - parsing improvements
907     - minor additions to class builtins
908     - add support for block parameters to functions
909   + Lua:
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)
914   + Pipp (PHP):
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
919   + Pugs (Perl 6):
920     - removed due to bit rot
921   + Rakudo (Perl 6):
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")
927     - anonymous classes
928     - OO and metaclass improvements (.WHAT, .WHICH, .WHENCE)
929     - additional builtin methods and subs
930     - improved make test targets and harness
931   + Tcl:
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
937 - Compilers
938   + PCT:
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
943   + PIRC:
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
950 - Configuration
951   + tests now clean up after themselves
952   + improved parallel test support
953   + ports/cygwin added
954   + Darwin problems fixed
955 - Tools
956   + parrot_debugger renamed from pdb, numerous tweaks
957 - Miscellaneous
958   + IMCC cleanups
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)
963 - 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
975 New in 0.6.4
976 - Documentation
977   + removed a lot of old information from the FAQ
978   + improved function level documentation
979 - Configuration
980   + removed the configuration item 'has_gnu_m4'
981   + refactored ICU-detection
982 - Languages
983   + ChitChat
984     - improved the Smalltalk implementation
985   + Pipp
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
992   + pir
993     - simple assignments work
994   + json
995     - added a PCT-based implementation of JSON parsing
996   + lolcode
997     - improved handling of symbols
998     - added support for block handling
999     - added support for globals
1000   + Lua
1001     - more tests
1002   + Rakudo
1003     - updated Range implementation
1004     - added enums
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
1016 - Compilers
1017   + PCT:
1018     - allowed subroutine and method names to be a PAST tree that produces the name
1019     - Improved lexical handling
1020 - Tools
1021   + pbc_disassemble renamed from disassemble
1022 - Implementation
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
1029   + fixed C++ build
1030   + improved closure and lexical support
1031   + improved IMCC register allocator
1032   + added cache for all runtime-constant strings, reducing memory usage
1033 - Miscellaneous
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
1040 New in 0.6.3
1041 - Specification
1042   + updated pdd09_gc.pod
1043 - Languages
1044   + Cardinal:
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
1052   + Rakudo:
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
1063     - fix named unaries
1064   + Squaak: implement return statement
1065   + Tcl: updated control flow exceptions to use new builtin types
1066 - Compilers
1067   + All tools converted to P6object metamodel
1068   + PGE:
1069     - <?foo> is now a zero-width match
1070     - reduced backtracking to improve parsing speed
1071   + PCT:
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
1077 - Configuration
1078   + expanded step gen::opengl
1079 - Implementation
1080   + updated function and macro names to match pdd09_gc.pod
1081   + removed Super PMC
1082   + add ".namespace []" as alternative to ".namespace"
1083   + "make codetest" target runs standard coding tests
1084 - Miscellaneous
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
1095 New in 0.6.2
1096 - Specification
1097   + updated and launched pdd28_strings.pod
1098   + updated pdd19_pir.pod
1099 - Implementation
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
1109 - Languages
1110   + Amber: retired
1111   + C99: grammar updated
1112   + Cardinal: resurrected, method calls and do blocks work now
1113   + Eclectus: use NQP as PAST generating code
1114   + Lua:
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
1119   + Plumhead:
1120     - use NQP as PAST generating code
1121     - use riaxpander for macro expansion
1122   + Rakudo:
1123     - updated ROADMAP
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
1130     - undef and self
1131     - placeholder vars
1132 roadmap updated
1133   + Squaak: added to repository
1134   + TAP: retired
1135 - Compilers
1136   + PGE: updated to match Synopsis 5, deprecated features removed
1137   + PCT:
1138     - improve handling of register types, conversion between registers
1139     - improved error diagnostics
1140     - add 'arity' to for loops
1141 - Configuration
1142   + added step auto::opengl
1143   + added step gen::opengl
1144   + added step gen::call_list
1145 - Miscellaneous
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
1153 New in 0.6.1
1154 - Specification
1155   + drafted pdd29_compiler_tools.pod
1156   + updated pdd28_character_sets.pod draft
1157   + updated pdd19_pir.pod draft
1158 - Languages
1159   + c99: added independent C pre-processor
1160   + HQ9+: reimplemented with PCT
1161   + Lua:
1162     . reimplementation with PCT, using PAST and POST
1163     . behavior aligned wih 5.1.3
1164   + Rakudo:
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'
1176 - Compilers
1177   + NQP:
1178     . created a bootstrapped build, see 'make boot'
1179     . added 'infix:<', 'infix:<=', 'infix:>', 'infix:>=' relational operators
1180     . added 'postfix:++', 'postfix:--' operators
1181   + PCT:
1182     . added methods specifying default behaviors in PAST, reducing repeated code
1183     . improved symbol table lookup
1184   + PGE:
1185     . removed deprecated code including: P6Regex, P6Grammar, PAST-pm
1186 - Miscellaneous
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
1193 New in 0.6.0
1194 - Specification
1195   + launched pdd18_security.pod
1196   + updated pdd17_pmc.pod
1197   + launching draft of pdd28_character_sets.pod
1198 - Documentation
1199   + cleanup of IMCC documentation
1200 - Configuration
1201   + add step auto::gettext
1202   + add step auto::crypto
1203 - Compilers
1204   + PCT:
1205     . Fix '-e' option
1206     . Phase out P6Regex in favor of Perl6Regex
1207   + IMCC:
1208     '.local Array my_arr' is illegal now
1209 - Languages
1210   + C99: reimplementation with PCT
1211   + lolcode:
1212     . various updates
1213     . add support for functions with params
1214     . add math functions
1215   + Rakudo:
1216     . support for 'say'
1217     . first cut at smart matching
1218     . indirect method calls
1219     . support for Pairs
1220     . added methods 'grep' and 'first'
1221     . implement auto{increment,decrement}
1222     . initial implementation of 'perl6doc'
1223   + Lua:
1224     . various updates
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
1233 - Implementation
1234   + PDD17 (PMCs)
1235   + Add library YAML::Dumper
1236   + Add the MD2, MD4, MD5, RIPEMD160, SHA & SHA1 PMC, as a wrapper
1237      around libcrypto
1238 - Miscellaneous
1239   + various bugfixes, code cleanups and coding standard fixes
1240   + consting
1241   + remove external Perl 5 modules from the Parrot distribution
1243 New in 0.5.3
1244 - Documentation
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
1249 - Compilers
1250   + IMCC: plugged various memory leaks and other cleanups
1251   + PCT:
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
1255 - Languages
1256   + APL: reimplementation with PCT
1257   + Cardinal (Ruby): reimplemention with PCT
1258   + Ecmascript: reimplementation with PCT
1259   + lolcode: improved expression parsing, ifthen, IT, YARN
1260   + lua:
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
1265   + Rakudo (Perl 6):
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
1272 - Implementation
1273 - Deprecations
1274   + PCCINVOKE syntax for named arguments using []; use () instead.
1275   + see DEPRECATED.pod for details
1276 - Miscellaneous
1277   + pbc_to_exe refactored for code reduction, portability, and maintainability
1278   + various bug fixes
1279   + #line directives added to generated JIT files, improving debugging
1280   + consting, attribute marking, refactoring, warnings cleanup
1282 New in 0.5.2
1283 - Documentation
1284   + PDD27 (multiple dispatch) - debut of new design
1285   + Numerous small updates to glossary.pod, etc
1286 - Compiler Toolkit
1287   + NQP: optional, named, and named/required parameters
1288   + PIRC: cleanups
1289   + PAST: "defined-or"
1290 - Languages
1291   + New mk_language_shell.pl script creates language stubs
1292   + LOLCODE: new
1293   + Lua: various
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
1300 - Implementation
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
1306 - Deprecations
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
1312 - Miscellaneous
1313   + Many bug fixes
1314   + Minor speed enhancements with UTF-8 string handling
1315   + Debian packaging
1316   + consting, attribute marking, warnings cleanup, memory leaks plugged ...
1318 New in 0.5.1
1319 - Documentation
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.
1323 - Compilers
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.
1331 - Languages
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)
1340 - Implementation
1341   + new opcodes: 'die', 'addhandler', 'copy'
1342   + Initial implementation of Concurrency PDD
1343   + Add 'arity' method to Sub and NCI PMCs
1344 - Miscellaneous
1345   + Bug cleanup
1346   + consting, attribute marking, warnings cleanup, memory leaks, GC...
1347   + dead code removal (includes some defunct languages)
1349 New in 0.5.0
1350 - Implementation
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
1357 - Documentation
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
1380 - Configuration
1381   + Improve test coverage
1382   + Improve reporting when a step fails; allow abort on failure
1383 - Miscellaneous
1384   + More coding standard conformance, tests, cleanup, speedups,
1385     warnings cleanup
1386   + Bug cleanup, esp. GC bugs
1387   + Eliminate .imc extension (use .pir)
1388   + Simplify some core config steps to not allow interactive prompting
1389 - Removed
1390   + clear_eh opcode
1392 New in 0.4.17
1393 - Implementation
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
1399  + Fix Complex PMC
1400  + Minor performance improvements, especially in PGE
1401 - Documentation
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
1414 - Miscellaneous:
1415  + make -j functional again
1416  + Code cleanup (refactoring, optimizations)
1418 New in 0.4.16
1419 - Implementation:
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
1423 - Languages:
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/
1427 - Documentation
1428  + PDD17 "PMCs" - draft approved, the design is complete
1429  + Added more PIR tutorials, see examples/tutorial/00_README.pod
1430 - Miscellaneous:
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
1435 New in 0.4.15
1436 - Implementation:
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.
1443 - Languages:
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.
1449 - Documentation
1450  + Added a committers' HOWTO
1451  + More PIR tutorial examples
1452  + Added PAUSE guide
1454 New in 0.4.14
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
1462 - Languages:
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
1469 - Design:
1470  + PDD15 "Objects" - details added to 'new' and 'getattribute' opcodes
1471  + PDD17 "PMCs" - notes added on instantiation and dynamic extention in PIR
1472 - Documentation:
1473  + added Parrot-related text from "Perl 6 and Parrot Essentials" book,
1474    tutorial examples from "Learning PIR" talk, and PDD15 metamodel diagrams
1475 - Implementation:
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
1481 - Misc:
1482  + many bugfixes, enhancements, documentation, and coding standard updates
1484 New in 0.4.13
1485 - Languages:
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.
1503 - Misc:
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.
1508 New in 0.4.12
1509 - Build:
1510  + even more refactorings and improvements in configuration system
1511  + improved tests and documentation for configuration system
1512 - Languages:
1513  + Updated abc, PHP ("Plumhead"), Lua, Tcl
1514  + Reclaimed Lisp
1515 - Design:
1516  + new PMC PDD draft partially completed
1517 - Implementation:
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
1525 New in 0.4.11
1527 - Compilers:
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
1532 - Languages:
1533  + Updated Lua, PHP ("Plumhead"), BASIC, pynie
1534  + Lua implements environment
1535 - Design:
1536  + PDD15 "Objects" - details added, and draft approved
1537 - Documentation:
1538  + Added guidelines for PMC documentation
1539 - Implementation:
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
1546 - Build:
1547  + Refactorings and improvements in test coverage for 'Configure.pl'
1548 - Misc:
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
1555 New in 0.4.10
1557 - Compilers:
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
1562 - PAST:
1563  + extended binding to a list of variables
1564 - Languages:
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
1569  + Remove parakeet
1570 - Design:
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
1574 - Documentation:
1575  + Added guides for Metacommitter, Relase Manager, and Cage Cleaner roles
1576 - Implementation:
1577  + Object, Class, Role, and Attribute PMC implementation has begun
1578  + Perl 5 module "Parrot::Embed" now compiles and links on all platforms
1579 - Build:
1580  + Major improvements in test coverage for 'ops2c.pl'
1581 - Misc:
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
1586 New in 0.4.9
1588 - Compilers:
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
1594 - PAST:
1595    + redesigned assign/binding to support Perl 6 binding semantics
1596 - Languages:
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!
1602 - Design:
1603    + PDD21 "Objects" - rewritten
1604    + PDD22 "I/O" - updated and 'TODO' tests added
1605 - Documentation:
1606    + Interface stability classification standards approved
1607    + Roles and Responsibilities documented approved
1608    + Official 'drafts' directory created (was 'clip')
1609 - Implementation:
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
1613 - Build:
1614    + Major improvements in test coverage for 'ops2pm.pl'
1615 - Misc:
1616    + many bugfixes, enhancements, and coding standard updates
1617    + extended support for Sun Workshop Compilers
1618    + Parrot now builds on PocketPC platform
1620 New in 0.4.8
1622 - Compilers:
1623    + HLLCompiler: added tracing options, modified api
1624    + PGE & TGE bugfixes and updates
1625 - PAST:
1626    + added global and lexical variable support
1627    + added looping constructs, arrays, hashes
1628 - Languages:
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, $!
1634 - Design:
1635    + PDD01 "Overview" - updated
1636    + PDD22 "I/O" - rewritten and approved
1637 - Test Suite:
1638    + Converted Perl 5 Regex tests to PIR, with notable speedup
1639    + Added tests for opcodes, compilers, languages, and coding standards
1640 - Build:
1641    + Major improvements in test coverage for 'pmc2c.pl'
1642 - Misc:
1643    + many bugfixes, enhancements, and coding standard updates
1644    + extended support for non-core platforms including Cygwin, Tru64
1646 New in 0.4.7
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
1652 - Compilers:
1653    + PGE updated with more expressions, latest changes to S05
1654    + new Perl 6 grammar compiler
1655 - Integration:
1656    + Perl 5 module "Parrot::Embed" allows easy embedding of a Parrot
1657      runtime into a Perl 5 program
1658 - PIR:
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
1666 - PMCs:
1667    + hash lookups return null instead of None for missing keys
1668 - Design:
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
1674 - Test Suite:
1675    + Many many more new tests
1676 - Build Process:
1677    + autoconf compatible install options
1678 - Misc:
1679    + Namespace refinements
1680    + Coroutine improvements
1681    + An impressive swarm of other bugfixes and enhancements
1683 New in 0.4.6
1685 - New languages: Ruby ("Cardinal"), Javascript ("ecmascript")
1686 - Updated languages: Tcl, dotnet, bc, Pheme, Punie, WMLScript
1687 - Updated compilers: PGE, TGE
1688 - IMCC updates:
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:
1701     cage/todo.pod
1702 - The usual plethora of bugfixes and enhancements
1704 New in 0.4.5
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
1714 New in 0.4.4
1716 - hierarchical class names
1717 - APL compiler
1718   - under development
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
1727 - perl6 compiler
1728   - support for many operators, lexical scalars, regex matches
1729 - new pheme (Parrot scheme) compiler
1731 New in 0.4.3
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
1739 - NetBSD support
1740 - many bug fixes and improvements
1742 New in 0.4.2
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
1748 - pkgconfig support
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
1756 New in 0.4.1
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)
1763 - Shootout examples
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
1768 - partcl updates:
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.
1772   (Gregor)
1774 New in 0.4.0
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
1789 New in 0.3.1
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
1803 New in 0.3.0
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
1812 New in 0.2.3
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
1823 New in 0.2.2
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
1832 New in 0.2.1
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
1842 New in 0.2.0
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
1855 New in 0.1.2
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
1863 New in 0.1.1
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.
1878 New in 0.1.0
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
1895  - String iterators
1896  - String bitwise vtables
1897  - Many new opcodes
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
1903  - new JAPH examples
1904  - Unified imcc and parrot test handling
1905  - Many new tests (make test reports 1386 tests)
1906  - Numerous bug fixes
1908 New in 0.0.13
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
1930 New in 0.0.12
1931  - This number intentionally left blank
1933 New in 0.0.11
1934  - Executable output
1935  - Dynamic PMC registration
1936  - Trial exception system
1937  - Beginnings of object system
1938  - Iterators
1939  - Ordered hashes
1940  - I/O system improvements
1941  - References
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
1949  - Constant PMCs
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
1959 New in 0.0.10
1960  - IMCC integration
1961  - eval
1962  - some more benchmarking
1963  - cgp core
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
1971  - jako improvements
1973 New in 0.0.9
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)
1984 - Miniparrot (Josh)
1985 - PMC Properties (Dan)
1986 - Various JIT improvements (D. Grunblatt + Leo)
1987 - Extensible packfiles (Juergen)
1988 - Restructured PMC hierarchy (Leo)
1989 - Real Scheme (Juergen)
1991 New in 0.0.8
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
1998 - New COW semantics
1999 - GC acceleration (Mike Lambert)
2000 - Lexical scope (Jonathan Sillito)
2001 - IMCC patches
2002 - JIT for the ARM
2004 New in 0.0.7
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.
2013 New in 0.0.6
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
2029 - New PDDs (Dan)
2030 - Contributed tetris and lzw files
2031 - And many more, from the cast of thousands
2033 New in 0.0.5
2035 - Full GC
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
2040 - New PDDs
2041 - New Language - BASIC
2042 - Regular expression compiler
2043 - More tests
2044 - Many, many bug fixes, enhancements, and speedups
2046 New in 0.0.4
2048 - Arena-based memory allocation system
2049 - Copying GC
2050 - New IO subsystem
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
2056 - Added a FAQ
2057 - Basic support for embedding Parrot in other programs
2058 - Warnings support
2059 - Added PDDs to distribution
2060 - Bignum library
2062 - PMC inheritance
2063 - Added an assembly optimizer
2064 - Improved string encoding/type support
2065 - Many more tests
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/
2073 New in 0.0.3
2075 - PMCs!
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
2085   labels
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
2092   charset
2093 - Lots more tests
2094 - Multiple interpreter creation support - the beginnings of threading
2095 - Much better resource handling - the beginnings of GC
2097 New in 0.0.2
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)