2019.37 Progressinging

Timo Paulssen published a report about his work on the MoarVM Heap Snapshot Profiler of the past months. This is an excellent tool that is already being used by MoarVM / Rakudo core developers to track resource usage in Perl 6 programs. Glad to see such progress!

About the export trait

Sterling Hanenkamp delved into the specifics of the is export trait (Reddit comments).

Using Perl 6 Online

Andrew Shitov has made his book “Using Perl 6available for online perusing (Reddit comments).

Expression Backend Maturation

Bart Wiegmans presented his (for now) Final Grant Report on the MoarVM JIT Compiler Expression Backend Maturation grant. Too bad not all goals were met, but in general everybody is happy with the progress.

Perl Weekly Challenge #25

Blog posts with Perl 6 solutions for Challenge #25:

Challenge #26 is up for your perusal.

Core Developments

Developments of the past 3 weeks:

  • Jan-Olof Hendig found a missing break statement in MoarVM with Coverity.
  • JJ Merelo supervised / helped a lot with upgrading the documentation processing and generation system, mainly around this issue.
  • Vadim Belman continued his extensive work on re-imagining the MoarVM / NQP / Rakudo build system, making sure the different backends share as much as possible. He also improved the handling of multiple language versions in Perl 6.
  • Timo Paulssen introduced “VM Event Subscription” that allows monitoring of VM events as they happen such as a GC, and Spesh Status. And did quite some work on the profiler and the heap-snapshotter.
  • Stefan Seifert (again) fixed a number of possible memory corruptions in MoarVM.
  • Jonathan Worthington fixed and tweaked spesh logging to regain some lost execution speed. He also made sure that when running with MVM_HASH_RANDOMIZE=0 that really no hash randomization will occur. And fixed issues with exception propagation in threaded programs and external programs segfaulting.
  • Daniel Green fixed a memory leak when reading invalid UTF8 data and silenced some clang warnings.
  • Bart Wiegmans optimized de-optimizations and fixed some failing qregex testcases.
  • Christian Bartolomäus improved some error messages on the JVM backend.
  • Paweł Murias fixed some bugs on the Javascript backend.
  • Peter du Marchie van Voorthuysen fixed various issues with vows on Promises.
  • 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 modules:

Winding Down

A week with a lot less happening for yours truly. Meanwhile, developments on the build system are simply staggering. As well as stability improvements. Looking forward to reporting more of these next week!

Advertisements

2019.35/6 Ovid Trepidated

With a tweet, Curtis “Ovid” Poe made it known to the world that he had written up his view on the proposal to rename Perl 6. And from then, it went sort of viral in the IT community with comments / mentions in: Hacker News, /r/perl, /r/perl6, PerlMonks, The Register, Lobsters, Slashdot, Developpez (French), Heise (German), Opennet (Russian), Blognone (Thai), I-Programmer, Technologik (French), SD Times, Packt. And probably many more places.

Meanwhile, the associated Pull Request is almost ready for the voting procedure.

Call for Grant proposals

Less than a week left to come up with your Grant Proposals for the September 2019 round of grants from The Perl Foundation.

Red Squashathon

Last weekend saw a squashathon dedicated to helping with documention of Red (a Perl 6 ORM). The squashathon was a success in setting up the documentation for Red, and the winner is Xliff!

Implementing GB2312

Somehow, ZhongnianTao‘s blogpost about implementing the GB2312, has fallen through the cracks. Still a good read about the complexities of this mapping!

Why Perl 6 has graphemes

A very extensive treatise about the length of emoji’s by Henri Sivonen: it mentions Perl 6. It’s a long read, but should give you an appreciation about the torture that Perl 6 developers have gone through to give you grapheme support.

Perl 6 or math?

Aaron Sherman elaborated on calculating e with a Sigma class and some more magic, allowing 1 + Σ(1, ∞, 1∕*!) to actually work!

Closures tutorial

Aaron Sherman also started a tutorial about closures in Perl 6.

Via the cubes

Andrew Shitov also mentioned that 42 can be expressed as the sum of three cubes. Which, contrary to many other programming languages, works out of the box with the Perl 6 Programming Language.

Perl Weekly Challenge #23

Blog posts with Perl 6 solutions for Challenge #23:

Damian Conway published a blog titled “To compute a constant of calculus (A treatise on multiple ways) in response to challenge #21.

Perl Weekly Challenge #24

Blog posts with Perl 6 solutions for Challenge #24:

Challenge #25 is up for your perusal.

Core Developments

Will be catching up on this next week.

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

After enjoying some rest and relaxation in Ireland and Scotland (yes, whisky distilleries were visited), it was good to be back home again. And what a two weeks it has been online! Good to see so many new Perl 6 modules. Hope to see many more next week!

2019.34 A Quick One From The Atlantic

While the ferry is slowly exiting the Cherbourg harbour en route to Dublin (trying out an alternate route to Ireland from mainland Europe without having to enter the UK), yours truly found some time laying around in the lounge. And used that to write this week’s Perl 6 Weekly.

Videos of PerlCon in Riga

The Riga video team has created separate videos of the presentations at PerlCon in Riga. These are the Perl 6 ones:

See an overview of all videos in case you missed a presentation (/r/perl6, /r/perl comments).

GSOC Wrapup

Madeleine Goebel published the wrapup: Summer in Review of her GSoC Self Contained Executable Project. In it, she describes how you can now make an executable out of any user program that does not use modules, or uses a single module. Clearly, work is still needed to make this feature more generally applicable. But these are amazing steps forward (/r/perl6 comments)!

Complex builds

Sterling Hanenkamp elaborates about how he uses Build.pm to organize complex build issues for Perl 6 distributions.

KSyntaxHighlighting

Christoph Cullmann posted a blog about editor highlighting called
KSyntaxHighlighting – Over 300 Highlightings…” (/r/perl6 comments).

Perl Weekly Challenge #22

Blog posts with Perl 6 solutions for Challenge #22:

Ruben Westerberg has been announced a Perl Weekly Champion. Also, Challenge #23 is up for your perusal (about which Aaron Sherman gives some pointers).

On renaming

Several people commented on the plan to rename Perl 6 to Raku:

Core Developments

  • Bart Wiegmans saw his work on the JIT of the past 8 months, finally merged.
  • ZhongnianTao saw his work on supporting the GB18030 encoding merged as well.
  • Timo Paulssen fixed a problem with a repr mismatch with NativeCall.
  • Daniel Green JITted some nqp::num functions.
  • Deven T. Corzine saw his work on the execstack fix merged.
  • Moritz Lenz fixed a problem in the expression template compiler.
  • Christian Bartolomäus fixed some issues on the JVM backend, and Paweł Murias helped him while fixing some issues on the Javascript backend as well.
  • Vadim Belman performed a lot of work on more easily supporting multiple language versions.
  • And some 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 modules:

Winding Down

Yours truly will probably not be able to make the Perl 6 Weekly next week while travelling (again). So, the next blog post about the Perl 6 Programming Language, will most likely be published on 9 September. See you then!

2019.31/32/33 And We’re Back!

Yes, the Perl 6 Weekly is back. If there is one thing yours truly has learned, that it is not a good idea to skip 2 issues. Once, in the past, maybe. But nowadays, it just almost gets too much to process while writing the weekly. And probably to read as well. Well, hoping not too much was missed in the past 3 weeks, let’s go!

PerlCon in Riga

The Riga video team has not found the time yet to create separate videos of the presentations yet. There are full days streams available though:

A number of participants have already posted reports of the event:

Swiss Perl Workshop Videos

Thanks to Lee Johnson, the videos of the Swiss Perl Workshop 2019 have become available. These are the ones with Perl 6 content:

August Squashathon

Luis F. Uceta has become the winner of this month’s Documentation proofreading Squashathon. Thanks to all other participants: better luck winning a plushy Camelia next time!

Second tutorial: Fun with objects

David Cassel posted his second Perl 6 tutorial: Fun with Objects. It feels there is a Big Bang Theory reference somewhere in there.

Trials and Tribulations

Madeleine Goebel published two updates on her GSOC project:

It is really good to see so much progress on a feature that could well become one of the unique selling points of Rakudo Perl 6!

D&D Rolls in Perl 6

Tyler Limkemann went out playing and came back with a very nice blog post about rolling dice (/r/perl6, /r/programming, /r/geek, /r/perl comments). He also created a very nice Unicode character property lister (Reddit comments).

Still stun me all these years later

Aaron Sherman looked at a JSON grammar and felt his head spin. He also used this opportunity to create a guide for other programming languages wanting to implement Perl 6 regular expressions (Reddit comments).

Dollar signs will not kill you

A rather interesting interview with Alan, user of obscure languages (Reddit comments).

Docker builds are your friend

Sterling Hanenkamp took his new blog for a spin with “Multi-stage Docker builds are your friend“. It shows how it helps him build a single end-product that’s uncluttered by extra build configuration and tooling.

Hilbert with Cairo inside GTK

Timo Paulssen got adventurous and live coded a Hilbert curve with Cairo inside of GTK.

Not A Dialect

Aaron Sherman explores the differences between Perl 5 and Perl 6 with excellent linguistic research and examples (Reddit comments).

Forest fire numbers

Aaron Sherman also did a little challenge of his own with “Fun little challenge: Forest Fire numbers“. One could wonder whether a submission for the Perl Weekly Challenge wouldn’t have been a better idea.

Electric Boogaloo

Jeff Goff posted another blog posts on templating in Perl 6 called “Templates II: Electric Boogaloo“.

Expanding .perl

Finally, Aaron Sherman started a re-evaluation of the .perl method, which resulted in a problem solving issue.

Perl Weekly Challenge #19

Blog posts with Perl 6 solutions for Challenge #19:

Damian Conway repeated his look back on the challenge with “Greed is good, balance is better, beauty is best.” (Reddit comments).

Perl Weekly Challenge #20

Blog posts with Perl 6 solutions for Challenge #20:

Damian Conway again repeated his look back on the challenge with “With friends like these…” (Reddit, Hacker News comments).

Perl Weekly Challenge #21

Blog posts with Perl 6 solutions for Challenge #21:

Meanwhile, Challenge #22 is up for your perusal!

Core developments

  • Ticket status of July.
  • Stefan Seifert continued his excellent debugging work in the bowels of MoarVM, which improved the stability of MoarVM significantly. He also introduced a new debugging level, that causes a garbage collect on every allocation. He also fixed a race condition with precompilation.
  • Ben Davies made socket family handling portable across OS’s.
  • Timo Paulssen fixed various profiling issues and improved comments in the spesh log. And put in some optimizations.
  • cygx added a function to MoarVM to run bytecode from memory and fixed the build on MingW systems.
  • Jonathan Worthington implemented various optimizations, one of which saved 10% on a DBIish record insertion benchmark.
  • Stéphane Payrard fixed the documentation of various nqp:: opcodes.
  • Paweł Murias fixed various issues on the Javascript backend.
  • ZhongnianTao added support for the GB2312 encoding (simplified Chinese).
  • Elizabeth Mattijsen fixed an issue with Date objects losing their formatter with certain operations.
  • Vadim Belman fixed EVAL when run at compile time in the mainline of a precompiled module. He also made sure that each compiled setting knows of which language version it is.
  • Christian Bartolomäus fixed various issues on the JVM backend.
  • And some 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 modules:

Winding Down

At PerlCon in Riga, yours truly announced that she would open up a problem solving” issue, in which she would ask to rename the “Perl 6 Programming Language” to (eventually) “The Raku Programming Language”. (/r/perl, /r/perl6, perl6-users, Facebook, Lobsters comments).

Some selected comments from the issue itself (in chronological order):

After getting a better idea on how this would work, this resulted in a Pull Request, which is currently under review. If this pull request gets accepted by all reviewers, then this will cause “Perl 6” to be renamed to “Raku”.

And with that out of the way for now: next week’s Perl 6 Weekly will most likely be delayed, or possibly skipped altogether, due to yours truly travelling for some non-Perl related events. So, if not next week, see you in two weeks time then for more Perl 6 news!

2019.30 Released Again

Shortly after the 2019.07 Rakudo compiler release, it was discovered that it has some issues with the build system that affect packaging. At the same time, some important stability and reliability fixes were committed in MoarVM. So Samantha McVey did a MoarVM point release, and Aleks-Daniel Jakimenko-Aleksejev put an NQP and Rakudo 2019.07.1 compiler release together. A Rakudo Star release is now expected to appear soon.

Comma Community Release

Jonathan Worthington announced the 2019.07 Comma Community Release, the IDE of choice for Perl 6 application development. This new release adds a very exciting visualizer for Log::Timeline output, which is very useful for visualizing asynchronous workflows and understanding parallelization.

Proofreading Squashathon

Around Saturday 3 August, there will be a documentation proofreading Squashathon. On this monthly Bug Squash day, people all over the world get together online for virtual pizza, and possibly win a plushy Camelia. Check it out: proofreading documentation shouldn’t be too hard, should it?

Implementing the GB2312 encoding

Kudo’s to ZhongnianTao for their work on implementing the GB2312 encoding. Somehow this fell through the cracks the past weeks. Looking forward to more of these in the future!

YODO

David P. Kendal, with a simple announcement on the #perl6 IRC channel, has taken the old and venerable IRC bot yoleaux offline. She will be missed. David P. Kendal, thanks for running it for all those years! Aleks-Daniel Jakimenko-Aleksejev expects to have a replacement bot up and running soon.

Amuse-bouche

Jeff Goff describes his foray into the name mangling that is needed for working with external C++ libraries in A Regex amuse-bouche (Facebook comments).

On Math::Matrix

Herbert Breunung elaborates on his work on the Math::Matrix module and his future plans for it. All comments, remarks, suggestions will appreciated (Twitter comments).

On Physics::Measure

Steve Roe has returned to the Perl 6 blogging fold with Mind the gap, announcing the alpha release of the Physics::Measure module.

Family

cygx has created a Perl Language Family page (Reddit comments).

Load Testing

Simon Proctor had to do some load testing and reached for Perl 6. The result, after using a one-liner for prototyping, is a very nice blog post with a complete script for doing load testing as a bonus.

Boggling swiggles

Aaron Sherman realized that you can sometimes be tempted to write potentially linenoisy code in Perl 6. But that there is a way around it, in My swiggles are getting boggled.

Powershell Application testing

Alexey Melezhik shows how to use Sparrow6 for testing Powershell applications.

Perl Weekly Challenge

This week’s blog posts with Perl 6 solutions for Challenge #18:

Damian Conway repeated his look back on the challenge of the previous week with two excellent blog posts, titled “Six Slices of Pie” (Facebook, Reddit, private comments) and “Chopping substrings“.

Meanwhile, Challenge #19 is up for your perusal!

Core developments

  • Ticket status of the past week.
  • Stefan Seifert fixed a number of issues with ConcBlockingQueue, spesh, autoboxing, big integer operations, string operations, and slurpy argument handling, all of which could cause memory corruption if a Garbage Collect would kick in at a vulnerable time.
  • Samantha McVey updated Unicode and collation support to version 12.1.
  • Patrick Böker fixed a problem with linking of build runners and made perl6 an .EXE file on Windows.
  • Vadim Belman made sure that Map objects may contain containers, to fix an issue with exporting scalar containers. This is potentially a breaking change, as this also makes Map an object, rather than a value type. May be reverted depending on error reports the coming weeks and/or ecosystem fallout.
  • And some smaller fixes and improvements.

Questions about Perl 6

Meanwhile on Twitter

Meanwhile on Facebook

Meanwhile on perl6-users

It appears I missed a few weeks of mails on the perl6-user mailing list. These have not been mentioned before in the Perl 6 Weekly:

Perl 6 in comments

Perl 6 Modules

New modules:

Updated modules:

Winding Down

After a week of record temperatures, it looks like a more normal summertime ahead for the coming weeks. In which yours truly will take a 3-week break from this weekly post about the Perl 6 Programming Language. For a number of reasons: preparing for a keynote presentation at PerlCon in Riga, travel to/from Riga on the next two Mondays, and generally needing a bit away from the churning of the Perl community. So, unless someone else takes over Perl 6 Weekly’s responsabilities, the next Perl 6 weekly will be arriving around the 19th of August. See you then!

2019.29 Released

After tremendous effort of all involved, specifically Samantha McVey, Kane Valentine and Aleks-Daniel Jakimenko-Aleksejev, there is a new Rakudo Perl 6 Compiler Release: 2019.07. This release is the result of over 4 months of development (Facebook comments).

Claudio Ramirez immediately followed this up with packages for quite a number of different Linux distributions (usage instructions).

Since this is the first release that uses the completely new, revamped build system (by Vadim Belman and Patrick Böker), it is expected that some issues may still become apparent in the coming weeks. Please bear with us while the Perl 6 Programming Language is getting an industrial strength build system.

Madeline still on a roll

Madeleine Goebel has been very busy and reports on her substantial progress on her GSOC project in Flags and Syscalls and Modules, Oh My!. She promises another blog post during the week because this one was getting too long.

Sparrow6 Released

Alexey Melezhik has announced that the Perl 6 version of Sparrow has been released to CPAN! Which is the result of a 6-month project.

A Clean Start

Jeff Goff has restarted his blog site “The Perl Fisher”, in which he will take a slightly different approach to blog posting about grammars than before.

Basic NativeCall

Andrew Shitov has published a blog post titled “Basic usage of NativeCall in Perl 6, in which he gives an introduction to NativeCall, the Perl 6 technology that allows you to call C functions from your Perl 6 code.

A Perl 6 Webring

cygx decided it is time to party like it’s 1999 with an old-style Webring, dedicated to Perl 6. It has four sites so far.

Grammar Talk at PerlCon

Lars Dɪᴇᴄᴋᴏᴡ will be giving a presentation about parsing grammars at PerlCon in Riga. He’s made his presentation notes available so that people can spot any errors with regards to Perl 6 grammars beforehand (Reddit comments).

Perl Weekly Challenge

This week’s blog posts with Perl 6 solutions for Challenge #17:

Damian Conway repeated his look back on the challenge of the previous week with an excellent blog post titled “Vigenère vs Vigenère.

Meanwhile, Challenge #18 is up for your perusal!

Core developments

  • Ticket status of the past week.
  • Ben Davies fixed a bug in pointer arithmetic for inlined CArrays in CStruct and CPPStruct REPRs.
  • Gerd Pokorra found and fixed a problem in the configuration process.
  • Timo Paulssen improved the error message when a process fails to be spawned and fixed various confprog issues.
  • Jonathan Worthington fixed a combinatorial explosion in deopt logging, that could cause the spesh thread to block an application for multiple seconds. He also fixed various issues in profiling / coverage / debug code, specifically in multi-threaded code.
  • Daniel Green JITted several unicode related opcodes.
  • Patrick Böker fixed several build problems, specifically one on the GCC 5 compiler. And he added documentation on doing binary releases.
  • Aleks-Daniel Jakimenko-Aleksejev added a support script to manage Github releases.
  • Chloé Kekoa fixed a problem with string interpolation using { }.
  • Stefan Seifert fixed a race issue involving meta-ops that could cause segfaults in the worst case.
  • And quite a few 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 another heatwave coming up on many of the places where people work with Perl 6, yours truly hopes everybody will be able to survive. Please check in again next week for more Perl 6 news!

2019.28 Perl 6 文档之 – 语言

Chenyf announced with a very modest tweet that the documentation of the Perl 6 Programming Language has been translated to Chinese. What an amazing piece of work! Looking forward to see many more Chinese programmers use Perl 6.

At long last

David Cassel has started a series of tutorials teaching the basics of the Perl 6 programming language. The first of these titled: “Getting Started, at Long Last, on Perl 6” takes you on the path to installing Rakudo Perl 6 and trying some small code examples. With as takeaway:

I’ll tell you this: playing around with Perl 6 is a lot of fun!

(Facebook comments).

Myths revisited

After last week’s Internet stormlet about Perl 6 Myths, cygx decided to make a better overview of Perl 6 Myths, which sparked some Reddit comments. One comment about the original blog post by chromatic, and a reply by Ralph Mellor, stood out for yours truly.

PerlCon in Riga

Another week, another newsletter, with nice postcards. And the following confirmed presentations with Perl 6 content:

Which makes 21 presentations with Perl 6 content on a total of 55 presentations (excluding Lightning Talks).

It is to be expected that Larry Wall will be autographing with stamp and four colours of ink. And Curtis ‘Ovid’ Poe will also be there!

Believe it or not, you can still buy a ticket for this excellent programme.

Madeline on a roll again

After a short hiatus, Madeleine Goebel is at it again for her Google Summer of Code project, with 2 blog posts this week:

More GSOC reporting

Antonio Gomiz Delgado also reported about his progress on his GSOC project on the Perl 6 documentation. Such as the capability to regenerate HTML files, and continuous integration testing. And he is inviting comments and feature requests!

My new calculator

Someone with the nick Shred_alert mentioned that the killer application for Perl 6 has been found: REPL has become my new calculator.

Perl and future

Jens Rehsack has written a blog post on LinkedIn: Perl and Future, in which he asks for a authoritative and definitive answer for the question whether Perl 6 is a Perl (/r/perl, /r/perl6, Facebook comments).

JIT Compiler

Bart Wiegmans reports on the progress of his work on the JIT compiler expression backend, which will allow expressions with floating points to be completely JITted to machine code. Cool stuff!

Celebrate Programming Verbosity

Richard Smith has written a blog post about the fine line between expressiveness and complexity. A quote:

But verbosity should be celebrated. It’s what will make my code easier to read now, later, and by the rest of my team. And even though I’ll have more lines, I’ll also have less bugs.

Which caused a lot of comments on Reddit.

Perl Weekly Challenge

This week’s blog posts with Perl 6 solutions for Challenge #16:

Damian Conway again looked back on the challenge of the previous week with an excellent blog post titled “Infinite work is less work (/r/perl, /r/perl6 and Hacker News comments). What is there to be said? Highly recommended!

In the “Champions” series of blog posts, Mohammad S. Anwar this time interviewed Joelle Maslak (Reddit comments).

Meanwhile, Challenge #17 is up for your perusal!

Core developments

  • Ticket status of the past week.
  • Daniel Green provided JITting of several often used nqp::opcodes.
  • Stefan Seifert fixed a build issue.
  • Timo Paulssen fixed a bug in profiling multi-threaded programs.
  • Vadim Belman fixed / reimplemented large parts of PseudoStash handling and made it possible to define new symbols in the 6.e setting.
  • And some more improvements and fixes, still in anticipation of the next Rakudo Perl 6 release, being prepared by Aleks-Daniel Jakimenko-Aleksejev, Kane Valentine and Samantha McVey.

Questions about Perl 6

Meanwhile on Twitter

Meanwhile on Facebook

Perl 6 in comments

Perl 6 Modules

New modules:

Updated modules:

Winding Down

Calling the past week uneventful, would be a euphemism (another blog post by yours truly, Reddit comments). Looking forward to a really uneventful week, so the Perl 6 Weekly will take a lot less time to read (and to write!).