4 ms·
This APE format is not "write once run anywhere", because it targets a specific architectrure (64-bit x86) and won't run on other architectures. Just a toy form
by codedokode 4y ago
This APE format is not "write once run anywhere", because it targets a specific architectrure (64-bit x86) and won't run on other architectures. Just a toy format and I see no use for it.
What we need instead is better support in Linux for legacy Linux and Windows applications so that Linux could run any proprietary software written for it or for Windows (because there are no sources for it and it cannot be recompiled). Today it is not so: for example, very old Firefox builds don't run or crash on modern Linux.
- spyremeown 4y ago> Just a toy format and I see no use for it. Can you see how the problem that you described in the subsequent paragraph could easily be solved if the applications were compiled in such a format?
- codedokode 4y agoThey wouldn't be solved because the problem is that newer versions of shared libraries are not compatible with older applications. There is no problem with ELF or PE formats - ELF is supported on Linux natively, and PE is supported using Wine. APE format doesn't solve the problem with shared libraries changing over time, it dosn't solve the problem that different plaforms provide different APIs (for example, windowing APIs, audio APIs etc).
- ElectricalUnion 4y ago> APE format doesn't solve the problem with shared libraries changing over time APE doesn't use shared libraries at all and it's intended to be statically linked? > APE (...) dosn't solve the problem that different plaforms provide different APIs APE provides the most important POSIX APIs (or shims) for every platform it supports.
- ElectricalUnion 4y ago> This APE format is not "write once run anywhere", because it targets a specific architectrure (64-bit x86) and won't run on other architectures. > What we need instead is better support in Linux for legacy Linux and Windows applications (...) Today it is not so: for example, very old Firefox builds don't run or crash on modern Linux. But that is the exact reason why "legacy Linux and Windows" doesn't work, and why APE works: you should target the "specific architectrure" directly instead of hopefully trusting that the entire underlying system is a completly static target. That or using containers/shim layers, those of course bringing such entire underlying system with them.
- ModernMech 4y agoWe should just go back to the good old days and ship custom operating systems with our applications. Then you can just boot to them and be sure the underlying system is what you want.
- ElectricalUnion 4y agoAPE also supports metal (BIOS MBR) as a target.
- IshKebab 4y agoI agree. Plus it's only relevant for very simple (in terms of API usage) CLI programs. Good luck compiling a Qt app with this for example. I think WASM is a much more promising avenue for true cross platform executables. You don't have the architecture issue and aren't using weird old formats. It has some way to go though.