On this special day of the year, another Perl 6 Weekly finds its way to you!
On Bufs and Blobs
The past week lizmat spend most of her time working in making
Blobs faster. Many of them micro-optimizations, they appear to have paid off at a more macro level, e.g. running the tests of RabidGravys modules (down from 31 minutes to 17 minutes). This was mostly achieved by adding more candidates for certain methods, and by rewriting internals to make more use of
nqp:: operations, rather than high level ops. Savings were also obtained by use a lot less intermediate
Bufs, so all operations tend to be taking a lot less memory now.
Buf methods were added:
my $b = Buf.allocate(10240, (1,2,3)); # allocate 10K, with 1,2,3 pattern
$b.reallocate(4096); # change allocation to 4K
At the moment, this functionality is still pre-release, so can be changed at any point in time.
Three “missing” methods were also added to
Unfortunately, the added functionality in the
Buf revealed a performance issue in punning a role into a class. This manifests itself by taking about .35 CPU seconds to do the punning of the first
Buf in a run. But this should be taken care of by the time you read the next Perl 6 Weekly.
Rob Hoelz merged the work that Salvador Ortiz had done on making the multi-line REPL just DWYM. So do check out our new, improved REPL if you have a chance!
Fixes and other notable changes
- Trying to use a module with compilation errors, no longer shows the compilation error twice.
subbuf-rwno longer works on
Blob, but only on defined
Bufs. This makes sense, as
Blobs are considered to be immutable. This change also made it possible to make
subbuf-rwa lot more memory friendly, and therefore a lot faster.
- A module can now print to
$*OUTwhile being compiled without messing up the precompilation process.
Perl 6 mentions on Wikipedia
As Perl 6 is now the pre-eminent example of the imperative,
declarative, functional, parallel, concurrent, pipelined, vector,
object-oriented, aspect-oriented, reactive, introspective, and
metaprogramming paradigms, surely it should be mentioned
on all those wiki pages?
If you want in, you know what to do!
Only Three. Of which one really sad.
- To Perl 6: And Now, I’m Gone by Shimmerfairy
- From Regular Expressions To Grammars Pt 4 by Jeff Goff
- NYC Perl 6 Beginners Study Group Session 2 by Charlie Gonzalez
Memorables From The Backlog
Scanned the first 2 weeks of February: a nice trove of finds!
- Use example of Perl 6 Magickwand support by Ahmad Zawawi
- Generating SVGs with Perl 6 is Fun
- Git Humor
- Racing to writeness to wrongness leads (2014)
- NativeCall-backs and Beyond C (2015)
- Please don’t use Slack for FOSS projects (discussion)
- Perl Postbit
- Golf is Fun
- Perl 6 in Phoenix, AZ
- Furbonacci sequence
- Is Sound Gradual Typing Dead?
- A nice intro into supplies and whenever (2015)
- Gentoo overlay for Rakudo
- The Error Model
- NativeCall Struct which contains Pointer
- Unicode property “Space” in Perl 5 and Perl 6
- Print the character names
- All the ways you can use a colon in Perl 6
- Abandon your DVCS and Return to Sanity
- Unicode numeric value support
- Frequently Asked Questions about Perl6 Artificial Intelligence
- To be or not to be
- Efficient Scientific Notation
- Plain old assignment, and freaky binding (2010)
- GetOpt::Long by Leon Timmermans
- Algorithm::TernarySearchTree by okaoka
- XML::Class by Jonathan Stowe
- Scientist by Lance Wicks
- Locale::Codes::Country by Dean Powell
Yup. Another one in time. On the extra day of the year. See you next week!