Там ниже, кстати, есть весьма занимательный ишшуй: github.com/golang/go/issues/67401
tl;dr всякие неприятные личности слинковались с интерналами стд либы, из-за чего изменение в них ведет к сломанной обратной совместимости. goccy/go-json, например, так сломался, а от него сам кубернетес зависит. В общем, один негодяй где-то в самом внизу пищевой цепочки ломает добрый пласт всей экосистемы просто из-за того, что в рантайме компилятора где-то что-то немного поменялось.
Поэтому, линкнейм будут потихоньку сворачивать. Оставят возможность для существующих функций (и заморозят их сигнатуры), но не дадут опираться на это для всех последующих. Список имен, доступных для linkname'a, кстати, будет выбран весьма интересным способом: rsc планирует пройтись по ВСЕМ опенсорс проектам на го (неужели даже на индигу взор обратят), и грепнуть все линкнеймы. Это и будет вайтлист (который может расширяться по индивидуальным запросам, но должен быть из списка тех, которые существовали еще до такого решения).
Надо будет вообще со всем слинковаться в индиге, что ли. Пусть попотеют
Post #245
75
Чайник из Юты героев нужно знать в лицо https://github.com/golang/go/blob/master/src/runtime/slice.go#L165GitHub cmd/link: lock down future uses of linkname · Issue #67401 · golang/go Overuse of //go:linkname to reach into Go standard library internals (especially runtime internals) means that when we do change the standard library internals in ways that should not matter, we ca...
- 👍 1