Dostępny wbudowany interpreter mruby 3.2

Wprowadzono wydanie mruby 3.2, wbudowanego interpretera dynamicznego języka programowania obiektowego Ruby. Mruby zapewnia podstawową zgodność składni na poziomie Ruby 3.x, z wyjątkiem obsługi dopasowywania wzorców („case .. in”). Interpreter ma niskie zużycie pamięci i koncentruje się na osadzaniu obsługi języka Ruby w innych aplikacjach. Wbudowany w aplikację interpreter może wykonać zarówno kod źródłowy w języku Ruby, jak i kod bajtowy uzyskany za pomocą kompilatora „mrbc” opracowanego w ramach projektu. Kod źródłowy mruby jest rozpowszechniany na licencji MIT.

Nowa wersja naprawia 19 luk, które mogą prowadzić do przepełnienia bufora, wyłuskiwania wskaźników zerowych lub dostępu do pamięci po zwolnieniu, gdy interpreter przetwarza specjalnie sformatowany kod Ruby.

Zmiany niezwiązane z bezpieczeństwem obejmują:

  • Obsługa przekazywania anonimowych argumentów (*, **, &),
  • Obsługa dużych liczb całkowitych (mruby-bigint).
  • Obsługa pobierania skompilowanych plików binarnych z rozszerzeniem „.mrb”.
  • Dodanie opcji „--no-optimize” w celu wyłączenia optymalizacji w kompilatorze mrbc.
  • Implementacja metod Class#subclasses i Module#undefini_instance_methods w mruby-class-ext.
  • Nowe wbudowane biblioteki mruby-errno, mruby-set, mruby-dir i mruby-data.

Źródło: opennet.ru

Dodaj komentarz