2018.29 Cross-pollination

With a pollen-rich environment this time of year in the Northern hemisphere, it is to be expected that some cross-pollination will take place. In an unexpected twist, the question “What are some features new to Perl 6 that should be adopted by other languages?” created some interesting answers on Quora and Reddit. Which then gave rise to the more expected question “What feature in another language would you like to see adopted in Perl 6?” with equally interesting answers.

New Marketing Poster

Futureproof Perl 6Zoffix Znet has created a thought provoking marketing poster in the Perl 6 Marketing repository (FaceBook comments). It references Paul Graham‘s concept of a hundred year programming language. A quote from this blog post of 2003:

There are some stunningly novel ideas in Perl, for example. Many are stunningly bad, but that’s always true of ambitious efforts. At its current rate of mutation, God knows what Perl might evolve into in a hundred years.

To which yours truly can only add with 20/20 hindsight: I think we’ve had most of the “stunningly bad ideas” in Perl 6 by now.

Cancellation

Zoffix Znet announced in his blog post titled “Cancellation of Perl 6 Constants and Rationals Grant that he will cease working on the “Bugfixing and Performance of Rationals Fixing Constraints on Constants grant.

In conclusion, I believe were this grant to be completed, the result would differ significantly from what was voted on during grant’s proposal. For that reason, I wish to cancel it.

Yours truly would like to thank Zoffix Znet for all the (now volunteer) work that he has put into this.

Core Developments

  • Ticket status of last week.
  • Potential breaking change: the is required trait does not make sense on private attributes in a class because private attributes will never be assigned by the default object building logic (aka .new). To avoid confusion, adding is required to a private attribute is now a compilation error.
  • Jonathan Worthington did an enormous amount of work on providing the prerequisites for the next round of speeding up Rakudo Perl 6, and Timo Paulssen helped him with this. Unfortunately, this also meant some ecosystem breakage that is in process of getting fixed. Hopefully all of this will be summarized in a soon to be published blogpost.
  • Samantha McVey continued her work on low-level hashes in MoarVM, now using a SipHash based algorithm. While doing this, she also managed to reduce the memory usage of each key in every hash by 8 bytes.
  • Zoffix Znet fixed several issues regarding the initialization of decoders in IO::Handle, and the immutability of the result of Proc.command. He also did a lot of preparation work for the future 6.d language version.
  • Aleks-Daniel Jakimenko-Aleksejev focused on various issues with regards to the installation of Rakudo.
  • Daniel Green fixed an issue with regards to decontainerization of !=.
  • Elizabeth Mattijsen fixed an issue with concatenation of two Junctions. She also improved the speed of .sum on native integer arrays (1.2x as fast normally, 35x as fast with the new :wrap named parameter) and improved the immutability of Map while making initalization of a Map between 1.5x and 4x as fast.
  • And many other smaller fixes and improvements.

Meanwhile on Twitter

Meanwhile on FaceBook

Meanwhile on StackOverflow

Meanwhile on perl6-users

Perl 6 in comments

Perl 6 Modules

New Modules:

Updated Modules:

Winding Down

On the hottest day of the year (so far), it was quite a job again to get the Perl 6 Weekly together. So much happening! Yours truly hopes to be able to keep this up until next week. See you then!

Advertisements

2018.28 Введение в Perl 6

Alexander Kiryuhin has made it possible for yet another 170 million people in the world to get introduced to Perl 6 in their native language: Russian (Большое спасибо!). This now brings the number of translation of the original Introduction to Perl 6 to 12: Bulgarian, Chinese, Dutch, French, German, Indonesian, Italian, Japanese, Portuguese, Russian, Spanish and Turkish. Which means that now over 3 billion people can learn about Perl 6 in their native language.

Credit where credit is due

Zoffix Znet describes how bugs in a script caused some contributors not to be mentioned in the monthly Rakudo compiler releases. His blog post “The Missing Contributors of Perl 6 describes in detail how the bugs got introduced, how it affected the report generation, and how a Reddit post from a person claiming to be the only person to never receive any credit for their work on Perl 6, got him to look into this. In the end, the following people (who are not already in the CREDITS of Rakudo Perl 6), were not credited when they should have been:

A. Sinan Unur, Alexey Melezhik, Antonio, Antonio Quinonez, Benny Siegert, bitrauser, brian d foy, Brian Duggan, cc, Christopher Bottoms, Coleoid, coypoop, Dabrien ‘Dabe’ Murphy, Dale Evans, Dan Zwell, Daniel Dehennin, Daniel Perrett, Dave Olszewski, David Brunton, David H. Adler, Dominique Dumont, Douglas L. Schrag, elenamerelo, Emeric54, Eric de Hont, fireartist, Fritz Zaucker, gotoexit, Jake Russo, James ( Jeremy ) Carman, Jason Cole, Jeff Linahan, Jim Davis, JJ Merelo, jjatria, Joel, John Gabriele, Julien Simonet, LemonBoy, Marcel Timmerman, Mario, Mark Montague, Martin Barth, Martin Dørum Nygaard, Martin Ryan, Mathieu Gagnon, mryan, Nadim Khemir, Nat, Neil Shadrach, Nic Q, okaoka, parabolize, Patrick Sebastian Zimmermann, Paul Smith, Philippe Bruhat (BooK), Rafael Schipiura, raiph, Robert Lemmen, Robert Newbould, Salvador Ortiz, Siavash Askari Nasr, Simon Ruderich, Skarsnik, Sylvain Colinet, sylvarant, vinc17fr, VZ, wukgdu.

Again, kudos to all these people and the work they have done for Perl 6. Apologies for not having done this at the proper time. Also, always remember Hanlon’s razor!

Documentation Squashathon results

As JJ Merelo tweeted, it was Squashathon time again last weekend. You could use this very useful flowchart to find out where the best place would be for you to start. A flowchart that will generally be useful for some time to come! And the results are in: 18 people created 154 commits and 7 pull requests! The next Squashathon will be on 4 August.

JITting quite a while already

Nudged by a comment on Hacker News, Bart Wiegmans explains that MoarVM has had a JIT for quite some time already. That maybe the naming of spesh and jit in MoarVM (as opposed to JIT frontend / backend) may be the root cause for this lack of understanding.

Perl 6 Workshops at TPC in Glasgow

There will not be one, but two whole day Perl 6 workshops on Monday 13 August at the Perl Conference in Glasgow:

Each priced at a mere £125 (about 142 euro / 167 US$), you can buy your tickets here.

Five Years of SPW

Lee Johnson is looking back on five years of the Swiss Perl Workshop, which had quite a lot of Perl 6 related activities, such as a hackathon to work out the “Great List Refactor” needed for the Christmas 2015 release of Rakudo Perl 6! This year’s Swiss Perl Workshop will be in Bern on 7 / 8 September. You can still submit a talk. And of course, you can still register for this free workshop!

Understanding Perl 6 concurrency

A question on /r/perl6 created an interesting set of links if you want to better understand concurrency in Perl 6!

New sticker

Yours truly introduced a new sticker at the Dutch Perl Workshop last weekend. These will be available for free at all events that yours truly is able to visit in the foreseeable future. Interested in getting a few beforehand? Contact me on #perl6 on irc.freenode.net! Or download the image and make them yourself, or order a local sticker maker to make ones for you!

Core developments

  • Ticket status of last week.
  • Jeremy Studer and Ben Davies continued working on improving MoarVM JIT expression templates.
  • Jonathan Worthington continued his work on refactoring handling of Scalar containers, specifically focused on fact collection for spesh, inlining and de-optimizations. This work has now been merged.
  • Samantha McVey fixed a number of compiler warnings in different compilers and continued her work on making the implementation of hashes on MoarVM faster and more tamper-resistant. She also made the low-level native int to str conversion 2x as fast by not relying on sprintf.
  • Jonas Kramer made sure that the error that is thrown when a module can not be found for loading, shows the line in which the use statement occurs.
  • And some smaller fixes and tweaks.

Meanwhile on Twitter

Meanwhile on FaceBook

Meanwhile on StackOverflow

Meanwhile on perl6-users

Perl 6 in comments

Perl 6 Modules

New Modules:

Updated Modules:

Winding Down

Quite a busy, but very “gezellige” week. Meeting old friends at the Dutch Perl Workshop, is one of the best things you can do on a hot weekend. The Perl Community at its best! Looking forward to all of the other Perl events in the future. Until then, see you next week for another Perl 6 Weekly!

2018.27 Surveyed

The first Perl 6 Survey is over. There was quite a discussion on the applicability of many options on FaceBook and other places. The 220 responses produced a raw result for which JJ Merelo created a front page and some nice graphs from the raw data as well:

Conference Season

The Dutch Perl Workshop will be held coming weekend in Arnhem, the Netherlands! The following Perl 6 related presentations will be given on Saturday:

On Sunday, there will be a Hackathon (with a slight Perl 6 bias) as well as an Introduction to Perl 6 workshop given by Andrew Shitov. Registration is still open!

In a few weeks time, the (European) Perl Conference in Glasgow will take place. This also will have workshops, like Introduction to Perl 6 by Jeff Goff. And it will have the following Perl 6 related presentations:

And here also: registration is still open!

Squashathon Time Again

This Saturday (7 July ± 12 hours) will be the next Squashathon again, with the emphasis on Perl 6 documentation. All help will be deeply appreciated!

Learn Perl 6 in Y minutes

One of the first Perl 6 introductions (on Learn X in Y Minutes), namely Where X=perl6, now also has a Spanish version. Kudos to uzl for this work!

More Perl 6 Benchmarks

Shlomi Fish has started a repo for Euler problems based benchmarks (try saying that 10x in a row).

Blog Posts

Core Developments

  • Ticket status of last week and the month of June.
  • The 2000-issue barrier has been broken for the Rakudo repository. That same barrier was broken last month for the Perl 6 documentation, by the way.
  • Jeremy Studer and Ben Davies added many JIT expression templates. It looks that the original author of the JIT expression template mechanism (Bart Wiegmans) is now in a minority! Which is a good thing, as it increases the Bus Factor!
  • Samantha McVey continued working on speeding up the underlying implementation of hashes in MoarVM.
  • Jonathan Worthington continued his work on refactoring the way scalars work and get optimized in MoarVM.
  • Bart Wiegmans fixed an issue with the JIT on Windows.
  • Tom Browder made sure that newlines are preserved in pod input and output blocks.
  • Zoffix Znet slew a load of bugs related to metaop-assign, and made sure it optimizes better.
  • Aleks-Daniel Jakimenko-Aleksejev added a core developer helper tool to consistently report speed improvements on code.
  • Elizabeth Mattijsen made .first and .first(:end) about 2x as fast. She also fixed .perl roundtripping on Set|Bag and Mix as well as updates on very large BagHash values.
  • And many smaller fixes and improvements.

Meanwhile on Twitter

Meanwhile on FaceBook

Meanwhile on StackOverflow

Meanwhile on PerlMonks

Perl 6 in comments

Perl 6 modules

New Modules:

Updated Modules:

Winding Down

If you’re looking for warm and sunny weather, be sure to join us at the Dutch Perl Workshop. With around 30 degrees Celsius, it’s going to be a hot one. If we don’t see you there, we’ll see you again with next week’s Perl 6 Weekly!

2018.26 Surveying

The very first Perl 6 User Survey (June 2018) is now available for you to take part in (Reddit comments). If you are reading this, you are at least interested in Perl 6. Which makes you an excellent candidate for taking this survey. So please do!

MasterDuke joining

Daniel Green has joined the group of Rakudo Perl 6 core developers with a commit bit already some 10 days ago. Yours truly, trying to get a Perl 6 Weekly published at the Perl Conference in Salt Lake City, forgot to mention this last week. A belated welcome! Looking forward to more good things done by him.

Through the Mists of Time

Through the hard work of David Farrell (restoring all blog posts of Perl.com) one can see that the Perl 6 Weekly has quite a history: from July 2002 until August 2005, Piers Cawley has done the hard work of writing the earliest incarnation of the Perl 6 Weekly that yours truly could find. By the way, this is the 204th Perl 6 Weekly since Timo Paulssen started writing them again in February 2014. Yours truly has not been able to find much of the second and third generation Perl 6 Weekly: links welcome!

Rakudo Compiler 2018.06

Thanks to the work of many, but specifically our fearless release manager Aleks-Daniel Jakimenko-Aleksejev, last week saw the Rakudo Compiler release 2018.06, which was immediately followed by a new Docker container announcement and new Linux packages.

Videos from The Perl Conference

All of the videos of the Perl Conference in Salt Lake City are now online. These are the videos that either directly or indirectly relate to Perl 6:

Introduction to Application Development

Patrick Spek has sent a grant proposal to the Perl Foundation: Introduction to Application Development with Perl 6.

A book about getting started with application development in Perl 6. It will cover installation of Perl 6, the basics of the language, how to use the perl6 binary to run programs, how to create a terminal application and a GUI application using GTK::Simple.

Please leave a comment if you have an opinion about this grant proposal!

Sake anyone?

Aleks-Daniel Jakimenko-Aleksejev is reviving an old project of Jonathan Scott Duff: Sake, a Perl 6 make-a-like inspired by rake. He invites everyone to participate in its development. It is in early stages of development but is already usable for many things.

How to construct a hash

Juerd Waalboer posed the question on what would be the best way to document the syntax for creating hashes. Basically { } versus %( ). Apart from the discussion itself, this also drew some attention on Reddit and Twitter.

Blog Posts

Core Developments

  • Ticket status of past week.
  • Samantha McVey changed the hashing algorithm on MoarVM to use Fibonacci hashing.
  • Jonathan Worthington, Samantha McVey, Bart Wiegmans and Jeremy Studer worked a lot on making MoarVM internals more efficient, by adding more JIT expression templates, and by refactoring using the new spesh-plugin infrastructure.
  • Rob Hoelz fixed an issue with the HOME directory with regards to the CompUnit registry.
  • Stefan Seifert fixed a long-standing race condition that was responsible for a flapping test, after Nick Logan figured out the underlying cause.
  • Steve Mynott made sure that the clang compiler is used on OpenBSD as gcc doesn’t seem to cut it there anymore.
  • And many smaller fixes and improvements.

Meanwhile on Twitter

Meanwhile on FaceBook

Meanwhile on StackOverflow

Meanwhile on PerlMonks

Meanwhile on perl6-users

Perl 6 in comments

Perl 6 modules

New Modules:

Updated Modules:

Winding Down

It was a very busy week in Salt Lake City for yours truly. Since it was quite busy on the channels as well, it was hard to keep track of all the things happening. Hope not too much was missed this week. See you again next week, that time from the southern part of the Netherlands again!

2018.25 A Quick One From Salt Lake City

The Perl Conference in Salt Lake City kicked off today with a thought-provoking keynote by Vicky Brasseur on the Importance of Ecosystem viability in the light of a possible ongoing cascade effect in the Perl community. Yours truly hopes to have a link to the video version soon!

Sponsor of \x1F98B

It came to the attention of yours truly that Zoffix Znet has sponsored the unicode symbol 🦋 (aka \x1F98B, aka “BUTTERFLY”) on behalf of the Perl 6 Community. Kudos! FWIW, it looks like 🐪 (aka \x1F42A, aka “DROMEDARY CAMEL”) is still available for sponsoring!

Polish Perl 6 First Steps Experience

Zoffix Znet argues in his blog post (/r/perl and /r/perl6 comments) that it is time to make sure that the Perl 6 experience for readers of the coming Learning Perl 6 book by brian d foy is going to be as smooth as possible. He urges all of us to try that out and make sure we’ve got rid of all of the rough edges.

TPF Grant reports

The past week saw two Perl Foundation Grant reports: Perl 6 CaR TPF Grant: Monthly Report (June, 2018) by Zoffix Znet and No Major Breakthroughs by Timo Paulssen (Reddit comments). Both interesting reads!

A new perl 6 blogger

The past months yours truly apparently missed a number of nice Perl 6 related blog posts by Jo Christian Oterhals:

All very entertaining reads, especially if you’re coming from Perl 5

Takers for a Russian perl6intro?

Naoum Hankache is looking for someone to translate his excellent Introduction to Perl 6 to Russian. Please contact him if you think you’re up to it!

Core Developments

  • Ticket status of past week.
  • Jonathan Worthington and Samantha McVey did a lot of low-level refactoring and optimizing on the MoarVM and JVM backend, which will allow for quite a number of efficiency improvements in the coming weeks.
  • Jeremy Studer did further refinements on making signal values work correctly across multiple OSes. He also fixed an issue that manifested itself by .assuming having problems with certain Signatures.
  • Zoffix Znet fixed an issue with Map.list returning a Seq instead of a List. He also did a lot of work on the CaR grant.
  • Elizabeth Mattijsen made .minpairs/.maxpairs about 25% faster. She also fixed an issue with Buf.unpack that she had introduced earlier.
  • And many smaller fixes and improvements.

Meanwhile on Twitter

Meanwhile on StackOverflow

Meanwhile on PerlMonks

Meanwhile on perl6-users

Perl 6 in comments

Perl 6 Modules

New Modules:

Updated Modules:

Winding Down

A little shorter than usual maybe. Or maybe not. Anyways, next week’s Perl 6 Weekly may either be a day early or a day late, as yours truly will be en route for most of next Monday. Be it early or be it late, see you the next time for more Perl 6 news!

2018.24 Discussion Redirect

Zoffix Znet took action on the news of last week that our old IRC log website was no longer in the air out of GDPR considerations. In a blog post entitled “How To Make Old #perl6 IRC Log Links Work” he explains how he wrote the algorithm to map references to the old log website to the secondary logger. After which Moritz Lenz added a smart redirect on the old log website to make things more convenient. Meanwhile, Aleks-Daniel Jakimenko-Aleksejev has worked on making the same work for #moarvm, #perl6-dev and even previously-used #p6dev channels.

Spesh Plugins Merged

Jonathan Worthington merged his work on the MoarVM spesh plugin infrastructure, which started a good 6 weeks ago. In his blog post titled: Faster dispatches with MoarVM specializer plugins he explains the background, the problem, and how the new plugin structure will help optimizing in quite a few contexts (2.5x, 6.6x and 12x faster). All work that he’s doing as part of his most recent Perl Foundation grant.

Stack Hacking Improvements

The MoarVM internals work did not end with Jonathan’s work this week. Bart Wiegmans also published a blog post: Controlled Stack Hacking for the MoarVM JIT Compiler. He explains how a reorganization of some MoarVM internal data structures allows for much easier exception handling, reducing the memory footprint and general execution overhead as well.

Final Documentation Grant report

JJ Merelo has presented his Final Grant Report. Yours truly can only concur with the conclusions:

In general, I would say that the main objective of this grant, which was to improve the documentation, was achieved, not only by closing the outstanding issues, but also playing attention to channels where Perl 6 is mentioned and creating issues on the repo when it was needed.

And the additional reports that JJ Merelo has authored, are the icing on the very large cake!

Introduction to Application Development in Perl 6

Patrick Spek has sent in a Perl Foundation Grant Proposal to write a book about getting started with application development in Perl 6. Be sure to leave your comments!

Is Perl 6 faster than Perl 5 on average?

An interesting question on Reddit, with quite a few comments.

Running Perl 6 in Docker

Gabor Szabo shows how you can use a Docker image to run Perl 6 (Reddit comments).

Preliminary Schedule NLPW 2018

CowmelThere’s a preliminary schedule for the coming Dutch Perl Workshop, on Saturday 7 July 2018 in Arnhem, The Netherlands. So far, the Perl 6 presentations are in a majority! And on Sunday 8 July, Andrew Shitov is going to give a whole day “Introduction to Perl 6 Workshop“.

Other Core Developments

  • Ticket status of past week.
  • This week saw the 29000th commit in the Rakudo repository.
  • Jeremy Studer fixed an issue with the SIGBREAK signal on Windows.
  • Daniel Green made the NQP static optimizer convert +@a to the faster nqp::elems(@a) transparently.
  • Samantha McVey made maintenance of the ops / JIT expression templates easier by writing a support script that sorts them in the same order.
  • 陈梓立 added a non-metaop !~~ in NQP and did some NQP grammar cleanups.
  • Elizabeth Mattijsen added use isms 'Perl5' as a way to let Perl 6 allow certain Perl 5-like invocations (such as abs without parameters).
  • Stefan Seifert continued his work on being able to write meta-models in Perl 6 (rather than NQP).
  • And many other smaller fixes and improvements.

Meanwhile on Twitter

Meanwhile on StackOverflow

Meanwhile on FaceBook

Meanwhile on perl6-users

Perl 6 in comments

  • Not worried about obscurity by raiph.
  • You are doing it wrong by Reini Urban.
  • I am about to learn Perl 6 by haj.
  • Apologies if you’re not interested by raiph.
  • Implemented as Virtual Machines by jcrites.
  • Better tooling by smewp.
  • Perl 6 Modules

    New Modules:

    Updated Modules:

    Winding Down

    Quite a few very nice advancements this week! Some applications will see that more than others, at least the spectest seems to run about 1% faster. And that’s the worst case, as there’s not a lot of code there that runs repeatedly.

    Which brings me to something that does repeat: the Perl 6 Weekly. So see you next week, live from The Perl Conference in Salt Lake City!

    2018.23 Opened/Closed

    Jonathan Worthington has opened the Comma IDE Early Supporter Program for business with a simple Tweet.
    Comma IDE screen shot
    So if you’re a fan of using IDE’s, and you are or want to be working with Perl 6, now is your chance get this developer efficiency boost! (FaceBook and more FaceBook comments).

    Closed For Business

    After an 11-year run, Moritz Lenz has had to take the famous irclog.perlgeek.de website offline because of GDPR considerations, especially about the German implementation of them.

    I’m sorry, but I had to shut down the IRC logs.

    I have found no way to make public IRC logs compliant with the privacy policies enforced by the GDPR and its implementations.

    The source code of the underlying software is still available from GitHub. Use it based on your own judgement and understanding of the law.

    I’d like to thank all contributors, users and visitors for their support.

    Hopefully we will be able to host this service somewhere else really soon. In the meantime, logs for some Perl 6 related channels can be found on colabti.org: #perl6, perl6-dev, #perl6-toolchain and #moarvm. Comments can be seen on /r/perl, /r/perl6, Hacker News and Twitter.

    I think a BIG THANK YOU is in order for Moritz Lenz for this (and many other services) he has rendered to the Perl 6 community!

    No European TPC Venue for 2019 yet

    More Bad News. Thomas Klausner tells us that still no proposals to host The European Perl Conference in 2019. Please get working on your proposals and mail them to venue@yapceurope.org. Thank you in advance on behalf of all the current and future visitors!

    JJ Merelo’s Documentation Grant Completed

    JJ Merelo has completed his work on the Perl 6 documentation repository. His work is visible and we’re better for it. And he already has published a scientific report (Perl 6 documentation repository through time: dealing with issues) about it. Soon we should have the final grant report!

    Squashathon Results

    Last Saturday saw another Squashathon, this time focused on the Perl 6 bots. Among other improvements, all whateverable bots now support multifile gists. See the overview for more information.

    Perl 6 Tutorials at TPCiSLC

    There are still a few seats available at the Perl 6 tutorials at The Perl Conference in Salt Lake City (17 – 22 June 2018)!

    Also be sure to check out the The Perl Conference 2018 Newsletter: 2 June 2018 by Irish Pebbles.

    Call for Grant Proposals

    The May 2018 Round of Grant Proposals will close on June 9th. Make sure you get your Grant Proposals in! Whether they are for Perl in general, Perl 5 or Perl 6. Let The Perl Foundation help you do great things for the community!

    Blog Posts

    Core Developments

    • Ticket status of past week and the month of May.
    • Timo Paulssen and Samantha McVey fixed several issues that a recent Coverity scan uncovered.
    • Samantha McVey did several optimisations related to often used nqp::ops and sped up the NFA by using a cached grapheme iterator. And she fixed some issues with collation and the SHIFT-JIS encoding.
    • Stefan Seifert created JIT templates for several nqp::ops. He also continued his work on being able to write meta-classes in Perl 6, rather than in NQP.
    • Tom Browder did some more whitespace fixes with regards to Perl 6 pod.
    • Jeremy Studer further tweaked the new signals support, so that the Perl 6 code can be further simplified. He also fixed an issue with the value sent to a signal handler.
    • Elizabeth Mattijsen moved the experimental support for pack / Buf.unpack out of the setting (so that they will only become available after a use experimental :pack). She also made it possible to specify an :api value in all places where you could already specify a :version or :auth value.
    • And many other smaller fixes and improvements.

    Meanwhile on Twitter

    Meanwhile on StackOverflow

    Meanwhile on FaceBook

    Meanwhile on perl6-users

    Meanwhile on PerlMonks

    Perl 6 in comments

    Perl 6 modules

    New Modules:

    Updated Modules:

    Winding Down

    A very full, happy and a sad week. Hopefully next week only a full and happy week. See you then!