Überwindung von WebAssembly Laufzeitbeschränkungen: Asynchrone Implementierung von ZeroPerl
2025-02-11
Frustriert über die fehlende Unterstützung von exnref in den meisten WebAssembly Laufzeiten, wodurch ZeroPerl unbrauchbar wurde, beschloss der Autor, das Problem zu beheben anstatt sich zu beschweren. Durch die Nutzung der Asyncify-Funktion von Binaryen wurde ein Ersatz für setjmp von Grund auf implementiert, wodurch die Kompatibilitätsprobleme von libsetjmp umgangen wurden. Nach dem Entfernen der offiziellen Bibliothek, dem Schreiben von Assemblercode und der Optimierung mit wasm-opt läuft ZeroPerl jetzt erfolgreich in Wasmer, Wasmtime und anderen WebAssembly Laufzeiten. Dieser Durchbruch liefert ein vollständig gekapseltes und eigenständiges Perl WebAssembly-Modul.
Entwicklung