2019.07 Andy, Thanks!

For many, many years, Andy Lester (aka PETDANCE of ack fame) has been the official registrant of the rakudo.org domain. In the past week he has passed registrant duties over to Jonathan Worthington, as he had indicated that he did not have any intent on keeping the registrant role. Thank you, Andy, for taking care of the rakudo.org domain for so many years.

Jonathan January Report

Matthias Bloch has published Jonathan Worthington’s report on core development activities in January 2019. It tells about the various optimizations that Jonathan has performed, and on the sometimes unexpected effects it had on certain uses of Perl 6 code, and the remedies that Jonathan applied.

A partial applicator

Elronnd has created a partial applicator of arguments to Callable, similar to the functionality of .assuming, with a very interesting comment thread as the result.

Core developments

  • Ticket status of past week.
  • Timo Paulssen fixed an issue with the optimization of the bindattr_i opcode.
  • Nick Logan fixed a problem with MoarVM on Windows related to macro expansion.
  • Jonathan Worthington ensured that code running with --profile will no longer block the scalar replacement optimization. And he fixed a problem with BEGIN blocks in precompiled modules incorrectly closing over lexicals.
  • Stefan Seifert fixed a segfault in MoarVM that occurred when dumping an attribute holding a VMArray.
  • Michael D. Stemle, Jr made sure the buildchain on MacOS is sane regarding possible incompatible versions of binutils provided by HomeBrew.
  • Elizabeth Mattijsen fixed an issue with exporting some type of symbols from pre-compiled modules.
  • And some smaller fixes and tweaks.

Questions about Perl 6

Meanwhile on Facebook

Meanwhile on Twitter

Meanwhile on perl6-users

Perl 6 in comments

Perl 6 Modules

New modules:

Updated modules:

Winding Down

A quiet week in preparation of the 2019.02 Rakudo Compiler release, which will also be the base for the next Rakudo Star release. More about that next week!

Advertisements

2019.06 Successful Squashing

The past weekend showed a flurry of ecosystem bug squashing in the monthly Squashathon (because of FOSDEM, this time on the second Saturday of the month). And the winner is Jonathan Stowe. Congratulations and thanks to all 37 contributors involved. With now even a tool to calculate results! And even though the squashathon has ended, list of bitrotted modules will now be updated continuously, thanks to Aleks-Daniel Jakimenko-Aleksejev. Feel free to pick any issue and work on it!

Core Developments

  • Ticket status of last week, the week before that and the month of January.
  • Jonathan Worthington has merged his work of the past 3 months on getting basic escape analysis in MoarVM. A great step forward to allow for many more runtime optimizations. And he also made sure that debuggers will be able to get at symbols, even if the functionality of the symbols has been optmized away. And he fixed a pesky issue with inlining of some cases of blocks in loops.
  • The .t6 extension for test files containing Perl 6 code, is now a thing, thanks to Aleks-Daniel Jakimenko-Aleksejev, Leon Timmermans and Joelle Maslak.
  • Timo Paulssen fixed various issues with (non-)optimization in MoarVM, such as with the use of int32 variables and the push and pop opcodes. He also changed the internal format of NativeCall‘s CStructs, allowing for easier interoperation.
  • Nick Logan extended the error reporting on modules that could not be found when trying to load them.
  • And many other smaller fixes and improvements.

Questions about Perl 6

Meanwhile on Facebook

Meanwhile on Twitter

Meanwhile on perl6-users

Perl 6 in comments

Perl 6 Modules

New Modules:

Updated modules:

Winding down

An early Perl 6 Weekly again. With some exciting developments! Especially having the first parts of the optimizations that have become possible because of the escape analysis, are very exciting. Looking forward to reporting about more optimizations in the near future! See you next Monday!

2019.05 Skipped

Aleks-Daniel Jakimenko-Aleksejev, the release manager of Perl 6, decided that it didn’t make any sense to create a 2019.01 release of Rakudo Perl 6, as there were still a few blockers that probably still needs some days of quality attention. So the next release (2019.02) will tentatively be on the 16th of February. Apologies to all who expected to get their hands on a stable Rakudo Compiler release earlier.

Unbitrotting Squashathon

This Saturday (anywhere in the world) will see yet another Squashathon, this time focused on fixing problems with modules in the ecosystem. As usual, the winner will win a nice plushy Camelia! So please join in, all the little bits help, cause we’ll all be winning from your participation.

A new tool for language compilers

Andrew Shitov gave a presentation at FOSDEM about how you can use Perl 6 as a tool for writing compilers (video on Youtube, comments on Reddit, Facebook). Really cool to see how little you need to do in Perl 6 to create a barebones compiler / executor.

The future of Saint Larry’s Language

Will Braswell also gave a presentation at FOSDEM. This one was about the state of the Perl universe with all of its former, current and future projects under the Perl 11 umbrella. (FOSDEM video).

Dates of the Swiss Perl Workshop

Lee Johnson tells us there is going to be a Swiss Perl Workshop in 2019, coming back to the nice town of Olten. But the dates are not set yet. In fact, there are 3 possible dates. And he would like you to take a poll so a decision can be made in early March.

Wenzel P. P. Peppmeyer on a roll

The past week (or so) did not see one, but two blog posts by Wenzel P. P. Peppmeyer:

As usual, recommended reading!

24 uses of Perl 6

The slides of “24 uses for Perl 6”, a presentation given by Simon Proctor at the last London Perl Workshop, gained some attention on Reddit this week.

Why It’s Hard To Hire A Perl Developer

Raji Ayinla describes how to hire a Perl developer, with some side notes about Perl 6 (Reddit comments).

Be the first

Dmitri would like to see Perl to be one of the first to support QUIC, QPACK and HTTP/3. I guess that if it would be Perl 6, then that would also be good.

SparrowHub Perl 6 only moving forward

Alexey Melezhik announced that SparrowHub will now be frozen for Perl 5 Sparrow client usage (Reddit comments).

A new release manager

Aleks-Daniel Jakimenko-Aleksejev tells us that due to personal circumstances beyond his control, it will become very hard for him to perform any release manager duties. So a new release manager will be needed in the foreseeable future. If you have time and passion for Perl 6, please let us know on IRC #perl6 (on freenode).

Questions about Perl 6

Meanwhile on Facebook

Meanwhile on Twitter

Meanwhile on perl6-users

Perl 6 in comments

Perl 6 Modules

Updated Modules:

Winding Down

FOSDEM was a really nice event (apart from the weather on Saturday). But the final kick of FOSDEM didn’t reveal itself until after getting home again. Meeting about 1500 people at the Perl booth, was both enjoyable but also very tiring. Literally running out of Tuits. But it appears that at least one of them also gave yours truly a pesky virus that basically incapacitated her for Monday and most of Tuesday. So the Perl 6 Weekly got a bit delayed. Hope it will be found enjoyable nonetheless!

Since most development efforts were focused on fixing blockers, and this Perl 6 Weekly is already late, I will get back on the core developments of the past week in the next issue of the Perl 6 Weekly. So see you then!

2019.04 Summer of Code!

JJ Merelo, Makoto Nozaki and Mark Keating want you to think about Perl projects for this year’s Google Summer of Code. Please submit your idea(s) and/or let yourself be known as a potential mentor of a project (Facebook, LinkedIn comments). Having a good project accepted can not only help the student or the project, a student may well become another valued core contributor (such as Bart Wiegmans)!

FOSDEM 2019

This weekend will see yet another FOSDEM in Brussels. Unfortunately, there will not a Perl DevRoom this year. But there will be a Perl booth with free swag and Perl books / Perl Wine and stuffed Camelia’s for sale. So please stop by and say hello to the Camel and the Camelia!

A Picky Caller

Wenzel P. P. Peppmeyer wrote a blog post about how handy it is being able to introspect the signature of a given pointy block, and use that as a condition on how to process the output of the execution of that block.

Apple Patenting

Ralph Mellor expressed his worries in relation to Perl 6 about Apple patenting certain software practices / algorithms.

Submit your Presentation Proposals!

This is the time of the year where you can submit your talk proposal to multiple Perl events, and be accepted by all of them. In chronological order:

Perl 6 and WebKit

Xliff has posted a gist describing some attempts at interfacing Perl 6 with WebKit to create a browser. Complete with screen shots and code. Exciting stuff!

On the dynamic nature of $_

In the past, the $_ variable (aka the topic), has always internally been marked as a dynamic variable. This poses significant issues in optimizing code, so Jonathan Worthington has been working on making $_ purely lexical (which would allow it to be optimized to a local). This broke a number of modules in the ecosystem, that depend on $_ being accessible dynamically (which are now fixed, at least for the coming release).

It however also broke a core feature of rx//. The associated issue presents some ideas and thoughts about how the regression could be fixed now, while also having a path towards the future that would allow better optimizability. Thoughts / suggestions / fixes are welcome!

Other Core Developments

  • Ticket status us past week.
  • Paweł Murias added support for the utf16be encoding on the Javascript and JVM backends.
  • Jonathan Worthington fixed some cases where error reporting would blow up, hiding the original error.
  • Nick Logan fixed a problem with module disambiguation when determining which version of a module to load if no auth information is available.
  • And many other smaller issues were fixed in preparation for the Rakudo 2019.01 Compiler Release.

Questions about Perl 6

Meanwhile on Twitter

Meanwhile on Facebook

Perl 6 in comments

Perl 6 Modules

New Modules:

Updated Modules:

Winding down

It was nice to see so many good Perl 6 things happening at the YAPC::Japan, resulting in quite some tweets! And a nice batch of updated and new modules on CPAN. Alas, no Rakudo Compiler Release just yet, but the number of blockers has gone down. More news about Perl 6 and FOSDEM next week!

2019.03 YouTubed

Derek Banas has posted a really nice introduction of Perl 6 on YouTube (1:20h), described by him as:

This tutorial is a 400 page Perl 6 tutorial condensed down into 1 video. Perl 6 is a get it done fast utility language. I’d say it is the most popular utility language. The newest version ads a ton of tools to the original Perl.

(Twitter announcement. ryn1x, Diego S. Costa and ɥɐɹʇıɟ pɐɯɯɐɥnɯ liked it on Twitter so far. There were also some Reddit comments.

PerlCon 2019

The website for the European Perl Conference (7-9 August 2019 in Riga, Latvia, formerly known as YAPC::Europe and The Perl Conference in Riga) is now live. With information about the venue, ticket pricing and a Call for Participation. So start making your plans to just attend, or maybe even give a Perl 6 related presentation!

A new DB interface

Curt Tilmes has applied the database interface that he had written in the past for DB::Pg to two other well known databases: SQLite and MySQL. In his announcement he shows that, unlike DBIish, the new modules are thread safe. Good stuff!

Portable profiles

Alexey Melezhik shows how portable profiles with Tomtit can be used to easily automate repeating tasks. More good stuff!

About types and polymorphism

Bart Wiegmans has published a short post about what he is up to the coming weeks on the expression JIT and how support for floating point operators forces a rethink about the design of the JIT. Good stuff to come!

New CPAN notifier bot

Patrick Spek has made a new CPAN notifier bot on the #perl6 IRC channel that will notify whenever there is a new upload of a Perl 6 CPAN module. It’s been pretty busy lately 🙂

Sparrow moves to Perl 6

Alexey Melezhik also announced that the Sparrow core code and core plugins will be migrated to Perl 6 in the coming months (Reddit comments). And so it begins.

Graphs on Fire!

Timo Paulssen reports on his work on the profiler in a fiery post about icicle graphs and how you will be able to use them to target those parts of your code that are the hottest and would benefit the most from optimizing (Reddit comments). Really cool stuff.

Grant Extension

Makoto Nozaki is pleased to announce that Jonathan Worthington‘s request for a grant extension has been approved, albeit only for the first half for now due to lack of funding. Which should be a cue for everyone to donate!

Core Developments

  • Ticket status of past week.
  • Timo Paulssen fixed a name collision between MoarVM and a new version of libtommath.
  • Jonathan Worthington added a new tool for debugging spesh guards, and solved a problem in which spesh guards were being added repeatedly when they shouldn’t. And he fixed an issue with line number annotations that would disappear in some occasions and he fixed several recently introduced issues related to the use of $_ in some situations.
  • Stefan Seifert fixed a race condition in the garbage collection of CStruct STables.
  • Elizabeth Mattijsen made the other QuantHashes also parameterizable (aka Bag / BagHash / Mix and MixHash).
  • Paweł Murias continued his work to allow running the spectest in precompilation mode.
  • And many, many other smaller fixes and improvements in preparation of the 2019.01 Rakudo compiler release.

Questions about Perl 6

Meanwhile on Twitter

Perl 6 in comments

Perl  Modules

New modules:

Updated modules:

Winding down

Although in many ways this felt as a quiet week, plenty of stuff is going on, on stage and behind the scenes. It’s good to see so many Perl modules get an update: the mere fact of an update of a module can make people aware of its existence. Good stuff.

That’s it for this week. Yours truly hopes she didn’t forget to mention too much stuff. See you next week!

2019.02 Is it Spring?

For Jonathan Stowe it is already spring. In a spring cleanup, he updated so many modules to CPAN that the numbers are simply staggering. Thanks, Jonathan, for all these goodies: XDG::BaseDirectory, Igo, AccessorFacade, Audio::PortMIDI, App::ModuleSnap, Attribute::Lazy, Acme::Insult::Lala, Audio::Silan, Audio::Convert::Samplerate, Linux::Fuser, Linux::Cpuinfo, Audio::Encode::LameMP3, Audio::Fingerprint::Chromaprint, CheckSocket, Log::Syslog::Native, Crypt::Libcrypt and Util::Bitfield. It’s good to see all of these modules receive the love they deserve!

Grant Extension Request

Jonathan Worthington has requested an extension to his Perl 6 Performance and Reliability Engineering grant. Please feel free to leave your comments with this request, unless you’re already done that, of course.

brrt’s Resolutions

Bart Wiegmans looked back on the past year, and looks forward in his blog post titled “New years post“.

Additional getting things done

Alexey Melezhik added examples of (non-)exported functions and how to make replacements in strings to his Getting Things Done tutorial.

Cheerleading

bobthecimmerian started a discussion on Reddit about Perl 6 cheerleading. I think everybody agrees the potential is there!

A different look

ogniloud proposed a different look for the perl6.org website.

Iterating past the finish

Wenzel P. P. Peppmeyer published a blog post about his attempts to augment the Cool class, and the interesting dragons he encountered on his journey (Reddit comments).

Decompressing Zelda 3 GFX

Sylvain Colinet describes how he used Perl 6 grammars and actions as a decompression algorithm. Definitely one of the more interesting uses of grammars yours truly has seen so far.

Core Developments

  • Ticket status of last week.
  • Apart from working on the next big iteration of performance enhancements, Jonathan Worthington also made it possible to define your own CONTROL type exceptions. He also reduced the overhead of each NativeCall (by about 10%) and supplied some patches for DBIish, making some operations about 10x as fast.
  • Paweł Murias implemented native support for localtime() on all backends.
  • Elizabeth Mattijsen added the necessary glue code to make the Parameter and Signature types first class citizens and fixed some HLL meta-programming issues caused by lack of decontainerization. She also made Set and SetHash parameterizable, so you can limit the types of values acceptable to the Set(Hash).
  • Daniel Green fixed a runaway memory leak that occurred when a return signature of a Callable was Nil and that Callable was repeatedly called in a tight loop.
  • Nick Logan fixed some path issues with $*PROGRAM and $*EXECUTABLE.
  • And many other smaller fixes and improvements.

Questions about Perl 6

Meanwhile on Twitter

Meanwhile on perl6-users

Perl 6 in comments

Perl 6 modules

New modules:

Updated modules:

Winding down

A relative quiet week, also on account of last week’s Perl 6 Weekly being late, and this one being early. See you next week for your regular dose of Perl 6 news!

2019.01 Wishes for 2019

After enjoying the fireworks in his hometown and looking back on his grant work in December, Jonathan Worthington looks forward to 2019 giving an overview of features to appear in Perl 6 and MoarVM. Such as Partial Escape Analysis, decreasing compilation and startup time, and more concurrency safety. As well as getting Cro to 1.0 and getting the community version of the Comma IDE out. Looks like it’s going to be a busy year for Jonathan again (Reddit comments).

Rakudo on Javascript

Paweł Murias has written an update on the Javascript backend. He describes his work that is specific for the Javascript backend, and the stuff he’s done that is more generally useful, such as pre-compiling scripts before execution. Generally, and more specifically when doing a spectest, to shake out the last bugs with regards to precompilation.

Leapt seconds

Brian Duggan explains the support for leap seconds in Perl 6. And the intricacies when working with DateTime and Instant objects, taking leap seconds into account.

Tomtit profiles

Alexey Melezhik introduces Tomtit profiles, sets of predefined tasks that you can have Tomtit run for you. Interesting stuff if you’re really lazy!

Introducing p6env

Shoichi Kaji-san introduces a new tool for managing different versions of Rakudo Perl 6 called p6env. If you know how plenv works, you’re all set!

Squashathon results

Last Saturday saw yet another squashathon, this time focused on open issues that needed testing. And the winner is Ben Davies! (activity log).

Zoffix

Careful Rakudo Perl 6 observers may have noticed that Zoffix‘s Twitter feed has been very quiet since his tweet about awaiting Larry’s ruling with regards to the way the alias “Raku” should be used. His last tweet announced that he will no longer be involved in Perl 6 at all. On the #perl6 IRC channel, Zoffix worded it as “the project’s direction and management style doesn’t match my goals and I’ll be happier elsewhere“.

This is really sad news. Zoffix has meant a lot for the Perl 6 effort: just by looking at the sheer number of commits in the Rakudo repo, should give one an idea on how much he has done in the past 3 years. And that’s without taking into account all of the other things he’s done for Perl 6.

Zoffix, thank you for all of the work you have done! I can only hope that Larry will be able to share his views on the alias question soon and in a way that will make Zoffix come back to Perl 6.

Ticket updates

Aleks-Daniel Jakimenko-Aleksejev has made a nice overview page of current and past updates on the status of Rakudo tickets. In it, you can for instance see that people created 1254 new issues in 2018. By that metric, one can see that there’s still a lot of work to be done. But also that a lot of people are actually using Rakudo Perl 6!

Core Developments

  • Timo Paulssen fixed a performance problem on simple code blocks not getting specialized.
  • Samantha McVey made sure that the MoarVM tarball can be extracted on AIX.
  • Paweł Murias continued refining code on the Javascript backend, as described in his blog post.
  • Daniel Green performed some micro-optimizations in the code generating NFA‘s, making some cases of grammar parsing about 5% faster.
  • Jonathan Worthington merged a lot of his work regarding the lowering of $_ of the past months. This allows for much more aggressive optimizations in the near future. An immediately visible optimization is that no allocation for $_ will be done anymore for loops of the form for ^10 { ... } if $_ is not used inside the loop.
  • Elizabeth Mattijsen performed many local optimizations, such as comparing Rat‘s (4x to 15x as fast), creation of Instant (5x) and Duration objects(4x as fast), use of Map/Hash.sort (11x as fast), Buf.gist (2.5x as fast), unival (2x as fast).
  • And many other smaller fixes, improvements and additions.

Questions about Perl 6

Meanwhile on Twitter

Meanwhile on Facebook

Meanwhile on perl6-users

Perl 6 in comments

Perl 6 modules

New modules:

Updated modules:

Winding Down

A week with very mixed feelings. Joy in seeing a new year start and the anticipation of good things about to happen in 2019. An example of which are five new Perl 6 modules on CPAN, of which at least one has the potential of becoming a killer application feature of Perl 6.

Mixed feelings because of the sadness of seeing a core team member deciding on not wanting to wait any longer for guidance. Being an optimist at heart, yours truly hopes to be able to report soon that Zoffix has come back to the project that is clearly close to his heart.

So see you next week for more Perl 6 news!