I found a bug in Perl 6 recently. Really I independently discovered one that was already reported. Here’s how to trigger it: 1 2 3 $ perl6 -e 'say <2147483648/3>' ===SORRY!=== Cannot find method 'compile_time_value' Any numerator of 231 or greater causes that error. Note that Perl 6 is perfectly happy to represent rationals of that size or larger: 1 2 $ perl6 -e 'say Rat.new(2147483648, 3)' 715827882.
I should’ve posted this earlier, but better late than never. We’re having the first MPM meeting in many years on Tuesday, January 26. Please see the meetup event for details. I’ll be speaking about Perl 6 and Arthur Goldstein will be giving a short intro-level presentation on Perl 5.
My article on Stepford for the Perl 5 advent calendar is now live. Maybe I can write an article on Perl 4 or Perl 7 for the trifecta? Stepford is a tool we wrote at MaxMind, Inc. to help automate our database build process. It’s like make but in Perl, and instead of writing a set of rules, you write a set of step classes and it puts them all together.
I wrote an article for the Perl 6 advent calendar, Perl 6 Pod, that just went live earlier this evening. I’ll also have a Perl 5 advent calendar article coming up soon on December 16. Am I the only person to write an article for both the Perl 5 and Perl 6 advent calendars this year? I guess we’ll find out on December 25.
This post got a lot of discussion on Hacker News that you might find interesting. I’ve been writing a fair bit of Perl 6 lately, and my main takeaway so far is that Perl 6 is fun. Pretty much everything I love in Perl 5 is still part of Perl 6, but almost everything I hate is gone too. $Love - $Hate = $Fun; Here are some of the things that I’ve been having fun with in Perl 6 …
For a long time, the DateTime::Locale distribution has been rather stale. It is built from the CLDR project data, which came in XML form. And not just any XML, but one of the most painful XML formats I’ve ever experienced. It’s a set of data files with complicated inheritance rules between locales (both implicit and explicit). Any data file can contain references to any other file. There are “alternate” and “variants” for various items.
In a discussion group about animal activism on Facebook, someone recently shared an article titled The Myth of the Ethical Shopper. It’s a really interesting piece about some of the problems with consumer advocacy aimed at encouraging people to buy sweatshop-free products. I highly recommend reading it. The discussion in the Facebook group was about how this piece might relate to efforts targeting consumers on behalf of animals, but I think the discussion got off on the wrong foot.
The organization formerly known as “autarch-code” is now called “houseabsolute”. I think some folks may not have wanted to transfer a repo to an organization named “autarch-code”. The new name is hopefully a little less “all about Dave”. I also changed the picture, though I really miss the old one, because I thought it was hilarious. I’ve saved it here on this blog for posterity. Am I insane? No, I’m not.
If you have a lot of distributions, you may also have a lot of .travis.yml files. When I want to update one file, I often want to update all of them. For example, I recently wanted to add Perl 5.22 to the list of Perls I test with. Doing this by hand is incredibly tedious, so I wrote a somewhat grungy script to do this for me instead. It attempts to preserve customizations present in a given Travis file while also imposing some uniformity.
In a discussion on #moose-dev today, ether made the following distinction: author tests are expected to pass on every commit; release tests only need to pass just before release I think this is a good distinction. It also means that almost every single “xt” type test you might think of should probably be an author test. The only one we came up with in #moose-dev that was obviously a release test was a test to check that Changes has content for the release.