Ka ndodhi lĂ«shimi i mruby 3.0, interpretuesit tĂ« integruar tĂ« gjuhĂ«s dinamitike tĂ« programimit Ruby qĂ« bazohet nĂ« objekt. Mruby ofron compatibilitet sintaksor nĂ« nivelin Ruby 1.9, por gjithashtu mbĂ«shtet disa karakteristika nga versionet mĂ« tĂ« fundit. Interpretuesi dallohet pĂ«r konsumin e ulĂ«t tĂ« memories dhe mundĂ«sinĂ« e integrimit nĂ« aplikacione tĂ« tjera. PĂ«r mĂ« tepĂ«r, mbĂ«shtetet kompilimi i programeve Ruby nĂ« kod bajt me ndihmĂ«n e kompilatorit âmrbcâ tĂ« zhvilluar nga projekti. Kodi mruby shpĂ«rndahet nĂ«n licencĂ«n MIT.
Në lëshimin e ri, konsumi i memories që përdoret në mruby VM është reduktuar ndjeshëm. Versionet e mëparshme kërkonin disa qindra KB memorie RAM, ndërsa mruby 3.0 konsumon rreth 100 KB RAM. Përmirësimet kryesore:
- Konsumi i memories RAM është reduktuar duke optimizuar alokimin e memories për objektet e klasës Symbols. Konsumi i memories nga objektet e klasës Hash është reduktuar. është bërë optimizimi i thirrjeve të metodave.
- Shtuar mbĂ«shtetje pĂ«r pĂ«rcaktimin e njĂ« metode me njĂ« rresht pa pĂ«rdorur fjalĂ«n âendâ: def square(x) = x * x
- Shtuar operatori â=>â (vlerat => variabla), i cili pĂ«rdoret pĂ«r t'iu dhĂ«nĂ« vlerat nĂ« tĂ« djathtĂ«. 0 => a p a #=> 0 {b: 0, c: 1} => {b:} p b #=> 0
- Mbështetje për strukturën heredocs.
- Skedarët e ndërtimit të interpretuesit janë përditësuar. Shtuar kompilimi me gprof. GCC tani mund të përgatisë në modin 32 bit në platforma 64 bitëshe. Shtuar mbështetje për Address Sanitizer në clang.
- Ndryshim që shkel kompatibilitetin: konstantja RITE_VM_VER tani ka vlerën 0300, ndërsa RITE_BINARY_FORMAT_VER - 0200, që përjashton mundësinë e ekzekutimit të kodit bajt nga versionet e kaluara.
- Klasa Fixnum është bërë pjesë e Integer, ashtu si në Ruby 3.0. Klasa Integral është shpërndarë.
Burimi: opennet.ru
