Lien Publication de MicroQuickJS, un moteur JavaScript pour système embarqué


Fabrice Bellard vient de mettre à jour NumCalc, sa calculatrice scientifique et graphique en ligne, qui utilise maintenant un nouveau code indépendant de QuickJS (je vous renvoie à la dépêche qui abordait cette question).

Le nouveau code est un mix entre Javascript, Python et Julia. Le code Javascript utilise la bibliothèque LibBF (MIT). L'interface a été retravaillée mais reste minimaliste pour être pratique et légère. Elle est devenue responsive et s'affiche très bien sur un mobile. Elle accepte maintenant des entrées en syntaxe Calc et Javascript.
NumCalc est rapide, ça m'a impressionné. La réactivité vient aussi du navigateur et de l'ordinateur puisque tout se passe sur votre poste, rien n'est envoyé au serveur. C'est surtout une sensation. Par exemple l'application Qalculate! me parait moins nerveuse, comme on dit d'une voiture. Bref, NumCalc est agréable.
Les deux précédentes versions sont toujours disponibles.
Finalement Fabrice Bellard est comme tout le monde, lui aussi numérote ses versions avec des dates, c'est plus simple. Voici donc la version annuelle de QuickJS (licence MIT), son moteur JavaScript incorporable et compact (le binaire Linux 64 bits fait 757 kiB). QuickJS est compatible avec ECMAScript 2023 — sauf pour les appels tails que les auteurs ne trouvent pas indispensables — et passe presque toute la suite de tests ECMAScript (en sélectionnant ES2023).
En 2023, pour revivifier un développement un peu dormant, la fourche QuickJS-NG a été lancée (par un des contributeurs de Jitsi). QuickJS-NG est intéressant pour ceux qui veulent utiliser cmake et compiler le projet sous Windows avec le compilateur C Microsoft. Il intègre aussi le support de quelques fonctionnalités récentes de la norme JavaScript que QuickJS ne supporte pas encore. (Je cite Fabrice Bellard). Les différences ne sont pas énormes. La version 0.10 est toute neuve.
Ci-après, Fabrice Bellard m'a très gentiment expliqué les principaux changements de QuickJS.



Fabrice Bellard récidive, cette fois ci avec un moteur JavaScript qui a l'air plutôt complet et supportant les dernières versions de la norme.
Son nom est QuickJs.
J'adore les moteurs JavaScript que l'on peut enfouir dans un exécutable C++, cela permet d'ajouter une couche scriptable à une application. J'utilise depuis longtemps Duktape, une perle, qui me permet même de gagner des sous.
A tester et benchmarker, ce que je compte faire la semaine prochaine si j'ai le temps.
La revue de presse de l'April est régulièrement éditée par les membres de l'association. Elle couvre l'actualité de la presse en ligne, liée au logiciel libre. Il s'agit donc d'une sélection d'articles de presse et non de prises de position de l'association de promotion et de défense du logiciel libre.
D’après Wikipédia :
FFmpeg est une collection de logiciels libres dédiés au traitement de flux audio ou vidéo (enregistrement, lecture ou conversion d’un format à un autre).
Ce projet a été créé par Fabrice Bellard en 2000, et est maintenant maintenu par Michael Niedermayer. […] Le choix de la licence GNU LGPL ou GNU GPL dépend du choix de configuration d’options.
FFmpeg tourne sous rien de moins que GNU/Linux, FreeBSD, NetBSD, OpenBSD, Mac OS X, Windows, AmigaOS et MorphOS. Il est, entre autres, utilisé par VLC, MPlayer, Blender, Chrome et bien d’autres logiciels.
La version 1.0, publiée le 2012-09-28 (format ISO 8601), nom de code Angel, apporte un certain nombre de changements. Citons notamment :
Si l’on parle de FFmpeg, on doit aussi sans doute parler du fork Libav : celui‐ci est désormais intégré à Debian + Ubuntu, ainsi que dans Gstreamer. Voir sur libav.org.
Après, entre autre, Qemu, Ffmpeg, Tcc et après avoir calculé le plus grand nombre de décimales de Pi, Fabrice Bellard nous livre cette fois-ci, un émulateur x86 tournant dans un navigateur web. Pour tester, il vous faudra utiliser soit FF4 soit Chromium. (A noter: l'exécution dans FF est environ 2 fois plus rapide.)
L'image disque est un ramfs qui contient un système de fichiers créé avec buildroot contenant busybox. Le noyau est un 2.6.20. Pour l'instant, il (…)