Ներկառուցված mruby 3.2 թարգմանիչը հասանելի է

Ներկայացրեց mruby 3.2-ի թողարկումը՝ ներկառուցված թարգմանիչ դինամիկ օբյեկտ-կողմնորոշված ​​ծրագրավորման Ruby լեզվի համար: Mruby-ն ապահովում է հիմնական շարահյուսական համատեղելիություն Ruby 3.x մակարդակում, բացառությամբ օրինաչափությունների համընկնման աջակցության («case .. in»): Թարգմանիչն ունի հիշողության ցածր սպառում և կենտրոնացած է Ruby լեզվի աջակցությունն այլ հավելվածներում ներկառուցելու վրա: Հավելվածում ներկառուցված թարգմանիչը կարող է գործարկել ինչպես սկզբնական կոդը Ruby լեզվով, այնպես էլ բայթկոդ, որը ստացվել է նախագծի կողմից մշակված «mrbc» կոմպիլյատորի միջոցով: Mruby սկզբնական կոդը տարածվում է MIT լիցենզիայի ներքո:

Նոր թողարկումը շտկում է 19 խոցելիություն, որոնք կարող են հանգեցնել բուֆերների արտահոսքի, զրոյական ցուցիչի վերացման կամ հիշողության հասանելիության ազատությունից հետո, երբ թարգմանիչը մշակում է հատուկ ձևաչափված Ruby կոդը:

Ոչ անվտանգության փոփոխությունները ներառում են.

  • Աջակցություն անանուն փաստարկներ փոխանցելու համար (*, **, &),
  • Աջակցություն մեծ ամբողջ թվերի համար (mruby-bigint):
  • «.mrb» ընդլայնմամբ կազմված երկուականների ներբեռնման աջակցություն:
  • mrbc կոմպիլյատորում օպտիմալացումներն անջատելու համար «--no-optimize» տարբերակի ավելացում:
  • Class#subclasses և Module#undefined_instance_methods մեթոդների ներդրում mruby-class-ext-ում։
  • Ներկառուցված նոր գրադարաններ mruby-errno, mruby-set, mruby-dir և mruby-data:

Source: opennet.ru

Добавить комментарий