2016.18 Long Awaited Landings

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 for Version 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.
  • 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 and App::redpanda as a part of that.
    • Found and fixed a bug in Rakudo with “where” constraints in MAIN wouldn’t properly trigger USAGE (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 and rakudobrew.

Blog Posts

Other Core Developments

Not too much else happened: some minor bugs were fixed.

  • Fixed bug in Str.substr and Str.substr-rw that in some cases would return a handled Failure, 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:

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.

2 thoughts on “2016.18 Long Awaited Landings

Got something to note?