Recently in Perl 6 Development Category

Timo has written a new blog post with the latest updates.


Read more at: Always Wear Safety Equipment When Inline Scalaring!

Timo has implemented a new graph for the overview page:


Graph items, when selected, display more information such as the file name and line number. The file name and line number are clickable and will take you to the file and line in GitHub.

Read more at: These graphs are on Fire!

Jonathan Worthington recently requested an extension of his Perl 6 Performance and Reliability Engineering grant.

I'm pleased to announce that the Board of Directors approved extension of another $10,000. It'll allow him to dedicate another 167 hours to this work.

I would like to thank the community members who took time to comment on this grant extension request and our sponsors who made funding the grant possible through our Perl 6 Development Fund.

I also appreciate Jonathan Worthington's continued hard work and monthly updates with the grant manager, Matthias Bloch.

EDIT: The original request was $20,000 but I have adjusted the amount to $10,000 for this round due to the remaining fund. I have opened new discussion within TPF to allocate more money to the fund.

Brrt (Bart Wiegmans) has hit the ground running on his MoarVM JIT Compiler grant.

Here is his interim report:

I wanted to start with floating point support, which has two subtasks:

  • Ensure that DynASM encodes SSE instructions with variadic registers correctly.

  • Ensure that the JIT itself accepts and works with floating point registers.

I finished the first two of those tasks. For some context, x86-64 instruction encoding rules require an extra byte to be prefixed if an instruction uses registers 8-15 (because the original x86 only has 8 registers, addressed with a 3-bit number). So the extra byte prefix adds the 4th byte for up to 3 operands; it needs to be placed in the right place. Well, long story short, I originally extended DynASM to add this byte as needed. But (as I learned) I made a mistake in that which made certain long instruction templates not really work. I fixed that bug and now DynASM (or at least our fork of it) can address all registers correctly.

I then started with adding floating point support to the JIT, and found out that it was somewhat more complicated than anticipated. The reason for that is perhaps a bit ironic - in order to reduce the number of programming errors in JIT templates, I added a fairly strict type checking system to the JIT template processors. And that type checking currently rejects numeric registers. Designwise, this isn't necessarily very complicated, but it is slightly hairy.

He expects to be finished soon with FP support.

Brrt will occasionally update the community on his blog.


Original article was published on November 9, 2018

The overview page now shows all data displayed in the previous profiler's page as well as adds a "Start times of threads" chart. "GC" tab has been updated with sub-tabs to customise graphs using different display modes. The routines list now features a "goto" arrow for smooth and easy navigation.

Read more at: Where did I leave my AT-KEYs?


"Overview" tab is now functional but in flux. The "Routines" tab has been improved to include sorting functionality for columns, a minimal view in the "Paths" sub tab and a new "Callers" sub tab. An "Allocations" top level tab has also been added. Read more at: Full Screen Ahead!


The first public release! Code is now hosted in GitHub. Please see the instructions on how to install and run.

The release features a renewed "Routines" tab. Please read Timo's blog post to know how it compares to the previous profiler: The first public release!.

About TPF

The Perl Foundation - supporting the Perl community since 2000. Find out more at

About this Archive

This page is an archive of recent entries in the Perl 6 Development category.

Perl 5 Development is the previous category.

Perl Foundation is the next category.

Find recent content on the main index or look in the archives to find all content.


OpenID accepted here Learn more about OpenID
Powered by Movable Type 6.2.2