Go 1.26

После полугода разработки состоялся выпуск 1.26 компилятора и стандартной библиотеки языка программирования Go.
Основные изменения:
- Встроенная новая функция, создающая новую переменную, позволяет использовать в качестве операнда выражение, указывающее начальное значение переменной. Простой пример такого изменения — это код, подобный этому:
x := int64(300) ptr := &x
Можно упростить до:ptr := new(int64(300)) - Обобщенные типы могут ссылаться сами на себя в собственном списке параметров типа. Это изменение упрощает реализацию сложных структур данных и интерфейсов.
Улучшение производительности:
- Экспериментальный сборщик мусора Green Tea теперь включен по умолчанию.
- Накладные расходы на CGO были сокращены примерно на 30%.
- Компилятор может выделять резервную память для Slice-структур в стеке в большем количестве ситуаций, что повышает производительность.
Инструментарий:
- Команда
go fixбыла полностью переписана с использованием фреймворка analysis и теперь включает в себя несколько десятков «модернизаторов», которые предлагают безопасные исправления, помогающие вашему коду использовать преимущества новых возможностей языка и стандартной библиотеки.
Добавлены экспериментальные дополнения, доступные только при явном включении:
- Пакет archsimd для доступа к архитектурно-зависимым операциям SIMD. На данный момент поддерживается только AMD64.
- Пакет secret со вспомогательными функциями для обнуления памяти.
- В пакет профилирования pprof добавлена поддержка опции
GOEXPERIMENT=goroutineleakprofileдля обнаружения утечек памяти goroutine.
Полный список изменений
>>> Подробности на go.dev/blog
Linux.org.ru прочитано 1017 раз
