Ich bin ziemlich interessiert an dem mruby Projekt, aber ich hatte kein Glück darin, eine Zusammenfassung der wichtigsten Lücken in mruby zu finden verglichen mit anderen, vollständigeren Ruby-Implementierungen (am wichtigsten, MRI).
Die README im Projekt besagt, dass mruby "Teil des" ISO-Standards
Kennt jemand eine Liste solcher Versäumnisse oder ist jemand, der mit der Implementierung vertraut ist, zusammenzufassen?
Also habe ich die Quelle nicht genau gelesen, aber nachdem ich mruby gebaut und den Interpreter ein wenig ausgeführt habe, habe ich festgestellt, dass die folgenden Dinge fehlten (keineswegs eine vollständige Liste, noch weiß ich, ob es diese sind) absichtliche Auslassungen oder nur Dinge, die noch nicht geschrieben wurden):
eval
String#scan
(instance|module|class)_eval
mit String
Argumente Module.constants
Regexp
Process
Bignum
IO
, File
und Dir
Encoding
Thread
und Mutex
Marshal
Wenn jemand eine vollständigere Liste hat oder die Details weiß, ob diese Bits einfach nicht noch implementiert sind oder absichtlich weggelassen werden, würde ich immer noch neugierig sein.
Sehen Sie sich die so genannten mrbgems ( Ссылка ) an. Einige Ihrer fehlenden Features (d. H. RegExp, eval, File) sind als zusätzliches GEM verfügbar.
Eine unvollständige, aber aktuelle Liste der Unterschiede zwischen Ruby MRI und MRuby finden Sie unter Ссылка .
Ab Februar 2018 sind dies die aufgeführten Unterschiede:
1/2
gibt Float(0.5)
, weil mruby Bignum nicht unterstützt. puts
übergeben wird, wird eine andere Ausgabe ausgegeben. Kernel.raise
ohne Argumente löst die aktuelle Ausnahme innerhalb einer rescue-Klausel nicht aus. Array
unterstützt keine Instanzvariablen public
/ private
/ protected
) wird unterstützt. defined?
fehlt