QEMU og FFmpeg stofnandi gefur út QuickJS JavaScript Engine

Franski stærðfræðingurinn Fabrice Bellard, sem eitt sinn stofnaði QEMU og FFmpeg verkefnin, og bjó einnig til hraðskreiðastu formúluna til að reikna út pí og þróaði myndsniðið landsframleiðsla, gaf út fyrstu útgáfu nýrrar JavaScript vél QuickJS. Vélin er fyrirferðarlítil og einbeittur að því að fella inn í önnur kerfi. Verkefniskóðinn er skrifaður í C ​​og dreift undir MIT leyfinu. Einnig fáanlegt er samsetning af vélinni sem er sett saman í WebAssembly með Emscripten og hentar til framkvæmdar í vöfrum.

JavaScript útfærsla styður ES2019 forskriftina, þar á meðal einingar, ósamstillta rafala og umboð. Óstöðluð stærðfræði er mögulega studd. viðbyggingar fyrir JavaScript, eins og BigInt og BigFloat tegundirnar, sem og ofhleðsla rekstraraðila. Hvað varðar frammistöðu er QuickJS mikilvæg yfirburði núverandi hliðstæður, til dæmis, í prófinu
Bench-v8 er á undan vélinni XS á 35%, duktband oftar en tvisvar jerryscript þrisvar sinnum og MuJS sjö sinnum.

Auk bókasafnsins til að fella vélina inn í forrit býður verkefnið einnig upp á qjs túlkinn, sem hægt er að nota til að keyra JavaScript kóða frá skipanalínunni. Þar að auki er qjsc þýðandinn fáanlegur, sem getur búið til sjálfstæðar keyranlegar skrár sem þurfa ekki utanaðkomandi ósjálfstæði.

Helstu eiginleikar:

  • Fyrirferðarlítið og auðvelt að samþætta það í önnur verkefni. Kóðinn inniheldur aðeins nokkrar C skrár sem þurfa ekki utanaðkomandi ósjálfstæði til að byggja. Samsetta einfalda forritið tekur um 190 KB;
  • Mjög mikil afköst og lítill ræsingartími. Að standast 56 þúsund ECMAScript samhæfnipróf tekur um 100 sekúndur þegar þau eru framkvæmd á einum kjarna af dæmigerðri borðtölvu. Runtime frumstilling tekur minna en 300 míkrósekúndur;
  • Næstum fullur stuðningur við ES2019 forskriftina og fullur stuðningur við viðauka B, sem skilgreinir íhluti fyrir samhæfni við eldri vefforrit;
  • Ljúka öllum prófum úr ECMAScript Test Suite;
  • Stuðningur við að setja saman Javascript kóða í keyranlegar skrár án utanaðkomandi ósjálfstæðis;
  • Tilvísunartalinn sorphirðu án hreinsunarhjólreiða, sem gerði ráð fyrir fyrirsjáanlega hegðun og minni minnisnotkun;
  • Set af viðbótum fyrir stærðfræðilega útreikninga á JavaScript tungumálinu;
  • Skel til að keyra kóða í skipanalínuham sem styður auðkenningu á samhengiskóða;
  • Fyrirferðarlítið staðlað bókasafn með bindingum yfir C bókasafnið.

Verkefnið þróar einnig þrjú C-bókasöfn sem taka þátt í QuickJS og henta fyrir sérstakt forrit:

  • libregexp er hröð útfærsla á reglulegum tjáningum sem er í fullu samræmi við Javascript ES 2019 forskriftina;
  • libunicode - fyrirferðarlítið bókasafn til að vinna með Unicode;
  • libbf er útfærsla á handahófskenndum nákvæmni fljótapunktsaðgerða og nákvæmri námundun yfirskilvitlegra aðgerða.

Heimild: opennet.ru

Bæta við athugasemd