เบกเบตเบเบฒเบ™เบเบฑเบ‡เบ•เบปเบงเปเบ›เบžเบฒเบชเบฒ mruby 3.2

เปเบ™เบฐเบ™เปเบฒเบเบฒเบ™เบ›เปˆเบญเบ mruby 3.2, เบฅเปˆเบฒเบกเบเบฑเบ‡เบ•เบปเบงเบชเปเบฒเบฅเบฑเบšเบžเบฒเบชเบฒเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบฅเปเบเบฅเบกเปเบšเบšเบงเบฑเบ”เบ–เบธเปเบšเบšเป„เบ”เบ™เบฒเบกเบดเบ Ruby. Mruby เบชเบฐเบซเบ™เบญเบ‡เบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบ‚เบญเบ‡ syntax เบžเบทเป‰เบ™เบ–เบฒเบ™เปƒเบ™เบฅเบฐเบ”เบฑเบš Ruby 3.x, เบเบปเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เบˆเบฑเบšเบ„เบนเปˆเบฎเบนเบšเปเบšเบš (โ€œcase .. inโ€). เบ™เบฒเบเบžเบฒเบชเบฒเบกเบตเบเบฒเบ™เปƒเบŠเป‰เบ„เบงเบฒเบกเบˆเบณเบ•เปเปˆเบฒ เปเบฅเบฐเป€เบ™เบฑเป‰เบ™เปƒเบชเปˆเบเบฒเบ™เบเบฑเบ‡เบเบฒเบ™เบฎเบญเบ‡เบฎเบฑเบšเบžเบฒเบชเบฒ Ruby เป€เบ‚เบปเป‰เบฒเปƒเบ™เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบญเบทเปˆเบ™เป†. เบ™เบฒเบเบžเบฒเบชเบฒเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปƒเบ™เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เบ—เบฑเบ‡เบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡เปƒเบ™เบžเบฒเบชเบฒ Ruby เปเบฅเบฐ bytecode เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเป‚เบ”เบเปƒเบŠเป‰ "mrbc" compiler เบžเบฑเบ”เบ—เบฐเบ™เบฒเป‚เบ”เบเป‚เบ„เบ‡เบเบฒเบ™. เบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡ mruby เบ–เบทเบเปเบˆเบเบขเบฒเบเบžเบฒเบเปƒเบ•เป‰เปƒเบšเบญเบฐเบ™เบธเบเบฒเบ” MIT.

เบเบฒเบ™เบ›เปˆเบญเบเปƒเบซเบกเปˆเปเบเป‰เป„เบ‚ 19 เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ™เปเบฒเป„เบ›เบชเบนเปˆเบเบฒเบ™ overflows buffer, null pointer dereferences, เบซเบผเบทเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบžเบฒเบเบซเบผเบฑเบ‡เบ—เบตเปˆเบšเปเปˆเป€เบชเบเบ„เปˆเบฒเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ™เบฒเบเบžเบฒเบชเบฒเบ›เบฐเบกเบงเบ™เบœเบปเบ™เบฅเบฐเบซเบฑเบ” Ruby เบฎเบนเบšเปเบšเบšเบžเบดเป€เบชเบ”.

เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเบฅเบงเบกเบกเบต:

  • เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบœเปˆเบฒเบ™เบเบฒเบ™เป‚เบ•เป‰เบ–เบฝเบ‡เบ—เบตเปˆเบšเปเปˆเป€เบ›เบตเบ”เป€เบœเบตเบเบŠเบทเปˆ (*, **, &),
  • เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบˆเปเบฒเบ™เบงเบ™เป€เบ•เบฑเบกเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆ (mruby-bigint).
  • เบฎเบญเบ‡เบฎเบฑเบšเบเบฒเบ™เบ”เบฒเบงเป‚เบซเบผเบ”เบ„เบนเปˆเบ—เบตเปˆเบฅเบงเบšเบฅเบงเบกเบ”เป‰เบงเบเบ™เบฒเบกเบชเบฐเบเบธเบ™ ".mrb".
  • เป€เบžเบตเปˆเบกเบ—เบฒเบ‡เป€เบฅเบทเบญเบ "--no-optimize" เป€เบžเบทเปˆเบญเบ›เบดเบ”เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเปƒเบ™ mrbc compiler.
  • เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡ Class#subclasses เปเบฅเบฐ Module#undefined_instance_methods เบงเบดเบ—เบตเบเบฒเบ™เปƒเบ™ mruby-class-ext.
  • เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปƒเปเปˆ mruby-errno, mruby-set, mruby-dir เปเบฅเบฐ mruby-data.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™