4 points par GN⁺ 2023-10-09 | 1 commentaires | Partager sur WhatsApp
  • Cet article présente Berry, un langage de script embarqué ultra-léger à typage dynamique.
  • Berry a été spécialement conçu pour les appareils embarqués aux performances limitées.
  • La taille du code du cœur de l’interpréteur Berry est inférieure à 40 KiB et il peut fonctionner avec moins de 4 KiB de heap. Cela a été testé sur un CPU ARM Cortex M4 en utilisant l’ISA Thumb et le compilateur ARMCC.
  • L’interpréteur de Berry comprend un compilateur en une passe et une machine virtuelle (VM) basée sur des registres. Tout le code a été écrit en ANSI C99.
  • Dans Berry, tous les types ne sont pas des objets de classe. Les types de valeurs simples comme int, real, boolean et string ne sont pas des objets de classe, tandis que list, map et range le sont. Cela tient à des considérations de performance.
  • Dans le contexte de Berry, le terme "VM basée sur des registres" a le même sens que dans l’informatique générale.

1 commentaires

 
GN⁺ 2023-10-09
Commentaires Hacker News
  • Berry est un langage de script embarqué ultraléger à typage dynamique, doté d’un ensemble de fonctionnalités étonnamment riche pour un runtime de 40 Ko.
  • Il exécute un langage similaire à Python/Ruby et prend en charge les styles procédural, orienté objet et fonctionnel.
  • Berry se distingue par sa capacité à précréer des objets constants et à placer la plupart d’entre eux en ROM, ce qui économise la RAM pour les données variables, une fonctionnalité qu’on ne trouve pas dans MicroPython ou Lua.
  • Berry est utilisé dans Tasmota, une plateforme pour appareils IoT.
  • La documentation du langage est largement saluée pour son caractère complet, ainsi que pour son « manuel court » destiné aux développeurs expérimentés.
  • Certains utilisateurs ont exprimé le souhait d’avoir un langage similaire avec moins de paradigmes et un typage statique, afin de l’utiliser comme langage de configuration.
  • Des propositions ont été faites concernant la fourniture de bindings vers d’autres langages, ainsi que des questions sur la possibilité de reprise de fonctions ou de générateurs.
  • Les utilisateurs s’intéressent aux comparaisons de performances et d’utilisation mémoire entre Berry et Lua, ainsi qu’aux fonctionnalités de sandboxing pour exécuter du code non fiable.
  • Une question porte sur la possibilité d’afficher les frames de pile avec les noms des fonctions de script dans les stack traces natives.