Damezrînerê QEMU û FFmpeg Engine QuickJS JavaScript diweşîne

Matematîkzanê Fransî Fabrice Bellard, ku carekê projeyên QEMU û FFmpeg damezrand, û her weha formula herî bilez ji bo hesabkirina pi afirand û forma wêneyê pêşxist. .bpg, yekem serbestberdana motorek nû ya JavaScriptê weşand QuickJS. Motor kompakt e û li ser vegirtina di pergalên din de hûr dibe. Koda projeyê bi C-yê hatî nivîsandin û di bin lîsansa MIT-ê de tê belav kirin. Di heman demê de meclîsek motora ku li WebAssembly bi karanîna Emscripten hatî berhev kirin û ji bo darvekirinê di gerokan de maqûl e jî heye.

Pêkanîna JavaScript piştgirî dike taybetmendiya ES2019, di nav de modul, jeneratorên asynchronous, û proxies. Mathên ne-standard bi vebijarkî têne piştgirî kirin. firehbûnî ji bo JavaScript, wekî celebên BigInt û BigFloat, û her weha overloading operator. Di warê performansê de, QuickJS girîng e ji yê çêtir analogên heyî, ji bo nimûne, di testê de
bench-v8 li pêş motorê ye XS %35, duktape ji du caran zêdetir jerryscript sê caran û MuJS heft caran.

Ji bilî pirtûkxaneyê ji bo vegirtina motorê di serîlêdanan de, proje wergêra qjs jî pêşkêşî dike, ku dikare were bikar anîn da ku koda JavaScript-ê ji rêzika fermanê bimeşîne. Digel vê yekê, berhevkarê qjsc heye, ku karibe pelên bikêrhatî yên serbixwe yên ku pêgirêdanên derve ne hewce ne hilberîne.

Taybetmendiyên sereke:

  • Komakt û hêsan e ku meriv di projeyên din de entegre bibe. Kod tenê çend pelên C-yê yên ku ji bo avakirina pêwendiyên derveyî hewce ne vedihewîne. Serîlêdana hêsan a berhevkirî bi qasî 190 KB digire;
  • Performansa pir bilind û dema destpêkirina kêm. Derbaskirina 56 hezar ceribandinên lihevhatina ECMAScript dema ku li ser yek bingehek PC-ya sermaseya tîpîk tê darve kirin bi qasî 100 saniyeyan digire. Destpêkirina dema xebitandinê ji 300 mîkroçirkeyan kêmtir digire;
  • Hema hema piştgirîya bêkêmasî ji bo taybetmendiya ES2019 û piştgirîya bêkêmasî ya ji bo Pêvek B, ku pêkhateyên ji bo lihevhatina bi sepanên webê yên kevn re diyar dike;
  • Bi tevahî derbasbûna hemî ceribandinên ji Suite Testê ya ECMAScript;
  • Piştgiriya berhevkirina koda Javascript-ê di pelên îcrakar de bêyî girêdanên derveyî;
  • Berhevkarê çopê-hejmarkirî bêyî bisiklêta paqijkirinê, ku rê dide behremendiya pêşbînîkirî û vexwarina bîranînê kêm dike;
  • Komek dirêjkirina ji bo hesabên matematîkî yên bi zimanê JavaScript;
  • Kevirek ji bo pêkanîna kodê di moda rêzika fermanê de ku ronîkirina koda kontekstê piştgirî dike;
  • Pirtûkxaneyek standard a kompakt bi girêdanên li ser pirtûkxaneya C.

Di heman demê de proje sê pirtûkxaneyên C-heval ên ku di QuickJS-ê de têkildar in û ji bo serîlêdanek cihêreng maqûl in jî pêşve dike:

  • libregexp pêkanîna bilez a îfadeyên birêkûpêk e ku bi tevahî bi taybetmendiya Javascript ES 2019 re lihevhatî ye;
  • libunicode - pirtûkxaneyek kompakt ji bo xebata bi Unicode;
  • libbf pêkanîna operasyonên xala herikînê ya keyfî û fonksiyonên transcendental dorpêçkirina rastîn e.

Source: opennet.ru

Add a comment