2018.21 Mitigating Denial

Samantha McVey explains in an excellent blog post titled “Secure Hashing for MoarVM to Prevent DOS Attacks” how hash-based Denial Of Service attacks work, and what she has done so far and will do in the near future to prevent the evil-doers from getting their way. And how this may affect development and testing. Along with links how other programming languages have reacted to this kind of threat (/r/perl, /r/perl6 and FaceBook comments).

Your help is needed!

JJ Merelo describes the similarities between graffiti and the art of writing Perl 6 documentation. How you can be proud about your own contribution, but also about the ever-evolving result.

What do you think about Perl 6?

An interesting discussion on Reddit’s r/ProgrammingLanguages on the question:

So Perl 6 is a successor of Perl 5. It is a new Perl that changes language syntax and adds new features like Grammars. What do you think about Perl 6?

With some nice descriptions of the unique features of Perl 6 and how some people see its future.

CaR TPF Grant Report

Zoffix Znet has presented his (first) grant report for the CaR Grant. The progress has been mostly in getting a still better comprehension of the problem at hand, and how proposed solutions may or may not achieve the desired goals (Reddit and FaceBook comments).

Getting started with Sparrowdo

Patrick Spek has written a nice tutorial about the use of Sparrowdo titled “Getting started with Sparrowdo“. A must read if you’re looking into automating menial jobs.

Welcome Tom Browder!

It was not too long ago when Tom Browder submitted his first Pull Request. Since then, quite a few more Pull Requests were submitted by him. Last week he received a Rakudo commit bit so that he can now make changes to Rakudo without being Warnocked. Yours truly is looking forward to more contributions by him!

Core Developments

  • Ticket status of past week.
  • Samatha McVey kept working on improving the MoarVM hash implementation.
  • Christian Bartolomäus continued guarding the JVM backend from being left behind. Together with Jeremy Studer he also fixed an issue with the new nqp::splice op on the JVM backend.
  • Tom Browder fixed an issue unexpected pod table failures and an error in handling non-breaking whitespace in pod rendering.
  • Lucas Buchala tweaked Test‘s pass (so that it always returns True) and flunk (add a default message if none given).
  • Stefan Seifert speeded up module loading a tiny bit. Together with Zoffix Znet he also worked a lot on the array initialization internals.
  • Nick Logan fixed an issue with the distribution path format on Windows.
  • Elizabeth Mattijsen made @a.splice about 20% faster. She also implemented a new use p5isms pragma to disable “looks like a Perl 5 construct” compile time errors.
  • And many more fixes and improvements.

Other blog posts

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

Quite a diverse week again. Lots of blog posts. Not so many core developments just before the Rakudo Compiler Release 2018.05. But outside of that, wow! Can’t wait to see next week’s batch of goodies. So, until then!

Advertisements

2018.20 Committed Through Time

JJ Merelo has published a Technical Report titled “Perl 6 documentation repository through time: contributions through commits” (PDF) in which he describes how contributions have been distributed throughout the repository history, and what kind of changes have been brought by the Perl Foundation grant and other events. One of the products of the Curating and improving Perl 6 documentation TPF grant (First Grant Report).

Core Developments

  • Ticket status of past week.
  • Jeremy Studer implemented an nqp::slice op, which was then used by Elizabeth Mattijsen to make native array range slices (like @a[^10]) about 23x faster, and .splice on native arrays up to 2x faster.
  • Wenzel P. P. Peppmeyer fixed the output of the X::OutOfRange exception on very large arrays.
  • Christian Bartolomäus fixed various issues on the JVM backend again.
  • Stefan Seifert optimized the array initialization from a large list of literal values so that the JVM backend does not have any problems with it anymore either (apparently there was a limit of 255 arguments).
  • Daniel Green optimized some internal logic with regards to interpolating regexes into other regexes for a 30% speed increase in some cases.
  • Zoffix Znet fixed an issue with the use of attributes in shape declarations.
  • thundergnat made the stringification of Rats and FatRats up to 200x faster and fixed a number of issues along the way. FatRats can now be stringified to an arbitrary precision (although this will not happen by default, as that would break compatibility).
  • Samantha McVey implemented a new algorithm for string searching for when strings are represented as 32bit values internally. This made this particular function 4x to 15x faster.
  • Timo Paulssen fixed many small, but important issues in the MoarVM backend, related to GC and profiling.
  • Bart Wiegmans made sure some more opcodes are getting the full JIT treatment on MoarVM.
  • Aleks-Daniel Jakimenko-Aleksejev removed some not-working / obsolete Perl 4/5 to Perl 6 error messages / warnings.
  • And many other smaller fixes and improvements.

Blog Posts

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

Check in again next week for more Perl 6 news!

2018.19 The-Six-Percent Solution

Samantha McVey and Bart Wiegmans have been responsible for speeding up one of the real world speed tests by 6% in the past week (without making any changes to the code of the speed test itself). Samantha‘s part was making hash lookups and setting them 15% faster and some cases of looking up strings in a haystack up to 16x faster. Bart added JIT templates for quite a few opcodes that were used by the real world speed test.

Rakudo Star 2018.04

Steve Mynott has released Rakudo Star 2018.04, the recommended production-ready version of Rakudo Perl 6 for end-users. It contains all of the improvements of MoarVM / NQP and Rakudo of the past three months. Available as a source distribution, but also as directly installable Windows (64bit) and MacOS binary distributions. Pre-compiled Linux packages are also available, maintained by Claudio Ramirez.

Perl 6 syntax support on Github

With the merging of Add Pod 6 to the languages.yml Pull Request by Patrick Spek, we’re one step closer to having Github support Perl 6 pod. Alas, the final step(s) have not been taken yet. To be continued and concluded shortly, hopefully 🙂

Monthly Squashathon

Last Saturday saw the Monthly Squashathon, this time with the emphasis on the Perl 6 Documentation. Granada Perl Mongers played a large part in this: JJ Merelo described how you could help. All in all a very successful Squashathon, especially in Granada!

San Francisco Meetup

Last Sunday saw a Perl 6 Meetup in San Francisco. Alas, only 2 people attended, but starting a new regular meetup is always difficult. Keep up the good work!

Core Developments

  • Ticket status of past week and past month.
  • Stefan Seifert fixed a large number of sleeper issues caused by recent hash randomization changes, that would cause irreproducible builds, that would in turn cause many weird issues (especially for core developers).
  • Timo Paulssen fixed a problem in a helper function for P6Opaque debugging and made sure that allocations made for autoboxing a native will no longer be lost. He also fixed a long-standing issue with <after> and left/right word boundary checking.
  • Christian Bartolomäus fixed various issues with the numification of literals on the JVM backend.
  • Paweł Murias fixed some issues with longest literal ordering in NFA matching on the JS and JVM backends.
  • And many other smaller fixes and optimizations.

Meanwhile on Twitter

Blog Posts

Meanwhile on StackOverflow

Now more than 666 Perl 6 questions! Onwards to a 1000! Not surprising if you see the graph of the number of StackOverflow questions per quarter: last quarter saw the highest number of Perl 6 questions yet!

Here’s last week’s batch:

Meanwhile on perl6-users

Perl 6 in comments

Perl 6 Modules

New Modules:

Updated Modules:

Winding Down

One StackOverflow comment in the past week made yours truly smile very much:

.oO ( Python’s Py3 Plan vs Perl’s Butterfly Plan. A Python community cabal built an unsafe conventional nuclear reactor next door to their old wind power plant. They’ve now condemned the old plant and scheduled it for official demolition in 2020 even though it’s still windy. Meanwhile, after years of arguing about the future of power, with one Perl sub-community maintaining their old solar power plant and another building a LFTR thorium reactor (safe but currently mostly misunderstood or ignored), some friends of both communities have built cabling that allows power to be shared between the two plants. )

And with that smile I hope to see you all again next week for more Perl 6 news!

2018.18 Releases Galore

Two compiler releases (x 3: MoarVM, nqp and Rakudo), 17 new modules released to the ecosystem, 38 modules updated and more than 110 documentation commits. Quite a nice crop for a single week! Yours truly hopes that this Perl 6 weekly won’t be tl;dr.

Rakudo Compiler Release

Aleks-Daniel Jakimenko-Aleksejev not only released the Rakudo Compiler 2018.04. But he had to do a point release as well to fix a problem with floating point literals that showed up only hours after the original release. Measures have been taken to not have this type of problem occur again.

Meanwhile Steve Mynott has prepared a Rakudo Star 2018.04-RC2 for people to try. This also contains a MSI for Windows. And Claudio Ramirez is also preparing new packages for various Linux distributions.

Cro 0.7.5 Release

Jonathan Worthington released another milestone: Cro 0.7.5. Apart from many updates and improvements of existing modules, it brings two new modules as well:

Exciting new features for anybody wanting to write microservices with Perl 6!

CaR Grant Approved

The Bugfixing and Performance of Rationals Fixing Constraints on Constants Grant Proposal by Zoffix Znet has been approved and funded! Rejoice!

Pick that low hanging fruit!

Looking to get your hands dirty with some Rakudo Perl 6 work? There are lots of easy Rakudo Perl 6 tickets to fix. Talk to people on the #perl6-dev IRC channel if you need assistance in fixing them. We will all thank you for the fruits of your work!

Other core developments

  • Ticket status of past week.
  • Rakudo Perl 6 is green again for Debian packaging.
  • Jonathan Worthington removed a gotcha when running servers by making sure the server socket is closed if the client has closed the connection. He also fixed an issue with QUIT handling when using the Tappable interface and an issue with callframe and multi subs.
  • Samantha McVey reworked the way hashes hash on MoarVM to provide much needed randomness to mitigate ease of DOS attacks. She also fixed some issues with CJK Unified Ideograph codepoint names.
  • Timo Paulssen continued working on the remote debugging facility of Rakudo Perl on MoarVM.
  • Jeremy Studer continued to work on a slice op that should make slicing through (native) arrays much faster.
  • Zoffix Znet fixed issues with denormals and precision of the numeric parser and made the JVM less fragile.
  • Tobias Leich (welcome back!) added support for (native) shaped CArrays in NativeCall.
  • Paweł Murias fixed various issues in nqp and on the JVM backend.
  • Stefan Seifert fixed a problem with require that would occur if the compilation unit did not actually contain a module with the expected name.
  • Martin Barth made the X::NYI error clearer if there was no feature specified.
  • Aleks-Daniel Jakimenko-Aleksejev fixed an issue with .WHICH on Rats not being normalized, causing different Rat objects with the same value, to have different .WHICH values.
  • And many other smaller fixes and improvements.

Blogs Posts

Meanwhile on Twitter

Meanwhile on StackOverflow

Brock Adams has created a StackOverflow Report that shows statistics about who does what with Perl 6 on Stack Overflow, in case you’re interested in those numbers.

What a large number of questions (and answers!) this week!

Meanwhile on perl6-user

Meanwhile on FaceBook

Perl 6 in comments

Perl 6 Modules

New CPAN Butterfly Plan modules:

Other new modules:

Updated CPAN Butterfly Plan modules:

Other updated modules:

Winding Down

*phew* One of the larger Perl 6 Weeklies. Well, at least it feels that way to me. So time to say goodbye for this week. See you next week for more Perl 6 goodies from around the world!

2018.17 Docking Tau Station

Curtis “Ovid” Poe has opened Tau Station, a whole new take on Science Fiction MMOS, with a simple blog post (Reddit comments). A massive project that has been in development for many years, is now open for your pleasure!

For those who love to read, love to play, and love science, Tau Station offers a unique narrative experience which evolves with your choices. But be warned, in a post-Catastrophe galaxy where most people are just struggling to survive, there isn’t always a clear way forward or a happy ending to be found.

With a backend written in Modern Perl 5 from scratch.

So why mention this in the Perl 6 Weekly? Because it shows that Perl as a mindset is very much alive. And that we already have a Perl 6 module for converting between TauStation’s GCT and Old Earth Time. Who knows what the future will bring in interfacing with Perl 6 and Perl 5 in general, and Tau Station in particular?

RFC for Quality Assurance of Perl 6 Modules

Patrick Spek is looking for feedback on improving Dist::Helper by adding a Quality Assurance functionality. If you have any ideas about this issue, then please let them be known as comments to the issue!

Core Developments

  • Ticket status of past week.
  • Stefan Seifert fixed an issue with alignment of memory blocks in the nursery on picky architectures, after Robert Lemmen had found the issue.
  • Samantha McVey optimised the decoding of ShiftJIS.
  • Jonathan Worthington avoided a problem in subset constraints that was a regression.
  • And many smaller fixes, updates and improvements in preparation for the next Rakudo compiler release.

Blog Posts

Videos

Meanwhile on Twitter

Meanwhile on StackOverflow

Meanwhile on perl6-users

Meanwhile on FaceBook

With now more than 500 members in the Perl 6 Group!

Perl 6 in comments

Perl 6 Modules

New Modules (some of which I missed the previous weeks):

Updated Modules:

By the way, if you want to keep up to date on Perl 6 module uploads to CPAN, you can follow @perl6_cpan_new on Twitter, thanks to Shoichi Kaji.

Winding Down

After another week in which yours truly was on an emotional rollercoaster, it’s good to see that Perl 6 is getting out there more and more. Check in again next week for updates on all the things that have been happening, in the foreground and in the background!

2018.16 SO That!

JJ Merelo would like you to ask your Perl 6 question (also) on StackOvervlow, instead of just on the #perl6 IRC channel. Why?

Most questions are answered, and with a very good answer. And it stays there for ever, and they have good SEO mojo.

Which looks like a very good thing to yours truly.

rakudo.org gets a facelift

Zoffix Znet has been working on a new version of the rakudo.org website. This includes a downloads page with a much better user interface. Kudos!

WANTED – Perl 6 Historical Items

Zoffix Znet is also working on a facelift of the perl6.org website, and he needs your help.

The Perl 6 Programming Language Museum will be part of that effort and along with interesting tidbits of Perl 6 history, it’ll showcase past implementation attempts that may no longer be in active development today. Since I don’t know much about what happened before I came to the language sometime in 2015, I need your help in collecting those tidbits.

So if you know something, or you know someone who knows something, please see his blog post for details so that we can be sure that this bit of history will be preserved for posterity.

perl6.org in Chinese

Work has recommenced on translating the perl6.org website to Chinese. This effort could definitely use more eyes and hands. If you’re capable of helping out, then please do!

Core Developments

  • Ticket status of past week.
  • Timo Paulssen fixed an issue about the interaction of spesh and deserialization of constant values. He also made sure that valgrind and similar debugging tools produce less noise during global destruction.
  • Samantha McVey made sure that MoarVM / nqp / Rakudo build on Solaris.
  • Zoffix Znet fixed the precision / value drift on Complex literals, which is causing some ecosystem fallout because tests now fail because they check against a drifted value (see also Low Hanging Numeric Fruit).
  • Tobias Leich (welcome back!) fixed a number of issues that NativeCall had when interfacing with C++ libraries.
  • And many other smaller fixes and improvements.

Other Blog Posts

Meanwhile on Twitter

Meanwhile on StackOverflow

Meanwhile on perl6-users

Meanwhile on PerlMonks

Perl 6 in comments

Perl 6 Modules

New Modules:

Updated Modules:

Winding Down

The past week was quite exhausting for yours truly. Cancer sucks. Losing a family member to cancer, sucks. But life goes on. So see you next week for more news from the Perl 6 world!

2018.15 Perkenalan Bahasa Pemrograman Perl 6

Heince Kurniawan has created an Indonesian translation of Naoum Hankache‘s Perl 6 Introduction, which gives you a quick overview of the Perl 6 programming language, enough to get you up and running (Reddit comments). This now brings the total of translations to 11: Bulgarian, Chinese, Dutch, French, German, Italian, Japanese, Portuguese, Spanish, Turkish and now Indonesian. I wonder if more than half of the world’s population can now learn about Perl 6 in their native language!

Squashathon Results

This weekend saw yet another Squashaton, this time with a focus on tickets that needed tests. Aleks-Daniel Jakimenko-Aleksejev gave an overview of the results. And there is also an all-time overview of past, present and future Squashatons!

Rational Grant Proposal

Zoffix Znet has submitted a grant proposal entitled “Bugfixing and Performance of Rationals Fixing Constraints on Constants” to the Perl Foundation (Twitter announcement). Please be sure you read his plans and let TPF know what you think of it! Yours truly supports this grant request wholeheartedly.

Upcoming Perl Workshops

All of these events can use volunteers and sponsors. Please contact the organisers if you would like to help in such a capacity.

Core Developments

  • Ticket status of past week (with no more tests marked as “test needed” thanks to the Squashathon).
  • Samantha McVey significantly improved the collapsing of strands (the parts that make up a string on MoarVM), which e.g. happens when parsing a regex. This is now 4x faster by taking advantage of SIMD instructions. Also indexing has been made 50% faster when the needle is internally stored with a different number of bits than the haystack.
  • Zoffix Znet worked a lot on the efficiency of Nums and improving associated error messages. He also fixed a crash that would occur in some situations where a loop would have both a FIRST as well as a LAST phaser. And he made dispatch:<var> at least 7x faster (such as in *.&uc). And exceptions that happen in END are now shown with their backtrace.
  • Jonathan Worthington reduced the number of allocations in a number of situations, fixed an error with .native-descriptor on closed handles and fixed a problem that prohibited building of MoarVM on big-endian systems.
  • Elizabeth Mattijsen improved the performance of native arrays with regards to initialization, iterating and the use of .splice. She also improved the efficiency of .roll in many situations.
  • And many other smaller fixes and improvements.

Blog Posts

Videos

No videos from the German Perl Workshop just yet. But there is one from a recent London Perl Mongers meeting:

Meanwhile on Twitter

Meanwhile on StackOverflow

Meanwhile on FaceBook

  • Wendy van Dijk:

    There’s a new Perl 5 book and it is written by Laurent Rosenfeld. It’s in French and it’s self-published. Kudos! (I got a signed copy and proud as hell): Programmation fonctionnelle en Perl: Améliorez la puissance expressive de vos programmes. Oh, and by the way, this is the first time anybody anywhere wrote & published a Perl 6 book first (Think Perl 6), and after that a Perl 5 book. Also, one book in English, and then a book in French.

  • Jeff Goff:

    ANTLR4::Grammar v0.5.0 released – it translates 45 of the grammars in the corpus to valid Perl 6 grammars. The next few releases will be making sure the grammars correspond to the original.

Meanwhile on perl6-users

Meanwhile on PerlMonks

Perl 6 in comments

Perl 6 Modules

New Modules:

Updated Modules:

Winding down

Quite a busy week for yours truly again. Being at the excellent German Perl Workshop for 5 days sorta messes up your schedule. Fortunately there was plenty of WiFi and 4G to be able to do some work as well, especially at Saturday’s Hackathon. Two Perl 5 books were sold at the Perl swag booth ran by Wendy van Dijk. And more than 30 Perl 6 books! The times, they are a-changing. See you next week for even more changes!