Michael Pratt
prattmic.com
Michael Pratt
@prattmic.com
Hacking on the Go runtime and gVisor. 🏳️‍🌈
Reposted by Michael Pratt
Accepted! Go 1.26 will introduce per-state goroutine metrics: running, waiting, in syscalls, etc.

Developers can use them to catch problems early without needing full traces.

antonz.org/accepted/gor...
Go proposal: Goroutine metrics
Export goroutine-related metrics from the Go runtime.
antonz.org
November 26, 2025 at 12:17 PM
Reposted by Michael Pratt
BREAKING: This is huge news, the EU's equivalent of the 🇺🇸Supreme Court's 2015 Obergefell v. Hodges ruling.

🇪🇺Court of Justice just ruled all 🇪🇺countries must recognise same-sex marriages granted in other member states.

This effectively legalises gay marriage across 🇪🇺
www.reuters.com
November 25, 2025 at 10:10 AM
Reposted by Michael Pratt
synctest — the package introduced in Go 1.25 to make concurrency testing easier — looks deceptively simple. But don't let its innocent appearance fool you.

To really understand synctest, check out the new chapter of my interactive Go Concurrency book.

antonz.org/go-concurren...
Gist of Go: Concurrency testing
Checking concurrent operations and time-sensitive code.
antonz.org
November 24, 2025 at 2:04 PM
Reposted by Michael Pratt
Small contribution just before the Go 1.26 freeze: go.dev/cl/610815 removes the hard-coded 100ms sleep from the CPU profiler for most platforms. This will make it more efficient and unblock deeper call stacks. As a bonus, uncovered and fixed an 8 year old bug in the profiler go.dev/cl/722940 :)
November 23, 2025 at 6:48 PM
Reposted by Michael Pratt
My talk from GopherCon 2025 about Green Tea is up on YouTube! www.youtube.com/watch?v=gPJk...
GopherCon 2025 - Advancing Go Garbage Collection with Green Tea - Michael Knyszek
YouTube video by Gopher Academy
www.youtube.com
November 20, 2025 at 12:33 AM
Reposted by Michael Pratt
#GopherCon 2025 - the first videos are up!
@michael.express gives a great overview of how the Go garbage-collector works, and the changes in the the new design.
www.youtube.com/watch?v=gPJk...
GopherCon 2025 - Advancing Go Garbage Collection with Green Tea - Michael Knyszek
YouTube video by Gopher Academy
www.youtube.com
November 19, 2025 at 11:15 AM
Reposted by Michael Pratt
“Go’s Sweet 16” by Austin Clements, for the Go team — https://go.dev/blog/16years

#golang
November 14, 2025 at 10:30 PM
Reposted by Michael Pratt
"By doing things voters wanted, he set unrealistic expectations. Soon, voters will expect ALL politicians to represent their interests. Then where will we be?” www.mcsweeneys.net/articles/yea...
Yeah, He Won, but He Was Up Against a Deeply Flawed Candidate
“I’m skeptical. The odds are that Mamdani’s victory is actually less significant than you think.” — Ross Douthat, New York Times - - -I was as surp...
www.mcsweeneys.net
November 5, 2025 at 9:46 PM
Reposted by Michael Pratt
November 5, 2025 at 2:41 AM
Reposted by Michael Pratt
New blog post: I'm Independently Verifying Go's Reproducible Builds: www.agwa.name/blog/post/ve...
I'm Independently Verifying Go's Reproducible Builds
Introducing Source Spotter, a Go Checksum Database auditor and Go toolchain reproducer
www.agwa.name
October 29, 2025 at 6:06 PM
If you have an interest in understanding garbage collection better, or in how Go's new GC works under-the-hood, I highly recommend reading @michael.express's thorough guide through Go's current and Green Tea GC.
“The Green Tea Garbage Collector” by Michael Knyszek and Austin Clements — https://go.dev/blog/greenteagc

#golang
October 29, 2025 at 7:20 PM
Reposted by Michael Pratt
Extremely happy to see Source Spotter, a Go Checksum Database monitor and Go toolchain reproducer by @agwa.name.

These use the transparency logs we built into the Go supply chain to keep the Google-operated services honest.
Source Spotter - Supply Chain Security for Go
Source Spotter is a sumdb auditor, module monitor, toolchain reproducer, and telemetry config tracker.
sourcespotter.com
October 27, 2025 at 1:07 PM
Reposted by Michael Pratt
October 26, 2025 at 8:13 PM
Reposted by Michael Pratt
I got frustrated with how GitHub Actions lets workflows with read-only permissions poison the cache of read/write workflows (!!??!?), so yesterday night I put together an Action that runs commands in a gVisor sandbox.
GitHub - geomys/sandboxed-step: A GitHub Action that runs a command in a gVisor sandbox
A GitHub Action that runs a command in a gVisor sandbox - geomys/sandboxed-step
github.com
October 24, 2025 at 12:59 PM
Reposted by Michael Pratt
As professional maintainers we can invest in making our projects safer and more reliable. To that end, here's a draft of the Geomys Standard of Care.

It covers general maintenance, stability & reliability, dependency management, account and CI security, vulnerability handling, licensing, and more.
The Geomys Standard of Care
Introducing the set of standards that Geomys maintainers strive to uphold in our professional activity as open source maintainers.
words.filippo.io
October 23, 2025 at 2:05 PM
Today's bug of the day has it all: ultimately caused by missing zero-initialization, bug in libc (-ish, arguably), copious use of setjmp/longjmp.

I love C.

github.com/ericphanson/...
(Apple Silicon): crashes with Getting signal 16 received but handler not on signal stack · Issue #11 · ericphanson/LicenseCheck.jl
MWE: tmp/yu julia --project=. _ _ _ _(_)_ | Documentation: https://docs.julialang.org (_) | (_) (_) | _ _ _| |_ __ _ | Type "?" for help, "]?" for Pkg help. | | | | | | |/ _` | | | | |_| | | | (_| ...
github.com
October 17, 2025 at 10:05 PM
Reposted by Michael Pratt
To implement robust mitigations across Geomys, I did a survey of open source project compromises in 2024/2025.

Three root causes dominate: phishing, control handoff, and unsafe GitHub Actions triggers. All three can be systematically avoided.

words.filippo.io/compromise-s...
A Retrospective Survey of 2024/2025 Open Source Supply Chain Compromises
Project compromises have common root causes we can mitigate: phishing, control handoff, and unsafe GitHub Actions triggers.
words.filippo.io
October 10, 2025 at 2:34 PM
Reposted by Michael Pratt
🥳 Go 1.25.2 and 1.24.8 are released!

📢 Announcement: https://groups.google.com/g/golang-announce/c/4Emdl2iQ_bI/m/qZN5nc-mBgAJ

📦 Download: https://go.dev/dl/#go1.25.2

#golang
October 7, 2025 at 6:51 PM
Reposted by Michael Pratt
We are thrilled to announce that our NEW Large Language Model will be released on 11.18.25.
October 1, 2025 at 2:38 PM
Reposted by Michael Pratt
Fun little Go compiler CL merged today: go.dev/cl/706655

Uninlined generic functions have a "dict" arg, since Go generics are neither erased nor monomorphized, but instead instantiated for each "GC shape" (e.g. T=*int and T=*float64 get the same code, but T=int32 and T=int64 do not).
September 30, 2025 at 7:42 PM
Go's execution tracer is a woefully underutilized tool. It contains tons of information about what is happening at any given moment that you won't get with a profile.

In addition to showing flight recording capabilities, this post provides a nice example of how to use tracing to diagnose a problem.
golang.org Go @golang.org · Sep 26
“Flight Recorder in Go 1.25” by Carlos Amedee and Michael Knyszek — https://go.dev/blog/flight-recorder

#golang
September 26, 2025 at 7:32 PM
Reposted by Michael Pratt
Spotlight on @prattmic.com from the @golang.org team and his talk on on Faster Go Maps With Swiss Tables.

youtu.be/aqtIM5AK9t4?...

#gopherconEU #golang
Faster Go Maps With Swiss Tables - Michael Pratt | GopherCon EU 2025
YouTube video by GopherCon Europe
youtu.be
September 25, 2025 at 1:51 PM
Reposted by Michael Pratt
Video is up now - my take on how map is implemented in Go, and what changed from Go 1.23 to 1.24 and 1.25.

youtu.be/M05t7Q6LbFs
Swiss Maps in Go - Bryan Boreham
YouTube video by GopherCon UK
youtu.be
September 22, 2025 at 11:11 AM