Ѐабрис Π‘Π΅Π»Π°Ρ€ Π²Ρ‹Π»ΠΎΠΆΠΈΠ» Π΄Π²ΠΈΠΆΠΎΠΊ JavaScript

Ѐранцузский ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊ Ѐабрис Π‘Π΅Π»Π°Ρ€ (Fabrice Bellard) Π±ΠΎΠ»Π΅Π΅ извСстный Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ Π½Π°Π΄ ffmpeg, qemu, tcc ΠΈ вычислСниСм числа ΠΏΠΈ, Π²Ρ‹Π»ΠΎΠΆΠΈΠ» Π² ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ доступ QuickJS — ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½ΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ JavaScript Π² Π²ΠΈΠ΄Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π½Π° языкС C.

  • ΠŸΠΎΡ‡Ρ‚ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΡΠΏΠ΅Ρ†ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ ES2019.
  • Π’ Ρ‚ΠΎΠΌ числС матСматичСскиС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ.
  • ΠŸΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ всС тСсты ECMAScript Test Suite.
  • НСт зависимостСй ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ.
  • ΠœΠ°Π»Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ статичСски Π»ΠΈΠ½ΠΊΡƒΠ΅ΠΌΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ — ΠΎΡ‚ 190 KiB Π½Π° x86 для «hello world».
  • Быстрый ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ — ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ 56000 тСстов ECMAScript Test Suite Π·Π° ~100с Π½Π° 1 ядрС Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ ПК. НакладныС расходы Π½Π° Ρ†ΠΈΠΊΠ» запуска ΠΈ остановки < 300 мкс.
  • ΠœΠΎΠΆΠ΅Ρ‚ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ДТаваскрипт Π² исполнимыС Ρ„Π°ΠΉΠ»Ρ‹ Π±Π΅Π· Π²Π½Π΅ΡˆΠ½ΠΈΡ… зависимостСй.
  • ΠœΠΎΠΆΠ΅Ρ‚ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ДТаваскрипт Π² WebAssembly.
  • Π‘Π±ΠΎΡ€Ρ‰ΠΈΠΊ мусора со счётчиком ссылок (Π΄Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ, с ΠΌΠ°Π»Ρ‹ΠΌ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ΠΌ памяти).
  • Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки с Ρ†Π²Π΅Ρ‚Π½ΠΎΠΉ подсвСткой снитаксиса.

Богласно тСстам ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΈΠ· обсуТдСния Π½Π° Opennet.ru, ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ QuickJS Π² тСстах Π² 15-40 Ρ€Π°Π· мСньшС, Ρ‡Π΅ΠΌ Node.js.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: linux.org.ru

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ