Fondatè QEMU ak FFmpeg pibliye motè JavaScript QuickJS la

Matematisyen franse Fabrice Bellard, ki te fonde pwojè QEMU ak FFmpeg, te kreye tou fòmil ki pi rapid pou kalkile Pi epi devlope fòma imaj la. GDP, pibliye premye lage nouvo motè JavaScript QuickJS. Motè a se kontra enfòmèl ant ak fèt pou entegrasyon nan lòt sistèm. Kòd pwojè a ekri an C epi distribye anba lisans MIT. Yon bati nan motè a disponib tou, konpile nan WebAssembly lè l sèvi avèk Emscripten ak apwopriye pou ekzekisyon nan navigatè.

Aplikasyon JavaScript sipò Espesifikasyon ES2019, ki gen ladan modil, dèlko asynchrone ak prokurasyon. Matematik ki pa estanda yo sipòte opsyonèlman ekstansyon pou JavaScript, tankou kalite BigInt ak BigFloat, osi byen ke Surcharge operatè. Pèfòmans QuickJS enpòtan siperyè a analogue ki disponib, pou egzanp, nan tès la
bench-v8 se devan motè a XS nan 35%, DukTape plis pase double jerryscript twa fwa ak MuJS sèt fwa.

Anplis bibliyotèk la pou entegre motè a nan aplikasyon yo, pwojè a ofri tou yon entèprèt qjs, ki ka itilize pou kouri kòd JavaScript nan liy lòd la. Anplis, du qjsc ki disponib, ki kapab générer fichiers ègzekutabl pwodiksyon apwopriye pou ekzekisyon otonòm ki pa mande depandans ekstèn.

Karakteristik kle:

  • Kontra enfòmèl ant ak fasil entegre nan lòt pwojè. Kòd la gen ladan sèlman kèk dosye C ki pa mande pou depandans ekstèn pou asanble. Aplikasyon ki pi senp la pran apeprè 190 KB;
  • Pèfòmans trè wo ak tan demaraj kout. Pase 56 mil tès konpatibilite ECMAScript pran apeprè 100 segonn lè yo egzekite sou yon sèl nwayo nan yon PC Desktop regilye. Inisyalizasyon ègzekutabl pran mwens pase 300 mikrosgond;
  • Prèske sipò konplè pou spesifikasyon ES2019 la ak sipò konplè pou Apendis B, ki defini eleman pou konpatibilite ak aplikasyon entènèt eritaj;
  • Ranpli tout tès ki soti nan Suite Tès ECMAScript la;
  • Sipò pou konpile kòd Javascript nan dosye ègzèkutabl san depandans ekstèn;
  • Yon pèseptè fatra ki baze sou konte referans san netwayaj siklik, ki pèmèt nou reyalize konpòtman previzib ak diminye konsomasyon memwa;
  • Yon seri ekstansyon pou kalkil matematik nan JavaScript;
  • Yon kokiy pou egzekite kòd nan mòd liy lòd, sipòte kòd kontèks en;
  • Kontra enfòmèl ant bibliyotèk estanda ak anbalaj sou bibliyotèk C a.

Pwojè a ap devlope tou twa bibliyotèk C ki akonpaye ki enplike nan QuickJS epi ki apwopriye pou itilizasyon endividyèl:

  • libregexp - aplikasyon rapid nan ekspresyon regilye, konplètman konpatib ak spesifikasyon Javascript ES 2019 la;
  • libunicode - yon bibliyotèk kontra enfòmèl ant pou travay ak Unicode;
  • libbf - Aplikasyon abitrè presizyon operasyon pwen flotan ak fonksyon transandantal ak awondi egzak.

Sous: opennet.ru

Add nouvo kòmantè