2018.45/46 Post Diwali

It doesn’t happen often (anymore) that a Perl 6 Weekly is not published for a given week. In the past week, yours truly was more or less at the center of a large discussion about how Perl 6 should be (nick)named. This drained yours truly of the energy to write the Perl 6 Weekly. If you haven’t heard about this new episode in the naming debate yet and you do want to know about it, then please see the summary at the far end of this Perl 6 Weekly. Meanwhile, a lot of other things happened. So let’s get on with that!

Rakudo Star 2018.10

Steve Mynott has released the latest version of Rakudo Star, based on the Rakudo 2018.10 Compiler release (Reddit comments). This marks the end of an era in more than one way: this is the last Rakudo Star release that is based on the 6.c language definition of Perl 6. It is also the last Rakudo Star release that Steve Mynott committed to doing. So we’re on the lookout for a new Rakudo Star release manager to perform the release.

Yours truly would like to thank Steve Mynott on behalf of the Perl 6 community for this work. He definitely deserves a lot of kudos for having done this for basically the past 3 years (2016.04 .. 2018.10)!

1000 Rosettacode Entries

thundergnat informed us that of 11 November, Perl 6 has 1000 entries on Rosettacode, and is now tied for third place on the leaderboard. Which should be easy to fix 🙂

Squashathon

Already more than a week ago, but there was another Squashathon, which was focused on fixing documentation issues. Thanks again to Aleks-Daniel Jakimenko-Aleksejev for organising. And the winner was chsanch! The next Squashathon will be on 3 December 2018. The target of that Squashathon has not been set yet: suggestions welcome!

PCiG videos

The videos of the Perl Conference in Glasgow have become available for your perusal. These are the Perl 6 related presentations:

Other things to watch

Simon Proctor gave a talk about writing Perl 6 Command Line Scripts at the last London Perl Mongers meeting.

Not quite a video, but a nice screencast of how to create a compiler with Perl 6 has also become available (from the last Amsterdam Perl Mongers meeting). In it, Andrew Shitov shows the basics and some advanced grammar usages. Which he will most likely use in his next book.

Perl 6 calendar

Andrew Shitov has created a Perl 6 Calendar for 2019 that you can actually put on your wall at the office or at home. Each month highlighting a fascinating Perl 6 feature. A great present to give your friends, co-workers or yourself! And if you were planning on getting Andrew Shitov‘s Using Perl 6 book, you can now get them both using a special XMas offer! (FaceBook comments).

Perl 6 At A Glance for free

The very first Perl 6 book Perl 6 At A Glance (also by Andrew Shitov by the way) is now available for free as a series of blog posts, or as a PDF or as an EPUB. Great to see such a source of information to become available for free! (FaceBook comments: 1, 2).

Les regex et grammaires de Perl 6

Laurent Rosenfeld has written a large tutorial about regular expressions and grammars for the French developpez.com website. Good to see Perl 6 tutorial material in languages other than English! Keep them coming!

Advent Calendar submissions

Zoffix Znet reminds us that to have a successful Perl 6 Advent Calendar, people need to write blog entries for it. So please claim a day in the schedule and start writing about what you like to do with Perl 6!

Running Perl 6 in the browser

Paweł Murias has created a very nice interactive way of running Perl 6 code in the browser, called 6pad. Unfortunately, at the moment of writing you will need a Chrome browser to be able to use it because other browsers do not support bigints (yet).

Where did I leave my AT-KEYs

Timo Paulssen showcased some more features of the upcoming MoarVM Performance tool. Yours truly can’t wait to see that land in master!

How to make Perl more classy

Elizabeth Mattijsen had the 7th instalment of her series of blog posts about the differences and similarities between Perl 5 and Perl 6 published on opensource.com (Reddit, FaceBook comments).

Perl 6 Appetizer

Mauro Panigada wrote a very nice introductory blog post titled: Perl 6 Appetizer. In this blog post, he highlights several features of Perl 6, such as Grammars and the handling of command line arguments (Reddit comments).

Showcase Perl 6 Features

ogniloud asked people on Reddit what they would find interesting and/or fun of Perl 6. And this was the the result.

TPF Grant Reports

The past weeks also saw three TPF Grant reports:

Perl 6 2019 Coding Contest

Moritz Lenz is seeking task masters for the 2019 Perl 6 Coding Contest. In the first phase of setting up this contest, he is looking for volunteers who come up with coding tasks collaboratively. But there are other ways you can contribute as well, such as pledging a prize, creating a website for the contest or ironing out the rules.

Core Developments

  • Ticket status of October, last week and week before that.
  • Zoffix Znet did all the work to have the Rakudo master branch default to the 6.d specification. This means that most likely the next Rakudo Compiler release will be defaulting to 6.d semantics. He also added a .command method for Proc::Async.
  • Stefan Seifert continued his work on rewriting the MAST phase of pre-compilation (the phase that writes out the bytecode to a file) and that work was merged into master. The MAST phase is now slightly faster than before, but more importantly, takes about 15% less memory. This means that building Rakudo Perl 6 has become more feasible on machines with low amounts of memory. He also did more general optimization work on MoarVM, making various JIT settings more easily settable.
  • Timo Paulssen fixed a bug related to marking guards as used in MoarVM, that would cause segfaults in Rakudo in some situations. And continued his work on the profiling tool.
  • Paweł Murias again worked hard on the Javascript and also the JVM backend, implementing support for new MoarVM internal features.
  • Elizabeth Mattijsen removed now obsolete set operators (<+), , (>+), and . She also introduced a compile-time only dynamic variable $*FOLDING, which will be True if your code is called while attempting to constant fold the result of your code. She also optimized eqv, Date, DateTime and general handling of many hyper operators.
  • Donald Hunter fixed a problem with a literal \ in a tr///.
  • Tom Browder continued work on improving pod handling.
  • Aleks-Daniel Jakimenko-Aleksejev made the make t/spec/foo/bar.t rule work again, allowing for selective spectesting of one or more files.
  • Jonathan Worthington made sure that exceptions thrown inside start blocks are no longer ignored if the start is in sink context. He also fixed a race condition in Supplier::Preserving.
  • And many, many, many other smaller fixes, improvements and tweaks.

Questions about Perl 6

Meanwhile on Twitter

Meanwhile on FaceBook

Meanwhile on perl6-users

Perl 6 in other comments

Yours truly did not have the energy anymore to work on this section. Next week should contain a selection of comments of the then past 3 weeks.

Perl 6 Modules

New Modules:

Updated Modules:

Winding Down

This concludes the part of the Perl 6 Weekly that yours truly recommends everybody should read. It was an enormous amount of information to sift through and categorize. Please let yours truly know if you think something has fallen through the cracks. If so, I will mention it next week. Until then!

What follows below is an attempt by yours truly to objectively describe the events related to the naming discussion of Perl 6 in the past week.

On Raku

People have asked to give Perl 6 another name for many, many years. All this time, Larry Wall did not want to change the name of Perl 6. As far as yours truly knows, he mentioned that there potentially could be an alias for Perl 6 for marketing purposes in markets where “perl” is a four-letter word in its worst meaning, at the Perl Conference in Amsterdam (2017). Zoffix Znet started this discussion again early October 2018. While Larry Wall was on vacation, he checked in on the 3rd of November for a little while to let Zoffix Znet know that the alias would be “Raku”. On the 25th of October, Larry Wall explained why “Raku” was on the top of his list as alias.

Zoffix Znet took it from there very expediently (EDIT: this was uncalled for) and used the bump in the language specification to merge with the use of an alias. Except that in a lot of cases(EDIT: at least one case), “Perl 6” was simply omitted, effectively making it a rename of “Perl 6” to “Raku”. And it was welcomed as such by a number of prominent Perl 5 developers. This upset a number of people very much, amongst which yours truly. And that caused quite a few discussions on the various IRC channels, and blog posts and commentaries on sites such as FaceBook, Reddit and Hacker News. This in turn was perceived as an attack on his person by Zoffix Znet, which led to his departure from the IRC channels and cancelling of planned blog posts. Since then, a status quo appears to have arisen, while waiting for a reply by Larry Wall, who was on vacation / helping family evacuating from wild fires in Southern California.

What follows below are places on the Web that mentioned the situation as it developed. Some of this is not nice reading, some posts have been removed (or maybe will be removed after publishing it here). Clearly a lot of people were upset about a lot of things. Read at your own risk for your mental health:

Blog Posts + associated comments

Comments

It’s Raku! /r/perl6, /r/perl, Perl 6 remains Perl 6?, A warning to the community, On Hacker News, Moving forward, Lack of Clarity on Authorized Activities?.

FaceBook

Rename indeed, Marketing down the drain, Slave master, 6.d is coming, The new p5p nest, No Weekly, Here it was, Perl 6 after all, More and more embarrassing, Documentation?, Positive on Raku, Extremely unhappy, What is Raku, PerlCon 2019 I, PerlCon 2019 II, On Raku, Thanks, On Raku (Again), Tagging on StackOverflow, Changing the Perl 6 group photo, Just an alias?, use raku?, Smashed, No Advent, Back from vacation

Twitter

This is really only a selection of the most prominent tweets about the alias “Raku” (or have a look at all “Perl 6” related tweets):

Its’ Raku!, Kinda meh, Formerly known as…, Now raku?, Tumbleweed, Sebastian Riedel: Raku!, Alternative name, Raku vs Perl 6, A convenient lie,
A new name for Perl 6, Things are settled, Can we get one too?, Official alternate name, Release announcement, DBA as, Three camps, Holding hostage, PerlCon 2019 cancelled?, Fully spelt out (not), Like the new name, Another name for Perl 6, Nicknamed “Raku”, Fumble?, Deleted comments, Also officially known as, Taking a stand, / >♥️ ♥️< \, A warning to the Perl 6 Community, This is worse, Kill off Perl 5?, Completely unrelated?, Just call it “Raku”, Implies Raku Perl 5, Brainfuck, Raku sounds good, Not first, Don’t buy the hype, Makes p5p look almost functional, Une annonce, Whirlpool, Perceived as rebranding, Confusion, Offical alias, Don’t make big announcements.

I hope that this is the last time I had to write about “Raku”, the alias for Perl 6.

Advertisements

2018.44 Diwali Approaching

Zoffix Znet has been very busy again. Not only did he create and release a new 6.d teaser document, he also did most of the work of making 6.d the default implementation of Rakudo in the bleeding edge version of the code. Looks like a release on Diwali 2018 is getting more and more certain. The biggest breakage so far has been the (too) late usage of the version pragma.

Rakudo 2018.10 Compiler Release

Aleks-Daniel Jakimenko-Aleksejev and Samantha McVey have done it again: release MoarVM and the Rakudo Compiler. Claudio Ramirez took this as an immediate cue to update the directly installable Linux distributions. Rakudo Star 2018.10 will be based on this release. Kudos again to all involved! Note for the curious: this is the last release of the Rakudo compiler that implements version 6.c of Perl 6 by default.

Rakudo running on AIX 7.1

Someone named ItchyPlant performed a lot of research and work to get Rakudo working on AIX 7.1/2. Kudos! Yet another operating system and a whole family of hardware now also support Rakudo!

Perl 6 Media Group

Zoffix Znet is looking for people to participate in a Perl 6 Core Media Group to improve consistency in Perl 6 marketing / messaging. Interested, please participate in the discussion. Yours truly hopes for a lot of participants!

Full Screen Ahead

Timo Paulssen shows off the improvements to the new MoarVM profiler user interface in his latest TPF Grant Report. It’s especially great to hear that this work is already paying off by helping Stefan Seifert with his work on the bytecode writing refactor (which should be in a mergeable state soon). You can directly follow this work in the associated repo: comments, suggestions and Pull Requests are welcomed!

Blin is Toast

Well, actually quite the opposite! Aleks-Daniel Jakimenko-Aleksejev is re-imagining the toaster functionality (basically spectesting the whole Perl 6 ecosystem) with Blin, which is capable of checking the ecosystem (1251 modules at time of writing) in about 60 minutes (on a 24 core machine) for any version of Rakudo Perl 6. But you can also use Blin on a single module to see which commit introduced a regression! A word of caution: only run this on throw-away virtual machines!

Small stuff #12

Jo Christian Oterhals added another episode to his “small stuff” series called Cobol precision, revisited (or… even more fun with FatRats)

Math Matrix

Herbert Breunung continued his series of blog posts about Math::Matrix with Part 5: Patient with docs.

Hackerrank solutions (part 2)

Patrick Spek has published part 2 of his Python 3 and Perl 6 solutions to Hackkerrank challenges (Reddit comments). Always nice to see Perl 6 and Python 3 solutions side by side.

Exportation Exploration

Joshua Yeshouroun wrote a blog post about his (dis)taste of modules that export symbols willy-nilly, followed by an update (Reddit comments). Recommended for those of you trying to grok the EXPORT semantics of Perl 6.

Meanwhile on Codegolf

Jo King created a nice Perl 6 solution to the Written Digits Sequence problem using Unicode introspection.

How phasers work

Elizabeth Mattijsen had the sixth article about migrating Perl 5 code to Perl 6 published: How phasers work in Perl 6. Which generated a lot of tweets (reaching up to 99000 people) (Reddit comments).

perl11.org

Someone posted a link to the perl11.org website on Hacker News which set of a barrage of comments (r/perl, r/programming, r/programmingcirclejerk). Some Perl 6 specific comments on Hacker News:

Go 2 Transition Proposal

Ian Lance Taylor wrote a proposal on how to make incompatible changes from Go 1 to Go 2 while breaking as little as possible. It mentions Perl 6 specifically (Reddit, Hacker News comments).

Other Core Developments

  • Ticket Status of last week and the week before that.
  • Samantha McVey fixed a problem with nqp::sleep that caused it to use CPU unnecessarily.
  • Stefan Seifert introduced a new set of nqp:: operations specifically geared towards handling binary data, while refactoring the way MoarVM writes out bytecode during pre-compilation. He also made sure that a lot of other nqp:: ops are properly handled by the expression JIT compiler.
  • Timo Paulssen focused on the new profiler, and did the groundwork for some new optimizations related to native variables.
  • Elizabeth Mattijsen improved the introspection of Parameter and fixed a problem with .assuming. She also made sure that the .cando method works on all Callables.
  • Tom Browder continued his documentation of NQP traps.
  • Jonathan Worthington finally found the source of a nasty serialization context issue with parameterized types, that caused type checking to fail when it shouldn’t.
  • And many, many smaller fixes, changes and other improvements.

Questions about Perl 6

Meanwhile on Twitter

Meanwhile on FaceBook

Meanwhile on perl6-users

Perl 6 in other comments

Perl 6 Modules

New Modules:

Updated Modules:

Winding Down

Ginormous. That is the phrase yours truly used earlier today about this Perl 6 Weekly. Having 6.d now being default language implementation, is something that will need to sink in the coming weeks. All great stuff. Hope there will be more great stuff next week. Well, pretty sure of that. So please check in again next week for more Perl 6 news!

2018.43 Coding Contest

Moritz Lenz is testing the waters to see if there is room for a crowd-sourced Perl 6 Coding Contest, and he’s inviting comments / suggestions / participations. This all models after Carl Mäsak‘s initial Perl 6 Coding Contest from 2010 (Twitter comments).

Perl 6 Deep Dive Free Download

Only 13 hours to go to get your free download of “Perl 6 Deep Dive” by Andrew Shitov. It’s filled with practical examples, exploring all aspects of Perl 6 with different programming paradigms (object oriented, functional, and reactive). On Twitter it had some weird previews: 1, 2.

Sparky

Alexey Melezhik introduces Sparky, a powerful pocket size task runner server. A more flexible and more maintainable alternative to using crontab, written in Perl 6!

Core Developments

  • Bart Wiegmans fixed MoarVM’s jit-bisect.pl to use the new spesh log.
  • Zoffix Znet made the stringification of really big ints (larger than 2⁶⁰) 1.58x as fast.
  • Jonathan Worthington fixed a problem in deserialization introduced in the past month, which was breaking a lot of modules in the ecosystem.
  • Timo Paulssen fixed the heap snapshot profiler.
  • Ben Davies implemented asynchronous socket introspection.
  • Paweł Murias fixed a lot of issues on the new Javascript backend, and fixed some on the JVM backend as well.
  • Tom Browder reported of his experiences in NQP land by documenting traps a Perl 6 programmer could fall into when programming in NQP.
  • Daniel Green speeded up several operators (such as %%) for native variables.
  • Fernando Correa de Oliveira made sure that .[] properly caches on Seqs. And he made sure that eqv between Signatures also check the returns attribute.
  • Nick Logan deprecated the undocumented gethostname for $*KERNEL.hostname.
  • 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

While preparations for the 2018.10 Rakudo compiler release are in full swing (which should also be the basis for the 2018.10 Rakudo Star distribution), this week was mostly about cleanups and fixing. And of course some nice new modules and some nice updates. Please check in again next week for more Perl 6 news! Take care!

2018.42 A better Atom for 6

Ahmad M. Zawawi has completed the first version of Perl 6 language support for the Atom IDE, based on an App::Perl6LangServer module that can be used by any editor / IDE that supports the Microsoft AppServer architecture. If you’re a fan of the Atom editor / Atom IDE, this will make it a lot easier to work with Perl 6 in it. So now Perl 6 doesn’t have one IDE, but two (the other one being the Comma IDE of course).

Perl[56] on the 35c3

Daniel Böhmer is trying to get a Perl Assembly together for the 35th Chaos Communication Congress in Leipzig, Germany. So if you would like to hang out together with other Perl people at the CCC, contact Daniel to make this happen! (FaceBook comments).

6.d review completed

Zoffix Znet has completed his pre-release review of 6.d spec (Twitter comments 1, 2). A truly impressive piece of work at almost 3500 commits reviewed and more than 400 corrections and improvements. Kudos!

JIT Grant Proposal

Bart Wiegmans has submitted a Perl Foundation grant request titled: MoarVM JIT Compiler Expression Backend Maturation. Focus of this grant will be on JITting floating point operations, improving generated code quality and improved handling of “irregular” instructions such as div. Comments as always welcome! (Reddit and grant comments).

Stupid Numeric Ticks

scruss got a little bit carried away trying to do as much as possible with Unicode numbers in a blog post titled: 𒐳 / ༳ == ( ⑽ – 𐹭 ) * ( 𒐲 / 𐅉 ), of course. Why does one do this? Well, because one can! In any case, a nice example of the flexibility of Perl 6 (Hacker News, Reddit comments).

Markatu – a lightweight markup language

Brian Duggan dove into the world of markup languages by creating a markup language called Markatu, inspired by markdown’s brevity and slim’s flexibility. In the article he describes the (Perl 6) techniques he used to create this markup language, and also lists the source that he created to render the HTML of the article (Twitter, Reddit comments).

OSCON 2018

Jim Brandt reports on the Perl booth at OSCON in Portland, OR this year. Caution: contains explicit pictures of swag.

No Perl DevRoom at FOSDEM 2019

The organizers of the Perl DevRoom at FOSDEM have been told that there will not be a Perl DevRoom at the coming FOSDEM. This is a big disappointment, but in the view of the number of groups wanting to have a DevRoom (about 140) and the number of rooms available (about 30), Perl has had a good run in the past years (FaceBook comments).

Core Developments

  • Ticket status of past week.
  • Bart Wiegmans fixed several small JIT issues.
  • Tzu-Li Chen performed a lot of code cleanup in NQP for the Java backend.
  • Paweł Murias continued his work on integrating the three backends of Rakudo Perl 6 even better, specifically in the area of native integers and makefiles. He also fixed the REPL on the Javascript backend and removed the undocumented and not correctly functioning --encoding command line parameter.
  • Valentin Anger fixed several problems introduced during the scalar refactor.
  • Elizabeth Mattijsen refactored the handling of MAIN subroutines, allowing for better pluggability. She also documented these new features in a separate Command Line Interface documentation page, and added tests for all these new (and old) features.
  • Tom Browder added a lot of notes and hints on the use of NQP.
  • 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

A busy week again, with some sad news with regards to FOSDEM. But please don’t cancel your travel plans to Brussels because of that: one could also see this as an opportunity to spread knowledge about Perl to other tracks. So if you see an opportunity of submitting a presentation about Perl (be it Perl 5 or Perl 6), please do take that opportunity to get out of the echo chamber! And on that note yours truly wishes everybody a good week. Until next week, for more Perl 6 news!

2018.41 Merged the JS!

Rakudo Perl 6 now has 3 supported backends: MoarVM, JVM and Javascript! Paweł Murias has merged his work of the past years into the master branch of Rakudo Perl 6 (reactions on Twitter: 1, 2). This is definitely a milestone! But there’s still a lot of work to be done to really make it more performant and have all of the features of the leading backend MoarVM. But a definite beachhead into the world of Javascript has now been established. And a doubling of the bus number of people who have implemented a backend for NQP / Rakudo Perl 6!

Speeding up object creation

Jonathan Worthington explains how the recent Perl 6 object creation speed improvements actually came about. In short, a combination of bug fixes in multi-dispatch cache, implementing some things that were planned but simply not implemented yet, a closer look at how the BUILDALL method is generated, and a lot of speshialization fixes.

A future for fork

Bart Wiegmans describes his work on making it possible to use fork() (again) in Perl 6 on the MoarVM backend on systems that support POSIX semantics. An impressive effort to make a heavily threaded system dance to the prerequisites that fork needs!

Math::Matrix (part 4)

Herbert Breunung continued his series about Math::Matrix in part 4 focusing on naming methods. An interesting read:

But even mathematics has its history and culture and for instance an adjugate matrix can also be called classical adjoint or sometimes adjunct. In that case I went with adjugate because it’s a recently used term, it’s short and I sensed the least potential for ambiguity with other existing methods.

Another benchmark

Robert Lemmen has another benchmark running based on monthly Rakudo compiler releases. Yours truly is looking forward to the results of the 2018.10 compiler release due in a few weeks. Meanwhile, there appears to be one benchmark he’s soliciting assistance on. Any takers?

My first Perl 6 program

bobthecimmerian describes how he created his first Perl 6 program in only a few days from having no experience with Perl 6 at all.

Having it both ways

Michael Stevenson has published an interesting article about the history of Perl titled “Having it both ways: Larry Wall, Perl and the technology and culture of the early web. This brings back memories for yours truly, but is also an interesting read for anybody who would like to know more about those early times of the Web (Twitter, Reddit comments).

A Perl 6 introduction for the curious

With a very understated tweet, Victor Borisov announced the availability of a Russian 80-page introduction to Perl 6 “for the curious”. Yours truly just loves it when Perl 6 related things appear on the web “out of nowhere”. It proves that Perl 6 is getting out of the echo chamber!

Squashathon Results

Last weekend saw another Squasathon in the Hacktoberfest month. The winner is JJ Merelo: he will receive a plush Camelia as the price for the most Pull Requests.

A Language Name Alias

Zoffix Znet posted a blog titled “A Request to Larry Wall to Create a Language Name Alias for Perl 6” in which he compiled his argumentation for the need of a marketing alias for Perl 6 (/r/perl, /r/perl6, /r/programmingcirclejerk, blogs.perl.org, and Twitter comments: 1, 2, 3, 4, 5. This excludes two extensive discussions on FaceBook that have unfortunately been removed by the original posters).

Core Developments

  • Ticket status of past week.
  • Bart Wiegmans fixed a problem in the JIT with regards to PHI nodes with labels.
  • Jonathan Worthington fixed a problem in call optimization and a leak in spesh.
  • Jeremy Studer reverted a problematic optimization for bit shift operations.
  • Timo Paulsen made NativeCall‘s CArray[42] return a container so you can assign to it.
  • Elizabeth Mattijsen fixed an issue with type constrained hashes that wouldn’t correctly type check.
  • And many other smaller fixes and improvements.

Meanwhile on Twitter

Meanwhile on FaceBook

Questions about Perl 6

Although StackOverflow is probably the best place to ask specific questions about Perl 6, sometimes people ask them at other places such as Reddit as well. Yours truly will now put these together into a Questions about Perl 6 section from now on.

Meanwhile on perl6-users

Although there have been a lot of Perl 6 questions of late on the perl6-users mailinglist, the format doesn’t lend itself to browsing for answers very well. So yours truly is keeping these separate, hoping for either a better place to view mail threads, or people moving to StackOverflow to ask their questions:

Perl 6 in comments

Perl 6 Modules

New Modules:

Updated Modules:

Winding Down

Again, a busy week with a lot happening. Please check in again next week for more Perl 6 news!

2018.40 Lesser Than Two

Jonathan Worthington has done it again! Only last week did Merijn H. Brand‘s speed canary script drop below 2 seconds for the first time. In the past week, it dropped below 1.7 seconds twice already (at moment of writing). Which indicates a speed increase of almost 20%. Wendy van Dijk wrote a blog post titled “Perl 6 speed improvements over the years” to make sure everybody is on the same page with regards to this benchmark, with some nice comments!

Fortunately, this speed increase was corroborated by H. Merijn Brand with another benchmark. A simple object creation script that showed that, at least for that benchmark, Perl 6 is now faster than any version of Perl 5.

To describe how these speed increases came about, Jonathan Worthington wrote two blogposts:

Recommended reading if you want to get to the nitty gritty! Or, if you want a bit more of an overview, check out the August 2018 Grant Report. Or if you want to get in even deeper: an overview of changes in Moar.

Another 6.d Teaser

Zoffix Znet released another Perl 6 Diwali Teaser (/r/perl, /r/perl6 comments). It describes how atomic operations allow multiple threads to update variables at the same time without needing any locking. If you have another idea to promote Perl 6, please be sure to leave an issue in the Perl 6 Marketing Repo!

RED developments

Fernando Correa de Oliveira invited people to look at his new ORM called RED which resulted in quite some nice feedback on Reddit.

Rakudo.js Update

Paweł Murias reports on the progress of running Perl 6 in the browser using Parcel. And why he prefers it over Webpack.

File encoding support

Samantha McVey reports on her progress in implementing several additional streaming encoders / decoders for encodings such as Shift-JIS and UTF16 and how to deal with BOM‘s in the latter encoding.

A naive introduction to OOP

This one appears to have been slipping through the cracks for more than a month: uzl has written a very nice naive introduction to object orientation. It takes a real-life use case, and creates an app from that.

Naming of variables

In the fifth instalment of the series titled How naming of variables works in Perl 6, yours truly shows that although on the surface variables look very much the same in Perl 6 compared to Perl 5, but that appearances can be deceiving. Oddly enough, this did not incite any comments on Reddit. It did generate a lot of (positive) tweets from all over the world.

Perl  Small Stuff #11

Jo Christian Oterhals looked at whether Perl 6 can pass the Numberphile calculator tests. And comes to some interesting conclusions!

Fixing the syntax barrier

In an almost year old blog post, Christopher Chedeau describes his frustrations with syntax errors caused by false friends when moving between programming languages. Zoffix Znet and Ralph Mellor had some thoughts in relation to Perl 6, specifically with regards to use isms.

House cleaning

Stefan Seifert describes how he has deployed a little Perl 6 daemon in production by using the operating system’s IO notifcation features that are exposed in Perl 6 as an asynchronous Supply of file change events. A nice example of how Perl 6 can gradually be used in an environment otherwise dominated by Perl 5.

Squashathon Ahead

On the 6th of October (anywhere in the world) it will be Squashathon Day again! This month, since it is October, your Pull Requests will also count towards the Hacktober Fest, thanks to the procedure put in place by Aleks-Daniel Jakimenko-Aleksejev. Looking forward to see many of you active next Saturday!

Core Developments

  • Ticket status of last week and the month of September.
  • Timo Paulsen made it possible to have the JIT add comments to the spesh log.
  • Bart Wiegmans continued his work on making fork work properly in Rakudo Perl 6 on operating systems that have a native fork() functionality. He also removed support for the JIT-log: this is now incorporated in the spesh-log and implemented support for a perf map on Linux.
  • Zoffix Znet fixed a small-int / big-int boundary division that occurred when multiplying / dividing two integer values.
  • Elizabeth Mattijsen optimized various forms of for iterating over ranges and sequences, making something like for 1,3...999999 about 150x faster. She also made [1,2,3], about 1.4x as fast.
  • Samantha McVey updated Moar and Rakudo to use the Unicode 11.0.0 semantics and grapheme databases.
  • And many other smaller fixes and improvements.

Meanwhile on Twitter

Meanwhile on StackOverflow

Meanwhile on FaceBook

Meanwhile on perl6-users

Perl 6 in comments

Perl 6 Modules

New Modules:

Updated Modules:

Winding down

When I said last week:

…a backlog of optimizations will see the spotlight in the week to come. Hopefully giving some really good news next week…

I couldn’t hope for the improvements we’ve actually seen! As Jonathan describes in his blog posts, there is more to come. But probably not in time for the 2018.10 Rakudo compiler / Rakudo Star release. So let’s enjoy the ride and see you next week for more Perl 6 news!

2018.39 Less Than Two

The speed canary script run daily by Merijn H. Brand has dropped below 2 seconds wallclock time for the first time in the history of the test being run (FaceBook comments). Since then, this has happened one more time (at moment of writing): there’s always a bit of noise involved with these timings. Check out the raw version of the speed log, if you want to keep up to date.

Rakudo 2018.09 Compiler Release

Aleks-Daniel Jakimenko-Aleksejev and Samantha McVey have done it again: release MoarVM and the Rakudo Compiler. Claudio Ramirez took this as an immediate cue to update the directly installable Linux distributions. Kudos to all involved!

Thoughts on using Perl 6

Alex Schroeder explains in his blog post how he has been maintaining the Oddmuse wiki software since 2003, and that he is now learning Perl 6 using a real project (Reddit comments).

Math::Matrix

Herbert Breunung continued his series of blog posts about Math::Matrix:

Documentation from the CLI

bdmatatu describes the quick hack with which it is possible to look at the documentation of docs.perl6.org from the command line.

Worth learning

EarlTheGray enquired about Perl 6 on Reddit, specifically about the functional programming side of it. And that there didn’t appear to be much of an active Perl 6 community. Yours truly guesses we need to get out more 🙂

Core Developments

  • Ticket status of last week.
  • Samantha McVey implemented the UTF16le and UTF16be streaming encoding / decoding while following the behaviour of Perl 5 with regards to BOMs.
  • Tobias Boege fixed an issue with the recursion check of non-dwimmy hyperops.
  • Zoffix Znet continued his tireless work in preparation for the 6.d release, specifically focussing on consistent behaviour of Rats.
  • Elizabeth Mattijsen fixed an issue with QuantHash.ACCCEPTS with regards to other QuantHashes of the same type.
  • And many other smaller fixes and improvements.

Meanwhile on Twitter

Meanwhile on StackOverflow

Meanwhile on FaceBook

Meanwhile on perl6-users

Perl 6 in comments

Perl 6 Modules

New Modules:

Updated Modules:

Winding Down

A week with relatively little happening in the Perl 6 core, but all the more outside of it, judging by the number of tweets and the number of new / updated modules in the ecosystem. With the release now out of the door, a backlog of optimizations will see the spotlight in the week to come. Hopefully giving some really good news next week. See you then!