Вышел #go 1.25 Новинок в самом языке нет — релиз про рантай...
Вышел #go 1.25
Новинок в самом языке нет — релиз про рантайм и библиотеки.
Больше всего хайпую насчёт:
— нового greentea GC (эксперимент, включается `GOEXPERIMENT=greenteagc`): на реальных мусорящих сервисах обещает заметно срезать GC-оверхед;
— container-aware GOMAXPROCS: теперь по умолчанию учитывает лимиты cgroup и может динамически обновляться;
— testing/synctest — вышел из эксперимента, можно писать детерминированные тесты конкуррентщины.
Ещё из прикольного — runtime/trace.FlightRecorder: по сути кольцевой буфер трейса, который держит последние N секунд и по .WriteTo даёт снапшот. Можно держать включённым постоянно (хотя бы на части инстансов) и дампать трейсы при серьёзных ошибках или SLA-триггерах.
Жаль, я всё ещё не вижу готовой открытой системы для централизованного сбора/хранения/просмотра .trace объектов. Вьюверы есть (`go tool trace`, отличный `gotraceui`), а вот «трейс-сторандж» под FlightRecorder — прям идея для совместного OSS-пета.
По мелочи:
— net/http.CrossOriginProtection — мидлварь для CSRF-защиты с конфигурируемыми правилами и deny-handler. Похоже, похоронит зоопарк самописных решений;
— Больше методов у os.Root (`Chmod/Chown/Chtimes/Link/MkdirAll/ReadFile/Readlink/RemoveAll/Rename/Symlink/WriteFile` и т. д.) — почти полноценная файловая песочница;
— testing.T|B|F.Attr — атрибуты в лог теста; `testing.T|B|F.Output()` — даёт io.Writer в тот же поток (больше не нужны адаптеры логгеров под `testing`);
— Новый экспериментальный encoding/json/v2 (`GOEXPERIMENT=jsonv2`): заметно быстрее на декодинге и с кучей приятных опций.
Интерактивный тур по релизу:
https://antonz.org/go-1-25/
Заметки к релизу:
https://go.dev/doc/go1.25
Похожие каналы





