Samantha McVey has completed her work on the “Improving the Robustness of Unicode Support” Grant. In an extensive blog post she describes what she has done in the past months, how all achievable goals were achieved, and how quite a number of bonus features also made it. You can leave any congratulations, support or other comments on the official TPF page about the completion of the grant. I think we can now safely say that Rakudo Perl 6 has the most complete Unicode support of any programming language in the world. Kudos to Samantha!
Object creation 1.5x faster
Elizabeth Mattijsen (with a lot of help by Timo Paulssen and Jonathan Worthington) completed her work on auto-generating the
BUILDALL method for each
class. This is an internal method that is called to create an object using the default
.new method. Instead of interpreting a build plan of the class every time an object of that class is created, a custom
BUILDALL method is created directly using
QAST ops (basically writing source code in Abstract Syntax Trees and then “
EVALling” them). This makes each call to
.new 1.5x faster, making our canary about 8% faster!
Nativecall also much faster
Stefan Seifert also finished his work on auto-generating native call function bodies, making the interface between Rakudo Perl 6 internals and
Inline::Perl5 much faster. This also made the
Inline::Perl5 version of our canary about 10% faster. The race continues to be on!
Rakudo Perl 6 has a file that contains a list of test-files (roast) it should run (
spectest.data) when doing a so-called
spectest. A single file used to be used for all language versions, which is bad because:
- New files get added to roast master and roast runner complains they’re missing when running tests for older language versions.
- Files in master get restructured, but deleted files still have to live as dummy files when tests for another language version get run.
Zoffix Znet implemented roast versioning by making a separate list of files for each language version so that Rakudo Perl 6 can run tests for each language version seperately. Roast runner just looks at VERSION file in roast to figure out which version of the list of test-files to load (the file list is now in
spectest.data.6.c; for a future release a
spectest.data.6.d file will be added).
The language that will not be named
Zoffix Znet rekindled the discussion about the naming of Rakudo Perl 6 again, this time suggesting
6lang (to be pronounced
slang). Again, quite some discussion on blogs.perl.org, /r/perl6, /r/perl and Twitter. Yours truly hopes we can settle this once and for all before Rakudo Perl 6 language version
6.d comes out (or whatever we will call it then).
Hacktoberfest is here again
Community Bug SQUASHathon
Texas to ASCII
To avoid any political connotations, it was felt that we should be moving towards documenting operators consisting purely of
ASCII characters as “ASCII” operators (such as
(<=)), and operators that consist of at least 1 non-ASCII character (such as
⊆) as “Unicode” operators. Internal documentation has already been adapted, external documentation will follow shortly unless consensus changes.
Other Core Developments
- Zoffix Znet made chainable operators (such as
2 < 3 < 4) between 6x and 36x times faster (depending on number of items in the chain). He also made
Versionobjects about 7x faster. Which is nice as we will need to do a lot more language version comparisons in the future!
- Jonathan Worthington fixed several race conditions and deadlocks with the new
ThreadPoolScheduler. He also made sure that all aspects of the new
ThreadPoolSchedulerare now used on
6.c, except the part of
awaitno longer blocking the thread it is awaiting in.
- Samantha McVey fixed an issue with
uninameand non-unique Unicode names. The
noncharacterproperty is now also returned for noncharacters.
- Zoffix Znet also fixed and improved the
**regex quantifier and made sure that
- And quite some other smaller fixes and improvements.
Other Blog Posts
- My concerns about the future of Pumpking Perl 5 by unowadap.
- We suggest avoiding Pumpking Perl 5 for new work at this point. by commandlineluser.
- An outline of Federico Tomassetti‘s “A Guide To Parsing: Algorithms and Terminology” followed by Rakudo Perl 6 specific discussion and code by raiph.
- Creating a background service by Patrick Spek.
- How can I do a qualified
import? by ac1235.
- London PM Tech Meet UP – Rakudo Perl 6 (A Primer) by Simon Proctor.
Meanwhile on Twitter
- Really amazing work! by Steve Scaffidi.
- Start uploading to CPAN by Zoffix Znet.
- Calling a
methodby Zoffix Znet.
- Need to acquire by parv.
Meanwhile on StackOverflow
Meanwhile on perl6-users
- User and Group of a file? by ToddAndMargo.
chown? by ToddAndMargo.
subs question by ToddAndMargo.
MIMEsyntax help by ToddAndMargo.
- How do I assign an array to a hash key by ToddAndMargo.
-f??? by ToddAndMargo.
- Write bytes requires an object with
REPR MVMOSHandleby ToddAndMargo.
- Need append help by ToddAndMargo.
- Any way to get hashes to loop in order? by ToddAndMargo.
- Assign a value to a hash using a variable as a key by ToddAndMargo.
- Rakudo Perl 6 Object Construction – General Advice by Mark Devine.
Bart Wiegmans has created a Pull Request for all of the work that has done on the new
JIT: this is now going through the final reviewing process. This work will be merged any day now, which should allow for quite some more “so many percent faster” items in the next issue. So please check in again next week!