Michael Pratt's Avatar

Michael Pratt

@prattmic.com

Hacking on the Go runtime and gVisor. πŸ³οΈβ€πŸŒˆ

1,532
Followers
204
Following
201
Posts
01.05.2023
Joined
Posts Following

Latest posts by Michael Pratt @prattmic.com

Additionally, I want to speak directly to Iranian New Yorkers: you are part of the fabric of this city β€” you are our neighbors, small business owners, students, artists, workers, and community leaders.Β You will be safe here.

28.02.2026 17:50 πŸ‘ 9976 πŸ” 1428 πŸ’¬ 53 πŸ“Œ 84

β€œAllocating on the Stack” by Keith Randall β€” https://go.dev/blog/allocation-optimizations

#golang

27.02.2026 16:14 πŸ‘ 41 πŸ” 7 πŸ’¬ 1 πŸ“Œ 0

Those were the days. Now I use nvim main.go.

27.02.2026 00:53 πŸ‘ 17 πŸ” 0 πŸ’¬ 2 πŸ“Œ 0
Preview
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...

πŸš€ "spec: generic methods for Go" has been accepted!

You will soon (1.27?) be able to declare (on concrete types only) methods that introduce type parameters, i.e. type parameters other than the ones (if any) that come from the method's receiver.

github.com/golang/go/is...

#golang

26.02.2026 09:32 πŸ‘ 11 πŸ” 3 πŸ’¬ 3 πŸ“Œ 0

In retrospect x86-64 may be easier just because i386 is so cursed. At least things are simplified a little in the 64-bit world.

24.02.2026 05:13 πŸ‘ 3 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

Good point! Once @rebane2001.bsky.social adds full i386 support, it should be possible to run Chromium in Linux in CSS. Then there would be no need to do anything natively.

24.02.2026 05:10 πŸ‘ 5 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

My phone is now hot but the best part is I’m not sure if that is from the CPU emulator or from GitHub trying to render the 14k source file when I went to see how this works.

24.02.2026 03:34 πŸ‘ 10 πŸ” 0 πŸ’¬ 2 πŸ“Œ 0
Preview
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.

Dependabot security alerts have terrible signal-to-noise ratio, especially for Go vulns. That hurts security!

Just turn it off and set up a pair of scheduled GitHub Actions, one running govulncheck and the other running CI with the latest version of your deps.

Less work, less risk, better results!

20.02.2026 19:56 πŸ‘ 90 πŸ” 20 πŸ’¬ 4 πŸ“Œ 1

β€œUsing go fix to modernize Go code” by Alan Donovan β€” https://go.dev/blog/gofix

#golang

17.02.2026 16:50 πŸ‘ 61 πŸ” 22 πŸ’¬ 0 πŸ“Œ 4
Preview
Go 1.26 interactive tour New with expressions, type-safe error checking, and faster everything.

Go 1.26 is out, and the announcement says:

"Over the next few weeks, follow-up blog posts will cover some of the topics in more detail. Check back later."

So you can wait a few weeks OR you can read my interactive Go 1.26 tour right away:

antonz.org/go-1-26

11.02.2026 13:33 πŸ‘ 50 πŸ” 14 πŸ’¬ 1 πŸ“Œ 0

Some pretty awesome improvements in 1.26 for compiling/testing typescript-go.

With a clean build/test cache, running the full test suite used to take 3m45s, but now takes just 2m10s.

11.02.2026 19:17 πŸ‘ 64 πŸ” 5 πŸ’¬ 2 πŸ“Œ 0

β€œGo 1.26 is released” by Carlos Amedee, on behalf of the Go team β€” https://go.dev/blog/go1.26

#golang

10.02.2026 20:31 πŸ‘ 62 πŸ” 17 πŸ’¬ 1 πŸ“Œ 0

🍡

10.02.2026 19:54 πŸ‘ 23 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0

Bah, my joke has a typo anyway πŸ™ƒ

06.02.2026 21:41 πŸ‘ 0 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

I’ll be honest, I’m a little disappointed that β€œahead-of-time gc” isn’t a garbage corrector that collects objects before they are ever allocated.

06.02.2026 21:19 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

$ jj describe -m "Hello, world!"

04.02.2026 21:08 πŸ‘ 208 πŸ” 41 πŸ’¬ 6 πŸ“Œ 9

I have catch-all email on my domain and got one to epstein@. Yikes

04.02.2026 21:27 πŸ‘ 1 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0

ICE out of my compiler

30.01.2026 18:46 πŸ‘ 6 πŸ” 0 πŸ’¬ 0 πŸ“Œ 0

This doesn’t catch it all, but my heuristic has been that if a post has more than 30 comments, I probably don’t want to read them.

25.01.2026 21:28 πŸ‘ 2 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Preview
Proposal: 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...

Interesting expansion of generics in #golang πŸ‘€

23.01.2026 00:35 πŸ‘ 36 πŸ” 8 πŸ’¬ 3 πŸ“Œ 0
Preview
Integration tests are best tests Itegration tests are the most important kind of tests. You should strive for excellent integration test coverage and invest relatively little time in unit tests. I've believed this since I worked on c...

New blog post, with a perhaps mildly unpopular opinion: jayconrod.com/posts/133/in...

15.01.2026 17:36 πŸ‘ 29 πŸ” 7 πŸ’¬ 4 πŸ“Œ 1

We are hiring! CPU security and stuff
www.google.com/about/career...

15.01.2026 08:10 πŸ‘ 2 πŸ” 2 πŸ’¬ 0 πŸ“Œ 0

> When I have spotty reception the app just stops working until I enable airplane mode.

This frustrates me a lot in most apps that otherwise have gone offline mode. If there is even a chance there may be a network connection they refuse to actually use the offline functionality.

10.01.2026 14:05 πŸ‘ 8 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
GopherCon 2025: Porting the TypeScript Compiler to Go for a 10x Speedup V2 - Jake Bailey
GopherCon 2025: Porting the TypeScript Compiler to Go for a 10x Speedup V2 - Jake Bailey YouTube video by Gopher Academy

My GopherCon talk was just posted!

07.01.2026 02:50 πŸ‘ 79 πŸ” 19 πŸ’¬ 2 πŸ“Œ 2
Preview
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.

PSA: go.sum is not a lockfile.

You never need to look at go.sum.

go.mod has everything you need.

05.01.2026 20:24 πŸ‘ 136 πŸ” 25 πŸ’¬ 5 πŸ“Œ 1
Preview
Go 1.26 interactive tour New with expressions, type-safe error checking, and faster everything.

Go 1.26 is coming soon, and the official release notes are pretty dry.

So I prepared an interactive version with lots of examples.

Read on and see!

antonz.org/go-1-26

05.01.2026 13:40 πŸ‘ 36 πŸ” 11 πŸ’¬ 1 πŸ“Œ 1
GopherCon 2025: Analysis and Transformation Tools for Go Codebase Modernization - Alan Donovan
GopherCon 2025: Analysis and Transformation Tools for Go Codebase Modernization - Alan Donovan YouTube video by Gopher Academy

The folks behind GopherCon 2025 have kindly shared video recordings of our talks; here's mine on modernizer tools for Go. Special thanks to the amazing Stacy Potenza for turning my rapid limey nerd mumbling into comprehensible closed captions.
www.youtube.com/watch?v=_VeP...

31.12.2025 05:27 πŸ‘ 12 πŸ” 3 πŸ’¬ 1 πŸ“Œ 0
Preview
proposal: spec: short function literals Β· Issue #21498 Β· golang/go [edit: As of today, end of May 2025, this proposal has received ~1000 comments. Please read the summary before adding more comments. Your ideas may have been discussed already. Thanks.] [edit: As o...

I imagine something close is in the 1000+ comments on go.dev/issue/21498 😬

29.12.2025 05:09 πŸ‘ 2 πŸ” 0 πŸ’¬ 1 πŸ“Œ 0
Post image

My colleague Sanjay Ghemawat & I have done a fair bit of performance tuning of various pieces of code. We wrote an internal Performance Hints document ~2 years ago as a way of identifying some general principles & we've recently published a version of it externally.

Doc: abseil.io/fast/hints.h...

19.12.2025 22:25 πŸ‘ 131 πŸ” 25 πŸ’¬ 2 πŸ“Œ 0
$ go install golang.org/dl/go1.26rc1@latest
$ go1.26rc1 download
Downloaded   0.0% (       0 / 66081079 bytes) ...
Downloaded  50.0% (33040539 / 66081079 bytes) ...
Downloaded 100.0% (66081079 / 66081079 bytes)
Unpacking go1.26rc1.linux-s390x.tar.gz ...
Success. You may now run 'go1.26rc1'
$ go1.26rc1 version
go version go1.26rc1 linux/s390x

$ go install golang.org/dl/go1.26rc1@latest $ go1.26rc1 download Downloaded 0.0% ( 0 / 66081079 bytes) ... Downloaded 50.0% (33040539 / 66081079 bytes) ... Downloaded 100.0% (66081079 / 66081079 bytes) Unpacking go1.26rc1.linux-s390x.tar.gz ... Success. You may now run 'go1.26rc1' $ go1.26rc1 version go version go1.26rc1 linux/s390x

🎊 Go 1.26 Release Candidate 1 is released!

πŸƒβ€β™€οΈ Run it in dev! Run it in prod! File bugs! https://go.dev/issue/new

πŸ—£ Announcement: https://groups.google.com/g/golang-announce/c/i0ei8EKtYjc/m/h0jl7InPCwAJ

⬇️ Download: https://go.dev/dl/#go1.26rc1

#golang

16.12.2025 20:38 πŸ‘ 82 πŸ” 16 πŸ’¬ 0 πŸ“Œ 2