<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: lizmat</title><link>https://news.ycombinator.com/user?id=lizmat</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 02 Jul 2026 11:13:41 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=lizmat" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by lizmat in "The Raku Foundation is born"]]></title><description><![CDATA[
<p>* No separate types of bytestrings versus sequences of unicode codepoints.<p>Fixed in Raku.  You either have a string (Str) or a bytestream (Blob).<p>* Wherever there's strings in any non-trivially-sized real-word Perl 5 project, there is utter irreversible and irredeemable mojibake.<p>No mojibake in Raku.<p>* No canonical way to do object-orientation. (cf. blessed objects, Moo in different versions, and different conventions around how to use them) -- This stuff should be easy in 2026. Perl makes this easy thing really hard.<p>Raku has single object / type system.<p>* Regexes suck. Their brevity is a nice circus stunt for a computer science audience, but unless you follow very particular patterns for composing them from ergonomically named constants, etc. etc. (which "in the wild" I rarely see), they are very unergonomic.<p>Raku regexes allow arbitrary whitespace, can contain comments and are composable.<p>Grammars are collections of tokens / rules / regexes that can be used to build an AST, and actions that can take that AST and build another data structure of it.  A grammar is used to parse Raku itself.<p>Grammars can be subclassed or have rules / regexes mixed in (slangs).<p>* The Perl 5/CPAN ecosystem has been left to rot and is no longer safe for consumption.<p>The Raku ecosystem, albeit much smaller, is growing and actively maintained: <a href="https://raku.land" rel="nofollow">https://raku.land</a></p>
]]></description><pubDate>Fri, 19 Jun 2026 15:40:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=48599863</link><dc:creator>lizmat</dc:creator><comments>https://news.ycombinator.com/item?id=48599863</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48599863</guid></item><item><title><![CDATA[New comment by lizmat in "The Raku Foundation is born"]]></title><description><![CDATA[
<p>And the original blog post from almost a year ago: <a href="https://dev.to/lizmat/towards-a-raku-foundation-3ne2" rel="nofollow">https://dev.to/lizmat/towards-a-raku-foundation-3ne2</a></p>
]]></description><pubDate>Mon, 15 Jun 2026 14:38:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=48541964</link><dc:creator>lizmat</dc:creator><comments>https://news.ycombinator.com/item?id=48541964</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48541964</guid></item><item><title><![CDATA[New comment by lizmat in "Official announcement of the start of The Raku Foundation"]]></title><description><![CDATA[
<p>From a blog post, to a problem solving issues, to passing a lot of hurdles: The Raku Foundation is here!<p><a href="https://dev.to/lizmat/a-year-later-a-trf-1lh0" rel="nofollow">https://dev.to/lizmat/a-year-later-a-trf-1lh0</a></p>
]]></description><pubDate>Mon, 15 Jun 2026 13:38:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=48541124</link><dc:creator>lizmat</dc:creator><comments>https://news.ycombinator.com/item?id=48541124</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48541124</guid></item><item><title><![CDATA[Official announcement of the start of The Raku Foundation]]></title><description><![CDATA[
<p>Article URL: <a href="https://dev.to/lizmat/a-year-later-a-trf-1lh0">https://dev.to/lizmat/a-year-later-a-trf-1lh0</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48541123">https://news.ycombinator.com/item?id=48541123</a></p>
<p>Points: 5</p>
<p># Comments: 2</p>
]]></description><pubDate>Mon, 15 Jun 2026 13:38:57 +0000</pubDate><link>https://dev.to/lizmat/a-year-later-a-trf-1lh0</link><dc:creator>lizmat</dc:creator><comments>https://news.ycombinator.com/item?id=48541123</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48541123</guid></item><item><title><![CDATA[New comment by lizmat in "Wayland set the Linux Desktop back by 10 years?"]]></title><description><![CDATA[
<p>The Rakudo implementation of the Raku Programming Language uses the MoarVM, which is pretty much a generic VM.  All you need to do(TM) is write a grammar and associated actions to build the right bytecode out of the given Python source.</p>
]]></description><pubDate>Fri, 20 Mar 2026 10:50:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=47452855</link><dc:creator>lizmat</dc:creator><comments>https://news.ycombinator.com/item?id=47452855</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47452855</guid></item><item><title><![CDATA[Making your JITted Code known: Let me count the ways]]></title><description><![CDATA[
<p>Article URL: <a href="https://wakelift.de/2026/03/09/making-your-jitted-code-known-let-me-count-the-ways/">https://wakelift.de/2026/03/09/making-your-jitted-code-known-let-me-count-the-ways/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47320921">https://news.ycombinator.com/item?id=47320921</a></p>
<p>Points: 9</p>
<p># Comments: 1</p>
]]></description><pubDate>Tue, 10 Mar 2026 09:31:19 +0000</pubDate><link>https://wakelift.de/2026/03/09/making-your-jitted-code-known-let-me-count-the-ways/</link><dc:creator>lizmat</dc:creator><comments>https://news.ycombinator.com/item?id=47320921</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47320921</guid></item><item><title><![CDATA[New comment by lizmat in "The Om Programming Language"]]></title><description><![CDATA[
<p>It also goes from source code to AST:<p><pre><code>  $ raku -e 'say Q|say "Hello World!"|.AST'
  RakuAST::StatementList.new(
    RakuAST::Statement::Expression.new(
      expression => RakuAST::Call::Name::WithoutParentheses.new(
        name => RakuAST::Name.from-identifier("say"),
        args => RakuAST::ArgList.new(
          RakuAST::QuotedString.new(
            segments   => (
              RakuAST::StrLiteral.new("Hello World!"),
            )
          )
        )
      )
    )
  )</code></pre></p>
]]></description><pubDate>Thu, 26 Feb 2026 16:41:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=47168426</link><dc:creator>lizmat</dc:creator><comments>https://news.ycombinator.com/item?id=47168426</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47168426</guid></item><item><title><![CDATA[New comment by lizmat in "Closing this as we are no longer pursuing Swift adoption"]]></title><description><![CDATA[
<p>> In the raku example, what if the elements were to be multiplied?<p>$ raku -e 'say (0, 1, 2, * × * ... <i>)[^10]'    # for readability
(0 1 2 2 4 8 32 256 8192 2097152)<p>$ raku -e 'say (0, 1, 2, </i> * * ... *)[^10]'    # for typeability
(0 1 2 2 4 8 32 256 8192 2097152)</p>
]]></description><pubDate>Fri, 20 Feb 2026 23:30:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=47095533</link><dc:creator>lizmat</dc:creator><comments>https://news.ycombinator.com/item?id=47095533</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47095533</guid></item><item><title><![CDATA[New comment by lizmat in "Draig, a Welsh Programming Language"]]></title><description><![CDATA[
<p>Nothing stopping you from creating a L10N::LA module  :-)</p>
]]></description><pubDate>Sun, 25 Jan 2026 11:44:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=46753225</link><dc:creator>lizmat</dc:creator><comments>https://news.ycombinator.com/item?id=46753225</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46753225</guid></item><item><title><![CDATA[New comment by lizmat in "“Stop Designing Languages. Write Libraries Instead” (2016)"]]></title><description><![CDATA[
<p>You mean like:<p><pre><code>    my $a of Int = 42;
    say $a;  # 42
</code></pre>
or<p><pre><code>    my $a of Int = "foo";'       
    # Type check failed in assignment to $a; expected Int but got Str ("foo")

?</code></pre></p>
]]></description><pubDate>Thu, 08 Jan 2026 11:33:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=46539895</link><dc:creator>lizmat</dc:creator><comments>https://news.ycombinator.com/item?id=46539895</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46539895</guid></item><item><title><![CDATA[New comment by lizmat in "Ruby website redesigned"]]></title><description><![CDATA[
<p>FWIW, cannot reproduce on Safari 18.6 on MacOS 15.6.1</p>
]]></description><pubDate>Tue, 23 Dec 2025 10:51:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=46364263</link><dc:creator>lizmat</dc:creator><comments>https://news.ycombinator.com/item?id=46364263</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46364263</guid></item><item><title><![CDATA[New comment by lizmat in "Perl's decline was cultural"]]></title><description><![CDATA[
<p>Technically, no.  As Rakudo is not a programming language, and Perl6 is a deadname.<p>But there are indeed plenty of people doing projects with the Raku Programming Language.</p>
]]></description><pubDate>Sun, 07 Dec 2025 22:40:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=46186050</link><dc:creator>lizmat</dc:creator><comments>https://news.ycombinator.com/item?id=46186050</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46186050</guid></item><item><title><![CDATA[New comment by lizmat in "Why is Zig so cool?"]]></title><description><![CDATA[
<p>Please, stop deadnaming the Raku Programming Language  :-)</p>
]]></description><pubDate>Sat, 08 Nov 2025 11:52:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=45856027</link><dc:creator>lizmat</dc:creator><comments>https://news.ycombinator.com/item?id=45856027</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45856027</guid></item><item><title><![CDATA[New comment by lizmat in "Proxmox Donates €10k to the Perl and Raku Foundation"]]></title><description><![CDATA[
<p>There <i>is</i> a Perl 5 compatibility mode: it's called Inline::Perl5.<p>Maybe not the one that was originally planned.  But that was only a real possibility if Perl 5 would be able to get rid of its XS addiction.<p>Ask yourself: how many of the up river Perl modules are Perl only?</p>
]]></description><pubDate>Wed, 23 Jul 2025 22:31:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=44664714</link><dc:creator>lizmat</dc:creator><comments>https://news.ycombinator.com/item?id=44664714</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44664714</guid></item><item><title><![CDATA[New comment by lizmat in "0.9999 ≊ 1"]]></title><description><![CDATA[
<p>Sadly, that's just Num.gist showing 1.0 as "1" though.<p>say (pi/pi).^name;   # Num</p>
]]></description><pubDate>Tue, 03 Jun 2025 10:06:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=44168259</link><dc:creator>lizmat</dc:creator><comments>https://news.ycombinator.com/item?id=44168259</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44168259</guid></item><item><title><![CDATA[New comment by lizmat in "Access Control Syntax"]]></title><description><![CDATA[
<p>Actually, a module can implement any export heuristics by supplying an EXPORT subroutine, which takes positional arguments from the `use` statement, and is expected to return a Map with the items that should be exported.  For example:<p><pre><code>    sub EXPORT() { Map.new: "&frobnicate" => &sum }
</code></pre>
would import the core's "sum" routine, but call it "frobnicate" in the imported scope.<p>Note that the EXPORT sub can also be a multi, if you'd like different behaviour for different arguments.</p>
]]></description><pubDate>Tue, 27 May 2025 07:52:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=44104811</link><dc:creator>lizmat</dc:creator><comments>https://news.ycombinator.com/item?id=44104811</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44104811</guid></item><item><title><![CDATA[New comment by lizmat in "Trump's attacks on universities get darker, with shadows reaching our shores"]]></title><description><![CDATA[
<p>Everybody is entitled to their opinion, whether they'd be Raku developers or not.</p>
]]></description><pubDate>Sat, 29 Mar 2025 23:19:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=43519645</link><dc:creator>lizmat</dc:creator><comments>https://news.ycombinator.com/item?id=43519645</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43519645</guid></item><item><title><![CDATA[New comment by lizmat in "Do any languages specify package requirements in import / include statements?"]]></title><description><![CDATA[
<p>The Raku Programming language allows one to specify the required version, the required authority and API level:<p>use Foo::Bar:ver<0.1.2+>:auth<zef:name>:api<2>;<p>would only work if the at least version 0.1.2 of the Foo::Bar module was installed, authored by "zef:name" (basically ecosystem + nick of author), with API level 2.<p>Note that modules can be installed next to each other that have the same name, but different authorities and different versions.<p>Imports from modules are lexical, so one could even have one block use one version of a module, and another block another version.  Which is handy when needing to migrate date between versions :-)</p>
]]></description><pubDate>Thu, 23 Jan 2025 18:01:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=42806280</link><dc:creator>lizmat</dc:creator><comments>https://news.ycombinator.com/item?id=42806280</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42806280</guid></item><item><title><![CDATA[A highly configurable GNU/Linux with built-in AI]]></title><description><![CDATA[
<p>Article URL: <a href="https://ditana.org">https://ditana.org</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=42682751">https://news.ycombinator.com/item?id=42682751</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Mon, 13 Jan 2025 12:31:48 +0000</pubDate><link>https://ditana.org</link><dc:creator>lizmat</dc:creator><comments>https://news.ycombinator.com/item?id=42682751</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42682751</guid></item><item><title><![CDATA[New comment by lizmat in "Some programming language ideas"]]></title><description><![CDATA[
<p>Hi Perlgeek, long time no see!<p>I really wish more people would use Raku  :-)   Because it is all built in there already!  :-)</p>
]]></description><pubDate>Fri, 10 Jan 2025 00:07:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=42651152</link><dc:creator>lizmat</dc:creator><comments>https://news.ycombinator.com/item?id=42651152</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42651152</guid></item></channel></rss>