تجاوز قيود وقت تشغيل WebAssembly: تنفيذ ZeroPerl غير المتزامن

2025-02-11
تجاوز قيود وقت تشغيل WebAssembly: تنفيذ ZeroPerl غير المتزامن

شعر المؤلف بالإحباط بسبب نقص دعم exnref في معظم أوقات تشغيل WebAssembly ، مما جعل ZeroPerl غير قابل للاستخدام ، لذلك قرر حل المشكلة بدلاً من الشكوى. من خلال الاستفادة من ميزة Asyncify في Binaryen ، تم تنفيذ بديل لـ setjmp من الصفر ، متجاوزًا مشكلات توافق libsetjmp. بعد إزالة المكتبة الرسمية ، وكتابة رمز التجميع ، وتحسينه باستخدام wasm-opt ، يعمل ZeroPerl الآن بنجاح في Wasmer و Wasmtime وأوقات تشغيل WebAssembly الأخرى. هذا الاختراق يوفر وحدة Perl WebAssembly معزولة تمامًا وذاتية الاكتفاء.

التطوير