Saadaval on uus OCaml programmeerimiskeele versioon 4.14.2, mis toetab funktsionaalsete, imperatiivsete ja objektorienteeritud programmeerimise kontseptsioone ning on suunatud turvaliste ja usaldusväärsete programmide loomisele. Keeles kasutatakse staatilist tüpiseerimist, prügikogumist, puhverülevõtmiste vältimist, tüüpide kontrolli ja staatilist analüüsi kompileerimise ajal. OCaml-i tööriistakoodi levitatakse LGPL litsentsi alusel.
Uue versiooni muudatused:
- Käivituskeskkonnas:
- Lisatud prototüübid funktsioonide määratlemistele ja deklareerimisele C-stiilis.
- Primitiivide jaoks on kasutusele võetud rangelt määratletud prototüübid.
- macOS-is on lõpetatud „-flat-namespace” kasutamine.
- Kontrollitud, et Bool_val(v) on tüübi bool C++-s;
- Kogumisüsteemis:
- Lubatud on kasutada vahemikke, mis sisaldavad tühikuid, paigalduse sihtmärgina.
- OpenBSD > = 7.3-l kompilatsiooni käigus on kasutusele võetud lipp „-no-execute-only”.
- Selle raames lubatakse koodisektsioonide lugemine. Vajalik sulgemiste marshaldamiseks.
- Juhtimisvoo integreerimine on keelatud OpenBSD > = 7.4-l, et kõrvaldada vigade tekitamine mitmesugustes CPU-des.
- Parandatud vead:
- Tippide kõrgetasemeliste veateadete arvutamisel funktsionaalsete rakenduste ja lisade jaoks ei lisata vastuolulisi võrdusi.
- Privaatsuse rekursiivsete tüüpide vale käsitlemise parandamine.
- Ctype.Escape'i mittetuvastatavast erandist parandamine mõnedes vigastes programmides, mis genereerivad rekursiivseid tüüpe.
- compact_allocate'i parandamine patoloogiliste juhtumite vältimiseks, mis viivad väga aeglase kokkusurumiseni.
- Emuleeritud fma automaatne aktiveerimine Visual Studio 2019+ jaoks, võimaldades konfiguratsiooni kas pre-Haswell/pre-Piledriver CPU-dega või käivitamist VirtualBoxis. Pariteet teiste Windowsi portidega on taastatud, nüüd ei nõuta valiku "—enable-imprecise-c99-float-ops" eksplicitset määramist.
- Parandus caml_unregister_frametable'is.
- Töötleva I/O muteksade mõistlikum reinitsialiseerimine pärast fork().
- Amd64 BSD (OpenBSD, FreeBSD, NetBSD) süsteemidel tagastatakse tagurpidi ühilduv kaadriserveri suuruse määramine.
- Fix-modulo-cons'i parandamine "try-with", "&&" ja "||" väljendite kompileerimisel.
- 32-bitiste x86 arhitektuuride mitte-PIE täidetavate failide väljasuremine.
- Parandatud probleem, mille korral linkimisprogramm ei päästetud kahekordsete raamatukogude kaudu, kompileerides ocamlc.opt ja kasutades systhread.
Allikas: opennet.ru
