The 1.22 trial release includes some small backwards incompatible changes in how DateTime->from_epoch handles floating point epoch values. Basically, these values are now rounded to the nearest microsecond (millionth of a second). This release also fixes a straight up bug with the handling of negative floating point epochs where such values were incremented by a full second. I’ve tested many downstream DateTime dependencies in the DateTime::* namespace. The only thing that broke was DateTime::Format::Strptime, for which I will release a backwards compatible fix shortly.
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.666667 So the problem was clearly somewhere in the compiler.
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.