Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Chroniqueur Actualités

    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    juin 2016
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : juin 2016
    Messages : 758
    Points : 22 553
    Points
    22 553

    Par défaut QuickJS : un moteur JavaScript léger, prenant en charge la spécification ES2019

    QuickJS : un moteur JavaScript léger, prenant en charge la spécification ES2019
    y compris les modules, les générateurs asynchrones et les mandataires

    Fabrice Bellard, un programmeur informatique français, a présenté cette semaine QuickJS, un moteur JavaScript léger et intégrable, qui prend en charge la spécification ES2019, y compris les modules, les générateurs asynchrones et les mandataires. Il prend éventuellement en charge des extensions mathématiques telles que les grands entiers (BigInt), les grands nombres à virgule flottante (BigFloat) et la surcharge d'opérateurs. Fabrice Bellard a publié le moteur le mardi passé sous la licence MIT.

    Fabrice Bellard est un mathématicien, ingénieur et développeur français. Il est surtout connu comme étant le développeur principal de QEMU (un émulateur qui permet d'émuler diverses architectures matérielles) et Tiny C Compiler (tcc), un compilateur C très petit, mais complet, qui a été écrit à l'origine pour gagner le concours humoristique « International Obfuscated C Code Contest » (concours du code le plus obscur en langage C).

    Nom : picture060.jpg
Affichages : 4278
Taille : 15,5 Ko
    Fabrice Bellard

    Il est aussi connu pour avoir mis en place le serveur Vidéotex Buster (dédié au téléchargement de logiciels freewares via Minitel) par son utilitaire sous DOS nommé LZEXE qui comprimait un exécutable en le précédant du code qui le décompressait au chargement. Il a présenté QuickJS cette semaine, un moteur JavaScript petit et intégrable, prenant en charge la spécification ES2019, y compris les modules, les générateurs asynchrones et les mandataires. Voyons ci-dessous les caractéristiques essentielles qu’il cite à QuickJS :

    • petit et facilement intégrable : QuickJS comporte juste quelques fichiers C et ne possède aucune dépendance externe. C’est environ 190 Ko de code x86 pour un programme « hello world » ;
    • QuickJS un s'interprète rapidement avec un temps de démarrage très court : QuickJS exécute les 56 000 tests de la suite de tests ECMAScript en environ 100 secondes sur un seul cœur d’un PC de bureau. Le cycle de vie complet d'une instance d'exécution se termine en moins de 300 microsecondes ;
    • QuickJS prend en charge presque complètement les spécifications d’EcmaScript 2019. Ceci comprend les modules, les générateurs asynchrones et une prise en charge complète de l’Annexe B (compatibilité Web héritée) ;
    • QuickJS peut compiler des sources JavaScript en exécutables sans recourir à une dépendance externe ;
    • QuickJS collecte des miettes en utilisant le comptage de références (pour réduire l'utilisation de la mémoire et un comportement déterministe) avec la suppression des cycles ;
    • QuickJS prend en charge des extensions mathématiques : BigInt, BigFloat, surcharge d’opérateur, mode bigint, mode mathématique ;
    • c’est un interpréteur de ligne de commande avec une colorisation contextuelle implémentée en JavaScript ;
    • il propose une petite bibliothèque standard intégrée avec les wrappers de la bibliothèque C.

    QuickJS intègre les bibliothèques C suivantes pouvant être utilisées dans d'autres projets :

    • libregexp : une petite bibliothèque rapide d'expressions rationnelles entièrement conforme à la spécification JavaScript ES2019 ;
    • libunicode : une petite bibliothèque Unicode prenant en charge la conversion de casse, la normalisation Unicode, les requêtes de script Unicode, les requêtes de catégorie générale Unicode et toutes les propriétés binaires Unicode ;
    • libbf : il s'agit aussi d'une petite bibliothèque implémentant des opérations à virgule flottante IEEE 754 et des fonctions transcendantales avec arrondi exact. Il est maintenu en tant que projet séparé.

    À l’installation, un Makefile est fourni pour compiler le moteur sous Linux ou Mac OS/X. Un support Windows préliminaire est disponible via une compilation croisée sur un hôte Linux avec les outils MingGW. Modifiez le haut de la liste Makefile si vous souhaitez sélectionner des options spécifiques, puis exécutez les make. Vous pouvez taper « make install » en tant que root si vous souhaitez installer les fichiers binaires et les fichiers de support sur /usr/local (ceci n'est pas nécessaire pour utiliser QuickJS).

    Vous pouvez consulter la documentation de QuickJS sur son site Web pour en savoir plus. Il fournit également des informations sur le benchmark montrant les performances de QuickJS avec le moteur V8 de Google et une comparaison entre ce dernier et d'autres outils de la même catégorie, notamment DuckTape version 2.3.0, XS version 8.8.0, MuJS version 1.0.6 et JerryScript version 2b8c4286 de git. Tous les moteurs JS testés sont des interprètes et fonctionnent avec des ressources limitées. Pour finir, notez que tous les programmes ont été compilés avec le compilateur GCC 4.9.2 sur un Fedora 21. Ils ont été exécutés sur un processeur Core i5 4570 à 3,2 GHz.

    Source : QuickJS

    Et vous ?

    Qu'en pensez-vous ?

    Voir aussi

    France : un développeur du logiciel VLC et un hacker nommés chevaliers de l'Ordre du Mérite pour leur contribution dans le domaine du logiciel libre

    BPG : un nouveau format d'image de qualité supérieure, basé sur la compression HEVC. Il se positionne comme un remplaçant de JPEG

    Le moteur de JavaScript V8 de Chrome bénéficie d'un lot d'améliorations, afin de le rendre plus rapide et moins lourd
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur C++
    Inscrit en
    octobre 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur C++

    Informations forums :
    Inscription : octobre 2008
    Messages : 179
    Points : 457
    Points
    457

    Par défaut

    Je comprends pas l'intérêt de développer une quinzaine de moteurs Javascript, il y en a dejà plein pourquoi ne pas y contribuer ? mujs, duktape pour ne citez qu'eux (en terme de légereté).

    Et faire une version d'une bibliothèque sous forme de date c'est vraiment tout sauf une bonne idée.

  3. #3
    Expert confirmé Avatar de psychadelic
    Profil pro
    Inscrit en
    mai 2010
    Messages
    2 288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2010
    Messages : 2 288
    Points : 4 399
    Points
    4 399

    Par défaut

    bel exploit, bientôt un navigateur "made in France?, ou alors comme moteur alternatif pour nodeJS ?

    sinon les générateur "asynchrone" ce sont les fonctions "générateur" (avec un yield)?
    mais les 2 autres : les modules et les mandataires... c'est quoi ?

    quand à la surcharge d'opérateur, c'est super mais ça m'étonne , c'est vraiment dans la norme ES2019 ?? si quelqu'un à une doc dessus je serai curieux de la lire
    «La pluralité des voix n'est pas une preuve, pour les vérités malaisées à découvrir, tant il est bien plus vraisemblable qu'un homme seul les ait rencontrées que tout un peuple.» [ René Descartes ] - Discours de la méthode

  4. #4
    Membre éprouvé
    Homme Profil pro
    chomeur
    Inscrit en
    avril 2015
    Messages
    509
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : chomeur
    Secteur : Distribution

    Informations forums :
    Inscription : avril 2015
    Messages : 509
    Points : 974
    Points
    974

    Par défaut

    Je comprends pas l'intérêt
    etre un passionné c'est tout. de plus vu son CVcode on ne peut resté indifférent et cherché avant tout a tester le moteur et voir ce qu'il apporte.

  5. #5
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    avril 2017
    Messages
    674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : avril 2017
    Messages : 674
    Points : 2 971
    Points
    2 971

    Par défaut

    Merci pour cette news intéressante. Par contre, c'est vraiment la pire biographie de Fabrice Bellard que j'ai jamais lue. L'article n'en parle pas mais c'est aussi l'auteur original de ffmpeg, la lib à la base de vlc, utilisée quotidiennement par des millions de gens. Sans parler qu'il a aussi écrit un des programmes les plus performants pour calculer PI, etc.
    https://en.wikipedia.org/wiki/Fabrice_Bellard

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    juin 2006
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : juin 2006
    Messages : 1 298
    Points : 1 187
    Points
    1 187

    Par défaut

    je suis curieux sur le comptage de reference avec cycles. Je croyais que ce n'etait pas possible en javascript...

Discussions similaires

  1. Mais comment le moteur javascript charge-t-il le code ?
    Par FDussault dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 28/05/2011, 10h24
  2. [AJAX] Appel d'une fonction javascript dans une page chargée en ajax
    Par baedal dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 17/04/2008, 17h03
  3. Réponses: 2
    Dernier message: 13/06/2007, 17h18
  4. Comment changer le moteur javascript ?
    Par nico-pyright(c) dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 27/04/2006, 18h48
  5. [FLASH MX2004] Hebergeur prenant en charge ou pas
    Par black is beautiful dans le forum Flash
    Réponses: 5
    Dernier message: 11/01/2005, 19h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo