Издање програмског језика Руби 3.1

Објављен је Руби 3.1.0, динамички објектно оријентисани програмски језик који је веома ефикасан у развоју програма и укључује најбоље карактеристике Перл, Јава, Питхон, Смаллталк, Еиффел, Ада и Лисп. Код пројекта се дистрибуира под лиценцама БСД („2-цлаусе БСДЛ“) и „Руби“, што се односи на најновију верзију ГПЛ лиценце и потпуно је компатибилно са ГПЛв3.

Главна побољшања:

  • Додан је нови експериментални ЈИТ компајлер у процесу, ИЈИТ, који су креирали програмери Схопифи платформе за е-трговину као део иницијативе за побољшање перформанси Руби програма који користе Раилс оквир и позивају многе методе. Кључна разлика у односу на претходно коришћени МЈИТ ЈИТ компајлер, који се заснива на обради целих метода и користи екстерни компајлер у језику Ц, је у томе што ИЈИТ користи Лази Басиц Блоцк Версионинг (ЛББВ) и садржи интегрисани ЈИТ компајлер. Код ЛББВ-а, ЈИТ прво компајлира само почетак методе, а остатак компајлира нешто касније, након што се током извршавања одреде типови варијабли и аргумената који се користе. Када се користи ИЈИТ, забележено је повећање перформанси од 22% при покретању раилсбенцх теста и повећање од 39% у тесту течног рендеровања. ИЈИТ је тренутно ограничен на подршку за уникс-лике ОС на системима са к86-64 архитектуром и онемогућен је подразумевано (да бисте га активирали, наведите ознаку „--ијит“ у командној линији).
  • Побољшане перформансе старог МЈИТ ЈИТ компајлера. За пројекте који користе Раилс, подразумевана максимална величина кеша (--јит-мак-цацхе) је повећана са 100 на 10000 инструкција. Престао је да користи ЈИТ за методе са више од 1000 инструкција. Да би се подржао Зеитверк оф Раилс, ЈИТ код се више не одбацује када је ТрацеПоинт омогућен за догађаје класе.
  • Укључује потпуно преписан дебуг.гем дебуггер, који подржава удаљено отклањање грешака, не успорава отклоњену апликацију, подржава интеграцију са напредним интерфејсима за отклањање грешака (ВСЦоде и Цхроме), може се користити за отклањање грешака са више нити и вишепроцесних апликација, пружа интерфејс за извршавање РЕПЛ кода, нуди напредне могућности праћења, може да снима и поново репродукује исечке кода. Претходно понуђени дебугер либ/дебуг.рб је уклоњен из основне дистрибуције.
    Издање програмског језика Руби 3.1
  • Имплементирано визуелно истицање грешака у извештајима о праћењу повратног позива. Означавање грешке је обезбеђено помоћу уграђеног и подразумевано омогућеног пакета драгуља еррор_хигхлигхт. Да бисте онемогућили означавање грешака, можете користити поставку „--дисабле-еррор_хигхлигхт“. $ руби тест.рб тест.рб:1:ин " ": ундефинед метода "време" за 1:Интегер (НоМетходЕррор) 1.тиме {} ^^^^^ Да ли сте мислили? пута
  • Шкољка интерактивних прорачуна ИРБ (РЕПЛ, Реад-Евал-Принт-Лооп) имплементира аутоматско довршавање унетог кода (док куцате, приказује се наговештај са опцијама за наставак уноса, између којих можете да се крећете помоћу Таб или Схифт+ Таб тастер). Након избора опције наставка, у близини се приказује оквир за дијалог који приказује документацију повезану са изабраном ставком. Пречица на тастатури Алт+д се може користити за приступ комплетној документацији.
    Издање програмског језика Руби 3.1
  • Синтакса језика сада дозвољава да се вредности у хеш литералима и аргументима кључних речи прескоче приликом позивања функција. На пример, уместо израза „{к: к, и: и}“ сада можете да наведете „{к:, и:}“, а уместо „фоо(к: к, и: и)“ - фоо( к:, и: )".
  • Стабилизована подршка за подударања шаблона у једној линији (ари => [к, и, з]), која више нису означена као експериментална.
  • Оператор „^“ у подударањима шаблона сада може да садржи произвољне изразе, на пример: Приме.еацх_цонс(2).лази.финд_алл{_1 у [н, ^(н + 2)]}.таке(3).то_а #= > ? [[3, 5], [5, 7], [11, 13]]
  • У подударању шаблона у једном реду, можете изоставити заграде: [0, 1] => _, к {и: 2} => и: к #=> 1 и #=> 2
  • Језик за означавање типа РБС, који вам омогућава да одредите структуру програма и типове који се користе, додао је подршку за одређивање горње границе параметара типа помоћу симбола „<“, додату подршку за псеудониме генеричких типова, имплементирану подршку за колекције за управљање драгуљима, побољшане перформансе и имплементирани многи нови потписи за уграђене и стандардне библиотеке.
  • Експериментална подршка за интегрисана развојна окружења додата је у ТипеПро статички анализатор типа, који генерише РБС напомене на основу анализе кода без експлицитних информација о типу (на пример, припремљен је додатак за интеграцију ТипеПро са ВСЦоде едитором).
  • Промењен је редослед обраде више задатака. На пример, раније су компоненте израза „фоо[0], бар[0] = баз, кук“ обрађиване у редоследу баз, кук, фоо, бар, али сада фоо, бар, баз, кук.
  • Додата експериментална подршка за доделу меморије за стрингове користећи ВВА (Вариабле Видтх Аллоцатион) механизам.
  • Ажуриране верзије уграђених гем модула и оних укључених у стандардну библиотеку. Уграђени су нет-фтп, нет-имап, нет-поп, нет-смтп, матрик, приме и дебуг пакети.

Извор: опеннет.ру

Додај коментар