Go 1.24, оновлення популярної мови програмування від Google з відкритим вихідним кодом, тепер загальнодоступне із повною підтримкою загальних псевдонімів типів, покращеною продуктивністю та покращеною підтримкою WebAssembly. Як повідомляє InfoWorld, реліз був оприлюднений 11 лютого і його можна завантажити з Go.dev.
У примітках до випуску для Go 1.24 зазначено, що він забезпечує повну підтримку загальних псевдонімів типів, у яких псевдонім типу може бути параметризований як визначений тип. Зараз псевдоніми загального типу можна вимкнути, встановивши GOEXPERIMENT=noaliastypeparams
. Це налаштування параметру буде видалено в Go 1.25.
Для WebAssembly Go 1.24 пропонує директивуgo:wasmexport
для програм Go для експорту функцій на хост WebAssembly. Реліз також підтримує створення програми Go як реактора/бібліотеки WASI.
За допомогою команди go
в Go 1.24 модулі Go тепер можуть відстежувати залежності виконуваного файлу за допомогою директив tool
у файлах go.mod. Це усуває потребу в попередньому обхідному шляху додавання інструментів як порожнього імпорту до файлу з умовною назвоюtools.go
.
Команда go tool
тепер може запускати ці інструменти на додаток до інструментів, які постачаються з дистрибутивом Go. Крім того, з командою go
нова змінна середовища GOAUTH
пропонує гнучкий спосіб автентифікації отримання приватних модулів.
Cgo для створення пакетів Go, які викликають код C, тепер підтримує нові анотації для функцій C для покращення продуктивності під час виконання. З цими вдосконаленнями #cgo noescape cFunctionName
повідомляє компілятору, що пам’ять, передана функції cFunctionName
, не екранується.
Також #cgo nocallback cFunctionName
повідомляє компілятору, що функція cFunctionName
не виконує зворотного виклику до жодної функції Go.
Інші функції й удосконалення в Go 1.24:
- Численні покращення продуктивності середовища виконання в Go 1.24 зменшили накладні витрати ЦП у середньому на 2–3% за набором репрезентативних тестів. Вони передбачають нову реалізацію вбудованої
map
на основі Swiss Tables, більш ефективний розподіл пам’яті для малих об’єктів і нову реалізацію внутрішнього м’ютексу під час виконання. - Новий аналізатор
tests
повідомляє про поширені помилки в деклараціях тестів, фаззерах, контрольних тестах і прикладах у пакетах тестів, як-от неправильні підписи або приклади, які документують неіснуючі ідентифікатори. Деякі з цих помилок можуть спричинити невиконання тестів. - Внутрішній двійковий і тестовий механізм кешування
cmd/go
тепер може бути реалізований дочірніми процесами, які реалізують протокол JSON між інструментомcmd/go
і дочірнім процесом, названим змінною середовищаGOCACHEPROG
. - Експериментальний пакет
testing/synctest
підтримує тестування одночасного коду. - Пакет
debug/elf
пропонує підтримку для обробки версій символів у динамічних файлах ELF (виконуваний і компонований формати). - Для Linux Go 1.24 вимагає ядра Linux версії 3.2 або новішої.
Go 1.24 слідує за Go 1.23, випущеною у серпні 2024 року, зі скороченим часом створення для оптимізації за допомогою профілю.
Раніше ми повідомляли про топ-12 інструментів із відкритим кодом для розробників у 2025 році.
Підписуйтеся на ProIT у Telegram, щоб не пропустити жодної публікації!