QEMU na FFmpeg Mwanzilishi Huchapisha Injini ya JavaScript ya QuickJS

Mwanahisabati Mfaransa Fabrice Bellard, ambaye alianzisha miradi ya QEMU na FFmpeg, pia aliunda fomula ya haraka sana ya kukokotoa nambari Pi na kuendeleza umbizo la picha. Pato la Taifa, ilichapisha toleo la kwanza la injini mpya ya JavaScript QuickJS. Injini ni compact na iliyoundwa kwa ajili ya kuunganishwa katika mifumo mingine. Nambari ya mradi imeandikwa kwa C na inasambazwa chini ya leseni ya MIT. Muundo wa injini pia unapatikana, uliokusanywa kwenye WebAssembly kwa kutumia Emscripten na unafaa kwa utekelezaji katika vivinjari.

Utekelezaji wa JavaScript huunga mkono Vipimo vya ES2019, pamoja na moduli, jenereta za asynchronous na proksi. Hisabati zisizo za kawaida zinaweza kutumika kwa hiari upanuzi kwa JavaScript, kama vile aina za BigInt na BigFloat, na vile vile upakiaji wa waendeshaji kupita kiasi. Utendaji wa QuickJS ni muhimu bora kwa analogues inapatikana, kwa mfano, katika mtihani
benchi-v8 iko mbele ya injini XS kwa asilimia 35, DukTape zaidi ya mara mbili jerryscript mara tatu na MuJS mara saba.

Mbali na maktaba ya kupachika injini kwenye programu, mradi pia hutoa mkalimani wa qjs, ambayo inaweza kutumika kuendesha msimbo wa JavaScript kutoka kwa safu ya amri. Zaidi ya hayo, kikusanyaji cha qjsc kinapatikana, chenye uwezo wa kutoa faili zinazoweza kutekelezeka zinazofaa kwa utekelezaji wa kusimama pekee ambazo hazihitaji utegemezi wa nje.

Makala kuu:

  • Compact na rahisi kuunganisha katika miradi mingine. Nambari hiyo inajumuisha faili chache tu za C ambazo hazihitaji utegemezi wa nje kwa kusanyiko. Programu rahisi iliyokusanywa inachukua takriban 190 KB;
  • Utendaji wa juu sana na muda mfupi wa kuanza. Kupitisha majaribio elfu 56 ya uoanifu wa ECMAScript huchukua takriban sekunde 100 inapotekelezwa kwenye msingi mmoja wa Kompyuta ya mezani ya kawaida. Uanzishaji wa muda wa kukimbia huchukua chini ya sekunde 300;
  • Takriban usaidizi kamili wa vipimo vya ES2019 na usaidizi kamili wa Kiambatisho B, ambacho hufafanua vipengele vya uoanifu na programu zilizopitwa na wakati za wavuti;
  • Kufaulu kamili kwa majaribio yote kutoka kwa ECMAScript Test Suite;
  • Msaada wa kuunda nambari ya Javascript kwenye faili zinazoweza kutekelezwa bila tegemezi za nje;
  • Mkusanyaji wa takataka kulingana na kuhesabu kumbukumbu bila kusafisha mzunguko, ambayo ilituwezesha kufikia tabia ya kutabirika na kupunguza matumizi ya kumbukumbu;
  • Seti ya viendelezi vya hesabu za hisabati katika JavaScript;
  • Gamba la kutekeleza msimbo katika hali ya mstari wa amri, inayounga mkono uangaziaji wa msimbo wa muktadha;
  • Maktaba ya kawaida iliyounganishwa na vifuniko juu ya maktaba ya C.

Mradi pia unatengeneza maktaba tatu zinazoambatana na C zinazohusika katika QuickJS na zinazofaa kwa matumizi ya mtu binafsi:

  • libregexp - utekelezaji wa haraka wa misemo ya kawaida, inayoendana kikamilifu na maelezo ya Javascript ES 2019;
  • libunicode - maktaba ya compact kwa kufanya kazi na Unicode;
  • libbf - Utekelezaji wa utendakazi wa uhakika wa uhakika wa kuelea na vitendakazi vya nje vilivyo na mduara kamili.

Chanzo: opennet.ru

Kuongeza maoni