Ilmus mruby 3.0, sisseehitatud Ruby dünaamilise objektorienteeritud programmeerimiskeele tõlk. Mruby tagab Ruby 1.9 süntaksi ühilduvuse, kuid toetab ka eraldi funktsioone uuematest versioonidest. Tõlk on madala mälutarbimisega ning võimaldab integreerimist teistesse rakendustesse. Lisaks toetatakse Ruby programmide kompileerimist baitkoodiks arendatava projekti 'mrbc' abil. Mruby kood jagatakse MIT litsentsi alusel.
Uues väljaandes on oluliselt vähenenud mruby VM tarbitav mälu. Eelnevad versioonid nõudsid sadu KB RAM-i, samas kui mruby 3.0 tarvitab umbes 100 KB RAM-i. Peamised parendused:
- Operatiivmälu tarbimist on vähendatud sümbolite klassi objektide mälu eraldamise optimeerimisega. Hash klassi objektide mälu tarbimist on vähendatud. Meetodite kutsumise optimeerimine on läbi viidud.
- Lisatud on ühe rea meetodi määratlemise tugi ilma 'end' võtmesõna kasutamiseta: def square(x) = x * x
- Lisati operator „=>” (väärtused => muutujad), mida kasutatakse parempoolseks väärtuste määramiseks. 0 => a p a #=> 0 {b: 0, c: 1} => {b:} p b #=> 0
- Heredoc konstruktsiooni tugi.
- Interpreteraatori kogumise failid on uuendatud. Gprof on lisatud kompileerimisele. GCC suudab nüüd 64-bitistel platvormidel 32-bitiseid koguda. Clang toetab nüüd Address Sanitizer'i.
- Tagasimuudatus: konstandil RITE_VM_VER on nüüd väärtus 0300, RITE_BINARY_FORMAT_VER on 0200, mis välistab varasemate versioonide baitkoodi täitmise.
- Fixnum klass on nüüd osa Integer klassist, nagu Ruby 3.0-s. Integral klass on kustutatud.
Allikas: opennet.ru
