4 ms·
I'm not sure if the "actually portable executable" stuff is really practical for anything in its current state, but I find it neat the way the development of th
by AgentME 4y ago
I'm not sure if the "actually portable executable" stuff is really practical for anything in its current state, but I find it neat the way the development of the project encourages people to try to find unifying abstractions between software environments and practice writing build tools for new software environments.
- nindalf 4y ago10 years ago when almost all computers except smartphones were x86 this would have been a gamechanger. Nowadays, we need to account for ARM no matter what. Either the developer machine or the deployment target could be ARM. Therefore the build system needs to be aware of cross compiling.
- AgentME 4y agoI'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).
- qbasic_forever 4y agoARM isn't just a single architecture either, there's ARMv6, ARMv7, ARMv8/ARM64, etc. Most of the platforms folks are using are ARM64 but not all of them!
- als0 4y agoThe sooner we ditch ARMv7 and predecessors, the better.