this post was submitted on 13 May 2024
36 points (92.9% liked)

Programming

17488 readers
114 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities [email protected]



founded 1 year ago
MODERATORS
 

Video is nearly 3 years old now, but I think it's worth watching. Her presentation starts at around 2:30.

Basically, she explains how Redbean, a tiny (~450kb) and very fast C http server, works and how the same executable can be used to deploy it on most operating systems (she starts explaining that around 14:30)

Justine is also the mind behind Sector LISP, Lambda Calculus in 383 bytes, considerable optimizations to LLamaAI, plus several other things.

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 11 points 6 months ago* (last edited 6 months ago) (2 children)

What she's accomplished is, to me, astonishing and an impressive intellectual feat. I believe there's a pretty big caveat that it only works on x86_64, i.e. not ARM. The latter being fairly popular and not uncommon.

It wouldn't damage the impressiveness of her achievement to say "most OSes on x86."

[–] [email protected] 4 points 6 months ago

Yea, I forget where, but she's openly lamented the rise of ARM for this reason. Not because it's a small blemish on redbean and cosmopolitan libc (what redbean uses to be "universal") ... but, IIRC, x86 had gained such ubiquity that simply sticking with it for the sake of interoperability and backwards compatibility was/is probably worth it. However accurate that is, or viable in today's tech world, I certainly resonate with the sentiment. And given what her and cosmopolitan libc seem to have accomplished (I've never used these things), it certainly seems like one of nice things we could have if we just did things in a nicer way.

[–] [email protected] 2 points 6 months ago (1 children)

No, it also works for ARM - you can even build a fat binary with an ARM -> x86 translation layer, i.e. one binary for both architectures!

[–] [email protected] 3 points 6 months ago (1 children)

Huh. In was just playing around with some samples from her page, and can't get them to run on either AMD64 or ARM. What's worst is that on my AMD machine I have Wine installed, and trying to run it fires up Wine (where it does eventually execute). You're supposed to also be able to sh it, and if I do that they just fail. On an ARM, they just fail. I was unable to get any of the samples from he page to run.

I haven't tried compiling my own program, but if the download samples don't run (for me), it doesn't give me confidence in the solution.

[–] [email protected] 1 points 6 months ago (1 children)

I just tried the current redbean build on Linux AMD64, and everything worked as expected (both launching directly, and through sh). Which examples did you specifically try? Which sh version do you use (I have 5.2.26(1)-release (x86_64-redhat-linux-gnu))?

The cosmopolitan README has a section on the WINE thing, if you want to try and get it running.

[–] [email protected] 1 points 6 months ago (1 children)

I tried all of the examples from her page about αcτµαlly pδrταblε εxεcµταblε. It looks like the page was written in 2020, so I'm assuming the binaries were compiled then, but that shouldn't matter; I have Go binaries I built in 2021 that still run, and I have no doubt that it I could find an even older binary, they'd run too.

[–] [email protected] 2 points 6 months ago (1 children)

Those were their first tests, of course there is a high chance they won't run on all system configurations (especially since things like WINE comparability were likely detailed later). You should try artifacts built with the current version of the format (3 IIRC) if you want to give it a fair shot.

[–] [email protected] 1 points 6 months ago

Good to know, thanks.