Popcorn 1.0 tarayıcıda doğrudan Erlang sanal makinesini çalıştırıyor
Öne çıkanlar
- Popcorn 1.0, AtomVM yerine WebAssembly üzerine derlenen tam OTP/BEAM sanal makinesini kullanıyor.
- Brotli ile sıkıştırılan WebAssembly ikili dosya boyutu 730 KB seviyesine indirildi.
- Sanal makinenin açılış süresi 200 milisaniyeye, sıcak başlatma süresi 140 milisaniyeye düşürüldü.
- Süreç yalıtımı için iframe yerine Web Workers altyapısına geçildi.
Elixir kodlarını tarayıcı üzerinde çalıştırmayı sağlayan Popcorn kütüphanesinin 1.0 sürümü yayımlandı. Geliştirici ekip, bu sürümle birlikte gömülü sistemler için tasarlanan AtomVM altyapısını bırakarak doğrudan OTP/BEAM sanal makinesine geçiş yaptı. Yapılan mimari değişiklik sayesinde tarayıcı tabanlı Elixir uygulamaları çok daha geniş OTP uyumluluğu ve sistem kararlılığı kazandı.
Araştırma projesi olarak başlayan Popcorn, önceki sürümlerinde standart kütüphane uyumsuzlukları ve AtomVM tarafındaki eksiklikler nedeniyle çok sayıda yama gerektiriyordu. Ekip, WebAssembly ortamına derlenen tam teşekküllü OTP/BEAM ikilisinin boyutunu sıkıştırma optimizasyonlarıyla 730 KB seviyesine çekti. Standart kütüphane için ise yaklaşık 2,5 MB boyutunda Brotli ile sıkıştırılmış arşiv dosyaları sisteme dahil edildi. Sanal makinenin ilk açılış süresi 200 milisaniyeye, sıcak başlatma süresi ise 140 milisaniyeye indirildi.
Yeni sürüm mimari olarak iframe tabanlı yalıtımdan Web Workers yapısına geçti. Bu adım ana tarayıcı penceresini olası çökmelerden korurken birden çok sanal makinenin eşzamanlı çalışmasına imkan sağladı. Ağ isteklerinde Finch yerine tarayıcının yerel fetch API altyapısını kullanan Popcorn.Fetch adaptörü sisteme eklendi. Ayrıca JavaScript ile süreçler arası iletişimi sağlayan çağrı mekanizmaları doğrudan handle_call ve handle_cast yapılarına bağlandı.
Bu özet yapay zekâ ile hazırlanmıştır; ayrıntılar ve doğrulama için orijinal kaynağa başvurun.