13.04.2024

Выпуск языка программирования OCaml 4.14.2

Доступен новый выпуск языка программирования OCaml 4.14.2, поддерживающего концепции функционального, императивного и объектно-ориентированного программирования, и нацеленного на создание безопасных и надёжных программ. В языке применяются статическая типизация, сборка мусора, исключающие переполнения буферов типы, проверка и статический анализ на стадии компиляции. Код инструментария для языка OCaml распространяется под лицензией LGPL.

Изменения в новой версии:

  • В среде выполнения:
    • Добавлены прототипы к определениям и декларированиям в стиле С-функций.
    • Для примитивов задействованы строгие прототипы.
    • Для macOS прекращено использование «-flat-namespace».
    • Обеспечена проверка того, что Bool_val(v) имеет тип bool в С++;
  • В системе сборки:
    • Разрешено использование пути с пробелами как цели для установки.
    • Для OpenBSD >= 7.3 при компоновке задействован флаг «-no-execute-only».
    • Разрешено секциям кода оставаться читаемыми. Нужно для маршалинга замыканий.
    • Отключена интеграция потока управления для OpenBSD >= 7.4 для устранения ошибок с недопустимыми инструкциями на некоторых CPU.
  • Исправлены ошибки:
    • При вычислении высокоуровневых сообщений об ошибках для приложений функторов и включений не добавляются неконсистентные равенства.
    • Исправление некорректной обработки инъективности для приватных рекурсивных типов.
    • Исправление неотлавливаемого исключения Ctype.Escape на некоторых некорректных программах, формирующих рекурсивные типы.
    • Исправление compact_allocate для обхода патологических случаев, приводящих к очень медленному сжатию.
    • Автоматическое включение эмулируемого fma для Visual Studio 2019+, что позволяет выполнять конфигурацию либо с pre-Haswell/pre-Piledriver CPU или запускать исполнение в VirtualBox. Восстановлен паритет с другими Windows портами, теперь не требуется явного указания опции «—enable-imprecise-c99-float-ops».
    • Исправление в caml_unregister_frametable.
    • Более разумная реинициализация I/O мьютексов после fork().
    • Устранено нарушающее обратную совместимость выделение размера таблицы кадров на amd64 BSD (OpenBSD, FreeBSD, NetBSD) системах.
    • Исправление fix-modulo-cons компиляции выражений «try-with», «&&» и «||».
    • Явная сборка не-PIE исполняемых файлов на 32-х битных архитектурах x86.
    • Исправлена проблема с непропуском дублирующихся библиотек линковщику при компиляции ocamlc.opt и при использовании systhread.

Источник: https://www.opennet.ru/opennews/art.shtml?num=60815 Источник.