1 Punkte von GN⁺ 2025-02-15 | 1 Kommentare | Auf WhatsApp teilen
  • Änderungen an der Sprache
    • Go 1.24 unterstützt jetzt generische Typ-Aliasse vollständig. Typ-Aliasse können wie definierte Typen Parameter annehmen.
  • Performance-Verbesserungen
    • In der Runtime wurden mehrere Performance-Verbesserungen vorgenommen, die in repräsentativen Benchmarks im Durchschnitt zu 2–3 % weniger CPU-Overhead führen.
    • Enthalten sind eine neue integrierte Map-Implementierung, eine verbesserte Effizienz bei der Speicherallokation kleiner Objekte und eine neue interne Mutex-Implementierung der Runtime.
  • Verbesserungen an den Tools
    • Der go-Befehl bietet einen Mechanismus, um Tool-Abhängigkeiten eines Moduls nachzuverfolgen. Mit go get -tool können Tool-Direktiven zum aktuellen Modul hinzugefügt werden.
    • Der neue Test-Analyzer des Unterbefehls go vet meldet häufige Fehler in Test-, Fuzzer-, Benchmark- und Beispieldeklarationen von Testpaketen.
  • Ergänzungen in der Standardbibliothek
    • Die Standardbibliothek enthält einen neuen Mechanismus für die Einhaltung von FIPS 140-3, ohne dass Quellcodeänderungen erforderlich sind, um freigegebene Algorithmen zu verwenden.
    • Mehrere Pakete, die sich zuvor im Modul x/crypto befanden, sind jetzt in der Standardbibliothek verfügbar.
    • Benchmarks können jetzt die schnellere und weniger fehleranfällige Methode testing.B.Loop verwenden.
    • Der neue Typ os.Root bietet die Möglichkeit, Dateisystemoperationen unterhalb eines bestimmten Verzeichnisses auszuführen.
    • Die Runtime bietet mit runtime.AddCleanup einen neuen Bereinigungsmechanismus, der flexibler, effizienter und weniger fehleranfällig ist als runtime.SetFinalizer.
  • Verbesserte WebAssembly-Unterstützung
    • Go 1.24 ergänzt die Direktive go:wasmexport, mit der Go-Programme Funktionen an einen WebAssembly-Host exportieren können, und unterstützt das Bauen von Go-Programmen als WASI-Reaktor/Bibliothek.

1 Kommentare

 
GN⁺ 2025-02-15
Hacker-News-Kommentare
  • Ich freue mich besonders über die noch schnellere Map-Implementierung und darüber, dass text/template jetzt Funktionstypen unterstützt
  • In Go 1.23 wurde range über Funktionstypen eingeführt, aber erst jetzt funktioniert es auch in Go-Templates
  • Ich frage mich, ob man beim Installieren eines Tools, das per Tool-Direktive angegeben ist, die zu verwendenden Tags festlegen kann
    • Ich habe es ausprobiert, aber es funktioniert nicht (es wird ohne Tags installiert)
    • Verwendet wurde go install -tags 'postgres' github.com/golang-migrate/migrate/v4/cmd/migrate@latest
  • Ich frage mich, wofür os.Root konkret eingesetzt wird
    • Soweit ich verstehe, hat es mit Sicherheit zu tun
    • Da intern kein Chroot verwendet wird, stelle ich mir vor, dass am Ende jemand einen Weg finden könnte, aus Root auszubrechen
  • Langweilig, aber ich mag es
  • Auf die neuen Tool-Flags freue ich mich am meisten
    • Damit könnte man das hässliche tools.go loswerden
  • Bei Verwendung von GODEBUG=fips140=only liefern kryptografische Algorithmen, die FIPS 140-3 nicht entsprechen, einen Fehler oder einen Panic zurück
    • Mir gefällt die Idee nicht, dass die Standardbibliothek absichtlich einen Panic auslöst
    • Ich habe den Code nicht angesehen, frage mich aber, ob das nur dort passiert, wo aktuell kein Fehler zurückgegeben wird
  • Endlich, auf generische Typ-Aliase habe ich lange gewartet
  • Schön! Wegen GOAUTH habe ich mich auf dieses Release gefreut
    • Hoffentlich wird die Arbeit mit privaten Git-Repositories weniger umständlich
    • Wenn ich mir go help goauth ansehe, sind meine Erwartungen allerdings nicht allzu hoch