QEMU ati Oludasile FFmpeg Ṣe atẹjade Ẹrọ JavaScript QuickJS

Faranse mathimatiki Fabrice Bellard, ẹniti o da awọn iṣẹ akanṣe QEMU ati FFmpeg, tun ṣẹda agbekalẹ ti o yara ju fun iṣiro nọmba Pi ati idagbasoke ọna kika aworan. GDP, ṣe atẹjade idasilẹ akọkọ ti ẹrọ JavaScript tuntun QuickJS. Awọn engine jẹ iwapọ ati ki o apẹrẹ fun Integration sinu miiran awọn ọna šiše. Koodu ise agbese ti kọ sinu C ati pinpin labẹ iwe-aṣẹ MIT. A Kọ ti awọn engine jẹ tun wa, compiled sinu WebAssembly lilo Emscripten ati ki o dara fun ipaniyan ni aṣàwákiri.

JavaScript imuse awọn atilẹyin Sipesifikesonu ES2019, pẹlu awọn modulu, awọn olupilẹṣẹ asynchronous ati awọn aṣoju. Iṣiro ti kii ṣe deede jẹ atilẹyin ni yiyan gbooro fun JavaScript, gẹgẹ bi awọn BigInt ati BigFloat orisi, bi daradara bi overloading onišẹ. Iṣe ti QuickJS ṣe pataki ga si awọn analogues ti o wa, fun apẹẹrẹ, ninu idanwo naa
ibujoko-v8 jẹ niwaju ti awọn engine XS nipasẹ 35%, DukTape diẹ ẹ sii ju ti ilọpo meji jerryscript igba mẹta ati MuJS igba meje.

Ni afikun si ile-ikawe fun ifibọ ẹrọ sinu awọn ohun elo, iṣẹ naa tun funni ni onitumọ qjs, eyiti o le ṣee lo lati ṣiṣẹ koodu JavaScript lati laini aṣẹ. Pẹlupẹlu, olupilẹṣẹ qjsc wa, ti o lagbara lati ṣe agbejade awọn faili ṣiṣe ṣiṣe ti o dara fun ipaniyan imurasilẹ ti ko nilo awọn igbẹkẹle ita.

Awọn ẹya pataki:

  • Iwapọ ati rọrun lati ṣepọ si awọn iṣẹ akanṣe miiran. Koodu naa pẹlu awọn faili C diẹ nikan ti ko nilo awọn igbẹkẹle ita fun apejọ. Ohun elo akopọ ti o rọrun julọ gba to 190 KB;
  • Iṣẹ ṣiṣe giga pupọ ati akoko ibẹrẹ kukuru. Gbigbe awọn idanwo ibaramu ECMAScript ẹgbẹrun 56 gba to bii iṣẹju-aaya 100 nigba ti a ṣe lori ipilẹ kan ṣoṣo ti PC tabili tabili deede. Ibẹrẹ akoko ṣiṣe gba to kere ju 300 microseconds;
  • Fere ni kikun atilẹyin fun sipesifikesonu ES2019 ati atilẹyin ni kikun fun Àfikún B, eyiti o ṣalaye awọn paati fun ibaramu pẹlu awọn ohun elo wẹẹbu julọ;
  • Ipari pipe gbogbo awọn idanwo lati ECMAScript Test Suite;
  • Atilẹyin fun iṣakojọpọ koodu Javascript sinu awọn faili ṣiṣe laisi awọn igbẹkẹle ita;
  • Akojo idoti ti o da lori kika itọkasi laisi mimọ cyclic, eyiti o fun wa laaye lati ṣaṣeyọri ihuwasi asọtẹlẹ ati dinku agbara iranti;
  • Eto awọn amugbooro fun awọn iṣiro mathematiki ni JavaScript;
  • Ikarahun kan fun pipaṣẹ koodu ni ipo laini aṣẹ, ti n ṣe afihan koodu asọye;
  • Iwapọ boṣewa ìkàwé pẹlu wrappers lori awọn C ìkàwé.

Ise agbese na tun n ṣe idagbasoke awọn ile-ikawe C mẹta ti o tẹle pẹlu QuickJS ati pe o dara fun lilo ẹni kọọkan:

  • libregexp - imuse iyara ti awọn ikosile deede, ni ibamu ni kikun pẹlu sipesifikesonu Javascript ES 2019;
  • libunicode - ile-ikawe iwapọ fun ṣiṣẹ pẹlu Unicode;
  • libbf - imuse awọn iṣẹ aaye lilefoofo pipe lainidii ati awọn iṣẹ transcendental pẹlu iyipo gangan.

orisun: opennet.ru

Fi ọrọìwòye kun