mruby 3.0, un interprĂ©teur embarquĂ© pour le langage de programmation orientĂ© objet dynamique Ruby, est dĂ©sormais disponible. mruby assure la compatibilitĂ© syntaxique avec Ruby 1.9, tout en prenant en charge certaines fonctionnalitĂ©s des versions plus rĂ©centes. Cet interprĂ©teur se caractĂ©rise par une faible consommation de mĂ©moire et la possibilitĂ© d'ĂȘtre intĂ©grĂ© Ă d'autres applications. De plus, il permet de compiler des programmes Ruby en bytecode grĂące au compilateur « mrbc » dĂ©veloppĂ© par le projet. Le code source de mruby est distribuĂ© sous licence MIT.
Cette nouvelle version réduit considérablement la consommation de mémoire de la machine virtuelle mruby. Les versions précédentes nécessitaient plusieurs centaines de kilo-octets de RAM, tandis que mruby 3.0 n'en consomme qu'environ 100. Principales améliorations :
- La consommation de RAM a été réduite grùce à l'optimisation de l'allocation mémoire pour les objets de la classe Symbol. La consommation mémoire pour les objets de la classe Hash a également été réduite. Les appels de méthodes ont été optimisés.
- Ajout de la prise en charge de la définition de méthodes sur une seule ligne sans utiliser le mot-clé « end » : def square(x) = x * x
- Ajout de l'opérateur « => » (valeurs => variable), utilisé pour l'affectation de valeurs à droite. 0 => apa #=> 0 {b: 0, c: 1} => {b:} pb #=> 0
- Prise en charge de la construction des heredocs.
- Les fichiers de compilation de l'interpréteur ont été mis à jour. La compilation avec gprof a été ajoutée. GCC peut désormais compiler en mode 32 bits sur les plateformes 64 bits. La prise en charge d'Address Sanitizer a été ajoutée à clang.
- Changement important : la constante RITE_VM_VER a dĂ©sormais la valeur 0300 et la constante RITE_BINARY_FORMAT_VER a dĂ©sormais la valeur 0200, ce qui empĂȘche lâexĂ©cution du bytecode des versions prĂ©cĂ©dentes.
- La classe Fixnum fait désormais partie de la classe Integer, comme dans Ruby 3.0. La classe Integral a été supprimée.
Source: opennet.ru
