Sign in

thepudds

@thepudds.bsky.social
1.3K followers 175 following 208 posts

Go contributor. Posts tend to be about #golang, performance, fuzzing, and Go Modules. He/him. github.com/thepudds

PostsRepliesMedia
Reposted by thepudds
Max Woolf @minimaxir.bsky.social · 05/10/2026
1,012 bytes, make everyone happy.
4646
Reposted by thepudds
Go @golang.org · 24/09/2026
“Platform-independent SIMD in Go” by David Chase and Junyang Shao — go.dev/blog/simd-experiment #golang
0388
Reposted by thepudds
Roger Peppe @rog.bsky.social · 22/09/2026
I'm taking a short break, but if you have an opportunity you think I'd be into, hit me up!
032
thepudds @thepudds.bsky.social · 10/09/2026
Thanks Russ! Just so you know, your encouragement and graciousness in my early days meant a lot to me 🙏
050
thepudds @thepudds.bsky.social · 10/09/2026
(Professionally, I’ve spent a bunch of time talking to customers to understand their problems and where they hit friction, and I like to understand people’s complaints to then work back to how we can improve things. Plus, I’m a sucker for a good performance puzzle 😅)
1140
thepudds @thepudds.bsky.social · 10/09/2026
I’ve worked in observability for 20+ years, which has made me very performance oriented and also focused on things like robustness, visibility, and supportability. So please don’t hesitate to CC me on a GitHub issue or tag me here on Bluesky or find me in Gopher Slack or wherever!
1170
thepudds @thepudds.bsky.social · 10/09/2026
I’m very, very happy to share that I have just joined the core Go team at Google to work on the Go runtime and compiler! I’ve been pitching in as an external contributor since 2018, but now my very enjoyable hobby is becoming my day job 😅 (Also, my name is PJ 👋)
121878
Reposted by thepudds
Quim Muntal @qmuntal.bsky.social · 31/08/2026
Reducing cgo/syscall overhead on Windows by ~20%, down to ~30ns ⚡ go.dev/cl/824784 #golang
go.dev
Gerrit Code Review
1231
thepudds @thepudds.bsky.social · 27/08/2026
Yet another very nice #golang resource from @antonz.org
0101
thepudds @thepudds.bsky.social · 25/08/2026
Very nicely written, thank you for doing this!
110
Reposted by thepudds
Anton Zhiyanov @antonz.org · 25/08/2026
The new JSON package is finally production-ready in Go 1.27, so I've updated my JSON v2 guide. It explains all the main differences between the json and json/v2 packages, with interactive examples for each one. Check it out! antonz.org/go-json-v2
antonz.org
JSON evolution in Go: from v1 to v2
Reviewing the key changes in json/v2.
2427
Reposted by thepudds
Daniel Lemire @lemire.bsky.social · 15/08/2026
Go 1.27 will make some allocations cheaper lemire.me/blog/2026/08/15/go-1-27-w…
1204
Reposted by thepudds
Andrew Lilley Brinker @alilleybrinker.com · 28/07/2026
Years ago we found a macOS libgit2 bug, where libgit2 was losing a macOS error message, causing the error to just print "(null)". We fixed it, only to find the macOS error was "error".
312622
thepudds @thepudds.bsky.social · 05/08/2026
The proposal included list of a ~12 ways to iterate just in stdlib “hardly any of which agree on the exact details of iteration” (like is a bool a stop vs continue) For me, the best argument was that language support would be candy to help the ecosystem converge on more consistent ways to iterate
github.com
user-defined iteration using range over func values · golang go · Discussion #56413
There is no standard way to iterate over a sequence of values in Go. For lack of any convention, we have ended up with a wide variety of approaches. Each implementation has done what made the most ...
100
thepudds @thepudds.bsky.social · 05/08/2026
For me, I do find the iterator signatures a bit complicated, but I enjoy using them, and I use them much more than I write them. (and the signatures make sense if I stare for a sec, though in practice I usually don’t need to stare, I just move on 😅)
100
thepudds @thepudds.bsky.social · 05/08/2026
I’m unsure whether or not you are slowly warming up to the design of Go iterators… 🤷‍♂️ I’m guessing “not“, but on the other hand you also nicely & clearly stepped through the design 😅
110
thepudds @thepudds.bsky.social · 04/08/2026
(though at the risk of draining all humor from my very small joke, the book seems pretty broad and not solely focused on formal methods, AFAICT)
000
thepudds @thepudds.bsky.social · 04/08/2026
I’ll let you know! FWIW, I have high hopes. Hard to resist a book with a tagline of “A book about math, software, and using one to fix the other”. (sed seems to be having a bit of a moment right now, maybe formal methods will be next 😅)
110
Reposted by thepudds
Egon Elbre @egonelbre.bsky.social · 31/07/2026
Conjured a tool for diffing disassembly of binaries for Go. #golang github.com/loov/ixdiff
github.com
GitHub - loov/ixdiff: Compare assembly of two binaries.
Compare assembly of two binaries. Contribute to loov/ixdiff development by creating an account on GitHub.
081
thepudds @thepudds.bsky.social · 30/07/2026
I suspect this will be a worthwhile book. Just ordered. (This is from author of the "Practical TLA+" book, and who is apparently now working at Antithesis.)
231
thepudds @thepudds.bsky.social · 29/07/2026
Some of the discussion of efficiency of defer in the 'try' proposal is here: github.com/golang/propo... And the nod to #31442 for use of defer for error wrapping is here: github.com/golang/propo... (I have a secret hope some form of 'try' will make a comeback someday 😅)
100
Reposted by thepudds
Roxy Light @zombiezen.com · 29/07/2026
Wrote a little #golang blog post about a trick for reducing repetition in error-handling: www.zombiezen.com/blog/2026/07...
zombiezen.com
Wrapping Errors with Defer
Using defer with named result parameters to DRY up error handling in Go
151
thepudds @thepudds.bsky.social · 29/07/2026
So in short, I don't know the answer to your question. 😅
100
thepudds @thepudds.bsky.social · 29/07/2026
That's just based on quick poking around, so might have missed something. That said, it was inefficient until it was sped up (in part for the 'try' proposal I think, like golang.org/cl/171758), so it was a bit of a flawed approach until the compiler/runtime folks made it fast in the common case...
golang.org
Gerrit Code Review
110
thepudds @thepudds.bsky.social · 29/07/2026
> I’m not exactly sure who first had this idea. That's an interesting question. I think the 'try' proposal in #32437 gives a nod for using defer for errors in that way to the author of go.dev/issue/31442, but the gist comment you found seems to have suggested it a ~year prior to #31442.
110
Reposted by thepudds
Evan Martin @neugierig.org · 22/07/2026
New blog post: Jujutsu tutorial I wrote the tutorial I wish I had. neugierig.org/software/blo...
neugierig.org
Tech Notes: Jujutsu tutorial
I wrote the tutorial I wish I had.
05414
Reposted by thepudds
Kemal Akkoyun @kakkoyun.me · 17/07/2026
Great milestone for us! We had been working on this hard! If you using @golang.org and collect observability signals from your services check it out! Our goal is to add as much as integrations as possible so that you can automagically collect all the signals!
062
thepudds @thepudds.bsky.social · 16/07/2026
Ironically, that’s very concise way to say that. Well done.
030
thepudds @thepudds.bsky.social · 03/07/2026
Ha, I think we posted checkescape at the same time FWIW, that is ALSO not well known in Go community I think. (Just in case you know anyone who is trying to spread knowledge of good techniques 😅)
010
thepudds @thepudds.bsky.social · 03/07/2026
Looks like OxCaml's approach includes "all indirect calls are considered to be allocating", which is fine but conservative. Very nice that it's built into the compiler and can be used to report all the allocating locations, as you showed (which is better than some 3rd-party thing like checkescape)
030
thepudds @thepudds.bsky.social · 03/07/2026
Very nice article. I especially love the intent to help good ideas spread between languages. One other approach Go has is testing.AllocsPerRun, which is convenient for locking in zero-allocations dynamically, and it handles indirect calls/function pointers. That said, it's not super well known
pkg.go.dev
testing package - testing - Go Packages
240
thepudds @thepudds.bsky.social · 23/06/2026
TypeScript folks being secret gophers still paying dividends 😅
1180
Reposted by thepudds
Jake Bailey @jakebailey.dev · 15/06/2026
This is a fun one: I just sent go.dev/cl/790740, which elides method wrappers for embedded types at offset zero, common for mixins/inherited data types. Doing this removes 60 _thousand_ method wrappers from tsgo's AST package, dropping the compilation of our main exe from 49s to 28s on my machine.
Benchmark 1: go build -a ./cmd/tsgo
  Time (mean ± σ):     48.992 s ±  0.274 s    [User: 345.152 s, System: 12.545 s]
  Range (min … max):   48.702 s … 49.478 s    10 runs
 
Benchmark 2: ~/work/go/bin/go build -a ./cmd/tsgo
  Time (mean ± σ):     28.323 s ±  0.133 s    [User: 141.277 s, System: 4.853 s]
  Range (min … max):   28.075 s … 28.555 s    10 runs
 
Summary
  ~/work/go/bin/go build -a ./cmd/tsgo ran
    1.73 ± 0.01 times faster than go build -a ./cmd/tsgo
3656
Reposted by thepudds
Daniel Lemire @lemire.bsky.social · 06/06/2026
How much do amd64 microarchitecture levels help in Go? lemire.me/blog/2026/06/06/how-much-…
1125
thepudds @thepudds.bsky.social · 31/05/2026
I have also found exe.dev to be exceedingly pleasant to use (and I’ve reduced my personal GCE spend as a result 😅). Easy out of the box, but also very hackable. The people working on it have been displaying nice taste and judgment.
280
Reposted by thepudds
Josh Baker @tidwall.bsky.social · 28/05/2026
Biscuits: A very fast concurrent hashmap with transactions for Go. It's like sync.Map but can work on multiple keys atomically. 🚀 github.com/tidwall/bisc...
github.com
GitHub - tidwall/biscuits: Fast concurrent hashmap for rapidly changing keys
Fast concurrent hashmap for rapidly changing keys. Contribute to tidwall/biscuits development by creating an account on GitHub.
1153
Reposted by thepudds
Michael Stapelberg 🐧🐹😺 @zekjur.bsky.social · 24/05/2026
New blog post 🥳 How my minimal, memory-safe #golang rsync steers clear of vulnerabilities → michael.stapelberg.ch/posts/2026-0...
michael.stapelberg.ch
How my minimal, memory-safe Go rsync steers clear of vulnerabilities
Back in January 2025, multiple different security researchers published a total of 6 security vulnerabilities in rsync, some of which allow arbitrary code execution and file leaks, so naturally I was ...
0173
thepudds @thepudds.bsky.social · 10/05/2026
This new Go B-tree implementation looks both fast and pleasant! (This is from @tidwall.bsky.social, who has done very nice things in the #golang world like tile38, gjson, prior btree, ...) cc @adonovan.bsky.social 👀
0222
Reposted by thepudds
Predrag Gruevski @predr.ag · 09/05/2026
I'm working on cargo-semver-checks, and I realized that an edge case of one of my edge cases has an edge case that breaks my planned design. That means that so far, I'm having an average Saturday in cargo-semver-checks land 😅
0181
Reposted by thepudds
Josh Baker @tidwall.bsky.social · 09/05/2026
GJSON v1.19 is out. First update in 2 years. Includes the All() and Values() iterator functions. For all you cool kids who like that modern Go stuff. github.com/tidwall/gjson
0123
Reposted by thepudds
Russ Cox @swtch.com · 07/05/2026
The LLM bug hunter comes for us all. Here’s a truly terrible mistake I made seven years ago that somehow went unnoticed by multiple human reviews. Patch your systems! And my apologies. groups.google.com/g/golang-ann...
groups.google.com
[security] Go 1.26.3 and Go 1.25.10 are released
65110
Reposted by thepudds
Daniel Martí @mvdan.cc · 04/05/2026
overdue for a gofumpt release, so I took the chance to close a bunch of issues too! #golang
github.com
Release v0.10.0 · mvdan/gofumpt
This release is based on Go 1.26's gofmt, and requires Go 1.25 or later. A new rule is introduced to drop unnecessary parentheses around expressions where the inner expression is unambiguous on its...
0172
Reposted by thepudds
Filippo Valsorda @filippo.abyssdomain.expert · 28/04/2026
A bit over two years after starting to work on it... Go is officially FIPS 140-3 certified 💥 csrc.nist.gov/projects/cry... I am pretty confident Go is now one of the most—if not the most—seamless and complete FIPS 140-3 compliance solutions... with a single env var, out of the box.
928962
Reposted by thepudds
Stefan Judis @stefanjudis.com · 21/04/2026
A new Git version just dropped and it comes with a new experimental `history` command! `reword` can be used to change commit messages and `split` can untangle a single commit into multiple ones. No more interactive rebase. 🎉 github.blog/open-source/...
723634
thepudds @thepudds.bsky.social · 14/04/2026
My guess was Brad's enthusiasm for talking about Unicode encoding & modifiers while at the dermatologist had circulated within the PNW dermatologist community... But no 😅
000
Reposted by thepudds
Alan Donovan @adonovan.bsky.social · 14/04/2026
Go’s push iterators can be strange at first but they are so much easier to write when the algorithm to visit the elements has nontrivial control flow (recursion or conditionals) such as for a tree; you just call yield. In Java/C++ one must explicitly materialize all state implied by your SP and PC.
162
Reposted by thepudds
Jeremy Morrell @jeremymorrell.dev · 13/04/2026
Stacked PRs in GitHub! I never thought I would see the day 😲 github.github.com/gh-stack/
github.github.com
GitHub Stacked PRs
Break large changes into small, reviewable, stacked pull requests with first-class GitHub support.
2257
Reposted by thepudds
Blain Smith @blainsmith.com · 08/04/2026
Building Go APIs with Huma, sqlc, and Goose blainsmith.com/articles/bui... #GoLang #SQL ##OpenAPI #huma #sqlc #goose #codegen
blainsmith.com
Building Go APIs with Huma, sqlc, and Goose - Blain Smith
031
Reposted by thepudds
Damien Neil @misago.org · 08/04/2026
Holy cheese my untyped composite literal proposal from 2015 just got accepted. #golang github.com/golang/go/is...
github.com
proposal: spec: type inferred composite literals · Issue #12854 · golang/go
Composite literals construct values for structs, arrays, slices, and maps. They consist of a type followed by a brace-bound list of elements. e.g., x := []string{"a", "b", "c"} I propose adding unt...
4314
Reposted by thepudds
Daniel Lemire @lemire.bsky.social · 29/03/2026
A Fast Immutable Map in Go lemire.me/blog/2026/03/29/a-fast-im…
0204