Если вы всегда хотели написать игру на Dreamcast (крутая была приставка!), но не знали как: https://github.com/drpaneas/libgodc
GitHub
GitHub - drpaneas/libgodc: Go runtime for Dreamcast using gccgo and KOS
Go runtime for Dreamcast using gccgo and KOS. Contribute to drpaneas/libgodc development by creating an account on GitHub.
👍4
Если кто-нибудь опять будет вам доказывать, что go.sum — это lockfile, просто киньте им https://words.filippo.io/gosum/
words.filippo.io
go.sum Is Not a Lockfile
In Go, go.mod acts as both manifest and lockfile. There is never a reason to look at go.sum.
👍16
Поводов для шуток у Растофчан становится всё меньше, а поводов для ужаса у нас — всё больше: https://github.com/golang/go/issues/77273
UPD: Ладно, прочитал — всё весьма хорошо: пересечения с интерфейсами нет, рефлексии нет, чисто синтаксический сахар над функциями. Что интересно — сейчас нет 👎 вообще.
UPD: Ладно, прочитал — всё весьма хорошо: пересечения с интерфейсами нет, рефлексии нет, чисто синтаксический сахар над функциями. Что интересно — сейчас нет 👎 вообще.
GitHub
spec: generic methods for Go · Issue #77273 · golang/go
Proposal: Generic Methods for Go A change of view. Background For clarity, in the following we use the term concrete method (or just method when the context is clear) to describe a non-interface me...
👍7👏2😢2
How to Go wrong
Если вы всегда хотели написать игру на Dreamcast (крутая была приставка!), но не знали как: https://github.com/drpaneas/libgodc
А вот и Playdate подвезли: https://github.com/playdate-go/pdgo
GitHub
GitHub - playdate-go/pdgo: 🟡 Golang for Playdate. Compiler, SDK Bindings, Tools and Examples ⚒️
🟡 Golang for Playdate. Compiler, SDK Bindings, Tools and Examples ⚒️ - playdate-go/pdgo
👍3
Интересная статья про добавление методов с реализацией по-умолчанию в интерфейсы. Если вы сразу подумали про встраивание – да, статья про это, но с трюком с alias’аом и занимательными деталями реализации.
https://mcyoung.xyz/2025/08/25/go-default-methods/
https://mcyoung.xyz/2025/08/25/go-default-methods/
mcyoung.xyz
Default Methods in Go · mcyoung
👍4
Давно хотел об этом написать, но, как обычно, меня опередили: https://words.filippo.io/go-source/
words.filippo.io
Inspecting the Source of Go Modules
Code hosts like GitHub don't necessarily show the correct source of Go modules. pkg.geomys.dev is a new convenient viewer for module source.
👍4
Запускаете
go fix на свой код, чтобы LLM учились на хорошем: https://go.dev/blog/gofixgo.dev
Using go fix to modernize Go code - The Go Programming Language
Go 1.26 includes a new implementation of go fix that can help you use more modern features of Go.
🤣11👍3
Как использовать отчёт об уязвимости своего пакета для рекламы более хорошего сканера (
govulncheck) — мастер-класс от Filippo Valsorda: https://github.com/advisories/GHSA-fw7p-63qq-7hprGitHub
CVE-2026-26958 - GitHub Advisory Database
filippo.io/edwards25519 MultiScalarMult produces invalid results or undefined behavior if receiver is not the identity
🤣3
How to Go wrong
Как использовать отчёт об уязвимости своего пакета для рекламы более хорошего сканера (govulncheck) — мастер-класс от Filippo Valsorda: https://github.com/advisories/GHSA-fw7p-63qq-7hpr
words.filippo.io
Turn Dependabot Off
I recommend turning Dependabot off and replacing it with a pair of scheduled GitHub Actions, one running govulncheck, and the other running CI against the latest version of your dependencies.
👍3
Go на колёсах, или установка гошных бинарников
pip install’ом: https://github.com/simonw/go-to-wheelGitHub
GitHub - simonw/go-to-wheel: Wrap Go binaries in Python wheels
Wrap Go binaries in Python wheels. Contribute to simonw/go-to-wheel development by creating an account on GitHub.
🤔13🤣9
Новые вопросы на собеседованиях через 3… 2… https://go.dev/blog/allocation-optimizations
go.dev
Allocating on the Stack - The Go Programming Language
A description of some of the recent changes to do allocations on the stack instead of the heap.
🤣17👍4😢1
How to Go wrong
https://go.dev/blog/go1.26 https://go.dev/doc/go1.26 Отличный подарок на день рождения 😁
Оказывается, 11 дней полыхала драма, и одно крошечное, но могучее изменение откатят в 1.26.1: https://github.com/golang/go/issues/77653
GitHub
cmd/go: change `go mod init` default go directive back to 1.N · Issue #77653 · golang/go
Proposal Details I was surprised to see #74748 in 1.26. I think this behavior is confusing: ❯ cat t.go package main import "fmt" func main() { fmt.Println(new(42)) } ❯ go run t.go 0x4a524...
👍6🤔4🤣2👎1😢1
Не прошло и… всего восьми лет, как proposal про
const решили отклонить: https://github.com/golang/go/issues/27975#issuecomment-4000712203 Мир изменился, мы изменились, уже даже автор не считает предложение таким уж нужным – и только команда Go верна себе. 😁GitHub
proposal: spec: immutable type qualifier · Issue #27975 · golang/go
This issue describes a language feature proposal to Immutable Types. It targets the current Go 1.x (> 1.11) language specification and doesn't violate the Go 1 compatibility promise. It also...
👍5😢2
Поддержку генерации UUID уже скоро завезут в стандартную библиотеку. В полном соответствии с законом тривиальности Паркинсона (a.k.a. bike-shedding), сейчас там полыхает драма. 😁
GitHub
uuid: add API to generate and parse UUID · Issue #62026 · golang/go
I would like to suggest the addition to the standard library of a package to generate and parse UUID identifiers, specifically versions 3, 4 and 5. The main reason I see to include it is that the m...
🤣6👍1
How to Go wrong
Оказывается, 11 дней полыхала драма, и одно крошечное, но могучее изменение откатят в 1.26.1: https://github.com/golang/go/issues/77653
В 1.26.1 откатили это, но отладка кода с race detector’ом осталось сломанной. Ждём 1.26.2: https://github.com/golang/go/issues/77597
GitHub
runtime: segmentation violation when debug and using race detector · Issue #77597 · golang/go
Go version go version go1.26.0 linux/amd64 Output of go env in your module/workspace: AR='ar' CC='gcc' CGO_CFLAGS='-O2 -g' CGO_CPPFLAGS='' CGO_CXXFLAGS='-O2 -g&#...
🤣9👍2
Весь свой выходной день делаю одну штуку, связанную со сравнением значений разными способами (почти как 4 года назад), перечитываю спеку языка раз за разом. И вдруг заметил такое бревно в глазу языке, что теперь не могу развидеть.
В спеке есть понятия comparable и strictly comparable: «The equality operators == and != apply to operands of comparable types. The ordering operators <, <=, >, and >= apply to operands of ordered types». Ordered операторы применяются к ordered типам – всё нормально. А вот equality операторы применяются к comparable типам – используется другое слово, как-то немного странно, но сойдёт.
Но дальше хуже. Есть в стандартной библиотеке пакет
Пошёл смотреть почему же нет
Какая же мораль? Как обычно, NaN всё портит. Go – не такой простой язык, как кажется (никакой язык не такой простой, как кажется, но мы же тут про Go), но английский – ещё сложнее. А мне, видимо, надо отдыхать в выходной день без чтения спеки.
В спеке есть понятия comparable и strictly comparable: «The equality operators == and != apply to operands of comparable types. The ordering operators <, <=, >, and >= apply to operands of ordered types». Ordered операторы применяются к ordered типам – всё нормально. А вот equality операторы применяются к comparable типам – используется другое слово, как-то немного странно, но сойдёт.
Но дальше хуже. Есть в стандартной библиотеке пакет
cmp, название которого явно происходит от слова compare, и название функции Compare говорит о том же. Что должна делать это функция? Если comparable типы – это про equality операторы, то, по идее, она должна просто (может, с поправкой на NaN) использовать ==. Но нет, она использует ordered операторы и типы.Пошёл смотреть почему же нет
cmp.Equal. И это просто портал в ад:
Equal([2]float64{nan, 456}, [2]float64{123, nan}) // true
Какая же мораль? Как обычно, NaN всё портит. Go – не такой простой язык, как кажется (никакой язык не такой простой, как кажется, но мы же тут про Go), но английский – ещё сложнее. А мне, видимо, надо отдыхать в выходной день без чтения спеки.
5👏5👍1🤔1
Не прошло и 11-и лет (а только 10,5): https://github.com/golang/go/issues/12854#issuecomment-4256916067 Осталось 9 месяцев до релиза дотерпеть.
Вообще, интересный тренд, когда добираются до всё более и более старых proposal’ов.
Вообще, интересный тренд, когда добираются до всё более и более старых proposal’ов.
👍18🤔2
В продолжение темы выноса всякого полезного кода из FerretDB: https://github.com/AlekSi/xfail
Очень простоя библиотека для ожидаемо падающих тестов проверяющая, что они всё ещё падают.
Как обычно, ставьте звёзды 😁️️
Очень простоя библиотека для ожидаемо падающих тестов проверяющая, что они всё ещё падают.
Как обычно, ставьте звёзды 😁️️
GitHub
GitHub - AlekSi/xfail
Contribute to AlekSi/xfail development by creating an account on GitHub.
1👍9🤣1
Наконец-то кто-то это сделал, а
go test -fuzz совсем заброшен командой Go: https://blog.trailofbits.com/2026/05/12/go-fuzzing-was-missing-half-the-toolkit.-we-forked-the-toolchain-to-fix-it./The Trail of Bits Blog
Go fuzzing was missing half the toolkit. We forked the toolchain to fix it.
We built gosentry, a fuzzing-oriented fork of the Go toolchain that keeps the standard fuzzing workflow while using a stronger stack underneath.
👍9