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
