Nový programovací jazyk OCaml 4.14.2 je nyní k dispozici. Podporuje funkcionální, imperativní a objektově orientované programovací koncepty a je zaměřen na vytváření bezpečných a spolehlivých programů. Jazyk využívá statické typování, garbage collection, typy zabraňující přetečení vyrovnávací paměti, kontrolu během kompilace a statickou analýzu. Sada nástrojů OCaml je licencována pod licencí LGPL.
Změny v nové verzi:
- V běhovém prostředí:
- Přidány prototypy do definic a deklarací funkcí ve stylu C.
- Pro primitiva se používají striktní prototypy.
- pro macOS Používání parametru „-flat-namespace“ bylo ukončeno.
- Za předpokladu, že Bool_val(v) je typu bool v C++;
- V systému sestavení:
- Jako cíl instalace je povoleno použít cestu s mezerami.
- Pro OpenBSD >= 7.3 je při linkování povolen příznak "-no-execute-only".
- Umožňuje, aby části kódu zůstaly čitelné. To je nezbytné pro zařazování uzávěrů.
- Zakázána integrace řídicího toku pro OpenBSD >= 7.4 z důvodu opravy chyb neplatných instrukcí na některých CPU.
- Opravené chyby:
- Při výpočtu chybových zpráv na vysoké úrovni pro aplikace s funktory a inkluzí se nekonzistentní rovnosti nepřidávají.
- Opraveno nesprávné zpracování injektivity pro privátní rekurzivní typy.
- Oprava nezachycené výjimky Ctype.Escape v některých nesprávných programech generujících rekurzivní typy.
- Opravena chyba compact_allocate, aby se obešlo bez patologických případů, které vedou k velmi pomalému zhutňování.
- Automaticky povoluje emulovaný FMA pro Visual Studio 2019+, což umožňuje konfiguraci s procesorem starším než Haswell/Piledriver nebo spuštění ve VirtualBoxu. Parita s ostatními procesory byla obnovena. Windows porty, již není nutné explicitně specifikovat volbu „--enable-imprecise-c99-float-ops“.
- Oprava v caml_unregister_frametable.
- Chytřejší reinicializace I/O mutexů po fork().
- Opravena zpětná alokace velikosti tabulky rámců na systémech amd64 BSD (OpenBSD, FreeBSD, NetBSD).
- Opravena kompilace výrazů „try-with“, „&&“ a „||“ metodou fix-modulo-cons.
- Explicitně sestavovat spustitelné soubory jiné než PIE na 32bitových architekturách x86.
- Opraven problém, kdy linker nepřeskakoval duplicitní knihovny při kompilaci ocamlc.opt a při použití systhread.
Zdroj: opennet.ru
