Zoffix Znet did a massive amount of work on the IO Grant. Some of the highlights:
- Clean up
&open
andIO::Path.open
. - Clean up and improve all
spurt
routines. - Give $*TMPDIR a container.
- Implement
IO::Path.extension 2.0
. - Fix ambiguity in empty extension vs no extension.
- Implement
IO::Path.concat-with
. - Remove
IO::Path.abspath
. - Make
IO::Path::*
actually instantiate a subclass. - Make
IO::Path
throw when path contains NUL byte.
All in all a very good weekly result!
Other Core Developments
- Samantha McVey made literal string matching (aka
nqp::index
) 2x faster, by either using the Knuth-Morris-Pratt algorithm on Linux, or the Crochemore-Perrin algorithm on Windows and MacOS. - Jonathan Worthington added support for serialization/deserialization of native hashes, and wondered how we could have done so long without.
- Elizabeth Mattijsen implemented support for
(*-N)
for.head
and.tail
.@a.head(*-5)
will now produce all values of@a
except the last 5.@a.tail(*-5)
will now produce all values of@a
except the first 5. And this is all lazy onSeq
uences. - Zoffix Znet also awesomified the
unhandled Failure in DESTROY
message, as well as implemented askip-all
option toTest
‘splan
. - Lloyd Fournier fixed an issue with
Code.ACCEPTS
. - TimToady made sure that
for $x()
will no longer be a Perl 5 confusion type error. Instead, it will now only die if there is a space before the()
. - Elizabeth Mattijsen also continued her work on set operators and coercions to / from
Set
s,Bag
s andMix
es. Some improvements are like 250x faster, others just a few % (but those were generally done to really hot code paths and/or to reduce memory pressure). - And many more improvements and smaller bug fixes.
Blog Posts
- Customizing META6::bin settings for regular usage by Alexey Melezhik.
- Module All The Things! by Wenzel P. P. Peppmeyer.
- Encrypting Passwords in Perl 6 using crypt and SHA-512 by Gábor Szabó.
- You won’t believe this one quick Perl 6 optimization hack! by Jeffrey Goff.
- All things being equal, not all things are
eqv
by brian d foy. - Make Children, not War by Wenzel P. P. Peppmeyer.
- Strange (to me at least) by usenet_alias.
- Fork All The Things! by Wenzel P. P. Peppmeyer.
Meanwhile on Twitter
- Added forward/reverse support to
SSH::LibSSH
by Jonathan Worthington. - Adding a plugin to ignore users by Zoffix Znet.
- Constants are compile time by Zoffix Znet.
Meanwhile on StackOverflow
- Why doesn’t Perl 6’s try handle a non-zero exit in shell()? by brian d foy.
- Can I introspect a variable to directly discover what subset it was declared with? by Christopher Bottoms.
- How do I install local modules? by Christopher Bottoms.
- Where should I catch a Perl 6 warning control exception? by brian d foy.
- Should this Perl 6 CATCH block be able to change variables in the lexical scope? by brian d foy.
- When would I want to resume a Perl 6 exception? by brian d foy.
Ecosystem Additions
- Failer by Zoffix Znet.
- Sparrowdo::Rvm by Alexey Melezhik.
- App::Uni by Will ‘Coke’ Coleda.
- Slippy::Semilist by Wenzel P. P. Peppmeyer.
- GraphQL by Curt Tilmes.
Winding Down
Apart from these visible results, a lot of work is being done by TimToady, Bart Wiegmans and Paweł Murias that hasn’t come to full fruition just yet. Yours truly is very anxious to tell about them in the (near) future! So check in again next week!
⁽¹⁾ With apologies to Jonathan Stowe.