This week saw the landing of Stefan Seifert‘s two-month work to make precompilation of modules better maintainable and less resource-hungry. We can now actually use the precomp files generated on installation, so e.g. users no longer have to wait on first use for precompilation of system installed modules. Same is true for developers who no longer have to wait for precompilation of installed modules just because they run their code with -Ilib
. This also means that we spread around precomp files much less. So lib/.precomp
will usually only contain precomp files for the modules we find in lib/
. Finally, this new repo format fixes an issue with packaging modules for Linux distributions.
This week also saw the landing of Leon Timmermans‘ eight-month work on a Perl 6 Test Harness. This allows us to run the spectest
/stresstest
using a Perl 6 implementation of the TAP
protocol. This should allow us to more easily and more rigorously test Perl 6, simply by setting the environment variable HARNESS_TYPE
to 6
. Unfortunately for those of us on OS X
, this does not work yet: this seems related to a bug with awaiting a Promise
. Anyway, this is dogfooding at its best! And a step closer to not needing Perl 5 to make and test Perl 6.
QA Hackathon in Rugby
This year’s QA Hackathon took place in Rugby, England. There were quite some accomplishments. I’ve taken the liberty of extracting the Perl 6 related ones for your convenience:
- H.Merijn Brand (Tux)
- Sat with Tadeusz Sośnierz (tadzik) to get rakudo build bleading edge perl6 (moar & nqp) so my timings make more sense.
- Sat with Liz to optimize
Text::CSV
for Perl 6 and then fixed a problem with aliasing multi-methods (ticket filed).
- Elizabeth Mattijsen (Liz)
- Implemented
$*MAIN-ALLOW-NAMED-ANYWHERE
feature, allowing a more familiar CLI to scripts (inspired by tadzik++). - Implemented comparison operators other than
cmp
forVersion
objects. - Looked deeper into how
Version
objects are actually two types of objects. - Make
Test.pm6
a bit faster (spectest now runs 5% faster). - Looked at/Merged leont++ work wrt to running spectest using a Perl 6 harness.
- Fixed a crash in
Channel
handling found by MarcusRamberg. - Discussed a lot of
PAUSE
/ Perl 6 /CPAN
issues with available people, which should be coming to fruition later this year. - Helped Perl 6 newbies by answering Perl 6 questions.
- Implemented
- Philippe Bruhat (BooK)
- Hacked on Git::Version in Perl 6 with Elizabeth Mattijsen (liz), which led to discussions about the Version class in Perl 6, and several rakudo commits by Liz to improve it.
- Improved (by a factor of about 25) the number of tests in Perl 5 Git::Version::Compare after reading the Perl 6 tests for Version.pm, and started working on stress tests for Perl 6 Version.pm using the same technique.
- Leon Timmermans (leont)
- Worked on making Perl 6’s build less dependent on Perl 5.
- Tadeusz Sośnierz (tadzik)
- Worked on much needed and long overdue
panda
rework. - Released
Module::Toolkit
andApp::redpanda
as a part of that. - Found and fixed a bug in Rakudo with “
where
” constraints inMAIN
wouldn’t properly triggerUSAGE
(later improved by peschwa++). - Released
Getopt::Type
(not really toolchain related). - Fixed the
Qt
profiler frontend to work on the new profiler output format. - Added an easy way to build the bleeding rakudo in
rakudobrew
. - Went through a lot of bugs in
panda
andrakudobrew
.
- Worked on much needed and long overdue
Blog Posts
- Comb It! by Zoffix Znet
- Trinity by Carl Mäsak
- Extra-Typical Perl 6 by Zoffix Znet
- The
S///
Operator by Zoffix Znet - Refactoring And Torture by Jonathan Worthington
- Need Perl 6 Modules On Windows Then Use
zef
by Charlie Gonzalez - There Are Traitors In Our Midst! by Zoffix Znet
Other Core Developments
Not too much else happened: some minor bugs were fixed.
- Fixed bug in
Str.substr
andStr.substr-rw
that in some cases would return a handledFailure
, rather than an unhandled one. - Similarly,
List.minmax
would ignore failures and mark them as handled: this has been fixed, and as a side-effect, it is now up to 3.5x faster. - Basic signal handling got added to the JVM backend: alas so far only for signals that will exit the program.
Ecosystem Additions
More than one distribution per day added in the past week. M. Hainsworth created a very nice Ecosystem Citation Index. The additions for this week are:
- App::MoarVM::HeapAnalyzer by Jonathan Worthington
- Algorithm::BloomFilter by yowcow
- Devel::Trace by Altai-man
- TXN::Parser by Andy Weidenbaum
- App::ModuleSnap by Jonathan Stowe
- Audio::OggVorbis by Clifton Wood
- Bailador::Dev::AutoRestarter by Zoffix Znet
- Bailador::Plugin::Static by Zoffix Znet
- Bailador::Plugin::AssetPack::SASS by Zoffix Znet
- Bailador::Template::Mojo::Extended by Zoffix Znet
- Task::Noise by Perl 6 Noise Gang
Winding Down
Some loose ends from last week basically made me so tired, that I will need to postpone looking for gems in the backlog by yet another week.
Wow, that’s a lot of work being done!
No kidding, good to see Perl 6 pickup some steam!