Die Veröffentlichung von mruby 3.0, dem eingebetteten Interpreter der dynamischen, objektorientierten Programmiersprache Ruby, fand statt. Mruby gewährleistet die Kompatibilität mit der Syntax von Ruby 1.9, unterstützt jedoch auch bestimmte Funktionen neuerer Versionen. Der Interpreter zeichnet sich durch einen niedrigen Speicherverbrauch und die Möglichkeit der Einbettung in andere Anwendungen aus. Darüber hinaus wird die Kompilierung von Ruby-Programmen in Bytecode durch den vom Projekt entwickelten Compiler „mrbc“ unterstützt. Der mruby-Code wird unter der MIT-Lizenz vertrieben.
In der neuen Version wurde der Speicherverbrauch, der von der mruby-VM benötigt wird, erheblich reduziert. Frühere Versionen benötigten mehrere Hundert KB RAM, während mruby 3.0 etwa 100 KB RAM verbraucht. Hauptverbesserungen:
- Der Speicherverbrauch wurde durch die Optimierung der Speicherzuweisung für Objekte der Klasse Symbols verringert. Der Speicherverbrauch durch Objekte der Klasse Hash wurde reduziert. Zudem wurde der Methodenaufruf optimiert.
- Die Unterstützung für eine einzeilige Methodenbeschreibung ohne das Schlüsselwort „end“ wurde hinzugefügt: def square(x) = x * x
- Der Operator „=>“ (Werte => Variable) wurde hinzugefügt, der für die rechtsseitige Zuweisung von Werten verwendet wird. 0 => a p a #=> 0 {b: 0, c: 1} => {b:} p b #=> 0
- Unterstützung für Heredocs.
- Die Build-Dateien des Interpreters wurden aktualisiert. Die Kompilierung mit gprof wurde hinzugefügt. GCC kann jetzt im 32-Bit-Modus auf 64-Bit-Plattformen erstellen. Unterstützung für Address Sanitizer in clang wurde hinzugefügt.
- Änderung, die die Kompatibilität beeinträchtigt: Die Konstante RITE_VM_VER hat jetzt den Wert 0300, und RITE_BINARY_FORMAT_VER – 0200, was die Ausführung von Bytecode früherer Versionen ausschließt.
- Die Klasse Fixnum wurde Teil von Integer, ebenso wie in Ruby 3.0. Die Klasse Integral wurde entfernt.
Quelle: opennet.ru
