5 ms·
I would love for WASI/WasmTime to emphasize on: 1. Backwards compatibility with existing libc. (Maybe pick musl) 2. Platform agnostic wasm generation: the sam
by writepub 8y ago
I would love for WASI/WasmTime to emphasize on:
1. Backwards compatibility with existing libc. (Maybe pick musl)
2. Platform agnostic wasm generation: the same wasm file should run in the browser (with emscripten polyfills) and across ALL OS-es, mobile included. List: iOS, Android, Mac, Linux, Windows, FreeBSD
#1 shall enable decades of legacy programs to work with minimal porting, while #2 shall enable true cross platform capabilities without multiple codebases. Specifically, don't repeat what node did: digress from browser js semantics, instead of polyfilling them
- jcranmer 8y ago> 1. Backwards compatibility with existing libc. (Maybe pick musl) Honestly, that ought to be a non-goal. We already know that POSIX often enforces models that we don't want--filesystem permissions and the fork model are two good examples of things that are broken. So why start with "implement POSIX"?
- writepub 8y agoThe backwards compatibility isn't a testament for POSIX's merit. Sure, please introduce better, safer paradigms whenever you set standards, but enabling legacy software to run immediately is a great value proposition. Also, goading legacy maintainers to adopt the newer, safer paradigms is likely more effective if you show them the traction the new platform is gaining
- Crinus 8y agoPOSIX != C and from what i understand from the official docs, they already have a (musl derived, even) C library.
- AnIdiotOnTheNet 8y agoThe C stdlib is so married to POSIX they may as well be the same thing.
- wahern 8y agoPOSIX doesn't mandate fork, that's why it invented posix_spawn.
- tschneidereit 8y agoGood news: we fully agree with these goals! On 1, the libc we're working on[1] is based on musl. It won't ever be 100% compatible with all code, because that runs into constraints imposed by our security goals, but the vast majority of code should eventually just compile when targeting this. (Eventually, because this is all early days.) On 2, yes, that is explicitly the goals. I'd add that it's not just about OSes, but also about platforms and hardware form factors. [1] https://github.com/CraneStation/wasi-sysroot https://github.com/CraneStation/wasi-sysroot