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!

Advertisements

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!

2018.53 Goodbye PerlJam

This week saw the peaceful passing of Jonathan “Scott” Duff (aka perlpilot and PerlJam) at the much too early age of 47. Scott has been heavily involved with Perl 6 since at least the days of Pugs (as far as yours truly has been able to trace back).

Although he would have described his contributions to Perl 6 as small, they have been important in that they helped others to build further at the very early stages of Perl 6. Perhaps more importantly, from at least 2005 until last summer (when he became too ill), Scott has participated almost daily in discussions on the #perl6 IRC channel in the kind and supporting way that people who know him, appreciated him for.

He will be sorely missed. Scott: thanks for all the fish!

Scott on Facebook (Facebook users only) and the go fund me campaign of his family: all donations will be appreciated.

This year’s final Advent posts

Too late for last week’s Perl 6 Weekly:

Getting things done

An interaction about the use of grep and map on the #perl6 IRC channel made Alexey Melezhik realize that it would be handy to have such an example be made more accessible. He even has a little movie to show what that would look like.

Calling subs and typing

Elizabeth Mattijsen had the 9th article about migrating from Perl 5 to Perl 6 published on opensource.com: Calling subs and typing in Perl 6 (Reddit comments).

Squashathon time again

Next Saturday will see yet another Community Squashathon, this time focused on testing. And as usual, “Saturday” will be interpreted as “Saturday anywhere on Earth”, so it will be more like 47 hours worth of fixing, documenting and adding tests. Please join us in making sure we get Perl 6 even better tested than it already is!

Core Developments

Two weeks of core developments this time, as promised last week:

  • Nicolas Georges fixed an issue with utf-16 encoding with regards to null-bytes.
  • Timo Paulssen worked a lot on optimizations in MoarVM. He also made Carray[] about 2x as fast.
  • Stefan Seifert fixed various segfaults in MoarVM, as well as spending a lot of time finding a pesky issue (with a 3 char fix) when building MoarVM on big endian systems. And he removed all of the old MAST writing infrastructure, which is no longer needed.
  • Paweł Murias implemented all of the new read/write functionalities on Blob / Buf and added support for num32 and num64 on the Javascript backend.
  • Elizabeth Mattijsen added blob8.read-bits/read-ubits and buf8.write-bits/write-ubits methods to read/write any sequence of bits in buffers.
  • Nick Logan added a cache for distributions for the CompUnit::Repository::FileSystem backend, making the use of -I less sensitive to potentially large directories.
  • And many other smaller bug fixes and improvements.

Questions about Perl 6

Meanwhile on Twitter

Meanwhile on Facebook

Meanwhile on perl6-users

Perl 6 in comments

Perl 6 modules

Updated modules:

Winding Down

A week with very mixed feelings. Be careful with any fireworks if you’re celebrating the New Year! Yours truly hopes to see you all and well reading the next Perl 6 Weekly!

2018.52 Three Years Later

It was only 3 years ago that the first official release of Perl 6 saw the light of day. Today, we are 36 compiler releases on, with the latest one, the 2018.12 release coming out a few days ago. Again done by Samantha McVey and Aleks-Daniel Jakimenko-Aleksejev, with Claudio Ramirez again taking immediate care of the Linux packages. It all seems so normal. And that’s a good thing! Although some applause is always appreciated!

Prepare Your Presentations!

Both the German Perl Workshop (6-8 March 2019) and the DC-Baltimore Perl Workshop (6 April 2019) have announced their Call For Presentations. The CFP for the German Perl Workshop ends on 20 January, and the CFP for the DC-Baltimore Perl Workshop ends on 31 January. What better time to contemplate your Perl 6 Presentations for 2019 than the Holiday Season? Or even better, prepare them?

Tomtit!

Alexey Melezhik has written two blog posts about his latest product Tomtit: One Tomtit to make it and Automation of Perl 6 development workflow through the Tomtit task runner. A great new alternative to source code management and build automation! (Reddit comments).

Manage PostgreSQL Version (strings)

Luca Ferrari has written a nice blog post about a Perl 6 class to manage PostgreSQL Version strings in a Perl 6 program. A nice example of a small utility class. Too bad it isn’t in the ecosystem or on CPAN yet 😦

A new tool for language compilers

Andrew Shitov has had his presentation using grammars to design and implement a programming language accepted in the Minimalistic Languages track at the next FOSDEM (2/3 february 2019). Congratulations! (/r/perl6, /r/ProgrammingLanguages comments).

Tis the Time of Year

The final set of general Advent Posts:

And the one-line Advent Posts by Andrew Shitov:

If you’re more fluent in Chinese, you can also read all of Andrew Shitov‘s one-liner Advent Posts in Chinese, thanks to 0条评论 (Reddit comments).

Questions about Perl 6

Meanwhile on Twitter

Meanwhile on Facebook

Meanwhile on perl6-users

Perl 6 in comments

Perl 6 Modules

New Modules:

Update modules:

Winding Down

Since not a lot has happened in the past week apart from the work done on getting the 2018.12 Rakudo compiler release out of the door, yours truly will keep the other core developments for the next Perl 6 Weekly, scheduled next Sunday. See you then!

2018.51 Principally Designed

Ralph Mellor started an interesting discussion about the principles people have adopted for the design of their programming language. Recommended reading. And he initiated an at least equally interesting discussion on /r/ProgrammingLanguages about Jonathan Worthington‘s article titled: Racing to writeness to wrongness leads. As if there wasn’t already good stuff to read in this time of year!

Tis the Time of Year

Another batch of regular Advent posts:

And another batch of one-liner Advent posts by Andrew Shitov:

Improve Perl 6 Networking Support

Ben Davies has submitted a request for a grant to improve the networking support of Perl 6. Comments welcome!

last / LAST on whenever

A feature sometimes felt sorely missed: Timo Paulssen implemented the last statement (and the LAST phaser) on whenever blocks. This now gives a more idiomatic way to get out of the implicit loop in a whenever block.

Byte-oriented read/write methods

Using the nqp:: functions that Stefan Seifert has implemented using Jonathan Worthington’s design from a few months ago, Elizabeth Mattijsen has implemented the associated functions in Perl 6:
blob8.read-int8/16/32/64/128 for reading signed integers, blob8.read-uint8/16/32/64/128 for reading unsigned integers and blob8.read-num32/64 for reading IEEE floating point values (full documentation).

And of course there are also counterparts for writing: buf8.write-int8/16/32/64/128 for writing signed integers, buf8.write-uint8/16/32/64/128 for writing unsigned integers, and buf8.write-num32/64 for writing IEEE floating point values (full documentation).

All of these methods take a byte offset as the first parameter, and an optional endianness parameter for the last parameter. To indicate endianness, the Endian enum has been created: it has three possible values: NativeEndian (the endianness of the system Perl 6 is running on), LittleEndian and BigEndian. The default for the last parameter is NativeEndian. The write-... methods take a second parameter as the value to set.

Finally, the Kernel class now has a endian class method that indicates the endianness of the system on which Perl 6 is executing.

Other Core Developments

  • Ticket status of past week.
  • Ben Davies had his Pull Request implementing native descriptor access on sockets finally merged.
  • Stefan Seifert fixed several issues related to writing binary data on big-endian systems, which affected pre-compilation on those systems.
  • Jonathan Worthington has been very busy: he fixed some issues related to garbage collection and JITting and made failure to join a thread no longer a panic, but a normal exception. And he fixed a pesky issue that caused memory corruption if a type was being augmented with an additional attribute. And fixed a memory leak for long running processes such as with cro. And he improved the performance of simple regular expressions.
  • Paweł Murias fixed various issues on the Javascript backend.
  • Nick Logan fixed an issue with $*EXECUTABLE if Rakudo was invoked with a relative path.
  • And many more smaller fixes and improvements.

Questions about Perl 6

Meanwhile on Twitter

Meanwhile on Facebook

Perl 6 in comments

Perl 6 Modules

New Modules:

Updated Modules:

Winding Down

With lots of nice stuff to read, yours truly hopes you will have time enough to prepare for the holiday season.

In the coming weeks, the Perl 6 Weekly will most likely already be published on Sunday night (CET) rather than on Monday: publishing in the evening of the 24th and the 31st of December is not only in conflict with the schedule of yours truly, but probably also with most of the readers of the Perl 6 Weekly.

2018.49/50 Diwali Landed

Aleks-Daniel Jakimenko-Aleksejev and Samantha McVey have released the 2018.11 Rakudo Compiler, which is the first Rakudo compiler release that standardizes on Perl 6.d, the second major version of Perl 6 (PDF version). Claudio Ramirez immediately followed up on that with an update of all of the Linux packages.

So why is this important? After all, most of the 6.d changes had already been active in previous Rakudo compiler releases. Therefore one should really look at the list of version controlled changes. From a performance point of view for heavily concurrent programs, making await non-blocking by default is probably the most important.

In Perl 6.d you can easily run many thousands of simultaneous jobs. That’s because if something is awaiting an external result, it will no longer block the thread it is in (which it did in Perl 6.c, severely limiting doing many asynchronous operations simultaneously and adding a very real possibility of deadlocking). Instead it now relinquishes control of the thread so another job can make use of it.

Easily run examples from documentation

Aaron Sherman thinks it would be a good idea to add links to 6pad from the Perl 6 documentation. Additional comments / views welcome!

German Perl Workshop

The dates for the German Perl Workshop 2019 have been set: 6 – 8 March in Munich at the Hochschule für Angewandte Wissenschaften München. There’s a list of suggested talk subjects and a CFP. Please submit your Perl 6 talk proposal: Munich is a cool city and the German Perl Workshop is one of the oldest Perl Workshops in the world!

The Perl Conference in Pittsburgh

The website for the Perl Conference 2019 is now live: it will be held from 16 to 21 June at the DoubleTree by Hilton Hotel & Suites Pittsburgh Downtown in Pittsburgh, PA. Talk proposals can be submitted from the 15th of December, so you will have to be a little patient!

Perl at 35C3

Perl will be present at the 35th Chaos Computer Congress from 27 to 30 December in Leipzig. Kudos to all the people making that happen. It’s too late to get tickets now. But if you already have a ticket and want to help, check out the #35c3 IRC channel on irc.perl.org.

YAPC::Tokyo 2019

Almost slipped by without yours truly noticing: the YAPC::Tokyo 2019 on 26 January 2019. With some Perl 6 related talks:

  • Perl in the winter of 2019 by Kenichi Ishigaki.
  • Application Development in Perl 6 by risou.
  • Revive to modern Perl by 八雲アナグラ.

You will need to brush up on your Japanese though, by the looks of it.

Tis the time of year

This year, Perl  does not have 1 but 2 Advent calendars: the tenth edition of the Perl 6 Advent Calendar (which is a community effort) and the first edition of the Perl 6 One-Liner Advent Calendar (by Andrew Shitov). So what are the posts so far?

Perl 6 Advent Calendar:

Perl 6 One-Liner Advent Calendar:

Regexes and guesses

Jo Christian Oterhals has published another story about his use of Perl 6: Small stuff #14: Regexes and guesses (name extraction). If you don’t learn anything about Perl 6 there (which yours truly finds unlikely), you will at least learn about the difference between Bokmål and Nynorsk!

Go 2, here we come!

Robert Griesemer has published a blog post about the future of Go: Go 2, here we come. In an earlier version, this contained the phrase “Don’t be Perl 6”. This caused quite some discussion about Perl 6 on Reddit and Hacker News. Read at your own peril.

Haskell to Perl 6

voihannena posted a link to the Haskell to Perl 6 documentation page, which spurred a top-20 place on the Hacker News front page and a quite some positive (and some negative) comments. An interesting read if you want to know about how some people look at Perl 6.

Core Developments

  • Ticket status: last week, the week before that and the month of November.
  • Timo Paulssen fixed a memory leak with spesh logging on long running (otherwise idle) processes such as a Cro app. He also micro-optimized an internal Match method that may be noticeable when using a lot of regular expressions in a program.
  • Samantha McVey fixed a lot of build warnings on MoarVM. She also worked on improving building of MoarVM on AIX systems.
  • Ben Davies fixed a double free.
  • Petr Rockai fixed a file-descriptor leak by adding a cancel handler for filewatch tasks. And fixed an unnecessary warning in IO::Notification.
  • Stefan Seifert fixed a problem with writing bytecode on big-endian systems, recently introduced by the MAST-stage refactor.
  • Paweł Murias did a lot of work on the Javascript backend, about which he reported very succinctly.
  • Elizabeth Mattijsen fixed a few edge cases with set operators. She also made Attribute‘s get_value and set_value fully transparent.
  • And many other smaller fixes and improvements.

Questions about Perl 6

Meanwhile on Twitter

Meanwhile on FaceBook

Meanwhile on perl6-users

Perl 6 in comments

Perl 6 Modules

New Modules:

Updated Modues:

Winding Down

Due to being down with the flu, yours truly could not make a Perl 6 Weekly last week.  So therefore this week’s covers two weeks of events in the Perl 6 universe.  Hope to see you next week for yet another batch of Perl 6 goodies!

2018.48 Groonga Grep!

Kenichi Ishigaki (aka charsbar) has announced yet another CPAN Grep that allows you to search the contents of distributions on CPAN. And it also works on Perl 6 distributions! The search engine is powered by Groonga, an open source fulltext search engine and column store that yours truly had not heard of before.

London Perl Workshop

Both Mohammad S. Anwar and Dave Cross mentioned Perl 6 in their reports about the London Perl Workshop. Unfortunately, all of the Perl 6 related presentations where in a room that did not have video capture. But Simon Proctor released the slides of his presentation “24 Uses for Perl 6”, and JJ Merelo also did that for his Perl 6 in Academia.

Perl 6 mode in Ace

Naoum Hankache (of Perl 6 Intro fame) provided Perl 6 support for the Ace editor (Reddit comments). Always good to see more Perl 6 support being integrated into products!

Failure is an option

Elizabeth Mattijsen has had part 8 of her Migrating To Perl 6 series published on opensource.com: Failure is an option in Perl 6 (/r/perl, /r/perl6 comments). It even made it to last weeks most read top 10!

Renaming Debate

Nikos Vaggalis announced that he has written a blog post about the backgrounds of the Perl Renaming Debate.

Upcoming Squashathon

Next Saturday, 3 December, will see another Squashathon. At the moment of this writing, the target of this Squashathon is not yet officially known. But yours truly would bet on another round of Documentation Bug Squashing!

Core Developments

  • Ticket status of last week.
  • A lot of expression JIT templates offered by Jeremy Studer were finally merged into the master branch.
  • Samantha McVey fixed several issues in the MoarVM build process.
  • Elizabeth Mattijsen made infix meta operators about 1.5x as fast for core operators such as +=, ~=, etc. She also fixed an issue with .values on object hashes.
  • Nick Logan fixed an issue with IO.resolve on Windows.
  • Stefan Seifert made timing based tests optional to support clean building on slow build servers.
  • Rob Hoelz improved the error message when using placeholder slurpies.
  • And some other smaller fixes and improvements.

Questions about Perl 6

Meanwhile on Twitter

Meanwhile on FaceBook

Meanwhile on perl6-users

Perl 6 in comments

Perl 6 Modules

Updated Modules:

Winding Down

A slow week, but given Thanksgiving / Black Friday / Cyber Monday / London Perl Workshop perhaps understandable. It looks like next week yours truly have more Perl 6 news. So see you next week!