Дата публикации:Wed, 20 Mar 2024 11:26:06 +0300
Доступен новый выпуск языка программирования 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.
Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=60815