Skip to content
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
12740 lines (9342 sloc) 422 KB
2016-??-?? release 8.3.0
- Core
+ fix binding AF_UNIX sockets GH #1233 by Andrew Aldridge
2016-03-15 release 8.2.0
- Core
+ add foldcase string ops GH #786
+ bump PBC_COMPAT to 13.1 for foldcase ops
+ add missing StringHandle methods seek, peek, tell,
analog to FileHandle. Better seek error handling. GH #1011
+ Deprecate StringHandle auto-reopen, auto-read, and
PIO_VF_AWAYS_READABLE. Will be removed with 8.3.0. GH #245
+ Fix method dispatch with builtin namespaces. Subs are now ignored,
they need a :method attribute. It's now safer to define or override
class methods for builtin PMCs. GH #304
- Build
+ Improve darwin install: make -j0 not needed anymore.
Use libparrotsrc.VER.dylib locally, libparrot installed.
GH #1213, #1212, #1096
- Documentation
+ dynpmc file.copy does not allow dir arguments, GH #229
- Tests
+ Check in pcre.t the returned error string, GH #258
+ Test that file.copy to dir must fail, GH #229
- Community
2016-02-16 release 8.1.0
- Core
+ Annotate needed -Wcast-align fixes (for early armv5 systems)
- Documentation
+ Fixed typo in move_buffer_callback doc
+ Add missing hyperref package for latex
- Tests
+ Restore make configure_tests, remove outdated t/steps/auto/labs-01.t
2015-12-15 release 7.11.0
- Build
+ Improve darwin and cygwin build, seperate installable libparrot.
GH #1212, 1096
+ Honor --disable-rpath on darwin, skip -install_name then
+ Update default cygwin compiler and linker to gcc with 1.7
+ Add darwin and windows smokers (travis + appveyor), prev. linux only
+ use a smaller default target: core (most parrot_utils, not all)
make all builds now all, including docs and installables
2015-11-17 release 7.10.0
- Documentation
+ Accept cperldoc as fallback to perldoc GH #1211
2015-10-20 release 7.9.0
- Core
+ StringBuilder.clone and ResizablePMCArray write barrier optimizations.
1.14% faster, GH #1123
+ More StringBuilder optimizations with substr, set_pmc, push_pmc,
i_concatenate, and do less overallocation. <1% faster. GH #1123
+ Support -D1 GC stats with --ccflags=-DMEMORY_DEBUG for --gc=ms
+ Added a Parrot_{un,}block_GC_move API for the 2 string compacting
collectors ms and ms2
+ Fixed a --gc=ms segv in Parrot_io_write_s GH #1196
+ Fixed --gc=inf string header allocation and failing tests
+ const/ARGIN all read-only IO api arguments
+ Deprecated ListChunk GC API and src/list.c GH #1179
- Build
+ --optimize: Replace -O2 from perl5 with -O3 on clang or gcc. GH #1185
5% faster
+ Fixed make clean realclean and install which sometimes forgot pmc_default.h
GH #1194, GH #1206
- Tests
+ Use the faster travis docker infrastructure without sudo
2015-09-15 release 7.8.0
- Build
+ Added fixes for AIX7.1 by tkob <>
+ Rewrote to use JSON release data.
2015-08-18 release 7.7.0
- Documentation
+ remove bitrotted author contributions
2015-07-21 release 7.6.0
- Core
+ structview
= Added missing returns to switch/case.
- Build
- Documentation
- Tests
+ distro/manifest_generated.t
= Corrected reversed order of got/expected.
= Added reference to GH#1206 .
- Community
2015-06-16 release 7.5.0
- Core
+ Optimize mod_i_* ops and Integer pmc to avoid util_intval_mod
+ Coverity bugs fixed:
= missing_comma in optimizer.c
= nesting_indent_mismatch in runcore/subprof.c
= insecure chroot in platform/generic/file.c
- Tests
+ Remove executable file permissions from some .t files
- Community
+ Coverity static analysis scans of the Parrot source code
have resumed. Many thanks for providing the service to
the open-source community!
2015-05-19 release 7.4.0
- Documentation
+ Many minor corrections
- Community
+ Coverity scans to resume RSN.
2015-04-21 release 7.3.0 - supported
- Build
+ Fixed windows link regression from 7.0.2 with cl.exe. #1203
+ Fixed rlimit compilation for OpenBSD
- Tests
+ Relaxed the common GC stress test and re-add the JSON.nqp variant.
2015-03-17 release 7.2.0
- Build
+ Fix warning on Win32 (with cl.exe) when `link` is not explicitly set.
2015-02-17 release 7.1.0
- Core
+ Fix SIGBUS in GC trace_mem_block on alignment-strict CPUs (arm), #1200.
We traced all pointers by +1 and not by +4 or +8.
- Tests
+ Add a common GC stress test to the normal testsuite. #1189
+ Fix tests for --ccflags=-DSTRUCT_DEBUG. #1195
- Community
+ rakudo perl6 announced to drop parrot support.
2015-01-29 release 7.0.2 - supported
- Core
+ Fix 2 regressions from 6.11.0 on win64 with Visual C++. GH #1190, #1192
Wrong SAL annotations, and a wrong function ptr cast.
+ Fixed reading big-endian long doubles from .pbc on win64. GH #1193
- Build
+ Optimize away ExtUtils::Command on posix systems. #1177
+ Fix cpu config values for gcc_cmpxchg to include atomic/gcc_x86.o on amd64.
Harmonized the cpu config keys, no $platform_has_$feature keys anymore, just
HAS_$PLATFORM_$feature. #1173
+ Improved msvc configuration from a mingw perl. #1191
2015-01-23 release 7.0.1 - supported
- Core
+ Fixed a serious GC regression with --optimize and the default GC gms. #1186
+ Fixed a threads deadlock with the default GC gms. #1187
- Build
+ Fixed and improved --m={32,64} cross-compilation support and
automatic libpath adjustments for gcc, esp. on mips64 and ppc64.
#1181, #1182, #1178, #1110
+ Actually link with libicu when probing for it. #1182, #1188
2015-01-20 release 7.0.0 - supported
- Core
--ccflags adjustable, renamed to GC_MAX_GENERATIONS, and use the correct number.
Default 3 for generations 0,1,2.
+ Add the DEPRECATED attribute to all deprecated functions. #1163
+ Fix parser crashes detected by the american fuzzy lop (1.06b) #1168
+ Replace an end op inside pcc methods by a returncc op, #1168.
This used to crash the last years, now it returns. It is now documented as
unspecified behavior.
+ Finish PackFile_ API deprecation and refactoring. No wrong exports anymore.
See api.yml. #1170 #1122
+ Reenabled the following NCI signatures: t (cstring), 2 (Integer PMC -> short),
3 (-> int), 4 (-> long). SDL and Curses is now usable again. #436, #601, #605
+ Added a useful subset of static nci thunks to core-thunks. #1171
Updated the extra thunks to pass most nci examples without libffi, just
2, 3 and 4 require libffi when being used destructively on the Integer PMC.
+ Fixed a couple of blocking ResizablePMCArray ("rpa") splice regressions from 6.10,
which broke perl6. See, GH #1174, #1175.
+ Added an optional rpa splice warning as in perl5, when an overlarge offset is
adjusted. #1176
+ Fix a GC regression from 6.11 with ResizablePMCArray #1159 (1.2% slower)
+ Skip startup warnings "Unknown codeset `', defaulting to ASCII" when
nl_langinfo() failed, and silently use ASCII. #1180
- Build
+ More code cleanup to reduce compiler warnings, code size and unneeded calls.
+ Add ARGIN_FORMAT declarations, probe for gnu_printf, ms_printf, printf. #1163
+ Move HASATTRIBUTE_* definitions from ccflags via cmdline to has_header.h #1163
+ Add the _Check_return_ MSVC SAL variant #1163
+ Check and fix that PARROT_EXPORT being the first function attribute (C++) #1164
+ Move -Wformat to --cage #1165
+ Fix and allow --cxx on FreeBSD 10 (clang, not g++) #1166
+ Fix git_describe config probe on tag-less repos, e.g. git clone --depth #1167
+ Fix solaris asctime_r with _POSIX_C_SOURCE #858
- Documentation
- Tests
- Community
2014-12-16 release 6.11.0
- Core
+ Rewrote ResizablePMCArray with moving offset, esp on shift.
Even better than nqp/qrpa. 20% faster overall. #1152
+ Fixed wrong maybe_mark_and_sweep call in --gc ms #1142
+ Added GC maybe_gc_mark vtable function #1142
+ Fixed Memory_Block prolog access in --gc inf #1136
+ Added MEMORY_DEBUG tracing to --gc inf and ms2, added
GC validation to ms2.
+ Fix bignum.i_substract and i_multiply #1144
+ Fix cmod_p_p_n* math dynops for NaN and Inf #1147
+ Fix floor, ceil and complex, integer math ops for NaN and Inf #422
+ Optimize printing of single numbers #828
+ More --debugging protections when accessing empty registers
from :immediate #1024
+ Change ResizablePMCArray.delete to throw out of bounds errors,
but just warn on deprecated delete[0] with size 0 for backcompat. #1153
+ Add check for illegal delete of capture blocks in PGE.match #1154
+ Add new traceflag -t20 for ResizablePMCArray states.
+ Add experimental vms support by mvorl. Untested. GH #866
+ Provide Parrot_new_string and Parrot_compile_string in the extend api
- Build
+ Extend auto::infnan probe to other --floatval #1146
+ Warn in Configure on experimental flags intval, floatval and gc #1148
+ Die in Configure on unsupported intval sizes #1148, #642, ...
+ Renamed auto::labs to auto::mathl, probe and use more long math
functions: fabsl powl ceill floorl fmodl expl logl #1111
+ Fixed pbc_to_exe and wrong Parrot_{g,s,uns}etenv declarations on windows #1156
- Documentation
+ Rewrote docs/pmc/array.pod
- Tests
+ Fix t/steps/auto/arch-01.t darwin regression #1142
+ Added bigger t/stress/gc.t test to catch most GC issues.
+ Add optional copyright year test on TEST_SLOW #719
+ Fix most --floatval='long double' tests, just embed API broken #1111
+ Adjust tests for VALGRIND=valgrind #1150
+ Added tests to t/pmc/resizablepmcarray.t to cover all offset cases. #1152
+ Replace included IO::CaptureOutput with our own capture function. #892
+ Fixed most embed and extend tests. #41511 #829
- Community
2014-11-18 release 6.10.0
- Core
+ Add imcc -d2 flag for MKCONST tracing.
+ Fix darwin --m=32 Parrot_sysmem_amount() #1113
+ Honor rlimit settings on all non-windows platforms. #935
+ Slightly improved mark methods for Coroutine, Continuation,
CallContext, NCI, Task. #1109
+ Unify code for platform encodings, now supports all. #1120
e.g. unicode filenames or UTF-8 term output on cygwin, solaris, dragonfly
+ Update pcre for cygwin
+ Add more -D flags for --ccflags=-DMEMORY_DEBUG #1108.
Print initial memory settings on -D1 and more with -D101 and -D200.
+ Added -t10 trace flag for pmc flags, prettier -t output, less GC stress.
+ Fixed GC bug in Coroutine.clone #1108, #1109
+ Export Parrot_io_get_vtable. #1131
+ Added lstat io op for nqp, fixed os.lstat method. #1129
+ Throw errors on illegal seek arguments, no assertions. #1130
+ Disallow negative count argument for array splice methods. GH #766
+ Allow array negative index access for most arrays. #1127
+ Shorten and harmonize array exception messages: no context, just:
index out of bounds, illegal argument, can't resize, ... #1126
+ Add simplier Parrot_ex_throw_from_c_noargs. #1132
+ Fix all wrong exception codes left-overs, 0, 1 or -1. #1133
+ Unescape double-quoted .lex string constants. #1095, perl6 RT#116643
+ Downgrade external ascii strings on multi-byte platform encodings
to ascii. #1098
+ Fix self heuristic with vtable overridden method calls.
$P0($P0) instead of $P0() is now invalid, it is always a method. #1013
- Build
+ Set -mabi=64 for gcc --m=64 on mips, -m64 on powerpc #1110
+ Add --{en,dis}able-static #1104
+ Fix Windows build for pbc_to_exe #1114
+ Fix default cygwin builds #1116
+ Silence failing auto::inline probe #1118
+ Revert automatic regeneration of encoding tables, added with 6.9.0. #1119
+ Use labs() instead of abs() with 64-bit #1111
+ Avoid duplicate src/longopt.o, export Parrot_longopt_get. #1121
+ Detect icu version, new icu_version config key. #867
+ Skip -Werror=strict-prototypes only on broken icu 4.2 - 4.9. #867
- Documentation
+ Document .lex "name" limitations. Use .lex 'name' w/ single-quotes #1095
+ Fixed 6.9 manpage regressions on BSD make #1125
+ Better newclass example code in pirbook #802
- Tests
+ Fixed make smoke, uploading to smolder with changed YAML::Tiny
quoting. #1078
+ Add better GC stress tests with reproducible GC bugs. #1108
- Community
2014-10-21 release 6.9.0 - supported
- Core
+ Changed behavior with illegal escape sequences, GH #1103. Do not silently
skip the \ anymore, throw an EXCEPTION_INVALID_CHARACTER error with
"Illegal escape sequence \o in 'string\o'".
+ Add platform encoding functions for darwin, FreeBSD, OpenBSD and NetBSD,
fixing rakudo problems with UTF-8 locales. #1092
+ Enable trap op (int3) on x86_64 also
+ Add const to env api STRING args
+ Do no pre-allocate 256 IO tables for the standard handles, only 3. #1093
+ Renamed ops2c to parrot-ops2c. Get the new name if exists in config
key ops2c. #900
+ Reenable parrot -t [flags] traceflags to enable the flags 2 find_method and
4 invoke/retcc/yield again.
+ Enable >2GB RAM on darwin also. #268
+ Fix crash with parrot -d8 DEBUG_IMC dump_instructions
+ Fix sprintf width count for unicode strings. #956
+ Fix sprintf width for NaN/Inf/-Inf [GH #1099/perl6 RT#116280]
+ Optimize utf8_substr. Do not use the slow utf8 iterator.
+ Regenerated and fixed the iso_8859_1_typetable. Add \x2028, \x2029
and \v to be of cclass newline. [GH #1086, perl6 RT #122341].
Several chars 160..191 are not in the [[:punct:]] class anymore.
Removed defunct Parrot_ascii_typetable, unused since 2010.
+ Protect callmethod from an empty object, missed by fixup_subs
immediate. #1024
+ Add Couroutine reset and autoreset methods. #564
+ Add -t8 trace flag for Coroutine states
+ Disabled trace flags -t4 and -t8 with --optimize. #1105
+ Harmonize parrot usage messages
- Build
+ Fix all -Wshadow instances
+ Added bootstrap-tables make target
+ Configure options consistency: --{en,dis}able-<feature> for shared, rpath,
threads, --with{,out}-<library> for: llvm pcre ... + threads. [GH #1101]
+ Deprecated --parrot_is_shared in favor of --enable-shared. [GH #1101]
+ Change default of the config key debugging from 1 to 0, i.e. you need to
provide now --debugging[=flags] for debugging. [GH #1099]
+ Enable --disable-shared (or --parrot_is_shared=0) to link against static
libparrot [GH #1101]
+ Change darwin build flags to improve gdb debugging,
no -undefined dynamic_lookup. #1096
+ Fix parrot-ops2c not generating extraneous parentheses #1008
+ Adjust all warnings and suffix overrides
- Documentation
+ Add missing manpages for pbc_disassemble, pbc_dump, pbc_merge
+ Improved src/string/encoding/tables.c pod.
- Tests
+ Run fulltests with the runcore=fast,-O1,-O2 fast, without -D040, --gc-debug
[GH #1086]
+ Added tests for LexInfo.declare_lex_preg and .lex quoting roundtrips
[GH #1095]
+ Simplify smolder resend usage
+ Fix mingw issues with \r\n
+ Updated the missing native_pbc 64-bit big-endian files on mips64 qemu.
2014-09-16 release 6.8.0
- Build
+ pbc_to_exe created executables use now the absolute execname on most platforms
and not only argv[0] which needs to be looked up in the path. [GH #1088]
- Documentation
+ Fix various new podchecker syntax errors with the new Pod::Simple 3.28
- Tests
+ Update embedded Pod::Simple to 3.28 to fix the missing whiteline_handler method
from non-embedded podchecker [GH #1089]
+ Skip 3 crashing codingstd tests with 5.8 DEBUGGING [GH #1090]
2014-08-19 release 6.7.0
- Core
+ find_codepoint: added more name aliases for perl6 (LF,FF,CR and NEL)
+ Optimize internal pcc CallContext calls from VTABLE to direct calls
and inline CallContext ATTR accessors to omit the obj check. [GH #1083]
- Build
- Documentation
+ Updated documentation for StringHandle.readall and FileHandle.readall, which
reads just the rest of the buffer if tell > 0. [GH #1084]
- Tests
+ Improve test plan for t/library/pg.t
- Community
+ Our GSoC student Chirag Agrawal successfully passed the final evaluation.
All three project parts have been merged already.
2014-07-15 release 6.6.0
- Core
+ Optimized method call overhead at compile-time in pmc2c directly
to avoid run-time overhead. Less temp. PMC's, less branches and
avoiding at least 2 costly C functions per method call.
+ New arity warning:
"wrong number of arguments: %d passed, %d expected" [GH #1080]
- Build
+ Workaround libffi-3.1 upstream bug in ffi.h [GH #1081]
+ Expand pkg-config make macros in auto::libffi [GH #1082]
- Tests
+ Fix t/pmc/filehandle.t on cygwin with newer Cwd >= 3.40 [GH #1077]
- Community
+ Our GSoC student passed the project midterm, having made great progress.
Congratulations to Chirag Agrawal!
+ More parrot-bench numbers at,
now using gnuplot for all releases from 1.8.0 - 6.6.0, amd64 + -m32
2014-06-17 release 6.5.0
- Core
+ Re-add -DMEMORY_DEBUG support to the new GMS GC [GH #1073]
+ Added 2 new PMC method attributes :manual_wb and :no_wb and
worked over all core PMCs for unneeded GC write barriers.
Thereby removed the vtable method calling overhead of _orig into a
wrapper with the mandatory write barrier. This was the first part
of Chirag's GSOC project. [GH #1069]
+ find_codepoint: Added name aliases for control character names which
disappeared with ICU 5.2, and added those names to non-ICU builds also.
Improved ICU search for u_charFromName() to check all UCharNameChoices,
not only U_EXTENDED_CHAR_NAME. [GH #1075, roast #43]
- Build
+ Fixed wrong ICU header probes on multi-arch systems (debian) [GH #1014]
+ Fix opengl on bsd which does not have __APPLE__ defined as 0 [GH #1070]
+ pmc2c was extended to improve write barriers and deal with :manual_wb,
:no_wb and RETURN() in VTABLE methods. [GH #1069]
- Documentation
+ Improved the docs for pmc and pmc2c [GH #1069]
+ Harmonized pmc names for the PMC html index [GH #1079]
- Tests
+ Fix t/op/gc.t for --gc=inf
+ Fix t/library/pcre.t for --without-pcre or windows
- Community
+ Our GSOC project succeeded in the first deliverable
+ Non-core dynpmc's with multiple return paths in writer VTABLE methods will
need to be changed to use either :manual_wb or RETURN() as in PCCMETHODs,
and can now be optimized for unneeded GC write barriers.
E.g. nqp 6model got 2-4% faster.
2014-05-20 release 6.4.0
- Examples
+ Enhance shootout/regexdna.pir to test GC write barrier crashes
- Community
+ Our GSOC project did officially start. See
2014-04-15 release 6.3.0
- Core
- Build
- Documentation
- Tests
+ Fixed tests for cygwin and cygwin64
+ Added 2 new examples/benchmarks/ files and benchmarks/
+ Fixed socket tests without IPv6 support at all [GH #1068]
- Community
+ New Benchmark results at
for all releases from 1.8.0 - 6.2.0
2014-03-18 release 6.2.0
- Core
+ Re-enable old immc flags for parrot and parrot_old, such as
-On -a -v -y -E -dxx. [GH #1033]
+ Fixed imcc -O1 and -O2
-O1 fixes:
= Special-case get_global for branch_cond_loop_swap, which broke
NCI tests [GH #1037]
= set_addr label does mark a basic_block, dead_code_remove() needs
the label. Fixes nqp [GH #1061].
-O2 used_once fixes:
= Allow used_once elimination only for purely functional ops
without side-effects [GH #1036]
= Empty ins->next in deletion [GH #1042].
-O2 constant propagation fixes:
= Empty ins->op ptrs when deleting or skipping certain instruction
[GH #1039],
= Wrong logic leading to missed detecting writes from get_results
[GH #1041],
= Propagate only matching types in setters [GH #1042],
= Stop at yield or invokecc for possible push_eh/pop_eh non-local
effects [GH #1044]
+ Fixed TT #1930, a floating point optimizer problem on PPC
+ Added cache iterators in encoding_find_*cclass [GH #1027]
to speedup the utf8 pattern "scan a whole string for newlines".
- Build
+ Set emacs buffer-read-only:t tags in generated files [GH #1034]
+ Provide coda for generated include/*.pasm files [GH #1032]
+ Fix parser for bison 3 [GH #1031]
+ Add support for __builtin_expect LIKELY/UNLIKELY branch optimizations
in a new auto::expect step. [GH #1047]
- Deprecations
+ Warn on deprecated usage of append_configure_log()
- Documentation
+ Updated pod for parrot and tools/build/
- Tests
+ Added -O1 and -O2 to fulltest
- Community
+ Parrot has been accepted to Google Summer of Code 2014
+ Got a candidate for "Improve performance of method signatures"
2014-02-18 release 6.1.0
- Build
+ Improve auto::libffi probe with -fstack-protector-all or
-fstack-protector-strong with recent GCC and OpenBSD’s toolchains
- Documentation
+ Replace perldoc by a new [GH #1028, #973, #520], which fixes
problems with 'sudo make install' generated ops pods as root.
2014-01-21 release 6.0.0
- Core
- Build
- Documentation
+ Fixed bad IPv6 examples in pdd22_io, thanks to Zefram++ [GH#1005]
- Tests
+ Fixed failure in t/configure/062-sha1.t.
+ Updated to Unicode 6.3 (libicu5.2): U+180e Mongolian Vowel Separator
is no whitespace anymore [GH #1015]
- Community
2013-12-17 release 5.11.0
This version was not released to the wild.
2013-11-19 release 5.10.0
- Core
+ Fixed bareword method names check for " in imcc [GH #1015]
+ Moved eval from eval.pmc to HLLCompile and use new packfile API.
This is a prerequisite for --target=pbc in the HLLCompiler [GH #937]
+ Merged branch 'new-packfile-api' [GH #937]
= Removed Eval PMC
= IMCCompiler now returns PackfileView instead of Eval.
= Added Parrot_pf_single_sub_by_tag() to packfile API.
= Added first_sub_in_const_table() to PackfileView PMC as a
stopgap until properly tagged subs are generated.
- Build
+ Removed wrong -Wlogical-op exception for imcparser.c [GH #1015]
+ Fixed parsing for OpenGL 4.1 on OS X Mavericks. [GH #1016]
- Documentation
- Tests
- Community
2013-10-15 release 5.9.0
- Core
+ Don't complain about utf8 multibyte characters split by chunk boundaries
+ Fixed readall SEGV at eof, e.g. when calling readall twice [GH #981]
+ Fixed SEGV when .const not found. [GH #996]
+ Added PackfileView-compatible methods to EvalPMC. [GH #937] (Temporary)
- Build
+ Fixed MacOSX -Wno-long-double warning [GH #980]
- Testing
+ Sorted hash keys to allow better diffs between runs of `make fulltest`.
- Branches
+ The new-packfile-api branch with the final removal of the EvalPMC
is ready and will most likely land in 5.10.0
- Documentation
+ Fixed and improved the documentation about Parrot_str_new
- Community
+ Zefram reported 31 issues. Thanks a lot!
+ All three of our GSoC students completed their projects, and passed
their finals with flying colors. Congratulations! Their weekly reports
are available here:
= Saurabh Kumar - "Update parrot-libgit2 to latest libgit2 release"
= Paweł Murias - "A Javascript backend for Rakudo"
= Denis Boyun - "Improve Web UI of App::Parrot::Create"
2013-09-17 release 5.8.0
This version was not released to the wild.
2013-08-20 release 5.7.0
- Build
+ Fixed GH#976 - Cannot load PCRE library during install on gentoo x64.
- Community
+ All three of our GSoC students passed their midterms, and are
on track to complete their Parrot and Perl 6 projects on time.
Congratulations to Saurabh Kumar, Paweł Murias, and Denis Boyun!
2013-07-16 release 5.6.0
- Build
+ Makefile dependencies are now compatible with VMS make.
- Documentation
+ The main README is now more helpful.
2013-06-18 release 5.5.0
- Build
+ Configure options are now allowed to be quoted.
+ Fixed build on Win32.
+ Updated location of NQP on Win32.
+ Fixed Parrot::Distribution detection.
- Documentation
+ Noted that RESPONSIBLE_PARTIES is mostly out of date.
- Tests
+ Stopped testing native PBC on 64bit LE, due to lack of access to
such machine.
- Release
+ Added tool:
- Community
+ Parrot has been awarded 3 student slots in Google Summer of Code 2013!
This means that 3 lucky students will be on a paid internship from
Google to work on these accepted proposals:
= Saurabh Kumar - "Update parrot-libgit2 to latest libgit2 release"
= Paweł Murias - "A Javascript backend for Rakudo"
= Denis Boyun - "Improve Web UI of App::Parrot::Create"
+ YAPC::NA::2013 hosted 4 days of Hackathon, focusing on the next
generation of Perl implementations.
= Huge Success!
+ MoarVM was unveiled:
+ P2 on Potion was debuted:
2013-05-21 release 5.4.0
- Core
+ Implemented the coth() and acot() math functions.
+ Fixed chomp to only trim a newline when it ends the string. [GH #958]
+ Added readlink() and Parrot_file_readlink(), with tests. [GH #967]
- Build
+ Parrot now detects the CPU model on Linux systems, as well as
detecting more CPU models on BSD, Cygwin, Solaris, Win32, and Darwin.
ARM v7 is also now recognized. [GH #962]
- Documentation
+ Threads examples now have proper POD sections and useful descriptions
with links to references.
+ Added main description for Task PMC.
+ Added descriptions to trig methods in Float PMC.
- Tests
+ Added improved test coverage targets "cover_new" and "fullcover_new".
+ Improved tests for acot(), coth(), acot() math functions.
+ Added tests for options passed to debugger.
+ Updated native PBC test files for string, number, and integer,
which resolved 11 TODOs in the test suite. [GH #959]
+ Fixed test for the auto/arch config step.
- Release process
+ Added message digests to crow.pir.
+ Added in release.json: "release.type" can be "devel" or "supported".
+ Refactored common code to sub in
- Community
+ Parrot is part of the Hackathon at YAPC::NA::2013, in Austin, TX, USA!
+ Parrot has been accepted to Google Summer of Code 2013!
+ Currently there are two high-quality proposals being worked on: - parrot-libgit2 - App::Parrot::Create
2013-04-16 release 5.3.0
- Build
+ Files generated by `make cover` are now correctly cleaned by `make`
and ignored by `git`.
- Tests
+ Internal testing of the Configure probe for Fink now works correctly
with the --verbose flag.
+ Tests added for .sort method of ResizableFloatArray and
ResizableIntegerArray. [GH #926], [GH #927]
+ Benchmarks added for .sort methods of various Array objects.
[GH #175]
+ Coverage analysis added for pbc_disassemble.
2013-03-19 release 5.2.0
- Core
+ IO now only syncs buffers for the IO types where syncing makes sense.
= PIO_VF_SYNC_IO flag added
- Build
+ installable_pdump now has the correct rpath (blib corrected to lib).
- Libraries
+ Tcl/Glob.pir has been removed. (PGE/Glob.pir remains intact)
- Ecosystem
+ All Parrot tarballs are now symlinked to the 'all' directory,
regardless of their true homes ('devel' or 'stable'), to better
allow for automated downloads.
2013-02-19 release 5.1.0
- Core
+ The .sort() method was added to the FixedFloatArray PMC
+ Improved detection of system memory for machines with >2GB
+ Improved pbc_to_exe support for spacey paths
+ Fixed Parrot_io_readall_s allocating too much string space
- Build
+ Fixed generated MANIFEST files to omit $destdir
- Documentation
- Tests
+ .readall now checks that prior reads are respected.
- Community
+ Weekly IRC meetings have resumed. #parrotsketch Tuesdays at 1930 UTC
2013-01-22 release 5.0.0
- Core
+ Remove duplicate library search path entries, move "." from the beginning to
the end. [GH #368]
+ Install forgotten runtime include files:
+ Install include/parrot/pbcversion.h with the main package, not devel.
+ Install headers for dynpmc files.
+ Install libraries tgc.pbc, NCI/Utils.pbc, OpenGL/Math.pbc, PCT/Dumper.pbc,
postgres.pbc, ProfTest.pbc and ProfTest/*pbc, String/Utils.pbc, URI/Escape.pbc,
YAML/Dumper/Base.pbc, YAML/Dumper/Default.pbc
+ New experimental PARROT_DYNEXT environment variable
+ New experimental dynext_dirs config entry (same as PARROT_DYNEXT and -X)
+ Add OS error messages to error messages [GH #911]
- Build
+ Generate MANIFEST.generated, cleanup MANIFEST,
removed MANIFEST_configure.generated, add installation of forgotten files
[GH #890]
+ perl now calls make clean if possible
+ Generate datadir/MANIFEST* for all installed files [GH #899]
+ Improved probes for --with-llvm
+ Replace / slashes with \ on windows for all Makefiles automatically.
This improves cygwin interaction, like remote or cronjob smoking on windows.
+ Reenabled and fixed debugging line directives in pmc2c, ops2c not yet [GH #641]
- Tools
+ Improved nci_thunk_gen (v0.02): handle void sig, add declaration
+ Fixed nci examples
- Documentation
+ Re-added docs/ops, the generated ops summary and docs/packfile-c.pod
+ Improved pdd10_embedding
+ Document exceptions and error messages
- Tests
+ Added t/library/lib_search_path.t
2012-12-18 release 4.11.0
- Core
+ Parrot now supports fast and lightweight OS threads, based on Nat Tucks's
initial GSoC work on green threads and then Stefan Seifert's extension
to true parallel OS threads as hybrid threads.
+ New parrot cmdline option --numthreads
+ Export new dynpmc_class_<ClassName> types [GH #870].
+ Changed core_ops library format and ops2c to contain the PBC_COMPAT only,
not the parrot version triple. Removed the duplicate PARROT_DYNOP_CORE_INIT
cpp definition in include/parrot/oplib/core_ops.h, use only
+ Store PBC_MAJOR and PBC_MINOR in the config hash, stored by auto::revision
+ Added getprotobyname method to the Socket PMC
- Documentation
+ Marked unused API parameters
+ Install man pages for all binaries
- Languages
+ nqp-rx tests updated from perl6/nqp-rx.git, and enabled to run on make test
- Platforms
+ More compilation fixes on Windows without working mt.exe or ranlib=rem,
enable smoking without git binary.
- Tools
+ Re-enabled pbc_dump -h --header-only
+ Improved pmc2c, added more UNUSED(arg) macros [GH #836]. Parrot is now almost
-Wunused-parameters safe.
- Tests
+ failing Pod::Simple pod_todo.t tests are now skipped
+ added nqp-rx tests
+ removed duplicate ext/nqp-rx/t/p6regex tests
+ rewrote and enabled native_pbc tests [GH #394],
renamed native_pbc testfiles
2012-11-21 release 4.10.0
- Core
+ Add PMCNULL check to result_info op
+ Fixed record separator bug on io handles
- Build
+ Add -fpermissive so that nqp builds under gcc 4.7.2
+ Fixed warnings for old ICU 4.4
- Platforms
+ More VMS fixes, but not yet done
- Branches
+ The threads branch is ready to be merged, but nqp needs some changes,
so it will be merged with 4.11.0.
- Examples
+ Parrot mini-web server fixes
2012-10-16 release 4.9.0
- Core
+ Keep encoding information in the imcc optimizer, which fixes the
concat op but probably many more cases with non-ascii encoded
constant strings. [GH #837]
+ Fixed ByteBuffer set_string_native, which became out of sync with
two internal buffers. [GH #835]
+ Preload Configure steps when called with perl -d [GH #833]
+ Strip unneeded config keys from installed config hash. Saves 6360
bytes from every installed executable. [GH #824]
+ Parrot_get_cpu_type returns now "unknown" for all unknown cpu types.
On non-windows it returned before 4.9.0 a null string. [GH #846]
+ Fixed src/hash.c for platforms where size_t is unsigned (e.g. vms) [GH #854]
- Build
+ Improved warnings for clang. [GH #843]
+ Cleaned wrong UNUSED(arg) macros in all pmc's due to an improved
pmc2c compiler, which SHIMs all UNUSED args. [GH #836]
+ Added clang++ support and a new auto::alignof Configure step. [GH #844]
+ Fixed auto::inline for C++ compilers
+ Improved auto::llvm
- Branches
+ The threads branch is almost ready to be merged. Some remaining races
have been fixed. There are only some remaining platforms errors on
- Libraries
+ Fixed Mime::Base64: Split long lines at 76 chars. [GH #826]
Support multi-byte codepoints. Use binary encoding,
encoded files are now endian specific [GH #813 + #814],
Added 2nd optional encoding arg to decode_base64().
- Documentation
+ Cleaned up removed parrot cmdline options -D/-O/-v from --help output and
running.pod [GH #838]
- Tools
+ Improved gdb pretty-printing for multi-byte strings
2012-09-18 release 4.8.0
- Core
+ Prevent interpreter from dying twice
+ Complete rewrite of the IO system, including new unified IO PMC
+ The Integer and Float PMCs now have a get_pointer vtable which is
needed when using NCI to bind to Fortran libraries such as LAPACK
- Deprecations
+ Moved dynpmc/os to pmc os. loadlib 'os' is not needed anymore.
- Platforms
+ Fixed for the FileHandle open method the append mode on Windows.
+ Fix compilation on Windows without working mt.exe
+ Detect GNU/Hurd as linux proper.
+ Fixed broken int3 trap on Solaris with gcc.
+ Updated the vms port on a YAPC::EU hackathon with vaxman and mvorl.
- Tests
+ Improve testability with valgrind or thread-sanitizer
2012-08-21 release 4.7.0
- Core
+ Added .all_tags() and .all_tagged_pmcs() methods to PackfileView PMC
+ Several build and coding standards fixes
2012-07-17 release 4.6.0
- Core
+ Added init_pmc method to PackFileView.
- Documentation
+ Added source lines from 'docs/index/book.json' to 'index.json'
to make display of 'Parrot Developer's Guide: PIR (draft)'
display more like the other books, e.g., 'PCT Book'.
+ Removed 'docs/index/book.json' as unnecessary.
- Tests
- Build
+ Improve on 'sudo make install' permission errors by using
- Community
2012-06-19 release 4.5.0
- Core
+ Added .write_bytes and .read_bytes methods to FileHandle and Socket
+ Added Parrot_api_set_stdhandle, Parrot_api_new_call_object and
Parrot_api_setup_signature functions to the embedding API
+ Removed the "can" VTABLE
- Languages
+ Winxed snapshot updated to 1.9.1
- New syntax for parameters in multi
- New syntax for initalization with new
- Cast to var improved
+ Removed .line, .file, setline and setfile directives from IMCC
- Documentation
+ Fixed up Pod in 240 files to pass 't/codingstd/pod_description.t'.
- Tests
+ Added 'docs/pdds' and 'docs/pdds/draft' as files for
'' to exclude.
- Build
+ Reduced number of packages under 'lib/Parrot/Pmc2c/'.
+ Added method-level documentation to several of the remaining packages.
+ Added 'docs/pdds' and 'docs/pdds/draft' as files for
'' to exclude.
- Community
+ M1, a C-like language that targets M0 had a burst of development
and now has many working examples such as recursive Fibonacci and
recursive factorial :
+ Parrot bindings to LAPACK are being worked on as part of Google
Summer of Code:
2012-05-15 release 4.4.0
- Core
+ Most internal calls to libc exit(x) have been replaced with
Parrot_x_* API calls or PARROT_FORCE_EXIT
- Documentation
+ 'pdd31_hll.pod' made stable in 'docs/pdds/'.
+ Updated main 'README' to 'README.pod'
+ Updated various dependencies, e.g., 'lib/Parrot/'.
+ Updated all 'README' files to 'README.pod' files.
+ Added 'README.pod' files to top-level directories.
- Tests
+ Update various tests to pull from new 'README.pod'
+ Updated 't/tools/install/02-install_files.t' to pull from new
- Community
- Platforms
- Tools
+ pbc_merge has been fixed to deduplicate constant strings and
merge annotations segments
2012-04-17 release 4.3.0
- Core
+ Winxed snapshot updated to 1.7.0
+ Add type introspection to lexical variables.
+ New 'tools/release/' script to automate
updates to the '' and 'parrot-docsx' repositories.
+ Numerous casting and consting fixes thanks to GCC 4.8 .
- Documentation
+ Updated 'docs/projects/release_manager_guide.pod'
+ Updated 'docs/projects/release_parrot_github_guide.pod'
+ Improved function documentation.
- Tests
- Community
- Platforms
+ Fixed alignment issues on ia64, sparc and mipsel.
+ Fixed a platform-specific issue with dlclose().
2012-03-20 release 4.2.0
- API Changes
+ The signature of getprop was changed from (PMC,String,PMC) to
(PMC, PMC,String) for consistency
- Core
+ Parrot Calling Conventions (pcc) now reuses Continuation PMCs
internally, which reduces GC work by 25% and improves
the fib.pir benchmark by 6%
+ Winxed snapshot updated to 1.6.devel 44a04cfa7b
+ Improved the detection of Clang-ish compilers during configuration
+ Fixed a possible segfault bug when reading packfiles with no
constants or main_sub
+ By default, Parrot has now elevated these GCC warnings to errors
during compile time:
implicit-function-declaration, undef, missing-braces,
nested externs, old-style-definition, strict-prototypes,
+ The OS Dynamic PMC now has separate functions to unlink a file
and remove an empty directory (rmdir)
+ Fix building on Cygwin due to an improperly named DLL file
+ Various small bug fixes pointed out by static and dynamic analysis
- Branches
+ Work on M0 continues now in the m0 branch, which contains both
implementations (currently C and Perl) and specification.
+ Good progress has been made on the threads branch which builds
on the green_threads branch. This gets Parrot much closer to
being able to utilize multiple CPU cores seemlessly. More details
- Documentation
+ New release manager documentation for :
- Community
+ Parrot was accepted to Google Summer of Code 2012!
Ideas Page:
2012-02-21 release 4.1.0
- Core
+ Shared libraries and installable binaries are now stripped if
built with --optimize on Cygwin, which greatly reduces their
size on disk
+ New experimental PCC-related ops added to core.
- Documentation
+ Revised 'docs/project/release_manager_guide.pod'
- Tests
+ Parrot now uses Travis CI
+ Parrot Continuous Integration (CI) with Travis CI means
every commit of Parrot is now compiled and tested on gcc,
g++ and clang with various options.
+ CI Notifications are sent to parrot-dev, the #parrot
IRC channel and Smolder
+ Cardinal and Rakudo spec tests also on Travis CI
2012-01-17 release 4.0.0
- Core
+ Several cleanups to the interp subsystem API
+ Cleanups and documentation additions for green threads and timers
+ Iterator PMC and family now implement the "iterator" role
+ A bug in Parrot_ext_try was fixed where it was not popping a context correctly
- Documentation
+ Docs for all versions of Parrot ever released are now available
- Tests
+ Timer PMC tests were converted from PASM to PIR
2011-12-20 release 3.11.0
- Core
+ packfile api and pbc handling improvements
+ smarter recursion tracking across threads
+ new "pop_upto_eh" op for finer-grained exception handling
+ subroutine-level profiling runcore cleanups
+ improved window support
- Languages
+ new math builtins in winxed (abs, sinh, cosh and tanh)
+ better inline support in winxed
+ squaak improvements (sub as expression, new read() builtin)
- Documentation
+ many new man pages thanks to gci students
- Tests
+ updated example code for FileHandle and Iterator
+ coding standards fixes
2011-11-15 release 3.10.0
- Core
+ The mark VTABLE was added to the Select PMC
+ The Parrot::Embed Perl 5 module was removed from parrot.git and now lives
+ A set_random method was added to the Integer PMC, so random numbers can
be generated without needing to load math dynops
+ A new implementation of green threads was added to Parrot, in preparation
for a robust hybrid threading system. Green threads are currently
not available on Windows.
- Languages
+ Winxed
- 'multi' modifier improved
- throw "string" now emits throw instead of die
- several optimizations in generated code
- improved some error dianostics
- Community
+ Parrot Foundation was accepted to Google Code-In 2011. We could always use more volunteers.
Task ideas are on the wiki:
- Documentation
- Tests
+ Added tests for recently-fixed bugs using return :flat and ResizableStringArrays.
2011-10-18 release 3.9.0
- Core
+ The whiteknight/kill_threads branch was merged, which removes the old and broken
thread/concurrency implementation. Better and more flexible concurrency primitives
are currently being worked on. This also involved removing some of the last vestiges
of assembly code from Parrot as well as removing the share and share_ro vtables.
+ random_lib.pir was removed, since better alternatives already exist
+ The freeze and thaw vtables were removed from Default PMC, because they weren't
useful and caused hard-to-find bugs.
+ A new subroutine profiling runcore was added. It can be enabled with the command-line
argument of -R subprof . The resulting data can be analyzed with kcachegrind.
+ Added get_string VTABLE to FixedIntegerArray and FixedFloatArray PMCs
+ The update() method was added to the Hash PMC, which updates one Hash with the contents
of another. This speeds up rakudo/nqp startup time.
- Languages
+ Winxed
- Updated snapshot to version 1.3.0
- Added the builtin sleep
- Modifier 'multi' allows some more multi functionality
- Community
+ New repo for the Parrot Alternate Compiler Toolkit, a re-implementation of
PCT in Winxed:
- Documentation
+ We are in the process to migrating our Trac wiki at to Github
+ Packfile PMC documentation was updated
- Tests
+ Select PMC tests improved to pass on non-Linuxy platforms
2011-09-20 release 3.8.0
- Core
+ New tools/release/ script automates most of release
- Languages
+ Winxed
- Updated snapshot to version 1.2.0
- allowtailcall modifier in try
--debug command-line option, __DEBUG__ predefined constant
and __ASSERT__ builtin
- namespace, class, and ~ (bitwise not) operators
- Implicit nested namespace in namespace and class declarations
- -X command-line arg
- Documentation
+ Improved release manager guide
- Tests
+ New Makefile target "resubmit_smolder" to resubmit test results
+ New Makefile target "all_hll_test" runs the test suite of all HLLs
and libraries known to work on Parrot
+ New Makefile target "interop_tests" run language interoperability tests,
which runs as part of the normal "make test" as well
2011-08-16 release 3.7.0
- Core
+ Added mem_sys_strndup function.
+ Added new load_bytecode_p_s opcode as an eventual replacement for load_bytecode_s
+ Added new :tag() syntax to IMCC for PIR
+ Improved configuration support for msys
+ known-buggy parrot_debugger is no longer installed
- Languages
+ Winxed
- Updated snapshot to version 1.1.0
- multi functions and methods
- cast to var
- load_packfile builtin
- __NAMESPACE__ and __CLASS__ predefined constants
- Documentation
+ The Archive::Tar and Archive::Zip libraries now have POD docs
- Tests
2011-07-19 Release 3.6.0
- Core
+ Class.add_vtable_override now allows you to overwrite an override
+ Integers, floats and strings can now be stored in lexical variables.
Previously, only PMCs could be stored in lexicals.
+ VTABLE_substr has been removed. VTABLE_substr_str has been renamed to
+ Added a new PackfileView PMC type, an intended replacement for the deprecated
Eval PMC.
+ The is_integer vtable on the String PMC now works for all string encodings.
+ Unicode error messages on Win32 now work correctly.
+ A memory leak in IMCC was fixed.
- Languages
+ The snaphost of Winxed included with Parrot was updated to version 1.0.0
+ Winxed has migrated to Github:
2011-06-21 Release 3.5.0
- Core
+ Parrot_PMC_destroy, Parrot_PMC_mark and Parrot_PMC_invoke were removed from
the public extension API.
+ PAST now has PAST::Stmt node types, supports reusable temporary registers.
+ Test coverage of the embedding and extending interface is now at least 95%.
+ A snapshot of Winxed is now included in Parrot core to facilitate writing
core Parrot tools from a higher level language than PIR.
- Languages
+ Winxed
- Improved compile time scope search.
- Added 'using namespace' statement.
- Compiler classes and functions now live in the Winxed;Compiler namespace.
- Tests
+ The Parrot test suite harness now understands the HARNESS_TIMER environment
variable. Setting it to a true value will show timing results for a test run.
+ IPv6 tests are now parallel testing friendly.
2011-05-17 Release 3.4.0
- Core
+ The Generational Mark and Sweep garbage collector is the new default.
+ The --gc-nursery-size command line argument was added.
+ Parrot now gets entropy from the underlying OS.
+ The NCI subsystem now supports 8, 16, 32 and 64 bit integers.
+ The NCI subsystem now supports "long long" and "long double" signatures.
Not all platforms/compilers support these non-standard types, so developers
are cautioned to take note that using them reduces portability.
+ Many more OpenGL functions in the Parrot OpenGL bindings are available,
which required the above-mentioned signatures.
+ Bytecode-related embedding api functions moved to src/embed/bytecode.c.
- Languages
+ Winxed
- Use 'using extern' for module imports.
- Improved stage 0 prefix ++ and -- operators.
- Allow 'null' in conditional operator.
- Several examples are updated.
- Community
+ Google Summer of Code Bonding period is going well. Students are mostly done
with their classes and much code will flow soon.
- Documentation
+ More PCT introductions are available at:
2011-04-19 Release 3.3.0
- Core
+ The isa and isa_pmc vtables can now be overridden from PIR
+ IMCC has a new improved external interface
+ A new IMCCompiler PMC adds prototype PDD31-alike functionality for the PIR and PASM compilers
+ New --with-llvm option to, which will link to LLVM if it is available
- Community
+ Parrot Virtual Machine was accepted into Google Summer of Code 2011
- Ecosystem
+ Rosella adds a stable "Event" library to implement a publish/subscribe mechanism
- Tests
+ The test coverage of the extend_vtable subsystem was greatly increased
2011-03-15 Release 3.2.0
- Core
+ Full support for Unicode filenames on Linux and Win32
+ The configuration option --cxx is gone
+ New Generational GC implemented. To enable it run --gc=gms
+ Now op definitions are semantically parsed. It opens possibilities for
future optimizations of parrot core.
+ A statement convert the '.param' PIR systax
+ A PMC is implemented for low-level buffer access which separate the
representation from the pointers
+ Support added for 'long double', 'long long', and 64-bit to StructView
+ In math.h are tools available for Inf/NaN
+ Signature PMCs are used pervasively
- Languages
+ A few tests in Cardinal are fixed
+ A binary .dmg is created of Rakudo Star for OS X
+ Winxed
- Minor fixes, refactors and cleaning
- New predefs replace, push and provide a way to access multiple return
- Operators exits, class and .* (indirect method call) added
- $loadlib directive
- -o option to installable driver added
- Indent generated PIR is added to improve clarity and avoid imcc pitfalls
with non indented sub bodys
- Community
+ M0 roadmap is in progress
- Documentation
+ 'make docs' target, which was serving only to generate superfluous POD
files, has been removed.
+ Svn remnants from PDDs are removed
- Tests
+ Added 'make release_check' target so that Release Manager can double-check
+ Probes added for 'long long' and 64-bit C types
- Rosella (
Rosella is a collection of tools and building blocks for Parrot
+ A working proxy library is created, that make mostly-transparent custom
proxies for many types of Parrot PMCs
+ A mockobject testing library is created, using the new proxy library
+ The PLA test suite is updated to use the new Rosella testing tools,
including the new mockobjects to test callbacks
2011-02-15 Release 3.1.0
- Core
+ Exception PMCs are now subclassable from PIR
+ IPv6 is now supported and tested
+ Added Parrot_ext_try function to extend API (experimental), to allow
implementation of try .. catch construct in C extensions.
+ We now have a YAML library called YAML::Tiny, a port of YAML::Tiny from Perl 5
+ Deprecated/experimental features are now stored in api.yaml in an easy-to-parse
format, which will allow automated tools easy access to this data. This replaces
DEPRECATED.pod, which no longer exists.
+ Improved GC latency
+ Improved GC performance on low-memory systems
+ Improved packfile annotation lookup complexity
+ Removal of unused code and SVN based code
+ A repository for a new NQP version which has a new object model is
created at
- Languages
+ Cardinal (Ruby on Parrot) now compiles and passes it's test suite on master
and is looking for developers :
+ Cardinal can send smoke reports with "rake smoke" or "parrot setup.pir smoke"
+ Jaspers, an implementation of Javascript on Parrot, now has a Github repo
and is looking for developers:
- Community
+ The following Parrot Google Code-In students were grand prize winners:
Fernando Brito, Brazil David Czech, Canada
Nolan Lum, United States Matt Rajca, United States
Tony Young, New Zealand Daniel Kang, United States
We are very proud of them for their fine work and congratulate
them for achieving top finalist status! For more info, see:
- Documentation
+ Many new Parrot-related terms were added to docs/glossary.pod
+ Removal of most remaining references to SVN
+ Internal project documentation is included in html output
- Tests
+ Test suite now passes on NetBSD 5.1
+ Test coverage increased greatly for the Embed/Extend subsystem,
thanks to a TPF grant:
2011-01-18 Release 3.0.0
- Core
+ A new embedding API is available in "parrot/api.h" and documented in
docs/pdd/pdd10_embedding.pod .
+ Packfile PMCs were refactored and can now be used to produce runnable bytecode.
+ Packfile manipulation code now throws embedder-friendly exceptions rather
than printing error details directly to stderr.
+ Unicode support for file IO, environment variables, program names, and
command-line parameters was improved.
+ An experimental gdb pretty-printers in tools/dev for Parrot STRINGs and
PMCs is now available. (gdb 7.2 or later and Python are required)
+ and improvements result in a noticably faster build.
+ Bugs in our Digest::sha256 library and bit-related dynamic ops were fixed
by GCI student Nolan Lum. Both now work correctly on 32 and 64 bit systems.
- Languages
+ Ωη;)XD - OMeta for Winxed
- Community
+ tree-optimization by GSoC student Tyler L. Curtis joined the nest and now
lives at .
+ Plumage now lives at and is installable.
+ Christmas proceeded as scheduled. The Parrot team does not take credit for
this event.
- Documentation
+ HTML documentation generation has been rewritten and greatly simplified.
+ We have improved documentation in docs/project/git_workflow.pod about
keeping a fork of parrot.git in sync.
+ Translations of our README in various languages are now in the
docs/translation directory, thanks to Google Code-In students.
- Tests
+ A better way to write "todo" tests with Parrot's Test::More was implemented
by GCI student Fernando Brito.
+ Major increases in test coverage of many core PMCs, dynamic PMCs and
dynamic opcodes resulted from GCI and the interpid students it attracted.
+ Jonathan "Duke" Leto set up Debian Linux x86_64 and sparc32 smokers
in the GCC Compile Farm, which continually submit smoke reports with
a variety of configuration options and compilers. Thanks, GCC!
+ Makefile dependency checking is now automatically tested, resulting in a
more reliable parallel build.
+ Coverage tests were improved for platforms with and without Devel::Cover.
2010-12-21 Release 2.11.0
- Core
+ Just In Time native call frame generation using LibFFI
+ PIR op find_codepoint is no longer experimental, it is now supported
+ Several public functions in libparrot have been brought up to standard
naming conventions.
+ Improved linked-list implementation in GC
+ set_addr opcode is being replaced with the new set_label opcode in core libraries
+ Removed deprecated CodeString PMC
+ Added close, is_closed, read, readline methods to Socket
+ Added experimental MappedByteArray PMC type
+ Added Parrot_warn_experimental, to warn the user about experimental features
+ Code for frontend executables moved from src/ to frontend/
+ Support for chunked receive in LWP library.
+ Added a "quickcover" make target
- Languages
- left the nest and is currently at
+ Community
- Our README was translated into the following languages
by Google Code-In students and mentors:
Polish README.polski
Spanish README.espanol
German README.deutsch
- Documentation
- Tests
+ Test coverage increase on PMCs: String, Integer, NameSpace, Complex, EventHandler
+ 'make quickcover' target added to speed up most essential
parts of coverage analysis
+ 'tools/dev/' refactored to improve maintainability
(no change in functionality)
2010-11-16 Release 2.10.0
- Core
+ We are on github now!
+ Configure, build and test subsystems were made Git-aware
+ New parrot_config key 'osvers' which contains
Operating System Version information
+ Updated to the latest nqp-rx
+ A proper exception is now thrown on IO read errors
+ Garbage Collector optimizations and memory leak fixes
+ Deprecated charset ops were removed
+ Configure system learned to detect IPv6
+ The mk_language_shell and create_language scripts have not yet been
ported to Git.
- Documentation
+ How To Use Git to work on Parrot
+ Git Terminology
- Platforms
- Testing
+ Increased coverage on: String, FixedBooleanArray, PMCProxy, LexPad
- Community
+ Macports portfile updated to 2.6.0
+ A Fedora package for PL/Parrot ( postgresql-plparrot ) was created
This package allows you to write stored procedures for PostgreSQL in
PIR or Rakudo Perl 6
+ Parrot Foundation is teaming up with The Perl Foundation and taking
part in Google Code-In 2010. Learn about it and how to get involved here:
2010-10-19 Release 2.9.1
- This is a bugfix release. If you run out of memory on a box with < 512 MB physical RAM, please report it to us.
2010-10-19 Release 2.9.0
- Core
+ Parrot and Rakudo's build and tests can now be run under the profiling runcore
+ IPv6 is now detected, laying the groundwork for future networking improvements
+ and no longer require an installed parrot
+ String PMC's 'reverse' method is now faster and supports all encodings
+ improvements and simplifications in internal string processing
+ Added API for adding STRINGs to the gc root set
+ Speed up ord, substr, index and string comparison opcodes
- Testing
+ "make smoke" supports parallel testing by honoring TEST_JOBS
+ Added tests for Socket PMC, StringBuilder PMC, ByteBuffer PMC,,
+ Fixed "" about missing tests
+ Parrot and Rakudo Perl 6 now have access to the GCC Compile Farm
+ Testing on Darwin/PPC
- Git Migration
+ Most developer tools have been ported to Git
+ Majority of developer docs have been written for Git
- Platforms
+ Parrot can now be built on Minix
2010-09-21 Release 2.8.0
- Core
+ Inlined hashing and comparison functions
+ Hash memory allocation moved from system malloc to lazy allocated
+ Avoided infinite catching of exceptions while dying from exception
+ Some svn fixes
+ Added a check for duplicate vtable entries in PMCs
+ Building Parrot with Perl 5.12 and gcc-4.5 / g++-4.5
+ Eliminated cruft left over after dynops_mapping
+ Improved charset and string encoding
+ Better organisation of programs by reposition it to "tools/build" and "tools/release"
+ Implemented Exception clone vtable function
+ Added experimental function Parrot_getpid and getpid method
+ --gc-threshold command line argument added, which controls the % of memory wasted by the GC
+ Closed a lot of tickets
- Testing
+ Added more core pmc tests
+ Rearranged some tests with C coverage
+ We now have Smolder back, at . Submit reports with "make smoke"
+ skip_all implementation in Parrot's Test::More completed
- GitMigration
+ Set up a test site for github trac plugin at
+ Code of Trac plugin at github is on
+ Parrot is now mirrored on github at
- Compilers
+ Fixed problem with imcc HLL in load_bytecode difference between loading a pbc and compiling a pir
2010-08-17 Release 2.7.0
- Core
+ cleanups in packfile and freeze/thaw handling
+ Hash optimizations that improve HLL startup and run time
+ As always, many bug fixes and other optimizations
- Runtime
+ some runtime library cleanups
- Testing
+ added more tests to improve coverage
+ new codingstd test for documentation in .pmc files
- Documentation
+ added documentation to .pmc files (some still missing but headers in place)
+ general documentation improvements and bringing up-to-date
- NQP-rx
+ Updated version included from includes
speed improvements
2010-07-20 Release 2.6.0
- Core
+ Plug some memory leaks
+ As always, bug fixes and some optimizations
- Runtime
+ added (experimental) URI::Escape
- Testing
+ Improved test coverage of core parrot
- Documentation
+ Updated the Squaak tutorial to use modern NQP-rx and PCT
- Platforms
+ The Fedora package 'parrot-devel' install the files for syntax-highlighting
and automatic indenting for the vim editor
- NQP-rx
+ Updated version included from includes
new or improved: regex backtracking, named assertions, interactive mode,
and setting (a minimal but useful runtime library)
2010-06-15 Release 2.5.0
- Core
+ Added ByteBuffer PMC to allow direct byte manipulation
+ Modified some PMC vtable functions to reduce complexity, simplifying coverage.
+ Modified PAST to generate symbolic PASM constants in PIR output.
+ General STRING API cleanups
+ Increased test coverage of core PMCs
+ Fixed up 'exit' opcode, added CONTROL_EXIT exception type.
+ Experimental 'unroll' opcode renamed to 'finalize'
- NQP-rx
+ Added proper support for multisubs and multimethods
+ Fixed sigspace handling ** quantifier in regexes
+ Added \e strings
+ Added use of inversion lists for charclass lists in regexes
- Platforms
+ EPEL (Extra Packages for Enterprise Linux) packages for RHEL6.beta are available
- Begin moving towards Lorito, the ops refactor to enable pervasive self-hosting and JIT compilation.
+ All ops are now built with the self-hosted opsc compiler.
+ For more Information about Lorito see:
2010-05-18 Release 2.4.0
- Core
+ Various long-standing bugs in IMCC were fixed
+ STRINGs are now immutable.
+ use STRINGNULL instead of NULL when working with strings
+ Fixed storage of methods in the NameSpace PMC
+ Added :nsentry flag to force method to be stored in the NameSpace
+ Added StringBuilder and PackfileDebug PMCs
+ Added experimental opcodes find_codepoint and unroll
- Compilers
+ Fixed reporting of line numbers in IMCC
+ Removed deprecated NQP compiler, replaced with new NQP-RX
+ Removed NCIGen compiler
- Deprecations
+ Tools to distribute on CPAN were removed
+ Deprecated dynpmcs have been removed to external repositories
+ Removed RetContinuation PMC
+ Removed CGoto, CGP, and Switch runcores
- Tests
+ Many tests for the extend/embed interface were added
+ done_testing() is now implemented in Test::More
- Tools
+ The fakexecutable tapir is renamed parrot-prove
+ Performance fixes to the pbc_to_exe tool
+ Fix data_json to work outside of trunk
+ The dynpmc GzipHandle (zlib wrapper) was added
+ The library Archive/Tar.pir was added.
+ The library Archive/Zip.pir was added.
+ The libraries LWP.pir, HTTP/Message.pir & URI.pir were added.
- Miscellaneous
+ Six Parrot-related projects accepted to GSoC
+ Improve use of const and other compiler hints
2010-04-20 Release 2.3.0
- Core
+ Allow passing parameters to the dynamic linker ('dlopen' improved)
+ loadlib opcode added
+ Calling conventions are now much more consistent, and follows natural
semantics of handling arguments and return values
+ Recursive make for src/dynpmc removed
+ Datatype STRINGNULL for a single Null STRING added
+ config_lib.pasm replaced with config_lib.pir
- Platforms
+ Improved handling of new compilers
+ Cygwin packages will be updated again with Parrot releases
+ Fedora packages add desktop files
+ gzip and bzip2 compressed tar files for releases
- Tools
+ tapir executable added; tapir is a TAP test harness
+ Added TAP options --merge --ignore-exit
- Miscellaneous
+ 3 month cycle for supported releases
+ Review and vote of GSoC applications
2010-03-16 Release 2.2.0
- Core changes
+ Most internal allocations now use the GC
+ RNG non-randomnes fixes
+ Elimination of much dead code
- API changes
+ PMCs can now be initialized from an int
+ Many legacy ops are removed
- Platforms
+ Sun cc and Intel icc support have been restored
+ Compiler invocation no longer goes through a Perl script
- Tools
+ NCI thunks are now generated by self-hosted PIR code
2010-02-16 Release 2.1.0
- Core changes
+ GC performance and encapsulation were greatly improved.
+ PMC freeze refactored.
+ More Makefile and build improvements.
- API Changes
+ The Array PMC was removed.
+ Several deprecated vtables were removed.
+ The OrderedHash PMC was substantialy improved.
- Platforms
+ Packaging improvements on some operating systems.
- Tools
+ Some cases in pbc_merge are now handled.
+ Improvements were made to the dependency checker.
+ New tool nativecall.pir added.
2010-01-19 Release 2.0.0
- Features
+ Context PMCs now support attribute-based introspection
+ Context and CallSignature PMCs merged into CallContext
+ .lex directive throws exceptions when used with incorrect register types
- Platforms
+ Packaging improved for free OS distributions
+ PPC, PPC64, and ARM now tested when running Linux
- Performance
+ Minor improvements to the profiling runcore
+ Improvements from the CallContext PMC merge
- New deprecations
+ In/out parameters in STRING modification functions
+ Void handling in NCI signatures
+ Parameter passing opcodes order in PBC
- Tests
+ Continued migration of core tests from Perl 5 to PIR
- Tools
+ dependency checker improved
- Miscellaneous
+ Deprecation cycle length changed to three months from six
+ GC accuracy improved
+ PMC freeze improvements; much more reliable
+ Makefile improvements for dependency handling
2009-12-15 Release 1.9.0
- Core
+ Made profiling runcore output format configurable and extensible
options include "pprof" and "none" ("binary" and "callgrind" are planned)
+ Added environment variables to specify profiling output type and filename
+ Began merging Freeze/Thaw and Bytecode generator/loader
- Compilers
+ Included latest nqp-rx compiler, with many improvements
- GLOBAL:: package identifier
- dynamic variables look in global namespace
- $obj."$method" syntax
- :p(os) and :c(ontinue) option on regexes
- try/CATCH/CONTROL handling
- support leading & on subroutine declarations
- allow "category:<symbol>" names (for builtin operators)
- simple version of smartmatch operator
- simple regex matches
- updated HLL::Compiler with new import/export methods
- Miscellaneous
+ Portability updates for RTEMS, and Intel architectures with GNU compilers
+ Completed conversion of ticket tracking system from RT to Trac
+ New draft of PDD31 for HLL export API and import implementation
+ Several (build time, runtime) performance improvements
+ Converted many tests to PIR, reducing test execution time
+ Various bugfixes, code cleanups, and coding standard fixes
2009-11-17 Release 1.8.0
- Functionality
+ The FileHandle PMC now exposes the exit code of child process that was run as pipe.
+ Experimental support for overriding VTABLE invoke in PIR objects was added.
+ The method 'type' was added to the PackfileAnnotations PMC.
+ The internals of the parrot calling conventions, PCC, were reworked.
All call paths now use a CallSignature object for passing arguments and return values.
+ The new API-function 'Parrot_ext_call' was added for calling into C-land.
+ The fixed-size allocator was improved.
+ The files installed by 'make install-dev' are now covered by 'make install' as well.
+ The experimental ops 'fetch' and 'vivify' were added.
+ The -I option to the command 'parrot' now prepends items to the search path.
+ The Context struct was substituted with auto attributes (context_auto_attrs branch).
+ Use the osname determined in auto::arch in subsequent configuration steps (convert_OSNAME branch).
+ Eliminated dependence on Perl 5 '%Config' in auto::format (auto_format_no_Config branch).
+ MultiSub PMCs now stringify to the name of their first candidate,
instead of the number of candidates.
+ The platform detection at the start of the configuration process was improved.
+ The 'lineof' method on CodeString objects now precomputes line number information
to be more efficient on variable-width encoded strings.
+ P6object now supports .WHO and .WHERE methods on protoobjects.
- Compilers
+ A shiny new self-hosting implementation of NQP has been added in ext/nqp-rx.
- New NQP available as nqp-rx.pbc or parrot-nqp fakecutable.
- NQP includes direct support for grammars and regexes, including protoregexes.
- NQP has a new PAST-based regex engine (intended to replace PGE).
- Regexes may contain code assertions, parameters, lexical declarations, and more.
- Double-quoted strings now interpolate scalar variables and closures.
- Subroutine declarations are now lexical by default.
- PAST::Block now supports an 'nsentry' attribute.
- PAST::Var allows 'contextual' scope.
- Attribute bindings now return the bound value.
- Platforms
+ Fixes for the port of Parrot to RTEMS were applied. Yay, first port to a real time OS!
+ On NetBSD, shared libs are now used.
- Performance
+ Use the the fixed-sized allocator in the Context and the CallSignature PMC.
+ Many small speed improvements.
- New deprecations
+ MT19937, the Mersenne twisted pseudorandom number generator, is now hosted on github and
will be removed from the Parrot core. (eligible in 2.1)
+ The 'Parrot_call_*' functions for invoking a sub/method object from C are
deprecated. They are replaced by 'Parrot_ext_call'. (eligible in 2.1)
+ All bitwise VTABLE functions are deprecated. (eligible in 2.1)
+ All bitwise ops will become dynops. (eligible in 2.1)
- Realized deprecations
+ The slice VTABLE entry was removed.
+ The last traces of the 'malloc' garbage collector were removed.
+ Parrot_pcc_constants() was renamed to Parrot_pcc_get_constants().
+ The deprecated functions from the Embedding/Extension interface were removed.
+ The library YAML/Parser/Syck.pir was removed.
+ The VTABLE function instantiate_str() was removed.
+ Building of parrot_nqp was removed.
- Tests
+ The test coverage of the time-related ops was much improved.
+ New testing functions in Test::More: lives_ok() and dies_ok().
+ The Perl 5 based test scripts t/op/bitwise.t, t/op/comp.t, t/op/inf_nan.t,
t/op/literal.t, t/op/number.t, t/op/sprintf2.t, and t/op/00ff-dos.t were converted to PIR.
+ The test scripts t/op/annotate.t and t/op/time.t have begun
to be translated from Perl 5 to PIR.
+ In some tests the dependency on %Config from Perl 5 was eliminated.
- Documentation
+ The meaning of 'p' means in NCI function call signatures was clarified.
- Tools
+ The stub for a new language, as created by,
now relies on the PIR-based tools, which are replacing the Perl 5-based tools.
+ The library Configure.pir was added.
+ The library distutils.pir was added.
- Miscellaneous
+ The mailing list parrot-users and a corresponding google group was created,
+ Many bugfixes, code cleanups, and coding standard fixes.
2009-10-20 Release 1.7.0
- Functionality
+ Parrot_capture_lex has been added to the PARROT_EXPORT API
+ PARROT_MAX_ARGS has been increased from 8 to 16 to allow for ops that take more than 8 args
- Performance
+ The profiling runcore now caches metadata for improved performance
- Maintenance and cleanup
+ Expanded the Parrot debugger documentation
+ Parrot debugger now uses the new Parrot STRING API
+ Continue to port rest of internals to use the STRING API
- Deprecations
+ The JIT subsystem has been removed and is being written from the ground up. More
information can be found at
+ Implicit optional named parameters (eligible in 2.1)
+ Continuation-based ExceptionHandlers (eligible in 2.1)
+ Use of undocumented variables in class_init (eligible in 2.1)
+ Parrot_oo_get_namespace (eligible in 2.1)
- Bugfix
+ Improved line number tracking in IMCC
- Tests
+ Converted many more Perl 5 tests to PIR
+ Expanded test coverage of the CallSignature, Namespace, FixedPMCArray,
ResizeableIntegerArray and ExceptionHandler PMCs
2009-09-15 Release 1.6.0
- Functionality
+ Added a fixed-size structure allocator to the Garbage Collector
+ Added a "lazy" mode to the PObj and Fixed-Size memory allocators
+ Added a profiling runcore, which generates Callgrind-compatible output
+ Added lexical subsystem opcodes: find_dynamic_lex, store_dynamic_lex
+ Converted Contexts to garbage-collectable PMC structures
+ Created a new Context API
+ Enhanced the PMC allocator to automatically allocate ATTR structures
- Performance
+ Optimized opcodes to cache the current Context for subsequent lookups
+ Reduced string comparisons in VTABLE_isa
- Maintenance and cleanup
+ Began proper encapsulation of STRING API
+ Unified all PMC destruction functions
+ Unified Continuation PMC and Parrot_cont structure
+ Unified Sub PMC and Parrot_sub structure
+ Removed PMC_EXT structure
+ Removed PMC_Sync from PMC
+ Removed UnionVal from PMC structure
- Bugfix
+ Fixed several stack-walking bugs in Garbage Collector code
+ Fixed bug when copying a NULL STRING, now returns empty STRING struct
- Tests
+ Converted several Perl5 tests to PIR
+ Expanded test coverage of NameSpace PMC
- Compilers
+ Made Parrot Compiler Toolkit available in the base install
2009-08-18 Release 1.5.0
- Core
+ Removed several deprecated functions and features
+ Removed bsr, jsr, branch_cs, and ret opcodes
+ Removed global stacks system
+ Changed OPS file format to include explicit preamble
+ Changed all "new 'Iterator'" instructions into 'iter' instructions
+ Removed options for specifying non-working GC cores
+ Removed unexecuting code as found by Coverity
+ Improvements to the Parrot Debugger
+ Added experimental fixed-size structure allocator to the GC
+ Added experimental lazy arena allocation to the GC
+ Refactored hashes, keys, and iterators
+ Added "corevm" make target to build Parrot without all the supporting libraries
+ Removed Random PMC type and added in a "rand" dynop
+ Optimization and Improvements to the NCI thunk generator
+ New include file libpaths.pasm
- Compilers
+ Multiple .local with same name and different type is now an error on IMCC.
- Platforms
+ Improved support for detecting Fink and Macports
+ Updated search directories for libraries
- Documentation
+ "Parrot Developers Guide: PIR" released to publisher and available to purchase
+ Improved documentation about Parrot Debugger
+ Update PGE Documentation
- Miscellaneous
+ Deprecate 'PASM1' compiler object, update to warn instead of segfault
+ Added tests
+ Fixes to code, documentation, and standards
2009-07-21 Release 1.4.0
- Core
+ Key and Iterator refactor
+ Major pbc_to_exe generated code speed improvement
+ New "Infinite Memory" GC core for demonstration purposes
+ gc_debug runcore and GC-related heisenbug fixes
+ Elimination of variable expansion in parrot_config
+ CLI arguments are processed as Unicode by default
+ Substantial optimizations in NCI
+ Parrot builds on Win64
+ Hashes can use native types as keys and values
+ Fixed installed pbc_to_exe
+ Simplification of PMC generation code
+ Improved GC encapsulation and API documentation
- Documentation
+ List of candidates for embedding API (docs/embed.pod)
+ PIR book sent to publisher
- Testing
+ Several conversions of Perl test to pure PIR.
+ C indentation coding standards test improvement
+ Improved test coverage of example code
- Deprecations
+ Removal of PGE rules: <null> <fail> <sp> <lt> <gt> <dot>
+ Removal of PGE methods: .text .item .result_object
+ Deprecation of most dynops
+ Miscellaneous
+ Beginnings of OpenGL::Math library; OpenGL bindings and library marked experimental
+ Localizing and consting fixes
+ Many memory and thread-related leaks plugged
2009-06-16 Release 1.3.0
- Core
+ Optimized parts of the IO system
+ Fixed inheritance hierarchy of FileHandle and Socket PMC types
+ Fixed leaks involving subroutines and Parrot_Context
+ Cleaned up and refactored GC internals, including fixes and optimizations
+ Optimized PMC class manipulations to use type numbers instead of string names
+ Fixed problems involving hashval calculations in strings
+ Removed unnecessary MULTI dispatches in built-in PMCs
+ Fixed memory leaks involving PMCs that were not properly destroyed
+ Fixed creation of PMCProxy PMCs in correct namespaces
+ Added preliminary Pipe support
+ Fixed cloning of Object PMCs
+ Added root_new opcode
+ Added initial versions of Packfile PMCs with read/write capabilities
- Compilers
+ Fixed several memory leaks in IMCC
+ Updated PCT to use root_new opcode
+ Added support for keyword "self" in NQP
- Documentation
+ Improved and expanded /docs/book
+ Updated project documentation
+ Defined 'experimental' status and procedures in DEPRECATED.pod
- Miscellaneous
+ Cleaned code and improved code-level documentation
+ Various bugfixes, code cleanups, and coding standard fixes
+ Added an experimental compiler library to help use PIR libraries from HLLs
+ Updated OpenGL library and examples to support experimental HLL import
2009-05-19 Release 1.2.0
- Core
+ Fixes for pir classes inheriting from core pmcs.
+ Cleaned up headers and reorganized some sources into subsystem directories.
+ Clean up PMCs so exports far fewer vtable/method symbols.
+ Clean up the GC API.
+ Several unicode identifier improvements in IMCC.
- Deprecations
+ Protoobject stringification is gone.
- Documentation
+ Rewrite several core documents.
+ Many reworks, improvements & additions to the Parrot Book.
+ Installation PDD is launched out of draft.
- Tools
+ Fixes for running the language shell generator outside the parrot tree.
+ Several fixes for developing and building HLLs from an installed parrot.
+ now has a --no-line-directives option to ease source level debugging.
- Miscellaneous
+ Portability updates for macports, netbsd, mingw32, hpux.
+ Several (build time, runtime) performance improvements.
+ Lots of updates to examples and tests.
+ Various bugfixes, code cleanups, and coding standard fixes.
2009-04-21 Release 1.1.0
- Core
+ Added op: load_language, find_caller_lex
+ Socket IO are back as PMC
+ Refactor some PMC: Hash, ManagedStruct
+ Refactor GC API
- Compiler
- Allow \x, \c, and \o in enumerated character classes (incl ranges)
- Add initial greedy-only version of ** <exp> quantifier
- Add HLL source line bytecode annotations
- Add another dumper format to assist syntax highlighters
- Revise to updated
- Deprecations
+ Removed ops: gcd, exec, classname, need_finalize, runinterp, substr_r
+ Removed dynamic op: mul
+ Removed .HLL_map directive; use interp's .hll_map() instead
+ Removed PMCs: slice, bound_nci, ref
+ Removed option: --pmc
+ Removed PMC union struct
- Documentation
+ Book
- Reorganization and many improvements & additions
- Tools
+ Add a parrot-fuzzer
- Miscellaneous
+ Improve Debian/Ubuntu package
+ various bugfixes, code cleanups, and coding standard fixes
2009-03-17 Release 1.0.0
- Documentation
+ New user documentation for exceptions.
+ Updates to Chapters 4 & 5 of the Parrot book.
+ Improved and expanded generated HTML documentation, as the input for
+ Added Compiled HTML Help (.chm) version of documentation.
+ Cleanups and fixes.
- Languages
+ Pynie
- left the nest and is now at
+ Cardinal
- left the nest and is now at
- left the nest and is now at
+ ABC, Squaak, and Befunge moved to examples/.
+ All remaining languages moved to
- Tools
+ Support for language builds from an installed Parrot.
+ Expanded language shell generator for new languages.
+ 'parrotbug' utility repurposed for the Trac interface.
- Deprecations
+ Removed deprecated Tqueue and Closure PMCs.
+ String, Key, NCI, LexPad, Iterator, Sub, Continuation, RetContinuation,
ExceptionHandler, ParrotLibrary, ParrotInterpreter, ParrotThread,
ParrotRunningThread, Rational, FixedPMCArray, ResizablePMCArray, and
GDBMHash PMCs now use declared attributes (ATTR), in place of the
deprecated UnionVal.
2009-02-17 Release 0.9.1
- Implementation
+ Support for portable 'Inf', 'NaN' and -0.0
+ pbc_disassemble prints constants in constants table
+ New experimental BigNum implementation
+ Pair is now a dynamic loadable PMC
+ Various function name sanification
+ New implementation of Strings component
+ Replace various PMC value union access code by VTABLE method invocations
+ Replace various PMC value unions by ATTRibutes
+ Removed SArray PMC. Use FixedPMCArray instead.
- Documentation
+ Book
- updates to Chapter 2 (getting started)
- updates to Chapter 3 (PIR basics)
- updates to Chapter 4 (PIR subroutines)
- updates to Chapter 10 (HLLs)
- updates to Chapter 12 (opcodes)
+ Function documentation
+ Pod documentation style modernized; no longer Perl 5 style.
+ PMC has an additional acronym: Poly Morphic Container
+ The DOD (Dead Object Detection) acronym is no longer used;
use 'GC' to refer to the Garbage Collector component.
- Compilers
- :named flag can now take string registers as argument
- A single '=cut' directive is now ignored (without initial Pod directive)
- :vtable subs now have proper access to 'self' pseudo variable
- Languages
+ add new 'Pod' documentation parser
+ Pipp (PHP implementation):
- Pipp is now at
- support for 'print', 'dirname', 'implode', 'str_replace',
- various grammar fixes
+ ECMAScript
+ add 'quit', 'readline' builtins
+ fix 'Boolean' type and 'print' builtin
+ Lua
- left the nest and is now at
+ Rakudo
- left the nest and is now at
- build instructions can be found at
+ lazy-k
- left the nest and is now at
+ unlambda
- left the nest and is now at
+ WMLScript
- left the nest and is now at
+ removed Zcode implementation
- Tools
+ pmc2C
- ATTRs are now inherited automatically in subclassing PMCs
- Deprecations
+ Parrot_readbc, Parrot_loadbc renamed to Parrot_pbc_read, Parrot_pbc_load.
+ .HLL_map directive in favour of 'hll_map' method on Parrot interpreter
+ Data::Escape library
- Tools
+ pbc_disassemble options added
+ pbc_dump renamed from pdump
- Miscellaneous
+ Parrot is now Copyright Parrot Foundation
+ Parrot's SVN repository is now hosted at
+ Various code cleanups, consting, 64-bit incompatibilities and other bug fixes
2009-01-20 Release 0.9.0
- Implementation
+ Implemented bytecode annotations
+ Role composition is now aware of multi-subs
+ Unbuffered IO PMCs now autopromote when buffering is necessary
+ Installation parrot binary and libparrot shared library now supported
+ Class registry now respects HLLs
- Compilers
- removed keyed string indexing, e.g. $S0[1].
- removed slice syntax, e.g. $P0[1..2]
- removed .namespace <ident>/.endnamespace <ident> pair
- fixed 'new $P0, [classname]' syntax
- refactoring of various data structures
- various bug fixes and updates
- complete bytecode generation
- add '-x' commandline option to run compiled code
- add 'hll' and 'subid' attributes to PAST::Block
- refactor loop handling code to handle last/redo/next
- add :pasttype('stmts') and :pasttype('null')
- improve "scope not found" error message
- allow PAST::Val nodes to contain block references
- add "skipkey" option to PGE::OPTable
- allow spaces before modifiers in regexes
- add '(' ~ ')' goal matching syntax
- skip creating a class/grammar if it already exists
- Languages
+ Rakudo
- improved error mesages in multi dispatch
- implemented clone method for all objects
- implemented MAIN sub
- Unicode versions of infix hyper operators
- refactored IO.readline
- basic support for Inf and NaN
- list and array slices with whatever star
- hash slices
- implemented last and redo
- pointy blocks as terms
- refactored variable and parameter passing
- improved assignment semantics
- improved parsing of type names and subs
- mostly implemented parametric roles
- separate types for blocks, subs and methods
- basic support for submethods
- implemented Junction autothreading of user code (not builtins yet)
- eval supports :lang attribute
- proto makes other subs in scope multis, including in role composition
+ Befunge
- back to working state
- ported to pir
+ Pipp
- add support for predefined constant __CLASS__ and __METHOD__
- add initial support for static members
- add support for namespaced constants
- constants are now handled as package vars
- variables are now lexical variables
- add support for superglobals in functions
- Call the class __constructor when there is one
- added incomplete support for closures
- removed support for the alternative parsing strategies
- added support for 'elsif'
- added support for 'do-while'
+ HQ9+
- left the nest and is now at
+ Eclectus
- left the nest and is now at
+ m4
- left the nest and is now at
+ Lua:
- add a minimalist user back trace
- "does" and "morph" VTABLE interfaces are now overridable from PIR
- Miscellaneous
+ Infrastructure
- 'make smoke' now generates Smolder reports sent to
+ Improved const and null correctness for C function parameters
+ Sped up STRING manipulation (append, chop), improving PGE about 30%
- Added sections about Classes, OO programming, and methods.
- Added information about Annotations, Exceptions, and Handlers
- Removed non-functional STM subsystem
2008-12-16 Release 0.8.2
- Implementation
+ fixed lexical semantics
+ added the 'capture_lex' opcode
+ added automatic resume for nonfatal exceptions
+ added multidispatch cache
+ applied miscellaneous performance improvements, including startup time
+ fixed several bugs and leaks found by Coverity Scan
+ removed race conditions from parallel testing
- Compilers
- removed undocumented .param int <stringc> => <ident> syntax
- .line directive now only takes an integer argument
- new .file directive to specify the file name being compiled
- properly handles lexical generation and closure semantics
- uses :subid instead of name lookups to reference PAST::Block nodes
- added PAST::Control node type (exception handlers)
- add support for <?{{...}}> and <!{{...}}> assertions
- Match objects use Capture PMC instead of Capture_PIR
- add macro handling to PASM mode
- disable vanilla register allocation in PASM mode, but do allow optimization
- add tests and bug fixes
- first bits of bytecode generation. No sub calling/returning yet.
- Languages
+ Rakudo
- fixed lexical handling and recursion
- refactored subtypes implementation
- support for quotes with multi-character delimiters
- implemented list slices (Positional role)
- list assignment
- reduction meta operators
- hyper meta operators
- cross meta operators
- more builtin functions
- added Nil type
- basic support for protos
- iterator on filehandle objects
- basic support for exception handlers
- warn
+ Lua
- added complex & mathx libraries
- merged LuaClosure & LuaFunction PMC
+ Pipp
- added support for a return value from user defined functions
- added incomplete implementation of 'require_once'
+ Ecmascript
- parser fixes, parses spidermonkey's top level test/shell.js
- Deprecations
- :lexid is now :subid
- .arg is now .set_arg
- .result is now .get_result
- .yield (in .begin/end_yield) is now .set_yield
- .return (in .begin/end_return) is now .set_return
- .namespace x / .endnamespace x syntax is removed
+ Capture_PIR (runtime/parrot/library/Parrot/Capture_PIR.pir)
2008-11-18 Release 0.8.1
- Implementation
+ added CPAN module Storable 2.12 as a configuration and build dependency
+ removed the pseudo PIR opcode 'addr'
+ added the 'box' opcode
+ fixed 'pop_eh' handling in PIR libraries and examples
+ removed usage of .return for tailcalls (use .tailcall instead)
+ removed 'get_hash' and 'get_array' from Capture PMC and Capture_PIR
+ improved debugger and HLL coordination
+ allowed MMD primitive autoboxing
+ fixed all known memory leaks in PIR "Hello, world!"
+ NCI signatures now JITted on x86-32 platforms (Windows and Linux)
+ made the .const directive take a quoted type name instead of a constant
+ made IMCC more re-entrant
- Languages
+ Rakudo
- refactored Junctions implementation
- added "fire and forget" tool to rebase/rebuild/test Parrot and Rakudo
- updated container/reference semantics
- added more builtin methods and functions
- improved support for multilevel namespaces
- added support for .Str, .succ, .pred in user-defined classes
- implemented pointy blocks on if/loops
- increased convergence
- added %*VM hash
- improved MMD candidate sorting
- improved integration of Num and Int
- implemented increment on protoobjects
- added initial support for MAIN subs
- added .PARROT method
+ Pipp
- added some predefined constants
- added implementation of the function basename()
+ Cardinal (Ruby)
- Added initial support for the classes Proc, Continuation, Queue, Dir, File, and FileStat
- fixed various minor bugs
- fixed broken Regexes
- Compilers
- added '.isa' method to PCT::Node
- cleaned up 'immediate block' handling
- allowed arguments to immediate blocks in loops/conditionals
- metaclass objects can now 'add_method'
- integrated macro processing in PIRC's lexer
- integrated heredoc lexer in PIRC executable
- added preprocess and heredoc-preprocess commandline options
- integrated the PASM grammar into PIRC
- added a register allocator to optimize the built-in vanilla allocator
- code cleanups and documentation
- added 'make test' target
- updated to work with new namespace/classname syntax
- Deprecations
+ :lexid will become :subid
- Miscellaneous
+ Documentation
- updates and additions to the Parrot book (see docs/book/)
+ OpenGL
- minor fixes to Parrot's base OpenGL bindings
- converted OpenGL PIR examples to Perl 6 (two complete, one WIP)
- added simplified OpenGL PIR example for NCI JIT testing
+ Tests
- further improvements to parallel tests
- tests no longer leave filesystem breadcrumbs
- more thorough testing of Parrot::Test itself
2008-10-21 Release 0.8.0
- Implementation
+ float precision expanded to 15 significant digits from 6
+ large integers autopromoted in PIR so as not to lose precision
+ improved precision of complex square root
+ exception handlers can register types of exceptions they catch
- Languages
+ Cardinal (Ruby)
- implemented gather, take, and yield builtins
- Range, Time, Math, GC, Kernel classes
- many more tests
- added a new committer
+ Markdown : new lightweight markup language
- start implementation with PCT/NQP
+ partcl (Tcl 8.5.4)
- Moved to its own repository:
+ Rakudo (Perl 6)
- split() works with regexes
- implemented Str.comb
- ord() and chr() builtins
- improved parsing of literal numbers
- support for hyphens and dashes in identifiers
- next() on for-loops
- fixed floating point constant precision
- improved namespace handling, closer to model
- support for exporting symbols
- Compilers
+ P6object
- now generates classes in nested namespaces instead of :: names
- supports class creation in caller's HLL namespace
- now using true nested namespaces instead of :: names
- cleaned up HLLCompiler interactive prompts and readline mode
- updated to use typed exception handler registration
- added initial support for loop control exceptions
- fixed Heredoc preprocessor
- cleaned up Macro preprocessor
- many code clean-ups, warning fixes and consting
- updated Makefile for easier compilation
- Added .tailcall syntax to replace .return in tailcall context
- Examples
+ pirric (BASIC)
- an old style line numbered Basic interpreter able to use parrot objects
- example connecting to mysql via nci
- example using classes to write and run an embedded Basic program
- Documentation
+ Book
- Added chapters for PCT, PMCs, and Opcodes/Runcores
- Expanded and improved formatting in various chapters
- Renumbered chapters
2008-09-16 Release 0.7.1
- Implementation
+ add -I and -L command line options
+ support for null strings in NCI calls
+ preliminary support for resumable exceptions
+ add '.hll_map' method for dynamic HLL type mapping
+ more parrot_debugger fixes
+ remove obsolete '.past' extension
- Languages
+ Rakudo (Perl 6)
- now over 3300 passing spectests
- precompiled modules
- precompiled scripts (--target=pir can now be executed standalone)
- Support for @*INC and %*INC varialbes
- additional builtin methods and subs
- added 'fail' function, warnings on use of undefined values
- m/.../ regexes
- qq, qw, q quoting forms
- run tests in parallel
- gather/take
- Perl6MultiSub
+ Cardinal (Ruby):
- 'require' and precompiled modules
- many new tests
- all Array tests pass
- regexes
- default arguments to functions
- new committer
- Compilers
+ PCT:
- add :loadinit attribute for PAST::Block
- major refactoring to allow all PIR keywords as identifiers
- links to libparrot now, so all Parrot ops are recognized as such
- implemented .loadlib, .HLL_map, .HLL
- Miscellaneous
+ add Xlib and Mysql modules and test programs to NCI examples
+ many updates and cleanups to PDD documents
2008-08-19 Release 0.7.0
- Specification
+ PDD27: add multisub lookup
- Implementation
+ new concurrency implementation (see PDD25)
+ Exception PMC now captures a return continuation
+ improved PMC encapsulation (Iterator, Key, Pair)
- Languages
+ Cardinal (Ruby):
- class variables
- parsing improvements
- minor additions to class builtins
- add support for block parameters to functions
+ Lua:
- various language fixes
- refactor all libraries (namespace, method registration)
- add a OpenGL binding (still incomplete)
- lost user back trace (see ppd25 & pushaction)
+ Pipp (PHP):
- add support for while- and for-loops
- add support for increment and decrement
- designate PHP 5.3 as the reference implementation
- improve support for string literals
+ Pugs (Perl 6):
- removed due to bit rot
+ Rakudo (Perl 6):
- now over 2200 passing spectests
- updated the Rakudo roadmap
- Perl 6 multi dispatch
- dispatch with slurpies
- class attributes ("my $.x")
- anonymous classes
- OO and metaclass improvements (.WHAT, .WHICH, .WHENCE)
- additional builtin methods and subs
- improved make test targets and harness
+ Tcl:
- implement [lreverse], [lsort -command]
- allow [incr] to autovivify
- update tclsh spec target to 8.5.3
- fix bug in TclDict PMC, allowing ~200 more [dict] spec tests to pass
- update 'make spectest' fudging, using TODO instead of SKIP if possible
- Compilers
+ PCT:
- :scope('register') for PAST::Var nodes
- allow invocant specification in attribute scope PAST::Var nodes
- correct ordering of sub generation from POST
- add 'loadinit' attribute to PAST::Block for block initialization
- PIR registers now use the vanilla register allocator
- all PASM output now uses PASM registers
- all .locals and $registers are mapped
- clean-up of grammar, back-end and documentation
- implemented constant folding
- implemented instruction selection
- Configuration
+ tests now clean up after themselves
+ improved parallel test support
+ ports/cygwin added
+ Darwin problems fixed
- Tools
+ parrot_debugger renamed from pdb, numerous tweaks
- Miscellaneous
+ IMCC cleanups
+ :vtable implies self in PIR
+ modest core speed improvements
+ Cygwin support improved
+ "say" now an opcode (was dispatched to a method; see Deprecations)
- Deprecations
+ ".pragma n_operators" is deprecated
+ old PASM register syntax (without "$") is deprecated
+ bare (unquoted) method names are deprecated
+ "#line" will be replaced with ".line"
+ ".HLL_map" syntax will change
+ ".loadlib" is now separate from ".HLL"
+ mmdvtregister and mmdvtablefind opcodes are deprecated
+ removed getfd, getclass opcodes
+ removed IMCC syntax that treated some methods as builtins
+ removed numeric get_attr and set_attr vtable entries
2008-07-15 Release 0.6.4
- Documentation
+ removed a lot of old information from the FAQ
+ improved function level documentation
- Configuration
+ removed the configuration item 'has_gnu_m4'
+ refactored ICU-detection
- Languages
+ ChitChat
- improved the Smalltalk implementation
+ Pipp
- renamed Plumhead to Pipp
- support for a lot of builtin functions.
- Pipp now uses PHP specific data types.
- converted from PCT with TGE to PCT with NQP actions
- improvements in the PCT variant by using optok parsing
- start of object support
+ pir
- simple assignments work
+ json
- added a PCT-based implementation of JSON parsing
+ lolcode
- improved handling of symbols
- added support for block handling
- added support for globals
+ Lua
- more tests
+ Rakudo
- updated Range implementation
- added enums
- added generic type declarations (::T)
- added runtime mixing of roles with 'does' and 'but'
- fixed handling of implicit lexicals ($_, $!, and $/)
- fixed implicit method calls on $_
- improved complex math builtins, added Complex
- moved many builtins to class Any
- declaration of lists of variables now work
- improved test infrastructure
- 910 additional passing spec tests since last release
- more convergence with grammar
- added named 0-ary parsing and ops
- Compilers
+ PCT:
- allowed subroutine and method names to be a PAST tree that produces the name
- Improved lexical handling
- Tools
+ pbc_disassemble renamed from disassemble
- Implementation
+ allowed .macro_const in PIR
+ added the flag :lexid(...) for subroutines
+ made multiple dispatch work for sub types
+ fixed garbage collection bug related to the metadata attached to a PMC_EXT structure
+ added a warning when using deprecated opcodes
+ simplified the stacks implementation
+ fixed C++ build
+ improved closure and lexical support
+ improved IMCC register allocator
+ added cache for all runtime-constant strings, reducing memory usage
- Miscellaneous
+ improved OpenGL/GLU/GLUT bindings
+ added a standard profile for Perl::Critic coding standard testing
+ added support for smoke testing with Smolder
+ enabled use of Test::Harness 3.0 if available, but don't require it for 'make test'
+ added the executable 'parrot_config' to query Parrot configuration
2008-06-17 Release 0.6.3
- Specification
+ updated pdd09_gc.pod
- Languages
+ Cardinal:
- dramatically improved parsing speed
- added support for defining and instantiating classes
- started fleshing out the builtin class hierarchy
- added support for hashes and arrays
+ Chitchat: added the start of a smalltalk compiler
+ Pheme: updated to match PGE changes
+ Pynie: return statement, other minor updates
+ Rakudo:
- added working list and hash contexts
- added 'return' statements
- added => pair constructor
- added ?? !! ternary
- added Range, range operators, Complex
- added common List, Hash methods
- refactored base classes
- added Mutable, Perl6Scalar classes
- added type-checking, is readonly/rw/copy for parameters
- added make localtest, docs/spectest-progress.csv
- fix named unaries
+ Squaak: implement return statement
+ Tcl: updated control flow exceptions to use new builtin types
- Compilers
+ All tools converted to P6object metamodel
+ PGE:
- <?foo> is now a zero-width match
- reduced backtracking to improve parsing speed
+ PCT:
- added "return" PAST.op node type for subroutine returns
- added "keyed_int" scoping to PAST::Var
- fixed calls to closures
- automatically transcode 7-bit unicode to ascii for faster processing
+ NQP: added "return" statement, ?? !! ternary operator
- Configuration
+ expanded step gen::opengl
- Implementation
+ updated function and macro names to match pdd09_gc.pod
+ removed Super PMC
+ add ".namespace []" as alternative to ".namespace"
+ "make codetest" target runs standard coding tests
- Miscellaneous
+ added P6object class for Perl 6 interfaces to objects in Parrot
+ ported OpenGL/GLU/GLUT bindings to Win32, BSD, and more Mac OS X variants
+ generate OpenGL/GLU/GLUT bindings by parsing system headers
+ new OpenGL example shapes.pir, covering basic OpenGL 1.1 / GLUT 3 APIs
+ new float4.pir structure-packing benchmark
+ reduced memory use for variables
+ improved constant string caching
+ made code g++ and gcc (with optimizations) safe
+ the usual collection of bugfixes and optimizations
2008-05-20 Release 0.6.2
- Specification
+ updated and launched pdd28_strings.pod
+ updated pdd19_pir.pod
- Implementation
+ added implementation of Rational PMC.
+ simplified ops control flow syntax
+ enabled backtrace on non-glibc platforms too
+ improved some PIR error reporting
+ removed user stack opcodes
(save, restore, lookback, entrytype, depth, rotate_up)
(NOTE: This was scheduled to occur after 0.7.0, moved up to this release)
+ removed register stack, saveall, and restoreall opcodes
+ removed various deprecated features and unused code
- Languages
+ Amber: retired
+ C99: grammar updated
+ Cardinal: resurrected, method calls and do blocks work now
+ Eclectus: use NQP as PAST generating code
+ Lua:
- added big number library
- updated to match PGE changes
- added a bytecode disassembler & a Lua 5.1 VM bytecode translator
+ Pheme: updated to match PGE/PCT changes
+ Plumhead:
- use NQP as PAST generating code
- use riaxpander for macro expansion
+ Rakudo:
- updated ROADMAP
- conditional and loop statement modifiers
- lots of class, object, role, and method improvements
- Str increment and decrement
- improved spectest reporting
- type checking on assignment
- regexes and grammars
- undef and self
- placeholder vars
roadmap updated
+ Squaak: added to repository
+ TAP: retired
- Compilers
+ PGE: updated to match Synopsis 5, deprecated features removed
+ PCT:
- improve handling of register types, conversion between registers
- improved error diagnostics
- add 'arity' to for loops
- Configuration
+ added step auto::opengl
+ added step gen::opengl
+ added step gen::call_list
- Miscellaneous
+ still more optimizations and performance improvements, especially in GC
+ new libraries: OpenGL/GLU/GLUT bindings (small subset working)
+ new utility: PBC disassembly/source code weaver
+ improved C++ compiler support
+ optimized builds work again
2008-04-15 Release 0.6.1
- Specification
+ drafted pdd29_compiler_tools.pod
+ updated pdd28_character_sets.pod draft
+ updated pdd19_pir.pod draft
- Languages
+ c99: added independent C pre-processor
+ HQ9+: reimplemented with PCT
+ Lua:
. reimplementation with PCT, using PAST and POST
. behavior aligned wih 5.1.3
+ Rakudo:
. implemented basic I/O, including '$*IN', '$*OUT', '$*ERR', 'prefix:='
. implemented simple typing and runtime type checking
. added basic multi-method dispatch
. expanded named argument handling, including Pair and colonpairs
. added 'Whatever' and 'Capture' classes
. implemented 'handles' trait verb
. added 'loop' statement
. implemented 'given', 'when', 'for', 'while', 'until' statement modifiers
. implemented Hash methods '.keys' and '.values'
. fixed bug to get '.WHAT' working correctly
. initial implementation of 'eval'
- Compilers
+ NQP:
. created a bootstrapped build, see 'make boot'
. added 'infix:<', 'infix:<=', 'infix:>', 'infix:>=' relational operators
. added 'postfix:++', 'postfix:--' operators
+ PCT:
. added methods specifying default behaviors in PAST, reducing repeated code
. improved symbol table lookup
+ PGE:
. removed deprecated code including: P6Regex, P6Grammar, PAST-pm
- Miscellaneous
+ notable speedups during compilation and execution of parrot and HLLs
+ pdb (the parrot debugger) can now catch parrot exceptions
+ better detection of glibc and gettext during configuration
+ various bugfixes, code cleanups, deprecations, and coding standard fixes
2008-03-18 Release 0.6.0
- Specification
+ launched pdd18_security.pod
+ updated pdd17_pmc.pod
+ launching draft of pdd28_character_sets.pod
- Documentation
+ cleanup of IMCC documentation
- Configuration
+ add step auto::gettext
+ add step auto::crypto
- Compilers
+ PCT:
. Fix '-e' option
. Phase out P6Regex in favor of Perl6Regex
'.local Array my_arr' is illegal now
- Languages
+ C99: reimplementation with PCT
+ lolcode:
. various updates
. add support for functions with params
. add math functions
+ Rakudo:
. support for 'say'
. first cut at smart matching
. indirect method calls
. support for Pairs
. added methods 'grep' and 'first'
. implement auto{increment,decrement}
. initial implementation of 'perl6doc'
+ Lua:
. various updates
. add base64 library
+ Cardinal: basic support for functions with parameters
+ Pheme: various updates
+ Ecmascript: various updates
+ Tcl: now targeting tcl 8.5.1, no more expected failures in test suite.
(No, this doesn't mean everything's implemented. =-)
+ Eclectus: various updates
+ WMLScript: various updates
- Implementation
+ PDD17 (PMCs)
+ Add library YAML::Dumper
+ Add the MD2, MD4, MD5, RIPEMD160, SHA & SHA1 PMC, as a wrapper
around libcrypto
- Miscellaneous
+ various bugfixes, code cleanups and coding standard fixes
+ consting
+ remove external Perl 5 modules from the Parrot distribution
2008-02-20 Release 0.5.3
- Documentation
+ PDD09 (garbage collection) - approved
+ PDD28 (character sets) - draft started
+ added function documentation to some core functions
+ PCT beginners guide, optable guide and PAST nodes guide, bug fixes
- Compilers
+ IMCC: plugged various memory leaks and other cleanups
+ PCT:
. add "attribute" as a scope variant to PAST::Var nodes
. add 'shift' and 'pop' methods to PAST:: nodes
+ NQP: add '=:=' op, tests for scalar and list contextualizers, \x escapes
- Languages
+ APL: reimplementation with PCT
+ Cardinal (Ruby): re-implementation with PCT
+ Ecmascript: reimplementation with PCT
+ lolcode: improved expression parsing, ifthen, IT, YARN
+ lua:
. aligned with Lua official release 5.1.3.
. added initial PCT-based implementation.
+ Punie (Perl 1): refactor to use standard PCT-based filenames
+ Pynie (Python): add functions
+ Rakudo (Perl 6):
. rebranded, formerly known as 'perl6'
. passes many more official Perl 6 Specification tests
. added 'perl6doc' utility
. oo including meta?classes, objects, methods, attributes, role composition
. match variables, while/until statements, traits
. many new methods for Str, List, Hash, Junction
- Implementation
- Deprecations
+ PCCINVOKE syntax for named arguments using []; use () instead.
+ see DEPRECATED.pod for details
- Miscellaneous
+ pbc_to_exe refactored for code reduction, portability, and maintainability
+ various bug fixes
+ #line directives added to generated JIT files, improving debugging
+ consting, attribute marking, refactoring, warnings cleanup
2008-01-15 Release 0.5.2
- Documentation
+ PDD27 (multiple dispatch) - debut of new design
+ Numerous small updates to glossary.pod, etc
- Compiler Toolkit
+ NQP: optional, named, and named/required parameters
+ PIRC: cleanups
+ PAST: "defined-or"
- Languages
+ New script creates language stubs
+ LOLCODE: new
+ Lua: various
+ Eclectus: start with support for local variables and procedures,
use SXML as intermediate representation
+ Perl 6: list builtins, compiler directives, command-line options, etc.
+ "make perl6" now builds a Perl 6 executable
+ punie: more builtins, control structures, code refactoring
+ pynie: builtin stubs, more tests
- Implementation
+ New "pbc_to_exe" utility turns bytecode to executables
+ New set_outer method for subs
+ Further configuration refactoring for testability
+ All functions now completely headerized
+ Concurrency: interpreter schedulers
- Deprecations
+ METHOD (replaced by renaming PCCMETHOD)
+ pmcinfo op (superseded by 'inspect')
+ get_attr, set_attr, and 8 other vtable methods
+ See DEPRECATED.pod for details
- Miscellaneous
+ Many bug fixes
+ Minor speed enhancements with UTF-8 string handling
+ Debian packaging
+ consting, attribute marking, warnings cleanup, memory leaks plugged ...
2007-12-18 Release 0.5.1
- Documentation
+ PDD19 (PIR) - reflect state on the ground; incorporate old IMCC docs
+ PDD25 (Concurrency) - launch out of draft
+ Improve documentation of deprecated parrot features.
- Compilers
+ PCT: Parrot Compiler Toolkit redesigned and updated
+ NQP: major updates, including support for namespaces,
module/class declarations, methods
+ IMCC: remove .sym as alias for .local. Remove .pcc_
prefix for calling directives (.pcc_begin became .begin_call).
+ PIRC: creates an AST during the parse.
+ PGE: more updates to match S05 syntax.
- Languages
+ perl6: re-implemented using PCT and NQP, new object subsystem
+ abc: re-implemented using PCT and NQP
+ eclectus: initial implementation
+ plumhead: add PCT variant
+ punie: re-implemented using PCT and NQP, extended to handle subroutines
Happy 20th Birthday, Perl!
+ pynie: re-implemented using PCT and NQP
+ PIR: start conversion to NQP (under construction)
- Implementation
+ new opcodes: 'die', 'addhandler', 'copy'
+ Initial implementation of Concurrency PDD
+ Add 'arity' method to Sub and NCI PMCs
- Miscellaneous
+ Bug cleanup
+ consting, attribute marking, warnings cleanup, memory leaks, GC...
+ dead code removal (includes some defunct languages)
2007-11-20 Release 0.5.0
- Implementation
+ PDD15 (OO) branch merged with trunk; this release contains a working,
tested implementation of the latest OO model
+ Added pop_eh/push_eh_p/count_eh opcodes
+ Add --runcore command line option
+ Add gcdebug runcore to help track down GC bugs
+ minor improvements to IA-32 JIT
- Documentation
+ PDD19 (PIR): updates to macros, .pcc* directives
+ PDD25 (Concurrency): updated
+ PDD26 (AST): draft approved
+ PDD23 (Exceptions): draft approved
+ Copyright cleanups
- Languages/Compilers
+ languages/APL: minor updates, PDD15 conformance
+ languages/dotnet: minor updates
+ languages/lua: minor updates, PDD15 conformance
+ languages/lisp: minor updates
+ languages/perl6: minor updates, PDD15 conformance
+ languages/plumhead: minor updates
+ languages/punie: minor updates, PDD15 conformance
+ languages/nqp: minor updates
+ languages/scheme: many updates, PDD15 conformance, improved tests, use
PMCs instead of primitive registers to represent values
+ languages/tcl: bugfixes, PDD15 conformance
+ languages/WMLScript: minor updates
+ compilers/pirc: updates from PDD19, PDD06
+ compilers/pct: minor updates, PDD15 conformance
+ compilers/pge: PDD15 conformance
+ compilers/tge: PDD15 conformance
- Configuration
+ Improve test coverage
+ Improve reporting when a step fails; allow abort on failure
- Miscellaneous
+ More coding standard conformance, tests, cleanup, speedups,
warnings cleanup
+ Bug cleanup, esp. GC bugs
+ Eliminate .imc extension (use .pir)
+ Simplify some core config steps to not allow interactive prompting
- Removed
+ clear_eh opcode
2007-10-17 Release 0.4.17
- Implementation
+ Bug fixes (including Coverity IDs 20, 22, 30, 119-122, 124-126, 129-131)
Also various GC, memory, and segfault issues
+ Fix & reenable CGP core
+ Parrot's -r flag now works again (compile to and execute bytecode)
+ Updates to pmc2c & PIR syntaxes
+ Fix Complex PMC
+ Minor performance improvements, especially in PGE
- Documentation
+ PDD02 "Vtables" - superceded by PDD17
+ PDD06 "PASM" - minor updates
+ PDD17 "PMC" - add VTABLE syntax, update core PMC struct, restore UnionVal
+ PDD19 "PIR" - early review started
+ PDD21 "Namespaces" - cleanup
+ PDD24 "Events" - draft approved
+ PDD25 "Concurrency" - minor updates
+ PDD26 "AST" - draft version begun
+ PIR tutorials updated
- Languages/Compilers
+ Make scheme work with the current calling conventions, other major work.
+ Updates to m4, lua, compilers/pirc, languages/PIR, dotnet, tcl
- Miscellaneous:
+ make -j functional again
+ Code cleanup (refactoring, optimizations)
2007-09-18 Release 0.4.16
- Implementation:
+ Performed code review on every PMC
+ Modified PMC code generation to use Storable, reducing compile times
+ Added a makefile target to generate test coverage data of C sources
- Languages:
+ NQP: added lists, for loops, operators, comparison and multiplicative operators
+ Announced Kea-CL, Kea Common Lisp, an ANSI Common Lisp implementation
The repository is available at
- Documentation
+ PDD17 "PMCs" - draft approved, the design is complete
+ Added more PIR tutorials, see examples/tutorial/00_README.pod
- Miscellaneous:
+ Many bugfixes, enhancements, documentation, and coding standard updates
+ Deprecated PMC constants and other crufty syntax, see DEPRECATED.pod
+ Improved icc compiler compatibility for error line reporting
2007-08-22 Release 0.4.15
- Implementation:
+ Lots of code review, many bugs fixed
+ Many more code cleanups and compiler warning levels
+ Started a new jit engine for 64-bit processors
+ Refactored configure process, with tests and new diagnostic options
+ Added new CodeString PMC for dynamic generation of PIR code
+ More pdd15 support for object metamodel.
- Languages:
+ Added NQP ("Not Quite Perl"), a very lightweight Perl 6-like language
+ Significant improvements and refactors to PCT (Parrot Compiler Toolkit)
+ perl6 passes more spec tests
+ Lua works now with a PGE/TGE/PAST-pm based compiler, lives in one pbc,
and the interpreter has same behavior as original.
- Documentation
+ Added a committers' HOWTO
+ More PIR tutorial examples
+ Added PAUSE guide
2007-07-17 Release 0.4.14
- Now, with Seat Belts!
+ added makefile targets for Sun lint, BSD lint, and splint
+ corrected many errors picked up by these tools
+ decorated source code with compiler hints, assertions, and attribute macros
+ automated creation of function declarations to prevent common errors
+ increased compiler warnings levels
+ converted more exceptions to a recoverable form
- Languages:
+ updated Lisp, Lua, Perl 6, tcl, regex, Scheme ("Pheme")
+ Perl 6 now fetches selected tests from pugs, and even passes some
+ PGE modified to handle {*} action subs for top-down and bottom-up parsers,
and to allow grammar subclassing
+ HLLCompiler now has better exception, eval, and exit support
+ Introduced PCT, a refactor of HLLCompiler and PAST-pm
- Design:
+ PDD15 "Objects" - details added to 'new' and 'getattribute' opcodes
+ PDD17 "PMCs" - notes added on instantiation and dynamic extention in PIR
- Documentation:
+ added Parrot-related text from "Perl 6 and Parrot Essentials" book,
tutorial examples from "Learning PIR" talk, and PDD15 metamodel diagrams
- Implementation:
+ reduced memory footprint when using named registers
+ implemented overridding of vtable methods by PDD15 classes
+ improved PDD15 support for 'new', 'instantiate', and others
+ added makefile targets to ease core and HLL makefile regeneration
+ updated parrot dubugger, "pdb", to allow loading of commands from file
- Misc:
+ many bugfixes, enhancements, documentation, and coding standard updates
2007-06-19 Release 0.4.13
- Languages:
+ Updated Lisp, Lua, PHP ("Plumhead"), Python ("Pynie"), ABC,
WMLScript, and Tcl ("ParTcl").
+ Perl 6 passes all of the sanity tests.
+ PGE supports latest Perl 6 grammar syntax. Perl 6, Python
("Pynie"), and ABC parsers updated to match.
+ Updated PHP ("Plumhead") to Antlr 3.0.
+ Lua added the beginnings of a PGE/TGE based compiler (not yet
replacing the Perl/Yapp compiler).
+ Lisp updated for current features, added a test suite.
- Core Implementation:
+ Filled in features and backward compatibility for PDD 15 objects.
New object metamodel passes 85% of old test suite.
+ GCC API symbols are visible externally only when explicitly exported.
+ Added generated GCC compiler attributes to increase warnings, and
cleaned up resulting warnings.
+ Code cleanup efforts and fixed memory leaks by the cage cleaners,
resulting in notable speed increases.
- Misc:
+ Updated Parrot distribution to Artistic License 2.0, from dual
Artistic 1/GPL license.
+ SDL examples brought up-to-date with current features.
2007-05-15 Release 0.4.12
- Build:
+ even more refactorings and improvements in configuration system
+ improved tests and documentation for configuration system
- Languages:
+ Updated abc, PHP ("Plumhead"), Lua, Tcl
+ Reclaimed Lisp
- Design:
+ new PMC PDD draft partially completed
- Implementation:
+ continued implementation of PDD 15 (Objects)
+ minor garbage collector and memory management improvements
+ several memory leaks resolved
+ extended support for compilers other than GCC
+ improved C++ compiler compatibility
+ enhanced support for Solaris, non-MSVC Win32, and other platforms
2007-04-17 Release 0.4.11
- Compilers:
+ IMCC: added documentation for C-based Parrot Calling Conventions,
refactorings and bug fixes
+ PGE: new perl6regex front end reflecting recent S05 syntax changes
+ PIRC: new prototype PIR parser
- Languages:
+ Updated Lua, PHP ("Plumhead"), BASIC, pynie
+ Lua implements environment
- Design:
+ PDD15 "Objects" - details added, and draft approved
- Documentation:
+ Added guidelines for PMC documentation
- Implementation:
+ PDD15 implementation is largely complete, including role-based composition,
introspection, and C3 method resolution order
+ new Exporter PMC for importing globals between namespaces
+ new string utilities for radix conversion
+ PCCINVOKE and Parrot_PCCINVOKE allow calling using the full Parrot Calling
Conventions from PMCs and C code respectively
- Build:
+ Refactorings and improvements in test coverage for ''
- Misc:
+ many bugfixes, enhancements, and code cleanup
+ added example subversion config file
+ extended support for gcc, icc, and other compilers
+ extended support for Solaris and other platforms
2007-03-20 Release 0.4.10
- Compilers:
+ IMCC: Parrot calling conventions now available between two C PMCs (PMINVOKE)
+ PGE: Match object improvements
+ smop: added Attribute and Class PMCs
+ HLLCompiler: improvements for interactive mode
+ extended binding to a list of variables
- Languages:
+ Updated Lua, PHP ("Plumhead"), Tcl ("ParTcl"), Ruby ("Cardinal")
+ Update PIR, regex, Zcode
+ New language: Pynie - a Python compiler for Parrot
+ Lua implements require and many other ops, improved regex support
+ Remove parakeet
- Design:
+ PDD01 "Overview" - updated architecture and platform information
+ PDD15 "Objects" - details on roles, objects, and classes added
+ PDD22 "I/O" - added async ops and Status PMC details
- Documentation:
+ Added guides for Metacommitter, Relase Manager, and Cage Cleaner roles
- Implementation:
+ Object, Class, Role, and Attribute PMC implementation has begun
+ Perl 5 module "Parrot::Embed" now compiles and links on all platforms
- Build:
+ Major improvements in test coverage for ''
- Misc:
+ New utility: Crow, a template processor
+ New library module: Config/JSON for reading/writing JSON files
+ many bugfixes, enhancements, and coding standard updates, code cleanup
2007-3-10 coke
* removed parakeet
2007-02-22 Release 0.4.9
- Compilers:
+ IMCC: Parrot calling conventions now available in C PMCs, allowing
named, optional, slurpy, and flat parameter passing
+ PGE: extended support for Perl 5 Regexes
+ smop: prototype object model implementation
+ hllcompiler: refactored to run a configurable set of compilation stages
+ redesigned assign/binding to support Perl 6 binding semantics
- Languages:
+ Updated Lua, PHP ("Plumhead"), Tcl ("ParTcl"), perl6, perl5
+ New language: PIR - a PGE-based implementation of Parrot PIR
+ perl6 now supports binding (':=') and 'join'
+ lua generates tail calls, and supports its own regex flavor (PGE-based)
+ Pheme still works, huzzah!
- Design:
+ PDD21 "Objects" - rewritten
+ PDD22 "I/O" - updated and 'TODO' tests added
- Documentation:
+ Interface stability classification standards approved
+ Roles and Responsibilities documented approved
+ Official 'drafts' directory created (was 'clip')
- Implementation:
+ More NameSpace and OS PMC methods implemented
+ Parrot executable fullname and basename now available in PIR/PASM code
+ new 'chomp' library function
- Build:
+ Major improvements in test coverage for ''
- Misc:
+ many bugfixes, enhancements, and coding standard updates
+ extended support for Sun Workshop Compilers
+ Parrot now builds on PocketPC platform
2007-01-17 chromatic
* changed 'name' method on namespaces to 'get_name' per pdd21
Release 0.4.8
- Compilers:
+ HLLCompiler: added tracing options, modified api
+ PGE & TGE bugfixes and updates
+ added global and lexical variable support
+ added looping constructs, arrays, hashes
- Languages:
+ Updated PHP ("Plumhead"), Tcl ("ParTcl"),
forth, perl6, lua, abc, APL, WMLScript, punie
+ ParTcl is passing > 24.9% of Tcl cvs-latest test suite
+ perl6 now supports hashes, arrays, method calls, arity-based
multisubs, quoted terms, ranges (non-lazy), try blocks, $!
- Design:
+ PDD01 "Overview" - updated
+ PDD22 "I/O" - rewritten and approved
- Test Suite:
+ Converted Perl 5 Regex tests to PIR, with notable speedup
+ Added tests for opcodes, compilers, languages, and coding standards
- Build:
+ Major improvements in test coverage for ''
- Misc:
+ many bugfixes, enhancements, and coding standard updates
+ extended support for non-core platforms including Cygwin, Tru64
2006-12-12 particle
* added C<isnull> opcode
2006-11-14 Release 0.4.7
- New languages: PHP ("Plumhead"), Forth
- Updated languages: Ruby ("Cardinal"), Tcl, Lua
- Remove old Python implementation from Parrot repository; the new Python
language code is hosted at
- Compilers:
+ PGE updated with more expressions, latest changes to S05
+ new Perl 6 grammar compiler
- Integration:
+ Perl 5 module "Parrot::Embed" allows easy embedding of a Parrot
runtime into a Perl 5 program
- PIR:
+ new :init pragma for subs that must run before the main function
+ new :vtable pragma to identify subs that override PMC vtable methods,
eliminating the need for special subroutine names
+ PIR parser/compiler does not stop on first syntax error
+ Vanilla register allocator ("register alligator") greatly improves
performance compiling large functions
+ Eliminated limit on number of PIR macros
- PMCs:
+ hash lookups return null instead of None for missing keys
- Design:
+ PDD13 "Bytecode files: format and manipulation" - new
+ PDD10 "Embedding" - new
+ PDD25 "Concurrency" - rewritten
+ PDD15 "Objects" - new section on redesign requirements
+ PDD07 "Coding standards" - significant updates and automated tests
- Test Suite:
+ Many many more new tests
- Build Process:
+ autoconf compatible install options
- Misc:
+ Namespace refinements
+ Coroutine improvements
+ An impressive swarm of other bugfixes and enhancements
2006-11-07 tewk
* added :init pragma functionality to subs
2006-10-28 jonathan
* added :vtable pragma functionality to subs
2006-09-18 chromatic
* added Parrot::Embed under ext/Parrot-Embed
2006-08-18 leo
* remove the None PMC - if needed it can trivially be reimplemented
in languages from r14189
2006-08-16 creiss
Merged Software Transactional Memory branch into trunk, adds:
* several new opcodes whose names start with stm_
* read-only PMC support
* several new PMC types (whose names start with STM*)
* support for threads (again)
2006-08-08 Release 0.4.6
- New languages: Ruby ("Cardinal"), Javascript ("ecmascript")
- Updated languages: Tcl, dotnet, bc, Pheme, Punie, WMLScript
- Updated compilers: PGE, TGE
- IMCC updates:
+ ".loadlib" directive expresses dependencies
+ ".namespace" with no parameter goes to HLL root
+ lexer is reentrant (reentrant grammar in progress)
- Namespace improvements:
+ new suite of opcodes to access namespaces and globals
("find_global" and "store_global" will be phased out)
+ namespace '' no longer means HLL root
- Design document updates:
namespaces (pdd23), basic types (pdd17), embedding
- Updated tool requirements for developers:
flex 2.5.33, bison 2.1, perl 5.6.1
- New to-do list for people new to Parrot:
- The usual plethora of bugfixes and enhancements
2006-08-02 chip
* opcodes: "in PMC" is no longer a synonym for "invar PMC";
there are opcodes now that want the real "in PMC".
* namespace and global opcodes now accept name arrays again, as
well as keys; the corresponding namespace PMC methods are gone.
2006-07-25 chip
* add experimental op find_type_i_p
* fix longstanding bug that sometimes didn't encode pasm keys as
Key PMCs (specifically "[S0]" and "['stringliteral']").
2006-07-24 chip
further implementation of new pdd21:
* new opcodes {get,set}*global
(old {find,store}*global will be supported for a short while)
2006-07-21 leo
* Parrot_x_exit, Parrot_x_on_exit take now an Interp * argument
2006-07-20 audreyt
* --maintainer prerequesites are now bison 2.2+ and flex 2.5.3x
(or some such --leo)
(at the moment code is checking for 2.0 -- ambs)
2006-07-17 chip
partial implementation of new pdd21:
* old: "get_namespace KEY". new: "get_hll_namespace KEY"
* get_namespace and find_global opcodes no longer accept arrays
of strings. To use arrays, call namespace object methods.
2006-06-19 Release 0.4.5
- unicode subroutine names
- hierarchical class names finished including MMD support
- new dotnet CLI to PIR translator
- improved TGE code and compiler
- APL: vector handling
- new STM branch in the svn repository
- the usual bugfixes and enhancements
2006-06-03 leo
* I and N registers are never cleared to 0 / 0.0 on subroutine entry
2006-05-14 Release 0.4.4
- hierarchical class names
- APL compiler
- under development
- understands simple vector ops, strings
- demonstrates use of Unicode in Parrot
- pgc, a compiler for rules and operator precedence parsers
- Major redesign and improvements for PGE
- compilers understand named parameter options
- :ratchet option implemented to support non-backtracking quantifiers
- TGE (tree grammar engine) for tree transformations
- tgc, tree grammar compiler
- perl6 compiler
- support for many operators, lexical scalars, regex matches
- new pheme (Parrot scheme) compiler
2006-04-30 bernhard
* Make the Perl PMCs dynamic and move them to src/dynpmc
2006-04-02 Release 0.4.3
- namespaces partially implemented
- rulec, Perl 6 rule compiler
- PGE improvements including return values for closure
- parts of a Perl 6 parser based on PGE
- complex trigonometric methods
- type of Sub PMC is now overridable by HLL
- NetBSD support
- many bug fixes and improvements
2006-03-06 leo
* Shifted argument type bits left by 2 according to r11754
change of docs/pdds/pdd03_calling_conventions.pod
* if you are creating PASM then code needs adjustment
2006-02-22 Release 0.4.2
- improved PPC and x86 JIT support including JIT compilation
of very simple PASM/PIR subroutines
- preliminary libreadline support
- better trace and debug features
- pkgconfig support
- META.yml to support proper indexing on CPAN
- new opcode: hcf (in "my_ops" in dynamic op library)
- new File pmc for file specific ops (is_dir, is_file, copy, rename...)
- named arguments and parameters (both :named("") and => syntaxes)
- ongoing config improvements
- tons of bug fixes and other small improvements - too much to list all
2006-01-16 bernhard
* rename src/dynclasses to src/dynpmc
* rename src/classes to src/pmc
2006-01-15 leo
* find_global and friends returns a .Null PMC instead of .Undef on
lookup failure, iff lookup exceptions are off
2006-01-08 Release 0.4.1
- Installation: 'make install' is using standard locations now
(/usr/local is the default --prefix)
- Produce static and shared libraries on some systems
- Configure system rearragement
- OS pmc started (mkdir,cd,cwd,rm,umask,stat)
- Shootout examples
- Test files are now testable with 'prove'
- Smoke (and smokej) outputs progress
- PIR supports: I = A < B (>,<=,>=,==,!=)
- Add support for octal number constants
- partcl updates:
- almost finish [string]; start [file]
- add build tool for generating inline'd tcl builtins from templates.
- Jako updates: NCI, subroutines, global variables and constants all work.
2005-12-28 particle
* renamed all .imc files to .pir
* modified all doc references to .pir as well
2005-12-13 particle
* moved jit/ directory to src/jit/
2005-12-12 particle
* moved io/ directory to src/io/
* moved classes/ directory to src/classes/
* moved dynclasses/ directory to src/dynclasses/
2005-12-08 particle
* moved types/ directory to src/types/
* moved pf/ directory to src/packfile/
* moved ops/ directory to src/ops/
2005-12-08 particle
* moved charset/ directory to src/charset/
* moved encodings/ directory to src/encodings/
2005-12-07 particle
* moved imcc/ directory to compilers/imcc/
2005-12-06 particle
* moved util/ directory to tools/util/
* removed imcc/examples/ directory
* moved ast/ directory to compilers/ast/
2005-12-05 particle
* moved imcc/docs/ directory to docs/imcc/
* moved build_tools/ directory to tools/build/
* modified MANIFEST, MANIFEST.generated, and MANIFEST.SKIP
2005-12-04 Release 0.4.0
- New lexical handling and closure support including better
introspection for caller and outer
- PGE (Parrot Grammar Engine) provides now compilers for P6Rule,
P6Grammar, P5Regexp, and Glob
- ca. 1000 new tests including 800 for Perl5 regexp
- Improved unicode charset and encoding support
- Calling conventions for exception handlers
- Punie (Perl 1) uses TGE (Tree Grammar Engine) to convert from
PGE match objects to AST via two steps of tree transformation grammars
- New languages: amber and lua
- The usual code fixes, cleanup, and improvements, including an overhaul
of the config and test framework
2005-11-06 Release 0.3.1
- Variable sized register frames are finished. Each subroutine gets
the amount of registers that it actually needs. No more spilling.
- Vastly improved PGE (Parrot Grammar Engine) including shift-reduce,
precedence-based expression parser and support for matching of
bracketed text delimited by e.g. ()[]{}'"
- uniccode character classification (is_upper ...)
- support for heredoc syntax in assembler
- improved examples, basic JSON support
- debian packaging support
- the usual improvements, bug fixes, and cleanup
- test count exceeds 3000
2005-10-01 Release 0.3.0
- New calling conventions implemented: see PDD03 for details
- Merge multiple Parrot bytecode (PBC) files into a singe PBC file
- 'make smoke' target going beta
- bc now supports if statements, comparison ops, prefix inc/dec
- ParTcl adds [lassign], [switch] (partially); [expr] converted to a compiler
- Many exciting doc updates, tests, and bugfixes, too numerous to mention
2005-08-05 Release 0.2.3
- Dynamic classes now compile on Windows (including ParTcl)
- New Super PMC allows easy access to superclass methods
- Implement C3 method resolution order (just like Perl 6 & Python)
- ParTcl has new PIR-based parser and passes more Tcl tests
- added character class support in Globs to PGE
- added language implementations of unlambda, Lazy-k
- many bugfixes, including GC and memory leaks
- the new calling scheme continued to evolve in branches/leo-ctx5
2005-06-04 leo
* allow short names for object attributes
* string encoding and charset can now be set independently
* experimental mmap IO layer for slurping files
* enable compile opcode support for compilers written in PASM/PIR
* improved HLL support with .HLL and n_operators pragmas
* simplified hash code
* more strength reduce optimizations
* distinct debug and trace flag settings
* glob support in PGE
* new character classification opcodes and interfaces
* numerous bug fixes and enhancements
2005-05-08 leo
* parrot repository is now under subversion
* MMD (Multi Method Dispatch) enhanced
* new unary and infix opcodes that return new result PMCs
* dynamic scalar PMCs inherit now almost all from Parrot core PMCs
* more unification of PMCs and ParrotObjects
* tailcalls for functions and methods
* PGE (Parrot Grammar Engine) reworked
* Pugs creates Parrot code and Pugs is a registered compiler now
* new languages/lisp
* the usual bug fixes and improvements
2005-07-03 Release 0.2.2
- new call scheme: docs/pdds/pdd03_calling_conventions.pod
- partial implementation of the new calling conventions
PASM only, don't mix PIR foo() call syntax with the new scheme
- grammar and rule support in PGE - the Parrot Grammar Engine
- TCL passes >10% of the tcl test suite
- the usual bugfixes and improvements
2005-06-04 Release 0.2.1
- better HLL support (short names for object attributes, and
.HLL and n_operators pragmas)
- string encoding and charset can now be set independently
- experimental mmap IO layer for slurping files
- distinct debug and trace flag settings
- glob support in PGE
- new character classification opcodes and interfaces
2005-05-08 Release 0.2.0
- parrot repository is now under subversion
- MMD (Multi Method Dispatch) enhanced
- new unary and infix opcodes that return new result PMCs
- dynamic scalar PMCs inherit now almost all from Parrot core PMCs
- more unification of PMCs and ParrotObjects
- tailcalls for functions and methods
- PGE (Parrot Grammar Engine) reworked
- Pugs creates Parrot code and Pugs is a registered compiler now
- new languages/lisp
- the usual bug fixes and improvements
2005-03-06 Release 0.1.2
- New string handling code. Strings now have charset and encoding
- Parts of a generation garbage collector
- Better Python code, separated in dynclasses
- Parrot Grammar Engine
- Improved test coverage and documentation
2005-03-06 leo
* big rewrite of string code, not yet finished but ...
* partial implementation of a generational garbage collector
* indirect register frame addressing
* .return(args) PIR syntax
* moved most of the Python code to dynclasses
* a lot more Python functionality
* precalculate opcodes with all constants
* PGE - Parrot Grammar Engine
* scalar classes refactoring
* much more tests and big test system cleanup
* improved documentation
* and as always a lot more
2004-10-09 Release 0.1.1
Parrot 0.1.1 is an intermediate release with tons of updates and fixes.
- Python support: Parrot runs 4/7 of the pie-thon test suite
- Better OS support: more platforms, compiler, OS functions
- Improved PIR syntax for method calls and <op>= assignment
- Dynamic loading reworked including a "make install" target
- MMD - multi method dispatch for binary vtable methods
- Library improvement and cleanup
- BigInt, Complex, *Array, Slice, Enumerate, None PMC classes
- IA64 and hppa JIT support
- Tons of fixes, improvements, new tests, and documentation updates.
A lot is unfinished and keeps changing. Nethertheless Parrot is stable
and usable at the surface, while internals are moving.
2004-10-09 leo
* Need Perl 5.6 now for building
* Basic AST support, PAST file parser, bits of code generation
* BigInt PMC using GMP
* Complex PMC
* Dynamic loading improved including bundles of PMC classes
* Experimental support for "make install"
* IA64 and hppa JIT support
* ICU unicode support
* IO layer handling code
* IO readline and buffered IO fixes
* Incremental GC
* Internal pythonic functions: filter, map, reduce, max, min ...
* Languages updates for m4, tcl, perl6, regex. New parakeet language.
* Library updates, Stream and SDL library
* MMD - multi method dispatch for binary vtable methods
* Many new array PMCs
* Method call syntax in PIR obj."meth"(...)
* More OS stuff: stat, exec, system, gmtime, piped read and write
* New Python PMCs like Enumerate, None
* Non-branching compare opcodes
* PIR support for += and friends
* Python language subdir
* Python types mapped to existing PMCs
* Slices and range support
* Tons of bug fixes, documentation updates, new tests
* Win32 COFF exec support
* ... and a lot more
2004-02-29 Release 0.1.0
- "Ladies and gentlemen, I give you... objects!"
- Huge documentation overhaul
- More supported platforms, s. PLATFORMS
- Basic thread support for pthread based architectures
- Basic event handling for timers and signals including:
- PASM callbacks for NCI (native C) functions.
- Improved platform configuration
- COW stacks now working, stacks code redone
- Structure handling vastly improved
- Random PMC and rand primitives
- Better subroutine call syntax in PIR
- Make PIR subroutines compliant with pdd03
- Improved profiling (DOD, GC timings)
- Hash code improvements, incl. random key order support
- Experimental freeze/thaw code for some PMC types
- IO improvements for buffered layer and Win32
- String iterators
- String bitwise vtables
- Many new opcodes
- Support for JIT, where malloced memory isn't executable
- Priority DOD scheme for objects that need timely destruction
- Improved byte code loading (e.g. onLoad functions)
- Language updates: forth, Perl 6/P6C, m4
- Libraries: Getopt_Long, SDL, Dumper, Sort
- new JAPH examples
- Unified imcc and parrot test handling
- Many new tests (make test reports 1386 tests)
- Numerous bug fixes
2004-02-29 leo
* "Ladies and gentlemen, I give you... objects!"
* Huge documentation overhaul
* More supported platforms, s. PLATFORMS
* Basic thread support for pthread based architectures
* Basic event handling for timers and signals including:
* PASM callbacks for NCI (native C) functions.
* Improved platform configuration
* COW stacks now working, stacks code redone
* Structure handling vastly improved
* Random PMC and rand primitives
* Better subroutine call syntax in PIR
* Make PIR subroutines compliant with pdd03
* Improved profiling (DOD, GC timings)
* Hash code improvements, incl. random key order support
* Experimental freeze/thaw code for some PMC types
* IO improvements for buffered layer and Win32
* String iterators
* String bitwise vtables
* Many new opcodes
* Support for JIT, where malloced memory isn't executable
* Priority DOD scheme for objects that need timely destruction
* Improved bytecode loading (e.g. onLoad functions)
* Language updates: forth, Perl6/P6C, m4
* Libraries: Getopt_Long, SDL, Dumper, Sort
* new JAPH examples
* Unified imcc and parrot test handling
* Many new tests (make test reports 1386 tests)
* Numerous bug fixes
2003-10-31 Release 0.0.13
- The Big Move: Parrot source and build files rearranged into sub dirs
- Build imcc as parrot
- Objects more finished
- Delegate vtable methods to byte code
- Binary multi-method dispatching
- Isa and does methods for PMCs
- Call byte code from C
- Start of extension interface
- Experimental struct handling
- Catch access to NULL PMCs
- Experimental network socket interface code and opcodes
- IO fixes and improvements
- Dynamic opcode libraries
- Fix-assigned opcode numbers
- Argument flattening for function calls
- More native call interface (NCI) signatures
- Ncurses, postgres, and pcre interface libraries
- Forth language is vastly improved
- BSD and Win32 build improvements
- Many new tests and fixes
2003-10-31 leo
* Yep thirteen - haunted by the ghost of 0.0.12
* Build imcc as parrot
* Objects more finished
* Delegate vtable methods to byte code
* Binary multi-method dispatching
* Isa and does methods for PMCs
* Call byte code from C
* Start of extension interface
* Experimental struct handling
* Catch access to NULL PMCs
* Experimental network socket interface code and opcodes
* IO fixes and improvements
* Dynamic opcode libraries
* Fix-assigned opcode numbers
* Argument flattening for function calls
* More native call interface (NCI) signatures
* Ncurses, postgres, and pcre interface libraries
* Forth language is vastly improved
* BSD and Win32 build improvements
* Many new tests and fixes
2003-10-22 melvin
* imcc moved from parrot/languages/ to parrot/
2003-09-20 Release 0.0.11
- Executable output
- Dynamic PMC registration
- Trial exception system
- Beginnings of object system
- Iterators
- Ordered hashes
- I/O system improvements
- References
- Documentation for basic PMC types
- IMCC support of Parrot Calling Conventions
- Runtime loading of chartypes (and other string improvements)
- Conditional breakpoints
- Dramatically accelerated sweeps for finalizable objects
- Small PMCs (PMCs split into core and extensions)
- Loadable bytecode packfiles
- Constant PMCs
- Sub variants that deal with the stack correctly
- Switched runops core
- Line numbers in warnings
- Environment access
- Many documentation cleanups
- Conversion to CPS style!
- BASIC debugger and many other wacky features
- Filename, line number parsing support in IMCC
2003-09-20 sfink
* updated the native_pbc test files (from Leo)
2003-09-20 sfink
* Executable output
* Dynamic PMC registration
* Trial exception system
* Beginnings of object system
* Iterators
* Ordered hashes
* I/O system improvements
* References
* Documentation for basic PMC types
* IMCC support of Parrot Calling Conventions
* Runtime loading of chartypes (and other string improvements)
* Conditional breakpoints
* Dramatically accelerated sweeps for finalizable objects
* Small PMCs (PMCs split into core and extensions)
* Loadable bytecode packfiles
* Constant PMCs
* Sub variants that deal with the stack correctly
* Switched runops core
* Line numbers in warnings
* Environment access
* Many documentation cleanups
* Conversion to CPS style!
* BASIC debugger and many other wacky features
* Filename, line number parsing support in IMCC
2003-07-21 17:31 chromatic
* applied copyright patch from Josh Wilmes
2003-06-14 13:50 dan
* Moved the registers out of the context structure, since they
really aren't context
* Changed the register stack frames to hold only 16 registers
rather than 32, added half-set push and pop ops, and reworked
the full set push/pops to do two half-set push/pops. Should
speed up saving register data on calls, since we usually only
care about the top half of the registers anyway.
* Started committing some of the new class/object framework
* Remembered to finally start updating the Changelog
2003-03-18 03:50 ask
* Various files
Update Yet Another copyright statements to reflect the (no longer
so) shiny new year.
2003-03-16 Release 0.0.10
- IMCC integration
- eval
- some more benchmarking
- cgp core
- optimized math ops
- intersegment branches
- more complete use of PObjs
- beefed up packfiles
- sub/continuation/coroutine fixes
- better NCI (native calling interface)
- many imcc improvements
- jako improvements
2003-03-11 22:06 chip
* print help on non-option command line args
2002-12-19 Release 0.0.9
- Native function calling interface (Dan)
- Stack/list aggregate rewrite (Leo)
- Scratchpads (Jonathan Sillito)
- Preliminary DotGNU support -- type conversion ops (Gopal V + Leo)
- Buffer/PMC unification (Leo)
- stabs debugging support for JIT (Leo)
- Jako overhaul (Gregor)
- Optional Lea allocator (Leo)
- Parrot sprintf (Brent)
- Miniparrot (Josh)
- PMC Properties (Dan)
- Various JIT improvements (D. Grunblatt + Leo)
- Extensible packfiles (Juergen)
- Restructured PMC hierarchy (Leo)
- Real Scheme (Juergen)
2002-12-18 20:38 sfink: changes since 0.0.8
- Allow suppression of cgoto core to save memory during compile
* Native function calling interface
* Major rewrite of stack and list aggregates
- Scalar PMC added
* Scratchpads implemented
- Win32 libraries
- Internal memory subsystem documentation
* Preliminary DotGNU support
- Packfile fingerprinting
* Buffer/PMC unification (into PObjs)
* stabs debugging information support
* Major Jako overhaul, including:
- imcc integration
- native function calling
- Perl6 string interpolation
- languages/regex now targets IMCC
* Optional Lea memory allocator
* Full sprintf implementation
* Many, many new tests
* Miniparrot
- exchange ops
- runtime-controllable gc debugging
* PMC properties
- Crash info
* JIT: various improvements
- register usage tracking
- block register allocation
- optimizations
- more jitted ops
- restartable
- architecture abstraction layer
- debugging via GDB
* Beginning support for extensible packfiles
* Much better key support, generally
* splice()
* Restructured PMC hierarchy with better functionality inheritance
* IMCC: many, many improvements. See imcc/ChangeLog
* Perl6: index map grep join reverse defined
* Scheme with functions!
2002-09-01 Release 0.0.8
- Several new grammars and a BNF -> perl5 and perl6 converter (Jeff)
- Working Perl 6 REs (Sean)
- Keyed Access (Tom Hughes et al)
- New PMCs (Alberto et al)
- Better Documentation
- New COW semantics
- GC acceleration (Mike Lambert)
- Lexical scope (Jonathan Sillito)
- IMCC patches
- JIT for the ARM
2002-07-18 Release 0.0.7
- Perl 6 Grammar and Compiler (Sean)
- Subroutines, coroutines, and continuations (Melvin)
- GC improvements (Peter Gibbs, Mike Lambert)
- Global variables (Melvin)
- Intermediate bytecode compiler (Melvin, Angel)
- And much, much more.
2002-06-04 Release 0.0.6
- New assembler that support keyed types (Jeff)
- New macro layer, allowing constants (Jeff)
- New (Brent)
- Changes to bytecode format, endian issues resolved (Melvin)
- GC improvements and bug fixes (Peter Gibbs, Mike Lambert)
- JIT compiler rewrite (Jason and Daniel)
- Parrot assembler in Parrot (Daniel)
- Parrot debugger (Daniel)
- BASIC polished, Eliza.bas is new (Clint)
- Cola compiler committed and working, with limited OOP (Melvin)
- Keyed aggregates (Steve Fink)
- Global ops (Melvin)
- Compile-time speedup (Melvin)
- Much documentation
- New PDDs (Dan)
- Contributed tetris and lzw files
- And many more, from the cast of thousands
2002-04-16 Release 0.0.5
- Full GC
- Perl Scalar support in PMCs
- Array and Hash types almost ready for prime-time
- Internal support for keyed types
- EMACS editing mode
- New PDDs
- New Language - BASIC
- Regular expression compiler
- More tests
- Many, many bug fixes, enhancements, and speedups
2002-03-19 Release 0.0.4
- Arena-based memory allocation system
- Copying GC
- New IO subsystem
- "Predereferencing" mode - ./parrot -P - 22% speedup
- JIT compiler - ./parrot -j
- Parrot now builds warnings-clean on many platforms
- Many more PMC methods implemented
- Regular expression operations
- Added a FAQ
- Basic support for embedding Parrot in other programs
- Warnings support
- Added PDDs to distribution
- Bignum library
- PMC inheritance
- Added an assembly optimizer
- Improved string encoding/type support
- Many more tests
- Source reformatting
- Major refactoring in packfile library
- More Miniperl functionality
- New PMC "clone" operator
- Beginnings of key-based access to PMCs - arrays and hashes
- MOPS comparisons in examples/mops/
2002-03-19 22:54 nicholas
* docs/running.pod: Patch from Simon Glover <>:
We can now get usage information for test_parrot without having to
grep the source.
2002-03-19 22:53 simon
Parrot is called parrot.
2002-03-19 22:53 nicholas
* docs/tests.pod: Patch from Simon Glover <>:
1. There are tests in t/pmc as well as t/op now.
2. Adds a comment about Parrot::Test
2002-03-19 18:09 dan
*, examples/assembly/life.pasm: Toss a prompt that
messes up automated builds
Courtesy of "David M. Lloyd" <>
2002-03-19 00:33 mrjoltcola
* core.ops: Doc cleanup from Simon Glover.
2002-03-18 23:52 mrjoltcola
* io/io_unix.c: Typo fix for invalid lvalue caught by David Loyd.
2002-03-18 22:09 dan
* include/parrot/resources.h: Checked in old version
2002-03-18 20:17 dan
* include/parrot/resources.h: Forgot a prototype
2002-03-18 20:15 dan
* resources.c: D'oh! Thinko, fixed.
Courtesy of "Peter Gibbs" <>
2002-03-18 17:33 josh
* Lowering the bar a bit.
2002-03-18 17:33 sfink
* languages/regex/: MAINTAINER, Makefile, README,,, lib/, lib/Regex/, lib/Regex/,
lib/Regex/, lib/Regex/, lib/Regex/Grammar.y,
lib/Regex/, lib/Regex/, lib/Regex/,
lib/Regex/, lib/Regex/,
lib/Regex/, lib/Regex/CodeGen/,
lib/Regex/CodeGen/, lib/Regex/Rewrite/,
lib/Regex/Rewrite/, lib/Regex/Rewrite/,
t/example.t: Whoops, wrong time to check this in.
2002-03-18 16:42 dan
* memory.c, resources.c: Partial fix for GC's memory trouncing. At
least we consider the PMC and Buffer free pools worth collecting,
and initialize the Buffer pool stuff. Still not 100% correct,
2002-03-18 15:35 simon
* packfile.c:
Fix format arg bug.
2002-03-18 07:45 brentdax
* Warn if you're using 64-bit ints on a 32-bit
2002-03-18 00:09 sfink
* languages/regex/: MAINTAINER, Makefile, README,,, lib/, lib/Regex/, lib/Regex/,
lib/Regex/, lib/Regex/, lib/Regex/Grammar.y,
lib/Regex/, lib/Regex/, lib/Regex/,
lib/Regex/, lib/Regex/,
lib/Regex/, lib/Regex/CodeGen/,
lib/Regex/CodeGen/, lib/Regex/Rewrite/,
lib/Regex/Rewrite/, lib/Regex/Rewrite/,
t/example.t: Buggy 1st version of regex compiler implementation.
Warning: the test code depends on features of the assembler that do
not yet exist.
2002-03-17 21:35 ajgough
* types/: bignum.c, Added a couple of quick routes
through addition and subtraction. Also added the ability to run
all the tests, including the ones which deal with overflow and
underflow. These fail, but that's expected. Soon they'll pass.
Then I'll show them. Yesssssss. Tessssssssts my precioussssss,
passsssssssings tesssstsssss.
2002-03-17 20:06 ajgough
* types/: bignum.c, bignum.h, Modified
check_(under|over)flow to test bignumbers, rather than values.
context now carries E_limit, from which max and min exp are found.
Added a default-context-creating function (although this isn't the
same as either of the default contexts defined in the eda).
2002-03-17 13:31 ajgough
* types/: bignum.c, bignum.h: Made BN_round and BN_iround so that
exported version matches prototypes of other public functions.
2002-03-17 06:44 josh
* chartype.c, encoding.c, memory.c, misc.c, packdump.c, packfile.c,
packout.c, resources.c, string.c, include/parrot/encoding.h: Some
last-minute re-indenting.
2002-03-17 05:07 mrjoltcola
* io/io_unix.c: Clear up unsigned compare caught by Solaris GCC.
2002-03-16 23:17 nicholas
* classes/default.pmc: Patch from Simon Glover <> to
remove warnings:
default.pmc: In function `Parrot_default_get_integer_keyed':
default.pmc:50: warning: control reaches end of non-void function
default.pmc: In function `Parrot_default_get_number_keyed':
default.pmc:58: warning: control reaches end of non-void function
default.pmc: In function `Parrot_default_get_string_keyed':
default.pmc:67: warning: control reaches end of non-void function
default.pmc: In function `Parrot_default_get_pmc_keyed':
default.pmc:87: warning: control reaches end of non-void function
2002-03-16 18:50 ajgough
* types/: bignum.c, bignum.h: Lots of prototypes changed in
readiness for nicely telling your caller about any oddness you've
caused in the persuit of flow.
2002-03-16 17:38 dan
* interpreter.c, resources.c, docs/pdds/pdd09_gc.pod,
include/parrot/interpreter.h, include/parrot/resources.h: Now we
can control the GC and DOD, to stop it when we don't really want
2002-03-16 16:58 dan
* resources.c, vtable.tbl, classes/default.pmc,
include/parrot/resources.h: Added the last code to let PMCs control
their marking at DOD time
2002-03-16 16:57 ajgough
* types/bignum.c: Ok, I worked out how to not have lots of tabs. I
feel a little more virtuous now. Really I do. You might not
believe me, but you should. perl -pne 's/\t/ /g', if you're
2002-03-16 16:57 josh
* packfile.c, packout.c: M-x untabify is my new friend.
2002-03-16 16:50 josh
* trace.c, resources.c: Minor whitespace tweak for the benefit of
2002-03-16 16:50 ajgough
* types/: bignum.c, bignum.h: More documentation, separate
functions into public and private sorts, some initial stuff to cope
with over and underflow correctly.
2002-03-16 16:49 josh
* resources.c: Re-indented (sorry bout the big diff)
2002-03-16 16:47 bdwheele
* examples/assembly/fact.pasm: This fixes fact.pasm so it will
assemble again, both with Simon's new assembler and with the old
2002-03-16 16:33 mrjoltcola
* io/TODO: Get the TODO up-to-date for 0.0.4.
2002-03-16 16:11 josh
* Patch from Nicholas Clark <>: stops
silly people (such as me) running Configure with
/usr/local/bin/perl (which is 5.004_05) and not realising their
mistake until the pmc subdirectory, where the first qr// is
Syntax error messages don't tell you what you did wrong. This does:
/usr/local/bin/perl Perl 5.00503 required--this is
only version 5.00405, stopped at line 10.
2002-03-16 14:38 ajgough
* Small fix to to keep Irix make happy
with commenting.
2002-03-16 11:45 simon
* MANIFEST, examples/assembly/xml_parser.pasm:
Added Clint Pierce's XML parser.
2002-03-15 22:24 simon
* packout.c:
Don't need that function.
2002-03-15 21:56 simon
*, include/parrot/packfile.h:
Rebuild packout.o, since it'll be used for the Packfile XS module
2002-03-15 19:45 dan
* include/parrot/: memory.h, pmc.h: Another add-in for GC
2002-03-14 19:48 dan
* core.ops: No string to int for some reason
2002-03-14 18:45 dan
* string.c, t/op/string.t: Fix 0-length substr problem
2002-03-14 14:46 dan
* core.ops, interpreter.c, resources.c, classes/array.pmc,
classes/perlarray.pmc, examples/assembly/life.pasm,
include/parrot/interpreter.h, include/parrot/resources.h: Added in
a counter for copied memory, with a display in life.pasm
2002-03-14 03:16 mrjoltcola
* MANIFEST: Update MANIFEST courtesy of Simon Glover.
2002-03-13 23:43 simon
* packfile.c:
2002-03-13 23:43 simon
* packfile.c:
Hangs head in shame.
2002-03-13 21:31 simon
FAQ moved.
2002-03-13 18:06 simon
* string.c:
Fix string_compare screw-up.
2002-03-13 18:02 brentdax
* docs/: parrot.pod, ParrotFAQ.htm, faq.pod: Move the FAQ into POD
and add a new question/answer pair.
2002-03-12 22:53 mrjoltcola
* io.ops: Quick and dirty read ops for PIO. No warranty provided.
2002-03-12 22:48 mrjoltcola
* examples/assembly/io2.pasm: Quick and dirty read ops for PIO. No
warranty provided.
2002-03-12 22:29 ajgough
* docs/pdds/pdd14_bignum.pod: Ooops, it is #14, really.
2002-03-12 22:24 ajgough
* docs/pdds/pdd14_bignum.pod: Creation of bignumber pdd, update to
version 1.1, Don't know if this is the correct number, but I don't
want this stuck on my harddrive where it will get lost, so 14 it is
2002-03-12 11:35 simon
* MANIFEST, packdump.c, packout.c:
Just so the functionality doesn't disappear.
2002-03-12 11:33 simon
*, chartype.c, encoding.c, packfile.c,
chartypes/unicode.c, chartypes/usascii.c, encodings/singlebyte.c,
encodings/utf16.c, encodings/utf32.c, encodings/utf8.c,
include/parrot/chartype.h, include/parrot/encoding.h,
Packfile axing.
2002-03-11 23:06 nicholas
* core.ops: Patch from Simon Glover <>:
Core.ops documentation nits
2002-03-11 23:05 nicholas
* t/pmc/pmc.t: Patch from Simon Glover <>:
Most of the PerlUndef tests in pmc.t appear to have been added
Enclosed patch removes the duplicates.
2002-03-10 23:40 nicholas
* t/pmc/perlstring.t: Patch from Simon Glover <>:
More tests for the PerlString test-suite.
2002-03-10 23:40 nicholas
* t/op/time.t: Patch from Simon Glover <>:
test for sleep with negative argument
2002-03-10 21:58 nicholas
* t/op/rx.t: Patch from Simon Glover <>:
Enclosed patch fixes up a few more holes in our test coverage.
2002-03-10 21:18 mrjoltcola
* classes/array.pmc, classes/default.pmc, classes/intqueue.pmc,
classes/parrotpointer.pmc, classes/perlarray.pmc,
classes/perlhash.pmc, classes/perlint.pmc, classes/perlnum.pmc,
classes/perlstring.pmc, classes/perlundef.pmc,
include/parrot/pmc.h, core.ops, pmc.c, vtable.tbl: Add size
argument to the init() vtable method so PMCs have the option to
know how to size themselves at creation. size could be N elements
or a byte count, depending on the PMC or it may simply be ignored.
Overloaded 'new' opcode for optional arg.
2002-03-10 21:15 mrjoltcola
* lib/Parrot/ Minor patch to the assembler for the
new_p_ic_ic opcode to work same as new_p_ic (looks up a named
Also added small hack for .sub directive (which simply translates
to a label, however we might eventually want to collect these to
validate bsr calls.
2002-03-10 15:09 ajgough
* types/: bignum.c, bignum.h,,
Added round_floor and round_ceiling. 3403 tests pass, none fail.
2002-03-10 03:56 ajgough
* types/: bignum.c, Added extended stuff to
divide, divide integer and remainder. All filled in functions now
have special values capability.
Much remains to be done though, and the pdd needs to catch up.
2002-03-10 01:36 ajgough
* types/bignum.c: Added extended stuff to _add, _subtract.
2002-03-10 00:14 nicholas
* t/op/: integer.t, number.t: Patch from Simon Glover
The enclosed patch fixes a few of the holes in our test coverage
uncovered by Josh Wilmes
2002-03-09 23:03 ajgough
* types/: bignum.c, bignum.h: Modified compare to work with
extended values. Made a couple of changes here and there to allow
BN_comp to take a context, so that an is_zero check doesn't clobber
negative zeros.
2002-03-09 22:19 ajgough
* types/: bignum.c, bignum.h,,
Unary plus now copes with special values.
2002-03-09 04:25 ajgough
* types/: bignum.c,, Exception
traps and flags are now enabled and tested for all the standard
tests for all the functions which are currently implemented. Test
harness faffed with to allow these to be tested.
2002-03-09 02:29 josh
* encodings/singlebyte.c, encodings/utf16.c, encodings/utf32.c,
encodings/utf8.c, chartypes/unicode.c, chartypes/usascii.c:
2002-03-09 02:22 josh
* tab-blastin'
2002-03-09 02:21 josh
* Play nicer with M-x compile- don't
bother giving line numbers for things you don't want to look at.
2002-03-09 02:10 josh
* examples/mops/mops.c: re-indented
2002-03-09 02:07 josh
* classes/ Use the usual header so that we can detect the
2002-03-09 02:05 josh
* Avoid accidental /* inside a comment, which generates a
compiler warning
2002-03-09 01:59 josh
* io/: io.c, io_stdio.c, io_unix.c, io_win32.c: Another large
patch- re-indent io/*.c.
2002-03-09 01:52 ajgough
* types/: bignum.c, bignum.h, Added handling of
special values to the string conversion functions, some other
functions now need context (to let -0 pass through really_zero)
which have also been added.
2002-03-09 01:47 josh
* test_main.c: Re-indented.
2002-03-09 01:41 josh
* rx.c: killed a stray tab
2002-03-09 01:38 josh
* rx.c: Re-indented.
2002-03-09 01:36 josh
* misc.c: Oops, some tabs remained- cleaned up.
2002-03-09 01:31 josh
* misc.c: Re-indented (major patch, sorry)
2002-03-09 00:59 josh
* embed.c: Re-indented.
2002-03-08 23:08 simon
* MANIFEST, docs/pdds/pdd10_embedding.pod,
docs/pdds/pdd11_extending.pod, docs/pdds/pdd12_assembly.pod,
Placeholder PDDs.
2002-03-08 21:12 ajgough
* include/parrot/string.h: Added private flags to string.h, mostly
so that other GCed stuff can also have its very own private flags.
2002-03-08 19:53 simon
Great PDD Renaming
2002-03-08 19:41 robert
* docs/pdds/: pdd0.pod, pdd1.pod, pdd2.pod, pdd4.pod, pdd5.pod,
pdd6.pod, pdd7.pod: Renamed...
2002-03-08 18:51 simon
* MANIFEST, docs/pdds/pdd08_keys.pod:
Add keys PDD.
2002-03-08 18:20 ajgough
* types/: bignum.c, bignum.h,,
Introduced exception handlers and exception flags to context, will
allow support of extended standard. Unified exception checking
mechanism (sort of) and made minimal changes to bulk of code to use
this. Tests pass, I'm happy, and further changes will happen more
2002-03-08 04:38 josh
* interpreter.c, string.c, More indenting
2002-03-08 04:37 josh
* platforms/: generic.c, generic.h, win32.c, win32.h: Re-indented
2002-03-08 04:24 josh
* embed.c: A bit more re-indenting
2002-03-08 04:20 josh
* embed.c: Indenting fixes
2002-03-08 04:14 josh
* jit.c: Re-indented (
2002-03-08 03:36 josh
* Fix the line numbers which get reported while compiling
2002-03-08 03:22 josh
* packfile.c: -1552 cc: WARNING File = packfile.c, Line = 1537
The variable "type" is set but never used.
opcode_t type;
2002-03-08 03:04 josh
* resources.c, stacks.c, string.c, io/io.c, io/io_stdio.c,
io/io_unix.c: Clean up unused and set-but-not-referenced variables
noticed by the sgi compiler.
2002-03-08 03:02 josh
* misc.c: Fixes this warning (SGI) cc-1188 cc: WARNING File =
misc.c, Line = 417 The indicated type qualifier is meaningless on
cast type.
(const char) 'f');
2002-03-08 02:55 josh
* Clean up one of the object files it was missing
2002-03-08 01:15 josh
* include/parrot/interpreter.h: Fixes the following error (tcc):
"./include/parrot/interpreter.h", line 27: Error: [Syntax]: Extra
comma at end of list.
2002-03-06 22:15 simon
* stacks.c:
Tidy up stack chunk allocation.
2002-03-06 21:00 simon
* interpreter.c:
Create strings only once we've got string register heads set up.
2002-03-06 20:31 simon
* classes/perlarray.pmc:
malloc(0) considered harmful.
2002-03-06 20:24 simon
* include/parrot/resources.h:
I like it when Parrot compiles.
2002-03-06 17:02 dan
* classes/array.pmc: Changed over to data pointing to a Buffer.
2002-03-06 15:45 dan
* core.ops, embed.c, exceptions.c, interpreter.c, memory.c,
packfile.c,, pdump.c, resources.c,
include/parrot/interpreter.h, include/parrot/memory.h,
include/parrot/resources.h, io/io.c: Three quick things: 1) INTVALs
and opcode_t > longs will now be even more suspect than what they
were beforehand. 2) Feel free to bicker with names. I don't think
we've come to *any* sort of agreement with these, although we
really, really, need to. 3) I forget the third thing. 4) But I
thought of a fourth. 5) I've now remembered the third thing: IIRC,
ANSI C states that enums will fit within the smallest type (int or
greater) that can hold the values. Is that actually correct, and
does it state whether unsigned is preferred to signed for
non-negative enums? 6) Since I'm no longer constrained by "three"
or "quick", I'm going size_t happy for a lot of memory-related
storage. (That's good. No sense wasting the size or performance
of an UINTVAL for strange values of UINTVAL.) I'm also using it in
a couple other internal things (like the GC stat counters, seen
here). Size and performance, again, and unpromotable to a bigint,
so we know that we (theoretically) will wrap. However, size_t
isn't the best choice for the type. (Not that there's anything
wrong with size_t, just that it shouldn't be called size_t.) Any
thoughts? I was thinking of just doing unsigned int, because,
IIRC, int is usually the natural word size, and will be most
efficient. Thoughts? 7) I forgot what the fourth thing I thought
of was while writing down the others. Sorry.
Courtesy of "Bryan C. Warnock" <>
2002-03-06 15:26 dan
* memory.c, resources.c, string.c, classes/perlarray.pmc,