Издање програмског језика Перл 5.30.0

Након 11 месеци развоја одржан издање нове стабилне гране програмског језика Перл - 5.30. У припреми новог издања промењено је око 620 хиљада линија кода, промене су утицале на 1300 фајлова, а у развоју је учествовало 58 програмера.

Грана 5.30 је пуштена у продају у складу са фиксним развојним планом одобреним пре шест година, што подразумева пуштање нових стабилних грана једном годишње и корективних издања свака три месеца. За отприлике месец дана планирано је издавање првог корективног издања Перла 5.30.1, које ће исправити најзначајније грешке идентификоване током имплементације Перла 5.30.0. Заједно са издавањем Перла 5.30, обустављена је подршка за грану 5.26, за коју се ажурирања могу објавити у будућности само ако се идентификују критични безбедносни проблеми. Започео је и процес развоја експерименталне гране 5.31, на основу које ће се у мају 2020. формирати стабилно издање Перла 5.32.

Кључ Промене:

  • Експериментална подршка за "" операције је додата регуларним изразима.(?<!шаблон)"И"(?‹=образац)» за ограничен приступ претходно обрађеним именованим шаблонима. Дефиниција шаблона мора бити унутар 255 карактера од референтне тачке;
  • Максимална вредност специфицатора величине („н“) у блоковима регуларног израза „{м,н}“ је повећана на 65534;
  • Додато ограничено подршка маске за истицање одређених категорија знакова у регуларним изразима, покривајући различите Уницоде скупове. На пример, израз „кр! \п{нв= /(?к) \А [0-5] \з / }!” омогућава вам да изаберете све Уницоде знакове који дефинишу бројеве од 0 до 5, укључујући тајландски или бенгалски правопис бројева;
  • Додата подршка за именоване знакове у регуларним изразима
    унутар шаблона омеђених једноструким наводницима (кр’\Н{наме}’);

  • Подршка за Уницоде спецификацију је ажурирана на верзију 12.1. Ознака експерименталног развоја је уклоњена из позива св_утф8_довнграде и св_утф8_децоде, који се користи у развоју екстензија у језику Ц;
  • Додата је могућност прављења перл-а са имплементацијом операција са локализацијом која подржава операције са више нити (-Аццфлагс=’-ДУСЕ_ТХРЕАД_САФЕ_ЛОЦАЛЕ’). Раније је таква имплементација коришћена само када се гради верзија Перла са више нити, али сада може бити омогућена за било коју верзију;
  • Комбиновање заставица „-Дв“ (побољшани излаз за отклањање грешака) и „-Др“ (отклањање грешака у редовном изразу) сада доводи до омогућавања свих могућих режима за отклањање грешака регуларним изразом;
  • Функције које су раније биле застареле су уклоњене:
    • Сада је доступан као сепаратор линија и џокер знакови дозвољен користите само графеме (композитни Уницоде знакови нису дозвољени).
    • Прекинуто подршка за неке давно застареле облике коришћења знака „{“ у регуларним изразима без избегавања.
    • Забрањено је користећи функције сисреад(), сисврите(), рецв() и сенд() са руковаоцима „:утф8“.
    • Забрањено је користити дефиниције „мој“ у инхерентно лажним условним изјавама (на пример, „мој $к ако је 0“).
    • Подршка за посебне променљиве „$*” и „$#” је уклоњена.
      Подршка за имплицитно позивање функције думп() је укинута (сада морате експлицитно навести ЦОРЕ::думп()).

    • Функција Филе::Глоб::глоб је уклоњена (требало би да користите Филе::Глоб::бсд_глоб).
    • Додата заштита за пацк() од враћања нетачних Уницоде секвенци.
    • Крај подршке за коришћење макроа који обављају операције са УТФ-8 у КСС коду (Ц блокови) је одложен до следећег издања.
  • Оптимизације перформанси:
    • Операције превођења са УТФ-8 на распоред знакова су убрзане (кодна тачка), на пример, за извођење операције орд(“\к7ффф”) сада је потребно 12% мање инструкција. Перформансе операција провере исправности секвенци знакова УТФ-8 су такође повећане;
    • Рекурзивни позиви у функцији финализе_оп() су елиминисани;
    • Направљене мање оптимизације кода за сажимање идентичних знакова и дефинисање класа знакова у регуларним изразима;
    • Оптимизовано претварање дефиниција потписаног типа у оне без предзнака (ИВ у УВ);
    • Алгоритам за претварање целих бројева у стринг је убрзан обрадом две цифре одједном уместо једне;
    • Направљена су побољшања припремљен на основу анализе ЛГТМ;
    • Оптимизован код у датотекама регцомп.ц, регцомп.х и регекец.ц;
    • У регуларним изразима, обрада образаца попут „кр/[^а]/“ са АСЦИИ знаковима је значајно убрзана.
  • Подршка за Миник3 платформу је враћена. Могуће је градити помоћу компајлера Мицрософт Висуал Студио 2019 (Висуал Ц++ 14.2);
  • Ажуриране верзије модула укључених у основни пакет. Модули су уклоњени из главне композиције Б::Дебуг и Локал::Кодови.

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

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