QEMU u FFmpeg Fundatur Jippubblika QuickJS JavaScript Engine

Il-matematiku Franċiż Fabrice Bellard, li waqqaf il-proġetti QEMU u FFmpeg, ħoloq ukoll l-aktar formula mgħaġġla għall-kalkolu tal-Pi u żviluppa l-format tal-immaġni PGD, ippubblikat l-ewwel rilaxx tal-magna JavaScript ġdida QuickJS. Il-magna hija kompatta u ddisinjata għall-integrazzjoni f'sistemi oħra. Il-kodiċi tal-proġett huwa miktub b'Ċ u huwa mqassam taħt il-liċenzja MIT. Hija disponibbli wkoll bini tal-magna, miġbura f'WebAssembly bl-użu ta' Emscripten u adattat għall-eżekuzzjoni fil-browsers.

Implimentazzjoni JavaScript jappoġġja Speċifikazzjoni ES2019, inklużi moduli, ġeneraturi asinkroniċi u prokuri. Matematika mhux standard hija appoġġjata b'mod fakultattiv espansjoni għal JavaScript, bħal tipi BigInt u BigFloat, kif ukoll tagħbija żejda tal-operatur. Il-prestazzjoni ta 'QuickJS hija sinifikanti superjuri għal analogi disponibbli, pereżempju, fit-test
bank-v8 huwa qabel il-magna XS f'35%, DukTape aktar mid-doppju jerryscript tliet darbiet u MuJS seba’ darbiet.

Minbarra l-librerija għall-inkorporazzjoni tal-magna fl-applikazzjonijiet, il-proġett joffri wkoll interpretu qjs, li jista 'jintuża biex iħaddem kodiċi JavaScript mil-linja tal-kmand. Barra minn hekk, il-kompilatur qjsc huwa disponibbli, kapaċi jiġġenera fajls eżekutibbli tal-output adattati għal eżekuzzjoni waħedha li ma jeħtiġux dipendenzi esterni.

Karatteristiċi Ewlenin:

  • Kompatt u faċli biex tintegra fi proġetti oħra. Il-kodiċi jinkludi biss ftit fajls C li ma jeħtiġux dipendenzi esterni għall-assemblaġġ. L-aktar applikazzjoni miġbura sempliċi tieħu madwar 190 KB;
  • Prestazzjoni għolja ħafna u ħin qasir tal-istartjar. Li tgħaddi minn 56 elf testijiet ta 'kompatibilità ECMAScript tieħu madwar 100 sekonda meta ssir fuq qalba waħda ta' PC desktop regolari. L-inizjalizzazzjoni tal-runtime tieħu inqas minn 300 mikrosekonda;
  • Appoġġ kważi sħiħ għall-ispeċifikazzjoni ES2019 u appoġġ sħiħ għall-Appendiċi B, li jiddefinixxi l-komponenti għall-kompatibbiltà mal-applikazzjonijiet tal-web legacy;
  • Tlesti li tgħaddi mit-testijiet kollha mill-ECMAScript Test Suite;
  • Appoġġ għall-kompilazzjoni ta 'kodiċi Javascript f'fajls eżekutibbli mingħajr dipendenzi esterni;
  • Kollettur taż-żibel ibbażat fuq għadd ta 'referenza mingħajr tindif ċikliku, li ppermettilna niksbu mġiba prevedibbli u nnaqqsu l-konsum tal-memorja;
  • Sett ta' estensjonijiet għal kalkoli matematiċi f'JavaScript;
  • Qoxra għall-eżekuzzjoni tal-kodiċi fil-modalità tal-linja tal-kmand, li tappoġġja l-enfasi tal-kodiċi kuntestwali;
  • Librerija standard kompatta b'tgeżwir fuq il-librerija C.

Il-proġett qed jiżviluppa wkoll tliet libreriji C ta' akkumpanjament involuti f'QuickJS u adattati għall-użu individwali:

  • libregexp - implimentazzjoni mgħaġġla ta 'espressjonijiet regolari, kompletament kompatibbli mal-ispeċifikazzjoni Javascript ES 2019;
  • libunicode - librerija kompatta biex taħdem ma 'Unicode;
  • libbf - Implimentazzjoni ta' operazzjonijiet ta' preċiżjoni arbitrarja floating point u funzjonijiet traxxendentali b'arrotondament eżatt.

Sors: opennet.ru

Żid kumment