6guts
6guts.wordpress.com · Personal blog · on HN since 2010
6guts is the blog of Jonathan Worthington, a core developer of Rakudo Perl 6 and MoarVM, covering virtual machine and compiler work.
What HN saysHN links it for Perl 6 implementation internals, such as the MoarVM design and async IO work, and for the language's progress.
22HN people shared it
6linked it in comments
32stories submitted
151story points
5 years agolast shared
2010people per year2026
Most-shared posts
- 1MoarVM: A virtual machine for NQP and Rakudo2 people · 40 points · first shared 2013 · 23 comments on HN
- 2Perl 6 is biased towards mutators being really simple. That’s a good thing2 people · 10 points · first shared 2016 · discussion on HN
- 3NQP (compiler toolkit) and Rakudo (Perl 6 in NQP) being ported to JVM2 people · 4 points · first shared 2013 · discussion on HN
- 4Of sisters, stacks, and CPAN2 people · 2 points · first shared 2018 · discussion on HN
- 5Not guts but 6 part 12 people · first shared 2016
- 6Rakudo Perl 6 Architect Reflects on Last 8 Years1 people · 23 points · first shared 2015 · discussion on HN
- 7Rakudo Star 2012.02 out – and the focus for 2012.03 (Perl6)1 people · 19 points · first shared 2012 · 1 comments on HN
- 8Porting Perl 6 to the JVM1 people · 7 points · first shared 2013 · 1 comments on HN
- 9Eliminating unrequired guards – MoarVM / Perl 61 people · 6 points · first shared 2018 · discussion on HN
- 10Perl 6: Optimizing Reading Lines from a File1 people · 3 points · first shared 2017 · discussion on HN
- 11Faster box/unbox and Int operations – MoarVM / Perl 61 people · 3 points · first shared 2018 · discussion on HN
- 12A Rakudo Debugger1 people · 3 points · first shared 2012 · discussion on HN
- 13Speeding up object creation (Perl6)1 people · 3 points · first shared 2018 · discussion on HN
- 14Towards a new general dispatch mechanism in MoarVM1 people · 3 points · first shared 2021 · discussion on HN
- 15Perl 6: Building and testing async socket code1 people · 3 points · first shared 2016 · 3 comments on HN
What HN people wrote when they linked it
lizmat · 2018-07-11
Since H. Merijn Brandt started working on the Perl 6 version of Text::CSV, he has kept a log of how long a specific test (referred to as test-t) too to run.
https://tux.nl/Talks/CSV6/speed.log
Since then, Rakudo Perl 6 has become more than 100x as fast, at least for this test. And more than 250x as fast using a concurrent version of the test (which was as simple as putting a `.race` in the code).
This makes it still slower than the Perl 5 version, which uses XS (all parsing logic written in C). But the gap is closing with another round of optimizations to be merged later this week after an extensive refactor that took about 2 months. Of which you will most certainly see a report on https://6guts.wordpress.com , the blog of Jonathan Worthington.
falsedan · 2017-09-07
> Any benefit you get from using UTF-16 vanishes the moment you need to operate on it like a string, in other words.
So, don't decode to a string, and do all your character manipulation on the bytes.
> A better solution is to allow programmers to specify string encoding and default it to UTF-8.
Absolutely not: the internal representation of a string should be of no interest to a user of your language. The 'best' solution is to represent strings as a list of index lookups into a palette, and to update the palette as new graphemes are seen. This is similar to the approach Perl6 is using[0].
[0]: https://6guts.wordpress.com/2015/12/05/getting-closer-to-christmas/
muraiki · 2016-01-13
I could give a list of features as to how Perl 6 will make my life as a developer better, but a list of features is not enough to justify adopting a whole new language with a small ecosystem. To adopt a language, it really has to improve your productivity. For instance, I think we've seen this with Go's adoption by people from dynamic languages, as it offered type safety, speed, and concurrency in a package that was generally more readily acceptable to them than Java/C#/Scala/etc.
jnthn has a great series of blog posts illustrating how many of Perl 6's features come together to make developing a library very easy. To me, this is a great example of "how does Perl 6 help a business": by allowing rapid development of a complex asynchronous application, which is a use case many of us face. He illustrates this by writing a STOMP client for RabbitMQ, going from toy to a serious library: https://6guts.wordpress.com/2016/01/04/not-guts-but-6-part-1/
I look at this workflow and think, "Wow, I wish I could do things that easily." But now I can, because Perl 6 is out. :)
ash_gti · 2017-07-26
Perl6 (with the MoarVM backend at least) should have proper async IO on both network and file IO.
jnthn (one of the primary contributors to MoarVM) has a write up about recent work done to improve the system here: https://6guts.wordpress.com/2017/06/08/sorting-out-synchronous-io/
jedharris · 2016-01-07
This is part of a sequence using TDD to refactor and extend a Stomp client. The earlier posts (not doing much with async code) are https://6guts.wordpress.com/2016/01/04/not-guts-but-6-part-1/ and https://6guts.wordpress.com/2016/01/05/not-guts-but-6-part-2/ . There will be more.
raiph · 2015-11-29
It turns out that the same NFG mechanism developed to support graphemes works for this non-grapheme scenario too:
"... POSIX doesn’t promise you’ll get UTF-8, or even ASCII. It promises ... a bunch of bytes. We can now cope with this properly – surprisingly enough, thanks to the power of NFG. We now have a special encoding, UTF-8 Clean-8-bit, which turns bytes that are invalid as UTF-8 into synthetics, from which we can recover the original bytes again at output. This means that any filename, environment variable, and so forth can be roundtripped through Perl 6 problem-free. You can concat “.bak” onto the end of such a string, and it’ll still work out just fine."
From https://6guts.wordpress.com/2015/11/21/what-one-christmas-elf-has-been…