‘Sup everybody, it’s timotimo again with the weekly Perl 6 change recap! Before any of the nice changes this past week has to offer, I’ll link to all the lovely advent calendar posts that were published in that time:
Advent Calendar
- Day 8 – Grammars generating grammars by tadzik
- Day 9 – Perl 6 and the wolf packby sufrostico
- Day 10 – Perl 6 Pod by Dave Rolsky
- Day 11 – The Source will be with you, always by ab5tract
- Day 12 – I just felt a disturbance in the switch by masak
- Day 13 – A new trait for old methods by gfldex
- Day 14 – A nice supplies: syntactic relief for working with asynchronous data by jnthn
Changes
- Rakudo finally has support for UDP sockets via IO::Socket::Async (jnthn)
- Also, you can now get the native descriptor behind an IO Handle (fileno on linux) (jnthn)
- permutations is now multiple times faster and more improvements are already on the way (grondilu)
- $foo++ and ++$foo on native ints can now become extra fast under many circumstances (TimToady)
- This nasty case of precompilation issues is now no more (nine)
- A whole bunch of operations – methods and subs – have been reviewed for their interaction with shaped and native shaped arrays (jnthn)
- Pair.perl will now give the LHS parenthesis so that round-tripping works for things that look like identifiers (like undefined values/type objects) (zefram and lizmat)
- Code-related objects (which users are very unlikely to want to override) like Code, Regex, Block are now looked up directly in the Setting by the compiler (jnthn)
- Handling of “need to sink this” in the compiler has been refactored quite a bit (“Great Sink Refactor”, TimToady)
- More methods on roles are now exempted from punning, which prevents a bunch of errors claiming you’d have to implement some methods because a role requires them (jnthn)
- Native shaped arrays can now be used together with subs and operators that operate on natives arguments with “is rw” – notably ++ and — (timotimo)
- CompUnit::RepositoryRegistry is the new CompUnitRepo and a bunch of things have been moved around (nine)
- .hyper.map and .race.map work again (though .hyper.grep and .race.grep are still broken) (timotimo)
- “fail” now reliably gives an error when used outside any routine (jnthn)
- Many metaops (reduce ops, Z and X metaop) will now respect and inherit thunkyness (like the xx op re-evaluating its LHS every time, or short-circuiting behavior of && and friends) (TimToady)
- A few features that won’t be properly specified in time for christmas have been marked experimental and now require “use experimental” statements: macros and “is cached” (jnthn)
- Installing distributions that have more than one binary now locates the corresponding scripts properly (hoelzro)
I think that’s about everything. But even if I forgot to mention something, you can clearly see that there’s some nice progress going on here! 🙂
Starting today, The Perl Foundation is looking for feedback from the community to see if Jonathan’s grant should be extended to pay for another 110 hours.
And with that I’ve already reached the finish line of todays advent calendar weekly post!
See you again next week!