В начале сентября была выпущена очередная версия языка программирования Golang — Go 1.13.
Основные новшества:
- в пакет crypto/tls включили по умолчанию поддержку протокола TLS 1.3. Добавили новый пакет "crypto/ed25519" с поддержкой цифровых подписей Ed25519;
- сняли ограничение на использование только беззнаковых счётчиков в операциях сдвига, что даёт возможность избегать лишних преобразований в тип uint перед применением операторов "‹‹" и "››";
- добавили поддержку новых префиксов цифровых литералов для определения двоичных чисел (к примеру, 0b101), восьмеричных (0o377), мнимых (2.71828i) и шестнадцатеричных с плавающей запятой (0x1p-1021), а также обеспечили возможность применения символа "_" для наглядного разделения цифр в больших числах (1_000_000);
- в команде "go" по умолчанию обеспечили загрузку модулей и проверку их целостности, применяя зеркало модулей и базу контрольных сумм, поддерживаемые компанией Google (proxy.golang.org, sum.golang.org и index.golang.org);
- прекратили поддержку только бинарных пакетов, сборка пакета в режиме "//go:binary-only-package" теперь приводит к ошибке;
- при извлечении модулей из систем контроля версий команда "go" теперь выполняет дополнительную проверку строки с номером версии, пытаясь сопоставить номера псевдоверсий с метаданными из репозитория;
- в команду "go get" добавили поддержку суффикса "@patch", указывающего, что модуль должен быть обновлён до последнего корректирующего выпуска, однако без смены текущей значительной или промежуточной версии;
- добавили поддержку инспектирования ошибок (error wrapping) через создание обёрток, позволяющих применять типовые обработчики ошибок. К примеру, ошибка "e" может быть обёрнута над ошибкой "w" через предоставление метода Unwrap, возвращающего "w". Обе ошибки "e" и "w" доступны в программе и решения принимаются на основании ошибки "w", но "e" предоставляет дополнительный контекст к "w" или интерпретирует его по иному;
- добавили поддержку платформы Illumos (GOOS=illumos). Обеспечили совместимость с платформой Android 10. Повысили требования к минимальным версиям FreeBSD (11.2) и macOS (10.11"El Capitan")
- провели оптимизацию производительности runtime-компонентов (отмечен прирост скорости до 30 %) и задействовали более агрессивное возвращение памяти в ОС (ранее память возвращалась через пять и более минут, а сейчас — сразу после урезания размера кучи).
Загляните за горизонт событий вместе с OTUS! Записывайтесь на наши курсы:
ПОСМОТРЕТЬ ПРОГРАММЫ