pbc-backref branch ready for testing/merging

Peter Lobsinger plobsing at gmail.com
Sat Jan 15 02:43:25 UTC 2011

The pbc-backref branch is complete in terms of features and passes
fulltest and rakudo-spectest. It is my intent to merge this
immediately after the release. This is well encapsulated from nearly
everything, so there are no expected difficulties, however, please run
whatever tests you feel are appropriate.

Background information: Currently, in master, only PMCs within the
same constant's object graph are stored as references on subsequent
encounters. pbc-backref adds another type of reference which allows
the format to refer to objects previously encountered in the object
graph of other constants within the same constant table. This gives
tremendous improvements to code making use of namespaces, nested subs,
and lexpads.

FWIW, this change is also completely backward-compatible with the
current PBC format.

Here are some of the improvements this branch brings:
 * rakudo perl6.pbc size:                               65% smaller
 * rakudo hello-world machine instructions:     23% fewer
 * rakudo repl RSS:                                      33% less
 * parrot opsc.pbc (typical nqp program) size: 15% smaller

moritz++ also reports that rakudo spectest is noticeably faster,
however I have been unable to reproduce anything beyond roughly a 10%
improvement (still feels downright glacial to me).

More information about the parrot-dev mailing list