[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)