Ustanovitelj QEMU in FFmpeg je objavil JavaScript motor QuickJS

Francoski matematik Fabrice Bellard, ustanovitelj projektov QEMU in FFmpeg ter avtor najhitrejše formule za izračun števila Pi, je razvil format slik BPG. BPG, objavil je prvo izdajo novega JavaScript motorja QuickJS. Motor je kompakten in družbeno usmerjen za vključenost v druge sisteme. Koda projekta je napisana v C in je licencirana pod MIT licenci. Na voljo je tudi različica motorja, ki je prevedena v WebAssembly s pomočjo Emscripten in je primerna za izvajanje v brskalnikih.

Implementacija JavaScript podpira specifikacije ES2019, vključno z moduli, asinhronimi generatorji in proxy. Opcijsko se podpirajo nestandardne matematične проширења funkcije za JavaScript, kot so tipi BigInt in BigFloat, ter pretovarjanje operatorjev. Po zmogljivosti QuickJS bistveno presega obstoječe alternative, na primer, v testu
bench-v8 prehiteva motor XS za 35%, DukTape več kot dvakrat, JerryScript trikrat, in MuJS sedemkrat.

Poleg knjižnice za vgradnjo motorja v aplikacije projekt ponuja tudi interpreter qjs, ki ga lahko uporabite za izvajanje JavaScript kode iz ukazne vrstice. Poleg tega je na voljo prevajalnik qjsc, ki lahko generira samostojne izvršljive datoteke, ki ne zahtevajo zunanjih odvisnosti.

Ključne karakteristike:

  • Kompaktna zasnova in enostavna vgradnja v druge projekte. Koda vključuje le nekaj datotek v C, ki ne zahtevajo zunanjih odvisnosti za sestavljanje. Najenostavnejša sestavljena aplikacija zavzema približno 190 Kb;
  • Zelo visoka učinkovitost in kratki časi zagon. Prehod 56 tisoč testov združljivosti z ECMAScript traja približno 100 sekund pri izvajanju na eni jedru običajnega namiznega računalnika. Inicializacija okolja traja manj kot 300 mikrosekund;
  • Skoraj popolna podpora specifikaciji ES2019 in popolna podpora aplikacije 'B', ki opredeljuje komponente za združljivost s starimi spletnimi aplikacijami;
  • Popolno prehajanje vseh testov iz seta ECMAScript Test Suite;
  • Podpora za prevajanje kode JavaScript v izvršljive datoteke brez zunanjih odvisnosti;
  • Garbage collector na osnovi štetja referenc brez cikličnega izvajanja čiščenja, kar je omogočilo predvidljivo vedenje in zmanjšanje porabe pomnilnika;
  • Nabor razširitev za matematične izračune v jeziku JavaScript;
  • Orodje za izvajanje kode v ukazni vrstici, ki podpira sintaktično barvanje;
  • Kompaktna standardna knjižnica z ovitki nad C-knjižnico.

Projekt razvija tudi tri spremljevalne C-knjižnice, uporabljene v QuickJS in primerne za ločeno uporabo:

  • libregexp — hitra implementacija regularnih izrazov, popolnoma skladnih s specifikacijo Javascript ES 2019;
  • libunicode — kompaktna knjižnica za delo z Unicode;
  • libbf — implementacija operacij s plavajočo vejico poljubne natančnosti in transcenentalnih funkcij z natančnim zaokroževanjem.

Izvor: opennet.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster