Hoʻopuka ʻo QEMU a me FFmpeg Founder i ka ʻenekini JavaScript QuickJS

ʻO Fabrice Bellard ka mea makemakika Farani, nāna i hoʻokumu i nā papahana QEMU a me FFmpeg, a ua hana pū i ke ʻano wikiwiki loa no ka helu ʻana i ka pi a hoʻomohala i ke ʻano kiʻi. ʻO BPG, hoʻopuka i ka hoʻokuʻu mua ʻana o kahi mīkini JavaScript hou QuickJS. Paʻa ka ʻenekini a nānā pono i ka hoʻopili ʻana i nā ʻōnaehana ʻē aʻe. Ua kākau ʻia ke code papahana ma C a māhele ʻia ma lalo o ka laikini MIT. Loaʻa pū kekahi hui o ka mīkini i hōʻuluʻulu ʻia i WebAssembly me ka hoʻohana ʻana iā Emscripten a kūpono no ka hoʻokō ʻana i nā polokalamu kele pūnaewele.

Hoʻokō JavaScript kākoʻo ka ES2019 kikoʻī, me nā modules, asynchronous generators, a me nā proxies. Kākoʻo ʻia nā makemakika maʻamau ʻole. hoʻopau no JavaScript, e like me nā ʻano BigInt a me BigFloat, a me mea hoʻohana overloading. Ma keʻano o ka hana, he mea nui ka QuickJS ʻoi aku i nā analogues i loaʻa, no ka laʻana, i ka hoʻāʻo
Aia ʻo bench-v8 ma mua o ka ʻenekini XS ma 35%, duktape ʻoi aku ma mua o ʻelua ʻO JerryScript ekolu manawa a MuJS ehiku manawa.

Ma waho aʻe o ka waihona no ka hoʻokomo ʻana i ka ʻenekini i nā noi, hāʻawi pū ka papahana i kahi unuhi qjs hiki ke hoʻohana ʻia e holo i ka code JavaScript mai ka laina kauoha. Eia kekahi, loaʻa ka qjsc compiler, hiki ke hana i nā faila hoʻokō kūʻokoʻa ʻaʻole pono nā hilinaʻi o waho.

Nā Kiʻi Nui:

  • Paʻa a maʻalahi e hoʻohui i nā papahana ʻē aʻe. Aia i loko o ke code he mau faila C wale nō i koi ʻole i nā hilinaʻi waho e kūkulu. Ma kahi o 190 KB ka palapala noi maʻalahi;
  • Hana kiʻekiʻe loa a me ka manawa hoʻomaka haʻahaʻa. ʻO ka hala ʻana o 56 tausani ECMAScript hoʻāʻo hoʻohālikelike e lawe ʻia ma kahi o 100 kekona ke hoʻokō ʻia ma ke kumu hoʻokahi o kahi PC desktop maʻamau. ʻOi aku ka liʻiliʻi o 300 microseconds no ka hoʻomaka ʻana o ka holo;
  • Kokoke piha i ke kākoʻo no ka kikoʻī ES2019 a me ke kākoʻo piha no Annex B, e wehewehe ana i nā ʻāpana no ka hoʻohālikelike ʻana me nā noi pūnaewele kahiko;
  • Hoʻopau piha i nā hoʻokolohua a pau mai ka ECMAScript Test Suite;
  • Kākoʻo no ka hōʻuluʻulu ʻana i ka code Javascript i nā faila hiki ke hoʻokō ʻia me ka ʻole o nā hilinaʻi waho;
  • ʻO ka ʻohi ʻōpala i helu ʻia me ka hoʻomaʻemaʻe ʻole ʻana i ka paikikala, i ʻae ʻia no ka hana wānana a hoʻemi i ka hoʻohana ʻana i ka hoʻomanaʻo;
  • He pūʻulu o nā hoʻonui no ka helu makemakika ma ka ʻōlelo JavaScript;
  • He pūpū no ka hoʻokō ʻana i ke code ma ke ʻano laina kauoha e kākoʻo ana i ka hōʻike ʻana i nā code contextual;
  • He waihona maʻamau paʻa me nā mea paʻa ma luna o ka waihona C.

Hoʻomohala ka papahana i ʻekolu mau hoa waihona C-i komo i QuickJS a kūpono no kahi noi ʻokoʻa:

  • ʻO libregexp kahi hoʻokō wikiwiki o nā ʻōlelo maʻamau i hoʻokō piha ʻia me ka kikoʻī Javascript ES 2019;
  • ʻO ka libunicode kahi waihona puke paʻa no ka hana pū me Unicode;
  • ʻO ka libbf ka hoʻokō ʻana i nā hana lana a me nā hana transcendental pōʻai pololei.

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka