Π‘ΡΡΡΠΎΡ ΡΠ΅ ΠΈΠ·Π΄Π°Π²Π°Π½Π΅ΡΠΎ Π½Π° mruby 3.0, Π²Π³ΡΠ°Π΄Π΅Π½ΠΈΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Π½Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΈΡ ΠΎΠ±Π΅ΠΊΡΠ½ΠΎ-ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠ°Π½ Π΅Π·ΠΈΠΊ Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ Ruby. Mruby ΠΎΡΠΈΠ³ΡΡΡΠ²Π° ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡ Π½Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° Π½Π° Π½ΠΈΠ²ΠΎ Ruby 1.9, Π½ΠΎ ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΎΡΠ΄Π΅Π»Π½ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΎΡ ΠΏΠΎ-Π½ΠΎΠ²ΠΈ Π²Π΅ΡΡΠΈΠΈ. ΠΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΡΡ ΡΠ΅ ΠΎΡΠ»ΠΈΡΠ°Π²Π° Ρ Π½ΠΈΡΠΊΠ° ΠΊΠΎΠ½ΡΡΠΌΠ°ΡΠΈΡ Π½Π° ΠΏΠ°ΠΌΠ΅Ρ ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π²Π³ΡΠ°ΠΆΠ΄Π°Π½Π΅ Π² Π΄ΡΡΠ³ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠ²Π΅Π½ ΡΠΎΠ²Π°, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ Π½Π° Ruby ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ Π² Π±Π°ΠΉΡΠΊΠΎΠ΄ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΡΠ°Π·Π²ΠΈΠ²Π°Π½ ΠΎΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡ βmrbcβ. ΠΠΎΠ΄ΡΡ Π½Π° mruby ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π· MIT.
Π Π½ΠΎΠ²ΠΈΡ Π²ΡΠΏΡΡΠΊ Π·Π½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ Π΅ Π½Π°ΠΌΠ°Π»Π΅Π½Π° ΠΊΠΎΠ½ΡΡΠΌΠ°ΡΠΈΡΡΠ° Π½Π° ΠΏΠ°ΠΌΠ΅Ρ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° Π² mruby VM. ΠΡΠ΅Π΄ΠΈΡΠ½ΠΈΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΠΈΠ·ΠΈΡΠΊΠ²Π°Ρ Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΡΠΎΡΠΈΠ½ ΠΠ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½Π° ΠΏΠ°ΠΌΠ΅Ρ, Π° mruby 3.0 ΠΊΠΎΠ½ΡΡΠΌΠΈΡΠ° ΠΎΠΊΠΎΠ»ΠΎ 100 ΠΠ RAM. ΠΡΠ½ΠΎΠ²Π½ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ΠΈΡ:
- ΠΠ°ΠΌΠ°Π»Π΅Π½Π° Π΅ ΠΊΠΎΠ½ΡΡΠΌΠ°ΡΠΈΡΡΠ° Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½Π° ΠΏΠ°ΠΌΠ΅Ρ ΡΡΠ΅Π· ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΠ°Π·ΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° Π·Π° ΠΎΠ±Π΅ΠΊΡΠΈ ΠΎΡ ΠΊΠ»Π°Ρ Symbols. ΠΠ°ΠΌΠ°Π»Π΅Π½Π° Π΅ ΠΊΠΎΠ½ΡΡΠΌΠ°ΡΠΈΡΡΠ° Π½Π° ΠΏΠ°ΠΌΠ΅Ρ ΠΎΡ ΠΎΠ±Π΅ΠΊΡΠΈ Π½Π° ΠΊΠ»Π°Ρ Hash. ΠΠ·Π²ΡΡΡΠ΅Π½Π° Π΅ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΌΠ΅ΡΠΎΠ΄ΠΈ.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π΅Π΄Π½ΠΎΡΠ΅Π΄Π½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΌΠ΅ΡΠΎΠ΄ Π±Π΅Π· ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΠΊΠ»ΡΡΠΎΠ²Π°ΡΠ° Π΄ΡΠΌΠ° βendβ: def square(x) = x * x
- ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ β=>β (ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ => ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°), ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° Π΄Π΅ΡΠ½ΠΎΡΡΡΠ°Π½Π½ΠΎ ΠΏΡΠΈΡΠ²ΠΎΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ. 0 => a p a #=> 0 {b: 0, c: 1} => {b:} p b #=> 0
- ΠΠΎΠ΄ΠΊΡΠ΅ΠΏΠ° Π·Π° ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡΡΠ° heredocs.
- ΠΠΊΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΡΠ° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ Π·Π° ΡΡΠ±ΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡΠ°. ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ Ρ gprof. GCC ΡΠ΅Π³Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ° Π² 32-Π±ΠΈΡΠΎΠ² ΡΠ΅ΠΆΠΈΠΌ Π½Π° 64-Π±ΠΈΡΠΎΠ²ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ. ΠΠΎΡΠ²ΠΈΠ»Π° ΡΠ΅ Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Address Sanitizer Π² clang.
- ΠΡΠΎΠΌΡΠ½Π°, Π½Π°ΡΡΡΠ°Π²Π°ΡΠ° ΡΡΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡΠ°: ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ°ΡΠ° RITE_VM_VER ΡΠ΅Π³Π° ΠΈΠΌΠ° ΡΡΠΎΠΉΠ½ΠΎΡΡ 0300, Π° RITE_BINARY_FORMAT_VER β 0200, ΠΊΠΎΠ΅ΡΠΎ ΠΈΠ·ΠΊΠ»ΡΡΠ²Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π±Π°ΠΉΡΠΊΠΎΠ΄Π° ΠΎΡ ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΈ Π²Π΅ΡΡΠΈΠΈ.
- ΠΠ»Π°ΡΡΡ Fixnum ΡΡΠ°Π½Π° ΡΠ°ΡΡ ΠΎΡ Integer, ΡΠ°ΠΊΠ° ΠΊΠ°ΠΊΡΠΎ Π² Ruby 3.0. ΠΡΠ΅ΠΌΠ°Ρ Π½Π°Ρ Π΅ ΠΊΠ»Π°ΡΡΡ Integral.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
