Доступен новый выпуск языка программирования 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.
Release.
Ссылка here.