Programmiersprache: Go 1.19 erscheint mit überarbeitetem Speichermodell
Das Speichermodell von Go sei nun an jenen von C/C++, Rust oder anderen Sprachen ausgerichtet. Die Nutzung von Atomics soll einfacher werden.

Die aktuelle Version 1.19 der Programmiersprache Go ist erschienen. Laut der Ankündigung haben die Beteiligten das Speichermodell der Sprache überarbeitet. Das sei geschehen, um Go an das von C, C++, Java, JavaScript, Rust und Swift verwendete Speichermodell anzugleichen, heißt es weiter. Mit der Aktualisierung des Speichermodells führt Go 1.19 neue Typen im sync/atomic-Paket ein, die die Verwendung atomarer Werte erleichtern sollen, wie atomic.Int64 und atomic.Pointer[T].
Hintergründe zu dem Projekt liefert eine ausführliche Erklärung durch den langjährigen Go-Entwickler Russ Cox. Demnach ist 2009 mit Entstehung der Sprache erstmals auch dessen Speichermodell erstellt und seitdem auch leicht aktualisiert worden.
Cox schreibt aber auch: "Es ist klar, dass es zumindest ein paar Details gibt, die wir dem aktuellen Speichermodell hinzufügen sollten, darunter eine ausdrückliche Befürwortung von Race-Detektoren und eine klare Aussage darüber, wie die APIs in sync/atomic-Programmen synchronisieren." Einige der Ideen von Cox hat das Team auf Github diskutiert und für die aktuelle Version 1.19 umgesetzt.
Kleine Updates
Die Laufzeitumgebung bietet in Go 1.19 Unterstützung für eine weiche Speicherbegrenzung. Diese Speichergrenze umfasst den Go-Heap und alle anderen von der Laufzeitumgebung verwalteten Speicher und schließt externe Speicherquellen wie Mappings der Binärdatei selbst, in anderen Sprachen verwalteten Speicher und vom Betriebssystem im Auftrag des Go-Programms gehaltenen Speicher aus, teilen die Entwickler mit.
An der Sprache selbst gebe es nur eine kleine Änderung und die betreffe eine Korrektur des Geltungsbereichs von Typparametern in Methodendeklarationen, teilen die Entwickler mit. Bestehende Programme seien davon nicht betroffen. Auch die Bibliotheken haben Neuerungen erfahren. Wie gewohnt betonen die Entwickler die Rückwärtskompatibilität: "Wir erwarten, dass fast alle Go-Programme weiterhin kompiliert werden und wie bisher laufen."
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
Kommentieren