Поиск по сайту:
Проще написать неправильную программу, чем понять правильную. (Алан.Дж.Перлис)

Debian Unstable был обновлен до Perl 5.40.0

16.10.2024
Debian Unstable был обновлен до Perl 5.40.0

Debian Unstable был обновлен до Perl 5.40.0, что принесло ряд новых функций, обновлений безопасности и исправлений ошибок. Разработчик Debian Нико Тини объявил о переходе в списке рассылки Debian, отметив, что пользователям следует ожидать, что в sid (кодовое название Debian Unstable) в течение нескольких дней будет доступна функция удаления, пока не будут завершены необходимые перестройки.

Новые пакеты Perl сначала появятся в нестабильной ветке Debian. Оттуда они попадут в тестовую ветку и, вероятно, будут включены в следующий стабильный выпуск Debian, возможно, в следующем году.

Обновление Debian Unstable до Perl 5.40.0 — заметное достижение. Оно вводит новые языковые функции, повышает безопасность и исправляет множество ошибок. Давайте обсудим некоторые новые функции, улучшения и заметные изменения в Perl 5.40.

 

Новые функции в Perl 5.40.0

Perl 5.40.0 — это основная версия с несколькими улучшениями, в том числе:

  • Ключевое слово class: это новое ключевое слово позволяет разработчикам писать более современный и объектно-ориентированный код на Perl. Внутри метода, ADJUST блока или выражения инициализатора поля ключевое слово __CLASS__ возвращает имя класса текущего экземпляра объекта. Это упрощает диспетчеризацию методов, особенно в конструкторах, где доступ к $self запрещён.
  • Пробел в параметре командной строки -M: Perl теперь допускает пробел между параметром -M и последующим именем модуля, что соответствует поведению параметра -I
  • Логический оператор XOR (^^): Введён новый логический оператор XOR (^^), дополняющий набор логических и побитовых операторов.
  • Стабилизация try/catch и многозначной for итерации: функции, представленные в предыдущих версиях, try/catch для обработки исключений и итерации по нескольким значениям с помощью for, теперь считаются стабильными и больше не вызывают предупреждений.
  • Стабилизация модуля builtin: Модуль builtin, представленный в Perl 5.36.0, теперь считается стабильным. Однако некоторые функции в этом модуле остаются экспериментальными.
  • use v5.40Пакет функций: при использовании use v5.40; (или более поздней версии) импортируется соответствующий пакет функций, включая недавно стабилизированную функцию try. Кроме того, импортируется соответствующий пакет builtin.

 

Читать  Sparky Linux на базе Debian выпускает последнее полуавтоматическое обновление ISO

Улучшения безопасности

В этом выпуске устранены две заметные уязвимости в системе безопасности:

  • CVE-2023-47038: эта уязвимость связана с потенциальным переполнением буфера с помощью специального регулярного выражения. Она была устранена в версиях с 5.30.0 по 5.38.0.
  • CVE-2023-47039: устранена уязвимость, связанная с перехватом двоичных файлов в Perl для Windows. Эта уязвимость возникла из-за того, что Perl использует системный путь для поиска cmd.exe, что делает его уязвимым для эксплуатации путём размещения вредоносного cmd.exe в каталоге со слабыми разрешениями.

 

Заметные изменения

Обновление также включает некоторые несовместимые изменения:

  • reset EXPR поведение: reset EXPR теперь вызывает “set-magic” для скаляров, что потенциально приводит к распространению изменений на внутренние состояния или запуску исключений.
  • Вызов метода импорта неопределенного пакета: Вызов import or unimport для неопределенного класса с аргументом теперь генерирует предупреждение, помогающее обнаружить опечатки и потенциальное неправильное использование.
  • Запрет косвенных объектов с помощью return: Оператор return больше не допускает косвенных объектов, устраняя источник путаницы.
  • Ограничение на использование ключевых слов класса в вызовах методов: ключевые слова класса больше не интерпретируются как дескрипторы файлов в конкретных вызовах методов при условии no feature "bareword_filehandles".

 

 

Обновления модулей

Были обновлены несколько основных модулей, в том числе:

  • Archive::Tar обновлен с версии 2.40 до версии 3.02_001.
  • Term::Table добавлен в ядро (версия 0.018).
  • Test2::Suite добавлен в ядро (версия 0.000162) и предоставляет инструменты для комплексного модульного тестирования.
  • builtin Модуль: добавлена функция load_module().

 

Читать  Как обновить Debian 9 Stretch до Debian 10 Buster

Различные другие модули получили обновления, включая, но не ограничиваясь, bytesCompress::Raw::Bzip2Compress::Raw::ZlibData::DumperDB_File Devel::PeekDevel::PPPortdiagnostics и многие другие.

Полный список изменений задокументирован в дельта-документе Perl, который содержит подробную информацию для разработчиков. Если вы столкнулись с проблемами, которые, по вашему мнению, могут быть ошибками, пожалуйста, следуйте инструкциям по отправке сообщений на https://github.com/Perl/perl5/issues.

 

Ресурс:

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:


5 1 голос
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Это может быть вам интересно


Рекомендуемое
Монтаж системы вентиляции в дата-центре – это сложный и ответственный…

Спасибо!

Теперь редакторы в курсе.