QEMU eta FFmpeg sortzaileak QuickJS JavaScript motorra argitaratzen du

Fabrice Bellard matematikari frantziarrak, QEMU eta FFmpeg proiektuak sortu zituena, Pi kalkulatzeko formula azkarrena sortu eta irudi formatua garatu zuena. BPG, JavaScript motor berriaren lehen bertsioa argitaratu zuen QuickJS. Motorra trinkoa da eta beste sistema batzuetan integratzeko diseinatuta dago. Proiektuaren kodea C-n idatzita dago eta MIT lizentziapean banatzen da. Motorren eraikuntza bat ere eskuragarri dago, WebAssembly-n konpilatuta Emscripten erabiliz eta nabigatzaileetan exekutatzeko egokia.

JavaScript inplementatzea euskarriak ES2019 zehaztapena, moduluak, sorgailu asinkronoak eta proxyak barne. Matematika ez estandarrak aukeran onartzen dira hedapen JavaScript-erako, hala nola, BigInt eta BigFloat motak, baita operadorearen gainkarga. QuickJS-ren errendimendua nabarmena da superior eskuragarri dauden analogoak, adibidez, proban
bench-v8 motorraren aurretik dago XS % 35, DukTape bikoiztu baino gehiago jerryscript hiru aldiz eta MuJS zazpi aldiz.

Motorra aplikazioetan txertatzeko liburutegiaz gain, proiektuak qjs interprete bat ere eskaintzen du, JavaScript kodea komando-lerrotik exekutatzeko erabil daitekeena. Gainera, qjsc konpilatzailea eskuragarri dago, kanpoko menpekotasunik behar ez duten exekuzio autonomorako egokiak diren irteerako fitxategi exekutagarriak sortzeko gai.

Ezaugarri nagusiak:

  • Trinkoa eta erraz integratzeko beste proiektu batzuetan. Kodeak muntatzeko kanpoko menpekotasunik behar ez duten C fitxategi batzuk bakarrik biltzen ditu. Konpilatutako aplikazio errazenak 190 KB inguru hartzen ditu;
  • Errendimendu oso altua eta abiarazteko denbora laburra. 56 mila ECMAScript bateragarritasun-proba gainditzeak 100 segundo inguru behar ditu mahaigaineko ordenagailu arrunt baten nukleo bakarrean exekutatzen direnean. Exekuzio-denbora hasieratzeak 300 mikrosegundo baino gutxiago behar ditu;
  • ES2019 zehaztapenaren ia laguntza osoa eta B eranskinaren laguntza osoa, web-aplikazio zaharrekin bateragarri izateko osagaiak definitzen dituena;
  • ECMAScript Test Suite-ko proba guztiak erabat gainditzea;
  • Javascript kodea kanpoko menpekotasunik gabeko fitxategi exekutagarrietan konpilatzeko laguntza;
  • Garbiketa ziklikorik gabeko erreferentzia zenbaketetan oinarritutako zabor-biltzailea, portaera aurreikusgarria lortu eta memoria-kontsumoa murrizteko aukera eman zigun;
  • JavaScript-en kalkulu matematikoetarako luzapen multzoa;
  • Kodea komando-lerroko moduan exekutatzeko shell bat, testuinguruko kodea nabarmentzea onartzen duena;
  • Liburutegi estandar trinkoa C liburutegiaren gainean bilgarriak dituena.

Proiektua QuickJS-n parte hartzen duten eta banakako erabilerarako egokiak diren hiru C liburutegi ere garatzen ari da:

  • libregexp - adierazpen erregularren ezarpen azkarra, guztiz bateragarria Javascript ES 2019 zehaztapenarekin;
  • libunicode - Unicoderekin lan egiteko liburutegi trinkoa;
  • libbf - Zehaztasun arbitrarioko koma mugikorreko eragiketak eta funtzio transzendentalak biribilketa zehatzarekin ezartzea.

Iturria: opennet.ru

Gehitu iruzkin berria