Rhyddhawyd mruby 3.0, dehonglydd wedi'i fewnosod ar gyfer yr iaith raglennu ddeinamig sy'n canolbwyntio ar wrthrychau Ruby. Mae Mruby yn darparu cydnawsedd cystrawen ar lefel Ruby 1.9, ond mae hefyd yn cefnogi nodweddion dethol o fersiynau mwy newydd. Nodweddir y cyfieithydd gan ddefnydd cof isel a'r gallu i gael ei ymgorffori mewn cymwysiadau eraill. Yn ogystal, cefnogir crynhoad rhaglenni Ruby yn bytecode gan ddefnyddio'r casglwr “mrbc” a ddatblygwyd gan y prosiect. Mae'r cod mruby yn cael ei ddosbarthu o dan y drwydded MIT.
Mae'r datganiad newydd yn lleihau'n sylweddol y defnydd cof o mruby VM. Roedd angen cannoedd o KB o RAM ar fersiynau blaenorol, ac mae mruby 3.0 yn defnyddio tua 100 KB o RAM. Gwelliannau allweddol:
- Llai o ddefnydd o RAM trwy optimeiddio dyraniad cof ar gyfer gwrthrychau'r dosbarth Symbolau. Llai o ddefnydd cof o wrthrychau dosbarth Hash. Mae galwadau dull wedi'u hoptimeiddio.
- Ychwanegwyd cefnogaeth ar gyfer diffiniad dull un llinell heb ddefnyddio'r allweddair "diwedd": def square(x) = x * x
- Gweithredwr wedi'i ychwanegu " => " (gwerthoedd => newidyn), sy'n cael ei ddefnyddio ar gyfer aseinio gwerthoedd ar y dde. 0 => apa #=> 0{ b: 0, c: 1} => {b:} pb #=> 0
- Cymorth dylunio Heredocs.
- Mae ffeiliau adeiladu cyfieithydd wedi'u diweddaru. Ychwanegwyd crynhoad gyda gprof. Gall GCC nawr lunio modd 32-bit ar lwyfannau 64-bit. Cefnogaeth ychwanegol ar gyfer Glanweithydd Cyfeiriadau mewn clang.
- Newid cydnawsedd: mae gan y cysonyn RITE_VM_VER bellach werth o 0300, ac mae gan RITE_BINARY_FORMAT_VER werth o 0200, sy'n dileu'r posibilrwydd o weithredu cod beit o fersiynau blaenorol.
- Daeth dosbarth Fixnum yn rhan o Integer, yn union fel yn Ruby 3.0. Mae'r dosbarth Integral wedi'i ddileu.
Ffynhonnell: opennet.ru
