Heim >Backend-Entwicklung >Golang >Was wurde in golang1.11 geändert?
Wie in den Versionshinweisen zu Go 1.10 angekündigt, erfordert Go 1.11 jetzt OpenBSD 6.2 oder höher, macOS 10.10 Yosemite oder höher oder Windows 7 oder höher. Spätere Versionen; Versionen dieser Betriebssysteme wurden entfernt.
– msan unterstützt jetzt Memory Cleaner()linux/arm64. (Empfohlenes Lernen: go)
unterstützt jetzt den Build-Modus C-Shared und c-archivefreebsd/amd64
Auf 64-Bit-MIPS-Systemen wählen die neuen Umgebungsvariableneinstellungen GOMIPS64=hardfloat (Standard) und GOMIPS64=softfloat aus, ob Hardwareanweisungen oder Softwareemulation für Gleitkommaberechnungen verwendet werden. Bei 32-Bit-Systemen lautet die Umgebungsvariable immer noch GOMIPS, da sie in Go 1.10 hinzugefügt wurde.
Auf Soft-Gleitkomma-ARM-Systemen (GOARM=5) verwendet Go jetzt eine effizientere Software-Gleitkomma-Schnittstelle. Dies ist für Go-Code transparent, aber ARM-Assemblys, die Gleitkommaanweisungen verwenden, die nicht GOARM-geschützt sind, funktionieren nicht und müssen auf die neue Schnittstelle portiert werden.
Die Konfiguration des Linux-Kernels KUSER_HELPERS ist nicht mehr erforderlich, um 1.11 auf ARMv7 auszuführen. Diese Einstellung ist in der Standardkernelkonfiguration aktiviert, in der Thin-Konfiguration jedoch manchmal deaktiviert.
Web Assembly
Go 1.11 fügt einen experimentellen Port zu WebAssembly (js/wasm) hinzu.
Go-Programme können derzeit in ein WebAssembly-Modul kompiliert werden, das die Go-Laufzeit für Goroutine-Planung, Garbage Collection, Karten usw. enthält. Die Ergebnisgröße beträgt also mindestens etwa 2 MB bzw. 500 KB komprimiert. Go-Programme können JavaScript mithilfe des neuen experimentellen Pakets syscall/js aufrufen. Binärgröße und Interoperabilität mit anderen Sprachen haben noch keine Priorität, können aber in zukünftigen Versionen behoben werden.
Aufgrund der Hinzufügung des neuen GOOS-Werts „js“ und des GOARCH-Werts „wasm“ ignorieren Go-Tools jetzt Go-Dateien mit dem Namen *_js.go oder sofern diese GOOS/GOARCH-Werte nicht verwendet werden. Wenn Sie bereits Dateinamen haben, die diesen Mustern entsprechen, müssen Sie diese umbenennen. *_wasm.go
Module, Paketversionierung und Abhängigkeitsverwaltung
Go 1.11 bietet anfängliche Unterstützung für ein neues Konzept namens „Module“, das eine Alternative zu GOPATH mit integrierter Funktion darstellt Unterstützung für Versionskontrolle und Paketverteilung. Durch den Einsatz von Modulen sind Entwickler nicht mehr auf die Arbeit in einem GOPATH beschränkt, Versionsabhängigkeitsinformationen sind klar und übersichtlich und Builds sind zuverlässiger und reproduzierbar.
Modulunterstützung gilt als experimentell. Details können sich aufgrund des Feedbacks von Go 1.11-Benutzern ändern, und wir haben weitere Tools geplant. Obwohl sich die Details der Modulunterstützung ändern können, funktionieren Projekte, die mit Go 1.11 in Module konvertiert wurden, weiterhin in Go 1.12 und höher.
Build-Cache-Anforderungen
Go 1.11 wird die neueste Version sein, die das Setzen der Umgebungsvariablen GOCACHE=off unterstützt, um den Build-Cache zu deaktivieren. Diese Funktion wurde in Go 1.10 eingeführt . Ab Go 1.12 muss der Cache erstellt werden, was ein Schritt ist, der $GOPATH/pkg eliminiert. Für die oben beschriebene Unterstützung beim Laden von Modulen und Paketen muss der Build-Cache bereits aktiviert sein.
Das obige ist der detaillierte Inhalt vonWas wurde in golang1.11 geändert?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!