[HN Gopher] Parallel Perl - Autoparallelizing interpreter with JIT
       ___________________________________________________________________
        
       Parallel Perl - Autoparallelizing interpreter with JIT
        
       Author : bmn__
       Score  : 92 points
       Date   : 2026-03-18 11:59 UTC (2 days ago)
        
 (HTM) web link (perl.petamem.com)
 (TXT) w3m dump (perl.petamem.com)
        
       | bmn__ wrote:
       | Homepage: https://perl.petamem.com
       | 
       | In case HN shows its user hostility again by cutting off the URI
       | fragment, the intended deep-link was presentation slide #/4/1/1
        
         | throwaway27448 wrote:
         | Ugh, deep links should be part of the path, and anchor should
         | be where on the page to scroll. Very annoying slide software.
         | If the content weren't so good I simply wouldn't bother.
        
           | jaen wrote:
           | HTML+JavaScript-based statically hostable apps (eg.
           | presentations) can't use paths as deep links, since there's
           | no standard for simple static hosting or URL rewriting (even
           | 30 years later). Oh well.
        
             | gertop wrote:
             | They absolutely can generate the file tree so that each
             | slide has its own url.
             | 
             | They also could use the query part on the url rather than
             | anchor.
             | 
             | Lastly statically hosted doesn't mean no URL rewriting,
             | they could again catch links to parts easily.
             | 
             | The poor UX of these tools is just a lack of will, not a
             | technical limitation.
             | 
             | Then again hacker news should probably not blanket delete
             | the hash in URLs either.
        
             | gpvos wrote:
             | You should be able to use the query part of the URL (after
             | ?). You can get at it with Javascript, but it doesn't
             | influence which static HTML page is served.
        
               | mywittyname wrote:
               | I'm not sure why people hate using the query string so
               | much.
        
       | quantummagic wrote:
       | I'm interested, but can't navigate the website. The down-arrow in
       | the lower-right is unclickable, maybe covered by some semi-
       | transparent chrome of my browser, not sure. And no idea why there
       | need to be 4 directional arrows.
        
         | sherr wrote:
         | Going to the link and just hitting the spacebar worked for me.
         | Next slide, and so on. Firefox/Linux.
        
         | andrewl-hn wrote:
         | That's Reveal.js / Slides.com format. It became very popular in
         | 2010s. The idea behind the 2-d navigation is that you can use
         | left-to-right to move between chapters, and move down to dive
         | into a specific chapter. This allows you to skip chapters due
         | to time constraints. Or hide gnarly details about something so
         | that these specific slides do not break the flow of
         | presentation but still having them available for the audience
         | online. Or, having slides announcing demos, but if demos do not
         | work the down slide would have a video demonstrating how the
         | demo is supposed to work. Many possibilities like this. Also
         | the slides are produces using Markdown, so the format was
         | appealing to many authors.
         | 
         | However, doing chapters _well_ turned out to be tricky. Ideally
         | you want them to be of similar size and have 3 to 7 of them in
         | the talk, but many presentations aren 't structured like this.
         | The rise of Slideshare and SpeakerDeck for sharing slides in
         | mid 2010s caused this 2-d navigation to go out of favor: those
         | services only support linear static slides. This is also a
         | reason why people use fewer animations in slides nowadays and
         | why tools like Prezi didn't catch on (that was another
         | presentation tool with non-standard navigation that went out of
         | favor very quickly).
         | 
         | Many people still use Reveal.js to make their slides but they
         | stick to left-to-right nav only.
        
         | interroboink wrote:
         | I have the same problem with the mouse (little page marker
         | overlay covers the down arrow).
         | 
         | But using keyboard arrow keys work for me.
        
       | 0xbadcafebee wrote:
       | WHOA. Talk about burying the lede... Look from the beginning of
       | the slide show, he made a super cool geothermal project! Look at
       | the size of this hole!! https://perl.petamem.com/gpw2026/perl-
       | mit-ai-gpw2026.html#/1... His cad drawings are great too!
       | 
       | Basically he wanted home automation in Perl to control his
       | geothermal/solar house, and ended up reimplementing Perl with AI.
       | That's some yak shaving...
        
         | jwineinger wrote:
         | Standing in that hole without shoring... no thanks. Impressive
         | project nonetheless though
        
       | postepowanieadm wrote:
       | I'm too scared to check how good llms are in writing perl.
        
         | andrewl-hn wrote:
         | Very good, actually. But you have to nudge them slightly. Tell
         | them you prefer the modern version of the language, with
         | gradual typing+ and function signatures, and you'll get very
         | good results. Perl interpreter comes standard on modern OSes
         | and due to permissive licensing and impeccable backwards
         | compatibility you can always assume you deal with very modern
         | versions of Perl.
         | 
         | I write Perl scripts that are 10-100 lines of code, and at this
         | size Perl is a Strictly Better Bash: better syntax, some type
         | checking, better text support, and still effortless calls to
         | external processes: essentially you put a command with
         | arguments in backticks, and you get it's output. Ruby can do it
         | too, but not all systems have it. Python is another obvious
         | choice but calling external commands in it is annoying. I also
         | use Perl for some one-liners as a better `sed` for text
         | replacements.
         | 
         | + Perl nowadays have TypeScript-style type checking for
         | function parameters. So, while the syntax is wild sometimes,
         | the language is much better than it used to be.
        
           | throwaway27448 wrote:
           | Are you talking about perl 5 or perl 6?
        
             | topspin wrote:
             | 5 has this. There are modules that get you to function
             | signatures and type constraints. It's all opt-in and, as
             | was said, you have to nudge LLMs to use it, but they can
             | and the results are indeed better.
        
             | jasonjayr wrote:
             | A few years ago; perl 6 renamed itself to 'raku', so the
             | perl 5 folks can continue to improve/maintain the original
             | 'perl'.
        
           | hrmtst93837 wrote:
           | Assuming every OS ships new Perl is a good way to lose a bet,
           | since RHEL and CentOS are happy to hand you a system package
           | from years ago.
           | 
           | All the gradual typing and signatures in the world do not
           | matter when the interpreter on the target box is old enough
           | to miss half of it, and then you are dragging in CPAN modules
           | or juggling shebangs just to get the same script to run
           | everywhere. Bash at least advertises its limits. Perl can
           | look like a nicer shell tool right up until deployment turns
           | into a version scavenger hunt.
        
             | downsplat wrote:
             | What kind of context has you deploying into old systems
             | that don't ship a recent perl? If that is a legacy
             | requirement for whatever reason, then at least I'd use
             | docker or podman to get a recent runtime. Or would you also
             | write Python 2 or Php 7?
        
           | downsplat wrote:
           | What are you using for parameter type checking? I switched to
           | native function signatures, native try/catch and might look
           | into the new class system soon, but I don't recall native
           | type checking...
        
         | man8alexd wrote:
         | Codex for some reason sometimes runs Perl instead of Python to
         | work with local files
        
       | chrisaycock wrote:
       | The project relies on Rayon [1] for scheduling parallel tasks and
       | Cranelift [2] to JIT the hot loops.
       | 
       | There are plenty of other interesting features like auto-FFI,
       | bytecode caching (similar to Python's .pyc files), and
       | "daemonize" mode (similar to mod_perl or FastCGI).
       | 
       | [1] https://docs.rs/rayon/latest/rayon/
       | 
       | [2] https://cranelift.dev
        
       | hintymad wrote:
       | The slides got stuck at https://perl.petamem.com/gpw2026/perl-
       | mit-ai-gpw2026.html#/6. The right arrow disappeared. The down
       | arrow was flashing, but did not respond to any clicks. I tried
       | different browsers on my mac. None worked.
        
         | _flux wrote:
         | Keyboard arrows worked.
        
       | shevy-java wrote:
       | When will perl 7 be released?
        
       | bheadmaster wrote:
       | The down arrow doesn't respond because of the overlay page
       | number. Only when clicking a little bit left of the overlay, it
       | will work.
       | 
       | I can't help but giggle at the fact that AI written project
       | doesn't seem to get its home page right.
        
         | daotoad wrote:
         | It's a kind of crappy slide deck, not a proper home page. Even
         | worse, the link drops you into the middle of the deck. (TBF, it
         | wouldn't be so bad if you know that it's a slide deck when you
         | load the page.)
         | 
         | Try using the arrow keys to navigate. It took me multiple tries
         | to get it figured out.
         | 
         | Use up/down to navigate within a chapter/topic. Use left/right
         | to switch between topics.
        
       | petre wrote:
       | Where's the codebase?
       | 
       | I had to build a Perl implementation of the Chaskey mac
       | algorithm. ChatGPT spat out a working Perl prototype based on a C
       | file for Arduino. It quite slow with not very much to optimize,
       | so I made it write it with XS. A hour later I have a working XS
       | implementation that compiles and tests cleanly.
       | 
       | So the AutoFFI thing is super interesting. The .plc also.
        
       | genpfault wrote:
       | Not to be confused with GNU parallel[1], written in Perl.
       | 
       | [1]: https://en.wikipedia.org/wiki/GNU_parallel
        
       | rurban wrote:
       | The docs are better than the slides.
       | 
       | https://perl.petamem.com/docs/eng/petaperl/differences.html
        
       | joosters wrote:
       | Awesome to see a perl JIT. I love perl, and it's exciting to see
       | something that tries to offer good-enough compatibility to run
       | most perl code.
        
       | downsplat wrote:
       | This looks like a huge project, even with AI help... I have a
       | sweet spot for perl but I'm honestly not sure if the current
       | community has the bandwidth and interest to sustain an
       | alternative implementation. At the very least it should be ported
       | to MacOS too. Breaking with XS is a bold decision. Best of luck
       | though!!
        
         | weare138 wrote:
         | I'm kind of curious how it compares to some of the current
         | concurrency solutions for Perl because there is a bunch of them
         | now:
         | 
         | https://metacpan.org/pod/Coro
         | 
         | https://metacpan.org/pod/MCE
         | 
         | https://metacpan.org/pod/OpenMP
         | 
         | https://metacpan.org/dist/UV
        
         | hrmtst93837 wrote:
         | macOS is the easy part. XS is the problem, because once you
         | break that bridge, a lot of serious CPAN distros turn into
         | deadweight, with somebody stuck redoing piles of dependecies
         | plus the weird hooks old tooling expects.
         | 
         | If anything kills this project it won't be platform support.
         | It'll be perl's regex engine, the ancient edge cases around it,
         | and the fact that AI can spit out code that compiles while
         | still missing half the assumptions buried in moduels people
         | still need.
        
       | JackSlateur wrote:
       | "Auto-Parallelization - Automatic parallel map, grep, for, while
       | loops via Rayon work-stealing"
       | 
       | Given any kind of "for" loop, how can it know that there is no
       | synchronization required ? That no mutual exclusion is required ?
       | No concurrent access of some kind ? Offloading some work to
       | another process/thread is expensive, too
       | 
       | If the inner body of the loop is a pure-function, then that's
       | easy (except for the performance part, which may require
       | heuristics or something). But if the body is not pure .. ? I
       | cannot see how this can work reliably with any random code
        
       ___________________________________________________________________
       (page generated 2026-03-20 23:00 UTC)