Parrot Changelog

What's new in Parrot 7.11.0

Dec 31, 2015
  • 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

New in Parrot 7.10.0 (Dec 16, 2015)

  • And the band struck up.
  • Hwel peered around a pillar and signalled to Wimsloe and Brattsley,
  • who hobbled out into the glare of the torches.
  • OLD MAN (an Elder): "What hath befell the land?"
  • OLD WOMAN (a Crone): " 'Tis a terror—"
  • The dwarf watched them for a few seconds from the wings, his lips moving soundlessly. Then he scuttled back to the guardroom where the rest of the cast were still in the last hasty stages of dressing.
  • He uttered the stage manager's traditional scream of rage.
  • "C'mon," he ordered. "Soldiers of the king, at the double! And the witches – where are the blasted witches?"
  • Three junior apprentices presented themselves.
  • "I've lost my wart!"
  • "The cauldron's all full of yuk!"
  • "There's something living in this wig!"
  • "Calm down, calm down," screamed Hwel. "It'll all be all right on the night!"
  • "This is the night, Hwel!"

New in Parrot 7.9.0 (Oct 31, 2015)

  • Core:
  • StringBuilder.clone and ResizablePMCArray write barrier optimizations.
  • More StringBuilder optimizations with substr, set_pmc, push_pmc, i_concatenate, and do less overallocation.

New in Parrot 7.8.0 (Sep 20, 2015)

  • Core:
  • Build
  • Documentation
  • Tests
  • Community

New in Parrot 7.7.0 (Aug 18, 2015)

  • Removed bitrotted author contributions

New in Parrot 7.6.0 (Jul 23, 2015)

  • Core:
  • structview: Added missing returns to switch/case.
  • Tests:
  • distro/manifest_generated.t:
  • Corrected reversed order of got/expected.
  • Added reference to GH#1206 .

New in Parrot 7.5.0 (Jun 18, 2015)

  • 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!

New in Parrot 7.4.0 (May 28, 2015)

  • Documentation:
  • Many minor corrections
  • Community:
  • Coverity scans to resume RSN.

New in Parrot 7.3.0 (Apr 21, 2015)

  • 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.

New in Parrot 7.2.0 (Mar 24, 2015)

  • Build:
  • Fix warning on Win32 (with cl.exe) when `link` is not explicitly set.

New in Parrot 7.1.0 (Feb 17, 2015)

  • Core:
  • Fix SIGBUS in GC trace_mem_block on alignment-strict CPUs (arm). 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.

New in Parrot 7.0.2 (Jan 29, 2015)

  • Wrong function ptr cast
  • Wrong SAL annotations (also 32 bit)

New in Parrot 7.0.1 (Jan 23, 2015)

  • GC regression --optimize caused by PARROT_CANNOT_RETURN_NULL, which
  • was visible on machines with low memory
  • threads deadlock in gc_gms_mark_and_sweep()
  • fix --m=64 with gcc on ppc64 and mips64 #1181,
  • m=64 produced wrong ld and linkflags since 6.10, GH #1110
  • fix icu probes with --m #1182

New in Parrot 7.0.0 (Jan 21, 2015)

  • Core:
  • Added a experimental INTERPINFO_MAX_GENERATIONS api, made MAX_GENERATIONS
  • 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.
  • Reenabled the following NCI signatures: t (cstring), 2 (Integer PMC -> short), 3 (-> int), 4 (-> long). SDL and Curses is now usable again.
  • 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.
  • 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
  • Fix PARROT_CANNOT_RETURN_NULL #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
  • Allow PARROT_DOES_NOT_RETURN without PARROT_CANNOT_RETURN_NULL #1163
  • 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

New in Parrot 6.11.0 (Dec 16, 2014)

  • Core:
  • Rewrote ResizablePMCArray with moving offset, esp on shift.
  • Even better than nqp/qrpa. 20% faster overall.
  • Fixed wrong maybe_mark_and_sweep call in --gc ms
  • Added GC maybe_gc_mark vtable function
  • Fixed Memory_Block prolog access in --gc inf
  • Added MEMORY_DEBUG tracing to --gc inf and ms2, added GC validation to ms2.
  • Fix bignum.i_substract and i_multiply
  • Fix cmod_p_p_n* math dynops for NaN and Inf
  • Fix floor, ceil and complex, integer math ops for NaN and Inf
  • Optimize printing of single numbers
  • More --debugging protections when accessing empty registers from :immediate
  • Change ResizablePMCArray.delete to throw out of bounds errors, but just warn on deprecated delete[0] with size 0 for backcompat.
  • Add check for illegal delete of capture blocks in PGE.match
  • Add new traceflag -t20 for ResizablePMCArray states.
  • Add experimental vms support by mvorl. Untested.
  • Provide Parrot_new_string and Parrot_compile_string in the extend api
  • Build:
  • Extend auto::infnan probe to other --floatval
  • Warn in Configure on experimental flags intval, floatval and gc
  • Die in Configure on unsupported intval sizes
  • Renamed auto::labs to auto::mathl, probe and use more long math functions: fabsl powl ceill floorl fmodl expl logl
  • Fixed pbc_to_exe and wrong Parrot_{g,s,uns}etenv declarations on windows
  • Documentation:
  • Rewrote docs/pmc/array.pod
  • Tests:
  • Fix t/steps/auto/arch-01.t darwin regression
  • Added bigger t/stress/gc.t test to catch most GC issues.
  • Add optional copyright year test on TEST_SLOW
  • Fix most --floatval='long double' tests, just embed API broken
  • Adjust tests for VALGRIND=valgrind
  • Added tests to t/pmc/resizablepmcarray.t to cover all offset cases.
  • Replace included IO::CaptureOutput with our own capture function.
  • Fixed most embed and extend tests.
  • Community

New in Parrot 6.9.0 (Oct 22, 2014)

  • 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.
  • 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.
  • Renamed ops2c to parrot-ops2c. Get the new name if exists in config key ops2c.
  • 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.
  • 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.
  • Add Couroutine reset and autoreset methods.
  • Add -t8 trace flag for Coroutine states
  • Disabled trace flags -t4 and -t8 with --optimize.
  • Harmonize parrot usage messages
  • Build:
  • Fix all -Wshadow instances
  • Added bootstrap-tables make target
  • Configure options consistency: --{en,dis}able- for shared, rpath, threads, --with{,out}- for: llvm pcre ... + threads.
  • Deprecated --parrot_is_shared in favor of --enable-shared.
  • Change default of the config key debugging from 1 to 0, i.e. you need to provide now --debugging[=flags] for debugging.
  • Enable --disable-shared (or --parrot_is_shared=0) to link against static libparrot
  • 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
  • Added tests for LexInfo.declare_lex_preg and .lex quoting roundtrips
  • Simplify smolder resend usage
  • Fix mingw issues with \r\n
  • Updated the missing native_pbc 64-bit big-endian files on mips64 qemu.

New in Parrot 6.8.0 (Oct 22, 2014)

  • 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.
  • 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

New in Parrot 6.7.0 (Oct 22, 2014)

  • 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]
  • 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.

New in Parrot 6.6.0 (Jul 23, 2014)

  • 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]

New in Parrot 6.5.0 (Jul 23, 2014)

  • 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

New in Parrot 6.4.0 (May 28, 2014)

  • Examples:
  • Enhance shootout/regexdna.pir to test GC write barrier crashes

New in Parrot 6.3.0 (Apr 16, 2014)

  • Tests:
  • Fixed tests for cygwin and cygwin64
  • Added 2 new examples/benchmarks/ files and benchmarks/run.sh
  • Fixed socket tests without IPv6 support at all [GH #1068]

New in Parrot 6.2.0 (Mar 28, 2014)

  • 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/c2str.pl
  • 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"

New in Parrot 6.1.0 (Mar 28, 2014)

  • 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 podextract.pl [GH #1028, #973, #520], which fixes problems with 'sudo make install' generated ops pods as root.

New in Parrot 6.0.0 (Mar 28, 2014)

  • 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]

New in Parrot 5.9.0 (Oct 17, 2013)

  • 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)
  • 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

New in Parrot 5.7.0 (Sep 11, 2013)

  • Build:
  • Fixed GH#976 - Cannot load PCRE library during install on gentoo x64.

New in Parrot 5.6.0 (Sep 11, 2013)

  • Build:
  • Makefile dependencies are now compatible with VMS make.
  • Documentation:
  • The main README is now more helpful.

New in Parrot 5.5.0 (Sep 11, 2013)

  • 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: make_upload_commands.pl

New in Parrot 5.4.0 (Sep 11, 2013)

  • 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 auto_release.pl.

New in Parrot 5.3.0 (May 22, 2013)

  • 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.

New in Parrot 5.2.0 (Apr 17, 2013)

  • 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.

New in Parrot 5.1.0 (Feb 20, 2013)

  • 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
  • Tests:
  • .readall now checks that prior reads are respected.
  • Community:
  • Weekly IRC meetings have resumed. #parrotsketch Tuesdays at 1930 UTC

New in Parrot 5.0.0 (Jan 24, 2013)

  • Core:
  • Remove duplicate library search path entries, move "." from the beginning to the end. [GH #368]
  • Install forgotten runtime include files:
  • cloneflags.pasm
  • packfile_annotation_keytype.pasm
  • packfile_segments.pasm
  • 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 FileHandle.open() error messages [GH #911]
  • Build:
  • Generate MANIFEST.generated, cleanup MANIFEST,
  • removed MANIFEST_configure.generated, add installation of forgotten files
  • perl Configure.pl now calls make clean if possible
  • Generate datadir/MANIFEST* for all installed files [GH #899]
  • Improved Configure.pl 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
  • 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 FileHandle.open() exceptions and error messages
  • Tests:
  • Added t/library/lib_search_path.t

New in Parrot 4.11.0 (Dec 19, 2012)

  • Core:
  • Parrot now supports fast and lightweight OS threads
  • New parrot cmdline option --numthreads
  • Export new dynpmc_class_ types
  • 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 PARROT_CORE_OPLIB_INIT from config.h
  • 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

New in Parrot 4.10.0 (Nov 22, 2012)

  • 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

New in Parrot 4.9.0 (Nov 22, 2012)

  • Core:
  • Keep encoding information in the imcc optimizer, which fixes the concat op but probably many more cases with non-ascii encoded constant strings.
  • Fixed ByteBuffer set_string_native, which became out of sync with two internal buffers.
  • Preload Configure steps when called with perl -d Configure.pl
  • Strip unneeded config keys from installed config hash. Saves 6360 bytes from every installed executable.
  • Parrot_get_cpu_type returns now "unknown" for all unknown cpu types.
  • On non-windows it returned before 4.9.0 a null string.
  • Fixed src/hash.c for platforms where size_t is unsigned (e.g. vms)
  • Build:
  • Improved warnings for clang.
  • Cleaned wrong UNUSED(arg) macros in all pmc's due to an improved pmc2c compiler, which SHIMs all UNUSED args.
  • 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 darwin/x86.
  • Libraries:
  • Fixed Mime::Base64: Split long lines at 76 chars.
  • Support multi-byte codepoints. Use binary encoding, encoded files are now endian specific
  • Added 2nd optional encoding arg to decode_base64().
  • Documentation:
  • Cleaned up removed parrot cmdline options -D/-O/-v from --help output and
  • running.pod
  • Tools:
  • Improved gdb pretty-printing for multi-byte strings

New in Parrot 4.8.0 (Sep 19, 2012)

  • Core:
  • Prevent interpreter from dying twice
  • Complete rewrite of the IO system, including new unified IO PMC semantics.
  • 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

New in Parrot 4.7.0 (Aug 23, 2012)

  • Core:
  • Added .all_tags() and .all_tagged_pmcs() methods to PackfileView PMC
  • Several build and coding standards fixes

New in Parrot 4.6.0 (Jul 18, 2012)

  • 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.
  • Build:
  • Improve on 'sudo make install' permission errors by using
  • File::Copy::cp.

New in Parrot 4.5.0 (Jul 18, 2012)

  • Core:
  • Added .write_bytes and .read_bytes methods to FileHandle and Socket
  • PMCs.
  • 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
  • IMCC:
  • 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
  • Parrot::Test::Pod.pm' 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
  • Parrot::Test::Pod.pm' 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 : https://github.com/parrot/m1
  • Parrot bindings to LAPACK are being worked on as part of Google
  • Summer of Code: https://github.com/leto/parrot-lapack

New in Parrot 4.4.0 (Jul 18, 2012)

  • 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/Distribution.pm'.
  • 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 'README.pod'
  • Tools:
  • pbc_merge has been fixed to deduplicate constant strings and merge annotations segments

New in Parrot 4.3.0 (Jul 18, 2012)

  • Core:
  • Winxed snapshot updated to 1.7.0
  • Add type introspection to lexical variables.
  • New 'tools/release/parrot_github_release.pl' script to automate updates to the 'parrot.github.com' 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.
  • Platforms:
  • Fixed alignment issues on ia64, sparc and mipsel.
  • Fixed a platform-specific issue with dlclose().

New in Parrot 4.2.0 (Mar 22, 2012)

  • 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 tools
  • 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 at http://niner.name/Hybrid_Threads_for_the_Parrot_VM.pdf
  • Documentation:
  • New release manager documentation for parrot.github.com :
  • http://git.io/parrot-github-guide
  • Community:
  • Parrot was accepted to Google Summer of Code 2012!
  • Ideas Page: http://git.io/parrot-gsoc-2012

New in Parrot 4.0.0 (Jan 19, 2012)

  • 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
  • at http://parrot.github.com
  • Tests:
  • Timer PMC tests were converted from PASM to PIR

New in Parrot 3.11.0 (Dec 22, 2011)

  • 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

New in Parrot 3.10.0 (Nov 17, 2011)

  • Core:
  • The mark VTABLE was added to the Select PMC
  • The Parrot::Embed Perl 5 module was removed from parrot.git and now lives
  • at https://github.com/parrot/parrot-embed
  • 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 diagnostics
  • Community:
  • Parrot Foundation was accepted to Google Code-In 2011. We could always use more volunteers.
  • Task ideas are on the wiki:
  • https://github.com/parrot/parrot/wiki/Google-Code-In-Task-Ideas
  • Tests:
  • Added tests for recently-fixed bugs using return :flat and ResizableStringArrays.

New in Parrot 3.9.0 (Oct 20, 2011)

  • 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: https://github.com/parrot/PACT
  • Documentation:
  • We are in the process to migrating our Trac wiki at http://trac.parrot.org/ to Github at https://github.com/parrot/parrot/wiki
  • Packfile PMC documentation was updated
  • Tests:
  • Select PMC tests improved to pass on non-Linuxy platforms

New in Parrot 3.8.0 (Sep 28, 2011)

  • Core:
  • New tools/release/auto_release.pl 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

New in Parrot 3.7.0 (Sep 28, 2011)

  • 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

New in Parrot 3.6.0 (Sep 28, 2011)

  • 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
  • VTABLE_substr
  • 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: https://github.com/NotFound/winxed

New in Parrot 3.5.0 (Sep 28, 2011)

  • 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.

New in Parrot 3.4.0 (Sep 28, 2011)

  • 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.

New in Parrot 3.3.0 (Sep 28, 2011)

  • 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 Configure.pl, 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

New in Parrot 3.2.0 (Sep 28, 2011)

  • Core:
  • Full support for Unicode filenames on Linux and Win32
  • The configuration option --cxx is gone
  • New Generational GC implemented. To enable it run Configure.pl --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
  • values
  • Operators exits, class and .* (indirect method call) added
  • loadlib directive
  • 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
  • tarball
  • 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

New in Parrot 3.1.0 (Sep 28, 2011)

  • 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 construcs 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
  • NQP
  • A repository for a new NQP version which has a new object model is
  • created at http://github.com/perl6/nqp
  • Languages:
  • Cardinal (Ruby on Parrot) now compiles and passes it's test suite on master
  • and is looking for developers : https://github.com/parrot/cardinal
  • 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: https://github.com/leto/jaspers

New in Parrot 3.0.0 (Sep 28, 2011)

  • 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)
  • c2str.pl and pmc2c.pl improvements result in a noticeably 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 https://github.com/plobsing/ohm-eta-wink-kzd
  • Community:
  • tree-optimization by GSoC student Tyler L. Curtis joined the nest and now
  • lives at http://github.com/parrot/tree-optimization .
  • Plumage now lives at http://github.com/parrot/plumage and is installable.
  • Christmas went 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 intrepid 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.

New in Parrot 2.0.0 (Aug 17, 2011)

  • 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

New in Parrot 1.8.0 (Aug 17, 2011)

  • 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.
  • PCT
  • 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/bitwist.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 mk_language_shell.pl,
  • 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,
  • http://groups.google.com/group/parrot-users.
  • Many bugfixes, code cleanups, and coding standard fixes.

New in Parrot 1.4.0 (Aug 17, 2011)

  • 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:
  • 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

New in Parrot 1.2.0 (Aug 17, 2011)

  • Various cleanups in headers, directory layout, exported symbols, and GC API. Many improvements to the documentation, including core documents, the Parrot Book, and the Installation... design document.
  • Portability updates for MacPorts, NetBSD, MinGW, and HP-UX. Several build and runtime performance improvements