суббота, 29 февраля 2020 г.

Релиз Go 1.14: изменения в языке и его портах

Релиз Go, версия 1.14, вышел через шесть месяцев после Go 1.13. Большинство его изменений касаются реализации набора инструментов, среды выполнения и библиотек. Как всегда, релиз поддерживает обещание Go 1 о совместимости. Ожидается, что почти все программы Go будут продолжать компилироваться и запускаться, как и раньше.

Поддержка модулей (modules) в команде go теперь готова к производственному использованию, и всем пользователям рекомендуется перейти на модули Go для управления зависимостями.

Изменения в языке

Согласно предложению о перекрывающихся интерфейсах, Go 1.14 теперь позволяет встраивать интерфейсы с перекрывающимися наборами методов: методы из встроенного интерфейса могут иметь те же имена и идентичные сигнатуры, что и методы, уже присутствующие в интерфейсе (встраивание). Это решает проблемы, которые обычно (но не исключительно) возникают с графами встраивания в форме ромба. Явно объявленные методы в интерфейсе должны оставаться уникальными, как и раньше.

Порты


Darwin

Go 1.14 - последний релиз, который будет работать на MacOS 10.11 El Capitan. Go 1.15 потребует macOS 10.12 Sierra или более поздней версии.

Go 1.14 - последний релиз Go, поддерживающий 32-битные двоичные файлы в macOS (порт darwin/386). Они больше не поддерживаются macOS, начиная с macOS 10.15 (Catalina). Go продолжает поддерживать 64-битный порт darwin/amd64.

Go 1.14, вероятно, будет последним выпуском Go, поддерживающим 32-разрядные двоичные файлы на iOS, iPadOS, watchOS и tvOS (порт darwin/arm). Go продолжает поддерживать 64-битный порт darwin/arm64.

Windows

В двоичных файлах Windows теперь включена функция DEP (предотвращение выполнения данных).

WebAssembly

Значения JavaScript, на которые ссылаются из Go через объекты js.Value, теперь могут собираться сборщиком мусора.

Значения js.Value больше нельзя сравнивать с помощью оператора ==, и вместо этого их нужно сравнивать с помощью их метода Equal.

В js.Value теперь есть методы IsUndefined, IsNull и IsNaN.

RISC-V

В версии 1.14 содержится экспериментальная поддержка 64-разрядной версии RISC-V в Linux (GOOS = linux, GOARCH = riscv64). Помните, что производительность, стабильность синтаксиса сборки и, возможно, правильность находятся в стадии разработки.

FreeBSD

Go теперь поддерживает 64-битную архитектуру ARM на FreeBSD 12.0 или более поздней версии (порт freebsd/arm64).

Native Client (NaCl)

Как было объявлено в примечаниях к выпуску Go 1.13, Go 1.14 прекращает поддержку платформы Native Client (GOOS = nacl).

Illumos

Теперь среда выполнения учитывает ограничения CPU зоны (элемент управления ресурсами zone.cpu-cap) для runtime.NumCPU и значение по умолчанию GOMAXPROCS.


Читайте также:


Купить gopher

Комментариев нет:

Отправить комментарий