4 ms·
I'm not a big fan of how actually portable executable doubles down on x86-64. I think anyone really wanting to make run-anywhere executables that don't bind us
by AgentME 4y ago
I'm not a big fan of how actually portable executable doubles down on x86-64. I think anyone really wanting to make run-anywhere executables that don't bind us to specific CPU architectures should consider something WASM based, like WASI on Wasmtime.
- int_19h 4y agoThat requires a wasm runtime to be preinstalled everywhere. The beauty of APE is that it's just a valid executable file on all supported platforms - it doesn't have any dependencies or requirements.
- the_duke 4y agoHopefully wasm will take off and a high quality wasm runtime (with JIT) will be pre-installed on every system, but we'll see if that happens.
- wongarsu 4y agoThe Java Runtime is pretty ubiquitous, so maybe compiling to Java bytecode would be a better approach for a "universal" executable, if runtimes are allowed.
- AgentME 4y agoAgreed, though I guess it's that I'm not too interested in the general use-case of generic independent executables that can run on any system by themselves, which APE is aimed at. It's probably good for me to be explicit that I'm interested in a more specific use-case that I think is shared by some people interested in very portable executables: where you have some application that contains redistributable plugins, and those plugins must be executable by the application on any OS/architecture that the application runs on and be sandboxable. WASM is very well-shaped for this specific use-case; it might be okay for the general independent-executable use-case if you embed a few small WASM interpreters or if your target platforms each include one (which seems increasingly reasonable on modern systems that have one because it's needed for the system webviews).