O fundador de QEMU e FFmpeg publica QuickJS JavaScript Engine

O matemático francés Fabrice Bellard, que fundou os proxectos QEMU e FFmpeg, tamén creou a fórmula máis rápida para calcular o número Pi e desenvolveu o formato de imaxe. PIB, publicou a primeira versión do novo motor JavaScript QuickJS. O motor é compacto e deseñado para a súa integración noutros sistemas. O código do proxecto está escrito en C e distribúese baixo a licenza MIT. Tamén está dispoñible unha versión do motor, compilada en WebAssembly usando Emscripten e adecuada para a súa execución en navegadores.

Implementación de JavaScript soportes Especificación ES2019, incluíndo módulos, xeradores asíncronos e proxies. Opcionalmente admiten matemáticas non estándar ampliación para JavaScript, como os tipos BigInt e BigFloat, así como sobrecarga do operador. O rendemento de QuickJS é significativo superior a análogos dispoñibles, por exemplo, na proba
bench-v8 está por diante do motor XS cun 35%, DukTape máis que dobrado jerryscript tres veces e MuJS sete veces.

Ademais da biblioteca para incorporar o motor nas aplicacións, o proxecto tamén ofrece un intérprete qjs, que se pode usar para executar código JavaScript desde a liña de comandos. Ademais, está dispoñible o compilador qjsc, capaz de xerar ficheiros executables de saída axeitados para a execución autónoma que non requiren dependencias externas.

Características clave:

  • Compacto e fácil de integrar noutros proxectos. O código inclúe só algúns ficheiros C que non requiren dependencias externas para a montaxe. A aplicación compilada máis sinxela leva uns 190 KB;
  • Moi alto rendemento e curto tempo de arranque. Superar 56 mil probas de compatibilidade ECMAScript leva uns 100 segundos cando se executa nun único núcleo dun PC de escritorio normal. A inicialización do tempo de execución leva menos de 300 microsegundos;
  • Soporte case completo para a especificación ES2019 e soporte total para o Apéndice B, que define os compoñentes para a compatibilidade coas aplicacións web legadas;
  • Superación completa de todas as probas do ECMAScript Test Suite;
  • Soporte para compilar código Javascript en ficheiros executables sen dependencias externas;
  • Un colector de lixo baseado no reconto de referencias sen limpeza cíclica, que nos permitiu acadar un comportamento previsible e reducir o consumo de memoria;
  • Un conxunto de extensións para cálculos matemáticos en JavaScript;
  • Un shell para executar código no modo de liña de comandos, que admite o resaltado de código contextual;
  • Biblioteca estándar compacta con envoltorios sobre a biblioteca C.

O proxecto tamén está a desenvolver tres bibliotecas C acompañantes implicadas en QuickJS e adecuadas para uso individual:

  • libregexp: implementación rápida de expresións regulares, totalmente compatible coa especificación Javascript ES 2019;
  • libunicode - unha biblioteca compacta para traballar con Unicode;
  • libbf - Implementación de operacións de coma flotante de precisión arbitraria e funcións transcendentais con redondeo exacto.

Fonte: opennet.ru

Engadir un comentario