Rakudo Perl 6, or simply Rakudo, is a compiler for the Perl 6 programming
language. It runs on the Parrot virtual machine.
The Rakudo Star distribution (fondly called Rakudo *) is the Rakudo
compiler plus a selection of useful Perl 6 modules, the most recent
incarnation of the "Using Perl 6" book, and other software that can
be used with the Rakudo compiler to enhance its utility. Rakudo Star
is meant for early adopters who wish to explore what's possible with
Rakudo Perl 6 and provide feedback on what works, what doesn't, and
what else they would like to see included in the distribution.
This is "Not Quite Perl" -- a lightweight Perl 6-like environment for
virtual machines. The key feature of NQP is that it's designed to be a
very small environment (as compared with, say, perl6 or Rakudo) and
is focused on being a high-level way to create compilers and libraries
for virtual machines (such as the Parrot Virtual Machine [1] and the JVM).
Unlike a full-fledged implementation of Perl 6, NQP strives to have as
small a runtime footprint as it can, while still providing a Perl 6 object
model and regular expression engine for the virtual machine.
raduko * imports).
pkgsrc changes:
* PLIST variable VERSION => PARROT_VERSION
* add PLIST awk rule to replace parrot's version string with
${PARROT_VERSION}
* add a fix for build on MacOS X 10.8
Upstream changes since 4.8.0:
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�<82> 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: make_upload_commands.pl
- 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"
https://gist.github.com/sa1/5468408http://www.google-melange.com/gsoc/proposal/review/google/gsoc2013/saurabh_kgp/11002
= Pawe�<82> Murias - "A Javascript backend for Rakudo"
http://www.google-melange.com/gsoc/proposal/review/google/gsoc2013/pmurias/9002
= Denis Boyun - "Improve Web UI of App::Parrot::Create"
https://gist.github.com/denisboyun/5472762https://google-melange.appspot.com/gsoc/proposal/review/google/gsoc2013/chob_rock/9001
+ YAPC::NA::2013 hosted 4 days of Hackathon, focusing on the next
generation of Perl implementations.
= Huge Success!
+ MoarVM was unveiled:
https://github.com/MoarVM
+ P2 on Potion was debuted:
http://perl11.org/p2/
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 auto_release.pl.
- Community
+ Parrot is part of the Hackathon at YAPC::NA::2013, in Austin, TX, USA!
http://www.yapcna.org/yn2013/wiki?node=Hackathons
+ Parrot has been accepted to Google Summer of Code 2013!
+ Currently there are two high-quality proposals being worked on:
https://gist.github.com/sa1/5468408 - parrot-libgit2
https://gist.github.com/denisboyun/5472762 - 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.
ftp://ftp.parrot.org/pub/parrot/releases/all/
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:
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
[GH #890]
+ 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 [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 FileHandle.open() 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.
See http://wknight8111.blogspot.co.at/2010/08/gsoc-threads-chandons-results.html
and http://niner.name/Hybrid_Threads_for_the_Parrot_VM.pdf
Summary: http://perl6advent.wordpress.com/2012/12/11/day-11-parrot-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
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
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 Configure.pl [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
darwin/x86.
- 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
Options -i, -I and all long options were completely removed.
Option -T was added. For details see the man page.
Option -v is documented in manpage.
Fixes for gcc compilation warnings.
Fixes for compilation with non-empty MAKEOBJDIR.
Typo fixes in NEW, runcmd.awk and man pages.
and ensures that the manual pages can now be read on SunOS, however it
should not affect HP-UX support as this package now pulls in nroff as a
tool to correctly generate the catman page.
Bump PKGREVISION.
handler). Make precompiled headers work on NetBSD hosts (by choosing a
hopefully stable virtual address for precompiled header symbol tables).
Both reported upstream.
* B has been upgraded from 1.42 to 1.42_01, fixing bugs related to lexical subroutines.
* Digest::SHA has been upgraded from 5.84 to 5.84_01, fixing a crashing bug.
* Module::CoreList has been upgraded from 2.89 to 2.96.
* Starting in v5.18.0, a construct like /[#](?{})/x would have its # incorrectly interpreted as a comment. The code block would be skipped, unparsed. This has been corrected.
* A number of memory leaks related to the new, experimental regexp bracketed character class feature have been plugged.
* The OP allocation code now returns correctly aligned memory in all cases for struct pmop. Previously it could return memory only aligned to a 4-byte boundary, which is not correct for an ithreads build with 64 bit IVs on some 32 bit platforms. Notably, this caused the build to fail completely on sparc GNU/Linux.
* The debugger's man command been fixed. It was broken in the v5.18.0 release. The man command is aliased to the names doc and perldoc - all now work again.
* @_ is now correctly visible in the debugger, fixing a regression introduced in v5.18.0's debugger.
* Fixed a small number of regexp constructions that could either fail to match or crash perl when the string being matched against was allocated above the 2GB line on 32-bit systems.
* Perl v5.16 inadvertently introduced a bug whereby calls to XSUBs that were not visible at compile time were treated as lvalues and could be assigned to, even when the subroutine was not an lvalue sub. This has been fixed.
* Perl v5.18 inadvertently introduced a bug whereby dual-vars (i.e. variables with both string and numeric values, such as $! ) where the truthness of the variable was determined by the numeric value rather than the string value.
* Perl v5.18 inadvertently introduced a bug whereby interpolating mixed up- and down-graded UTF-8 strings in a regex could result in malformed UTF-8 in the pattern: specifically if a downgraded character in the range \x80..\xff followed a UTF-8 string
* Lexical constants (my sub a() { 42 }) no longer crash when inlined.
* Parameter prototypes attached to lexical subroutines are now respected when compiling sub calls without parentheses. Previously, the prototypes were honoured only for calls with parentheses.
* Syntax errors in lexical subroutines in combination with calls to the same subroutines no longer cause crashes at compile time.
* The dtrace sub-entry probe now works with lexical subs, instead of crashing
* Undefining an inlinable lexical subroutine (my sub foo() { 42 } undef &foo) would result in a crash if warnings were turned on.
* Deep recursion warnings no longer crash lexical subroutines.
Note that contrary to last month's message, the increased type
opacity in the compiler has not been fixed in this release cycle.
changes in sbcl-1.1.11 relative to sbcl-1.1.10:
* enhancement: support building the manual under texinfo version 5.
(lp#1189146)
* enhancement: Windows builds no longer display the "Kitten of Death" message.
A warning is instead appended to the regular banner, and may be muted with
--noinform. (lp#728247)
* enhancement: support building under new linker handling of syscalls under
NetBSD. (thanks to Robert Swindells)
* bug fix: undefined function errors are now properly reported on PPC and MIPS.
(regression since 1.1.9)
* bug fix: (funcall (function X junk)) didn't causes an error when X had a
compiler macro. (thanks to Douglas Katzman).
* bug fix: signal a warning when defining a setf-function when a
setf-expander is already present. (thanks to Douglas Katzman).
* bug fix: improved threading on PPC.
* bug fix: ROOM works again on Windows. (lp#1206456)
* bug fix: Streams were flushed even when there was one byte still left in
the buffer. (lp#910213)
* bug fix: OPEN handles correctly when :if-exists and :if-does-not-exist are
either NIL or :ERROR. (reported by Jan Moringen)
As well as the release notes, appended below, it is worth noting
that some internal changes related to the optimization of type
tests for bounded positive integers might cause performance
regressions in code that dispatches based on the type of objects,
as in for example
(typecase x
((unsigned-byte 24) ...[1])
(t ...))
where in the region of code marked ...[1] the compiler could be expected
to infer that x was of type (unsigned-byte 24), but currently fails to
do so. This can be worked around by inserting an explicit declaration,
and the developers hope to address this in the next release cycle.
changes in sbcl-1.1.10 relative to sbcl-1.1.9:
* enhancement: ASDF has been updated to 3.0.2.
* optimization: stack frames are packed more efficiently on x86oids, which
ought to reduce the frequency of Methuselahn conservative references (it
certainly helps with gc.impure.lisp / BUG-936304 on x86).
* optimization: on x86 and x86-64, integer negation forms like (- x) are now
recognized in modular arithmetic contexts, and compile to native negate,
rather than going through bignums only to keep the low bits.
* bug fix: Compiling potential modularic arithmetic forms does not cause type
errors when some integer types lack lower or upper bounds. (lp#1199127)
* bug fix: Non-trivial modular arithmetic forms are always cut to the right
bitwidth before being used in a non-modular context. (lp#1199428)
* bug fix: Multiple catch/unwind blocks in a single function are now
allocated in the right stack order on win32. (lp#1072739)
changes in sbcl-1.1.9 relative to sbcl-1.1.8:
* new feature: the contrib SB-GMP links with libgmp at runtime to speed
up arithmetic on bignums and ratios. (contributed by Stephan Frank)
* enhancement: disassemble now annotates some previously missing static
functions, like LENGTH.
* enhancement: clean.sh now also cleans doc/internals.
* enhancement: SB-EXT:PRINT-SYMBOL-WITH-PREFIX can be used within ~// to
print a symbol with a package prefix.
* enhancement: The debugger and backtracing are more robust against buggy
PRINT-OBJECT methods.
* optimization: calls to static functions on x86-64 use less instructions.
* optimization: compute encode-universal-time at compile time when possible.
* optimization: when referencing internal functions as #'x, don't go through
an indirect fdefn structure.
* optimization: SLEEP doesn't cons on non-immediate floats and on ratios.
* optimization: (mod fixnum) type-checks are performed using one unsigned
comparison, instead of two.
* optimization: enable more modular arithmetic transforms in the presence of
conditionals.
* optimization: bitwise OR forms can now trigger modular arithmetic as well,
when the result is known to be negative.
* optimization: recognize more cases of useless LOGAND/LOGIOR with constants.
* optimization: comparisons between rationals and constant floats or between
integers and constant ratios are now converted to rationals/integers at
compile time.
* optimization: Smaller and faster DOUBLE-FLOAT-LOW-BITS on x86-64.
* bug fix: problems with NCONC type derivation (reported by Jerry James).
* bug fix: EXPT type derivation no longer constructs bogus floating-point
types. (reported by Vsevolod Dyomkin)
* bug fix: sb-bsd-sockets has correct declaration of the canonname field of
addrinfo. (lp#1187041, patch by Jerry James)
* bug fix: uninitialized type-error conditions can now be printed.
(lp#1184586)
* bug fix: tests for sb-bsd-sockets no longer use a predefined port for
listening, allowing several tests to run in parallel.
* bug fix: during disassembly to *COMPILER-TRACE-OUTPUT* instruction
prefixes as used on x86 and x86-64 no longer sometimes print incorrectly.
(lp#1085729)
* bug fix: Specialised SIMD-PACK types can be negated.
* bug fix: Modular arithmetic is more robust. (incidentally fixes another bug
reported by Eric Marsden)
* bug fix: FP return values from foreign calls are always rounded to single
or double float precision on x87.
* bug fix: Known-safe vector access on x86oids should not fail spuriously
when the index is of the form (+ x constant-positive-integer).
* bug fix: Remove GPL-licensed files from source distribution. (lp#1185668)
* bug fix: backtrace printer no longer tries to create very large lists when
the arg-count register is clobberred by other code. (lp#1192929)
* bug fix: x86 should never signal an FP exception while boxing an FP value,
a situation that lands us into ldb.
Racket 5.3.6
This is a bug-fix release. It eliminates errors from v5.3.5 that
people have found over the summer.
Racket 5.3.5
This is a special-purpose release to match the arrival of "Realm of
Racket" in bookstores. Racket v.5.3.5 adds a single `realm'
collection to the v5.3.4 release. The new collection contains the
source code that readers of Realm may wish to use for experiments.
Racket 5.3.4
* Extflonums (80-bit floating-point numbers) are supported on some
x86/x86_64 platforms -- including Windows, and including platforms
where Racket is compiled to use SSE instructions for flonum
arithmetic. Thanks to Michael Filonenko.
* OS X: DrRacket and all of the other apps are now signed with an
official key.
* Tally Maze: a new game based an enumeration of 2d mazes.
* The Optimization Coach, a DrRacket plugin, has been moved from the
Racket distribution to the Racket package repository. Install it
with: raco pkg install optimization-coach
* Redex: `define-union-language' now merges productions when
languages define the same nonterminals. Thanks to William Bowman.
* The `srfi/19' library is now compatible with the date structure
type exported by `racket/base'.
22 Aug 2013, PHP 5.4.19
- Core:
. Fixed bug #64503 (Compilation fails with error: conflicting types for
'zendparse'). (Laruence)
- Openssl:
. Fixed UMR in fix for CVE-2013-4248.
Changes from 6.07 are:
* Updated for ocaml version 4.01.0
* Added 'MLast.loc_of_with_constr'.
* Fixed bug toplevel with revised syntax; "= 'a" was missing
in output in that example:
# module type A = sig module type S = 'a; end;
module type A = sig module type S; end
* Now accept lowercase ident for module types, like ocaml does.
Accepted also in revised syntax.
* (experimental) Now, in revised syntax, a "." followed by
a newline is interpreted as a ";", allowing to end phrases with ".".
Drawback: will syntax error when writing a record/module access in two
lines ending the first one with "." like:
foo.
bar
* Accept now "match with | | ... end" in revised syntax, with
a required "|" in the first case, as alternative syntax for match.
* Added function 'Pcaml.value greek_ascii_equiv' giving
an ascii equivalent to a greek (utf8) letter representing a type
parameter. E.g. 'a' for 'α', 'b' for 'β', and so on.
* Fixed bug no locations built in some cases of constructors.
* Fixed bug: in toplevel, the highlighting of errors did not work.
* Added option '-dquot' to specify the default quotation name.
and the ability to use "#option" directive with two parameters. Therefore,
we can use either (e.g.):
-dquot "expr"
in the command line of camlp5 or
#option "-dquot" "expr"
inside a file.
* Now 'make' displays a message how to compile, instead
of doing 'make out'. Old behaviour of 'make' must be now 'make out'.
* Now accept identifiers starting with a greek letter as variable names.
* Fixed bug: DEFINE FOO=32 while using pa_macro.cmo did not work
due to a bad order in grammar insertion.
* Fixed bug: parsing greek letters as type variable in
constructor declaration did not work when building Camlp5.