Ang QEMU ug FFmpeg Founder Nagpatik sa QuickJS JavaScript Engine

Ang French mathematician nga si Fabrice Bellard, nga nagtukod sa mga proyekto sa QEMU ug FFmpeg, naghimo usab sa labing paspas nga pormula sa pagkalkula sa numero nga Pi ug gipalambo ang format sa imahe. GDP, gipatik ang unang pagpagawas sa bag-ong JavaScript engine QuickJS. Ang makina mao ang compact ug gidisenyo alang sa integration sa ubang mga sistema. Ang code sa proyekto gisulat sa C ug giapod-apod ubos sa lisensya sa MIT. Anaa usab ang usa ka pagtukod sa makina, nga giipon sa WebAssembly gamit ang Emscripten ug angay alang sa pagpatuman sa mga browser.

Pagpatuman sa JavaScript nagsuporta Ang detalye sa ES2019, lakip ang mga module, asynchronous generator ug proxy. Ang dili standard nga matematika kay opsyonal nga gisuportahan pagpalapad alang sa JavaScript, sama sa mga tipo sa BigInt ug BigFloat, ingon man overloading sa operator. Ang pasundayag sa QuickJS hinungdanon superyor sa magamit nga mga analogue, pananglitan, sa pagsulay
Ang bench-v8 naa sa unahan sa makina XS sa 35%, duktape labaw pa sa kaduha jerryscript tulo ka beses ug MuJS pito ka beses.

Dugang pa sa librarya alang sa pag-embed sa makina ngadto sa mga aplikasyon, ang proyekto nagtanyag usab og qjs interpreter, nga magamit sa pagpadagan sa JavaScript code gikan sa command line. Dugang pa, ang qjsc compiler anaa, makahimo sa pagmugna og output executable files nga angay alang sa stand-alone execution nga wala magkinahanglan ug external dependencies.

ОООО о: о о о:

  • Compact ug sayon ​​nga i-integrate sa ubang mga proyekto. Ang code naglakip lamang sa pipila ka mga C file nga wala magkinahanglan sa gawas nga mga dependency alang sa asembliya. Ang pinakasimple nga gihugpong nga aplikasyon nagkinahanglan ug mga 190 KB;
  • Taas kaayo nga performance ug mubo nga oras sa pagsugod. Ang pagpasa sa 56 ka libo nga ECMAScript compatibility tests mokabat ug mga 100 segundos kung ipatuman sa usa ka core sa usa ka regular nga desktop PC. Ang pagsugod sa runtime nagkinahanglan og ubos pa sa 300 microseconds;
  • Halos bug-os nga suporta para sa ES2019 nga detalye ug bug-os nga suporta para sa Appendix B, nga naghubit sa mga sangkap alang sa pagkaangay sa mga kabilin nga aplikasyon sa web;
  • Kompleto nga pagpasa sa tanang mga pagsulay gikan sa ECMAScript Test Suite;
  • Suporta alang sa pag-compile sa Javascript code ngadto sa executable files nga walay external dependencies;
  • Usa ka tigkolekta sa basura base sa pag-ihap sa reference nga walay cyclic nga pagpanglimpyo, nga nagtugot kanamo sa pagkab-ot sa matag-an nga kinaiya ug pagpakunhod sa konsumo sa panumduman;
  • Usa ka hugpong sa mga extension alang sa mga kalkulasyon sa matematika sa JavaScript;
  • Usa ka kabhang alang sa pagpatuman sa code sa command line mode, pagsuporta sa contextual code highlighting;
  • Compact standard library nga adunay mga wrapper sa C library.

Ang proyekto nagpalambo usab sa tulo ka kauban nga mga librarya sa C nga nahilambigit sa QuickJS ug angay alang sa indibidwal nga paggamit:

  • libregexp - paspas nga pagpatuman sa mga regular nga ekspresyon, hingpit nga nahiuyon sa espesipikasyon sa Javascript ES 2019;
  • libunicode - usa ka compact library alang sa pagtrabaho kauban ang Unicode;
  • libbf - Pagpatuman sa arbitraryong katukma nga floating point nga mga operasyon ug transendental nga mga gimbuhaton nga adunay eksaktong rounding.

Source: opennet.ru

Idugang sa usa ka comment