Programmiersprache: OCaml 4.10 stellt sich auf Multicore ein

Das neue Release der Multiparadigmensprache enthält zahlreiche Fehlerbereinigungen und Verbesserungen, darunter auch einige Breaking Changes.

Lesezeit: 1 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 2 Beiträge

(Bild: OCaml Software Foundation)

Von
  • Matthias Parbel

Das OCaml-Team hat Version 4.10 der ML-Programmiersprache (Meta Language) vorgelegt, die sowohl funktionale und imperative als auch objektorientierte Anwendungsentwicklung unterstützt. Zu den wichtigsten Neuerungen von OCaml 4.10 zählt, dass die Sprache nun schon während der Konfiguration unveränderliche Zeichenketten erzwingt. Ein neuer Best-Fit-Allocator für den Major Heap soll die Speicherauslastung und den Aufwand für die Garbage Collection reduzieren. Schließlich hat das Entwicklerteam beim Runtime-System erste Schritte in Richtung Multicore eingeleitet.

Der Modus force-safe-string löst in der neuen Sprachversion die bisher standardmäßig aktivierte -unsafe-string-Option ab, um das Verwenden unveränderlicher (immutable) Zeichenketten zu erzwingen. Die Neuerung bringt jedoch einen Breaking Change mit sich, denn der Wiedergabewert im String_val-Makro in C Stubs ist const char anstelle von char, was zu Unterbrechungen im C-Foreign-Function-Interface-Code führen kann. Entwickler haben daher die Möglichkeit, den Safe-Mode mit –disable-force-safe-string (seit OCaml 4.08 verfügbar) zu deaktivieren.

Am Runtime-System hat das OCaml-Team eine Reihe von Änderungen vorgenommen. Der neue Best-Fit-Allocator soll die bisherigen Policies (first-fit und next-fit) ablösen, um speziell bei Anwendungen mit großen Memory Heaps den Speicherbedarf zu optimieren und die Garbage Collection (GC) zu vereinfachen. Die neue Funktion ist allerdings vorläufig noch experimentell, und Entwickler müssen sie explizit mit OCAMLRUNPARAM="a=2" aktivieren.

Mit Blick auf eine für Multicore-Systeme geeignete Runtime führt OCaml 4.10 erstmals eine Zustandstabelle ein, die globale Variablen aufnimmt. Im Endausbau soll die Runtime dann jeweils pro Domäne einen Zustand haben. Die Neuerung führt dazu, dass sich der Status einiger interner Variablen ändert. In vielen Fällen bietet die Header-Datei, die die interne Variable ursprünglich definiert, ein Kompatibilitätsmakro mit dem alten Namen. Jedoch müssen Programme, die diese Variablen neu definieren, möglicherweise manuell angepasst werden.

Mehr Details zu den Verbesserungen sowie eine komplette Liste aller Breaking Changes in OCaml 4.10 finden sich in den Release Notes. Die neue Version steht sowohl als OPAM-Switches wie auch im Sourcecode zum Download zur Verfügung. Nähere Informationen zu OCaml und dessen Installation finden Interessierte auf der Projektwebsite sowie im GitHub-Repository. (map)