Stèidheadair QEMU agus FFmpeg a’ foillseachadh einnsean JavaScript QuickJS

Chruthaich am matamataics Frangach Fabrice Bellard, a stèidhich na pròiseactan QEMU agus FFmpeg, am foirmle as luaithe airson an àireamh Pi a thomhas agus leasaich e cruth na h-ìomhaigh. GDP, fhoillseachadh a’ chiad fhoillseachadh den einnsean JavaScript ùr QuickJS. Tha an einnsean teann agus air a dhealbhadh airson amalachadh a-steach do shiostaman eile. Tha còd a’ phròiseict sgrìobhte ann an C agus air a chuairteachadh fo chead MIT. Tha togalach den einnsean ri fhaighinn cuideachd, air a chur ri chèile ann an WebAssembly a’ cleachdadh Emscripten agus freagarrach airson a chur gu bàs ann am brobhsairean.

Cur an gnìomh JavaScript a ’toirt taic Sònrachadh ES2019, a’ toirt a-steach modalan, gineadairean asyncronach agus proxies. Tha taic roghnach aig matamataigs neo-àbhaisteach leudachadh airson JavaScript, leithid seòrsaichean BigInt agus BigFloat, a bharrachd air gnìomhaiche a’ luchdachadh cus. Tha coileanadh QuickJS cudromach nas fheàrr na analogs a tha rim faighinn, mar eisimpleir, anns an deuchainn
bench-v8 air thoiseach air an einnsean XS aig 35%, DukTape barrachd air dùblachadh JerrySgriobt tri uairean agus MuJS seachd uairean.

A bharrachd air an leabharlann airson an einnsean fhighe a-steach do thagraidhean, tha am pròiseact cuideachd a’ tabhann eadar-theangair qjs, a dh’ fhaodar a chleachdadh gus còd JavaScript a ruith bhon loidhne-àithne. A bharrachd air an sin, tha an compiler qjsc ri fhaighinn, comasach air faidhlichean so-ghnìomhaichte toraidh a ghineadh a tha freagarrach airson coileanadh leotha fhèin nach eil feumach air eisimeileachd bhon taobh a-muigh.

Prìomh fheartan:

  • Compact agus furasta fhilleadh a-steach do phròiseactan eile. Chan eil anns a’ chòd ach beagan fhaidhlichean C nach eil feumach air eisimeileachd bhon taobh a-muigh airson co-chruinneachadh. Bheir an tagradh cruinnichte as sìmplidh timcheall air 190 KB;
  • Coileanadh fìor àrd agus ùine tòiseachaidh goirid. Le bhith a’ dol seachad air 56 mìle deuchainn co-chòrdalachd ECMAScript bheir e timcheall air 100 diogan nuair a thèid a chuir gu bàs air aon chridhe de PC deasg àbhaisteach. Bheir toiseach tòiseachaidh ùine ruith nas lugha na 300 microseconds;
  • Cha mhòr làn thaic do shònrachadh ES2019 agus làn thaic airson Pàipear-taice B, a tha a’ mìneachadh phàirtean airson co-chòrdalachd le tagraidhean lìn dìleab;
  • Cuir seachad crìoch air a h-uile deuchainn bhon t-sreath deuchainn ECMAScript;
  • Taic airson còd Javascript a chur ri chèile ann am faidhlichean so-ghnìomhaichte gun eisimeileachd bhon taobh a-muigh;
  • Neach-cruinneachaidh sgudail stèidhichte air cunntadh iomraidh gun ghlanadh cearcallach, a leig leinn giùlan ro-innseach a choileanadh agus caitheamh cuimhne a lughdachadh;
  • Seata de leudachaidhean airson àireamhachadh matamataigeach ann an JavaScript;
  • Slige airson còd a chuir an gnìomh ann am modh loidhne-àithne, a’ toirt taic do shoilleireachadh còd co-theacsa;
  • Leabharlann àbhaisteach teann le pasgain thairis air leabharlann C.

Tha am pròiseact cuideachd a’ leasachadh trì leabharlannan C a tha an sàs ann an QuickJS agus a tha freagarrach airson an cleachdadh fa leth:

  • libregexp - buileachadh luath de abairtean cunbhalach, gu tur co-chòrdail ri sònrachadh Javascript ES 2019;
  • libunicode - leabharlann teann airson obrachadh le Unicode;
  • libf - Cur an gnìomh gnìomhachd puing-fleòdraidh mionaideachd neo-riaghailteach agus gnìomhan tar-ghnèitheach le cruinn cruinn.

Source: fosgailtenet.ru

Cuir beachd ann