Rendered at 14:32:11 GMT+0000 (Coordinated Universal Time) with Cloudflare Workers.
anthk 7 hours ago [-]
Also, on Eternal Software, cproc and cparser should have been enhanced enough to bootstrap the system from itself (compile the kernel, busybox, cproc/cparser). But I think only clang can compile Linux well enough among GCC...
curtisblaine 17 hours ago [-]
> If A = −1: Read one keypress from the human operator and place a number representing it into slot[B]. (If no key is pressed, place 0.)
> If B = −1: Display slot[A] as one character of text to the human operator.
This is not well specified imho:
1) What if both A and B are -1? I can't do any of the two, or I would read / write an invalid slot (since slots indexes are >= 0)
2) What does "Read a keypress" mean? Should I wait for the operator to press a key? In that case, how can no key be pressed? Timeout? Or should I just check if a key is already pressed when the instruction is executed?
Assuming you discover a capsule from the 21st century chances are overwhelmingly that either things have gone great, and you could just ask your AI to create an environment for that old binary (or reverse engineer it), or things have gone badly and you try to bootstrap computing.
The "things have gone average, and I want to run a 200-year old binary" case is I think the least relevant.
But even if we stipulate its relevant enough, this does not solve the issue. The subleq machine does not actually reproduce the hardware environment. A lot of software depends very much on the characteristics of the hardware it runs on. (Timing issue, undocumented but interesting side effects, etc). It depends on bugs in the containing OS. (See Win32 backcompat, e.g.) It depends on quirks and behavior of its input/output devices. Heck, the VM does not even define what "reads a keypress" reads - scancode? ASCII? UTF-8? Value according to numerology?
There's a lot of software that's not amenable to "it's just a single set of numbers in a capsule" with just that underlying VM. Likely most software.
SUBLEQ is a somewhat interesting architecture if you think about "bootstrap compute from scratch", but that's a very different problem.
anthk 18 hours ago [-]
What? you can write a Subleq interpreter even stoned and drunk. a subleq+ one it's just a simple step over the previous one.
On keypress, yes, they forgot to set that the input and output it's just ASCII, putchar() and getchar() in C.
groby_b 15 hours ago [-]
The thing is that most architectures aren't amenable to emulation by things you wrote stoned and drunk.
mcphage 21 hours ago [-]
Several places on that page link to "the napkin", which starts:
> If you are reading this, you have probably discovered a capsule from the early 21st century - a long list of numbers, maybe etched onto a titanium cylinder.
> If B = −1: Display slot[A] as one character of text to the human operator.
This is not well specified imho:
1) What if both A and B are -1? I can't do any of the two, or I would read / write an invalid slot (since slots indexes are >= 0)
2) What does "Read a keypress" mean? Should I wait for the operator to press a key? In that case, how can no key be pressed? Timeout? Or should I just check if a key is already pressed when the instruction is executed?
Read about the simple subleq first, the eternal machine just adds a simple timer and a display on top of subleq.
1) -1 - -1 evaluate to 0 so it should jump to the instruction pointed by the c[inst] cell.
Subleq explained from XXIIVV:
https://wiki.xxiivv.com/site/subleq.html
Assuming you discover a capsule from the 21st century chances are overwhelmingly that either things have gone great, and you could just ask your AI to create an environment for that old binary (or reverse engineer it), or things have gone badly and you try to bootstrap computing.
The "things have gone average, and I want to run a 200-year old binary" case is I think the least relevant.
But even if we stipulate its relevant enough, this does not solve the issue. The subleq machine does not actually reproduce the hardware environment. A lot of software depends very much on the characteristics of the hardware it runs on. (Timing issue, undocumented but interesting side effects, etc). It depends on bugs in the containing OS. (See Win32 backcompat, e.g.) It depends on quirks and behavior of its input/output devices. Heck, the VM does not even define what "reads a keypress" reads - scancode? ASCII? UTF-8? Value according to numerology?
There's a lot of software that's not amenable to "it's just a single set of numbers in a capsule" with just that underlying VM. Likely most software.
SUBLEQ is a somewhat interesting architecture if you think about "bootstrap compute from scratch", but that's a very different problem.
On keypress, yes, they forgot to set that the input and output it's just ASCII, putchar() and getchar() in C.
> If you are reading this, you have probably discovered a capsule from the early 21st century - a long list of numbers, maybe etched onto a titanium cylinder.
That supposition seems woefully incorrect.
https://raw.githubusercontent.com/adriancable/eternal/refs/h...