Ir izlaists mruby 3.0 ā iegulstams interpretÄtÄjs dinamiskajai objektorientÄtajai programmÄÅ”anas valodai Ruby. Mruby nodroÅ”ina sintakses saderÄ«bu ar Ruby 1.9, bet atbalsta arÄ« atseviŔķas funkcijas no jaunÄkÄm versijÄm. Interpretatoram ir zems atmiÅas patÄriÅÅ” un iespÄja tikt iegultam citÄs lietojumprogrammÄs. TurklÄt tas atbalsta Ruby programmu kompilÄÅ”anu baitkodÄ, izmantojot projekta izstrÄdÄto kompilatoru "mrbc". Mruby kods tiek izplatÄ«ts saskaÅÄ ar MIT licenci.
JaunÄ versija ievÄrojami samazina mruby VM atmiÅas patÄriÅu. IepriekÅ”ÄjÄm versijÄm bija nepiecieÅ”ami vairÄki simti KB RAM, savukÄrt mruby 3.0 patÄrÄ aptuveni 100 KB RAM. Galvenie uzlabojumi:
- RAM patÄriÅÅ” ir samazinÄts, optimizÄjot atmiÅas pieŔķirÅ”anu Symbol klases objektiem. AtmiÅas patÄriÅÅ” Hash klases objektiem ir samazinÄts. Metožu izsaukumi ir optimizÄti.
- Pievienots atbalsts vienas rindas metodes definÄ«cijai, neizmantojot atslÄgvÄrdu "end": def square(x) = x * x
- Pievienots operators "=>" (vÄrtÄ«bas => mainÄ«gais), kas tiek izmantots vÄrtÄ«bu pieŔķirÅ”anai ar labo roku. 0 => apa #=> 0 {b: 0, c: 1} => {b:} pb #=> 0
- Atbalsts heredocs būvniecībai.
- Ir atjauninÄti interpretÄtÄja bÅ«vÄjuma faili. Pievienota kompilÄcija ar gprof. GCC tagad var veidot 32 bitu režīmÄ 64 bitu platformÄs. Clang ir pievienots adreÅ”u sanitizatora atbalsts.
- SvarÄ«ga izmaiÅa: RITE_VM_VER konstantei tagad ir vÄrtÄ«ba 0300, un RITE_BINARY_FORMAT_VER tagad ir vÄrtÄ«ba 0200, kas neļauj izpildÄ«t baitkodu no iepriekÅ”ÄjÄm versijÄm.
- Klase āFixnumā ir kļuvusi par daļu no āIntegerā, tÄpat kÄ Ruby 3.0. Klase āIntegralā ir noÅemta.
Avots: opennet.ru
