's Avatar

@pgaultier

87
Followers
23
Following
44
Posts
20.12.2024
Joined
Posts Following

Latest posts by @pgaultier

In Rust, <code>let _ = ...</code> and <code>let _unused = ...</code> are not the same

Did you know that in Rust, 'let _ = ...' and 'let _unused = ...' are NOT the same thing?
I didn't until today!

gaultier.github.io/blog/rust_un...

#rust

06.03.2026 15:27 👍 0 🔁 0 💬 0 📌 0
Philippe Gaultier's blog

I just implemented light mode/dark mode on my blog, using modern css features like variables and the ‘light-dark()’ function.
Surprisingly easy, try it!

gaultier.github.io/blog/
#css #blog

21.02.2026 18:27 👍 1 🔁 0 💬 0 📌 0
Frog and Toad with a box illustration. Badly edited text.

Frog put the KEY in a box. "There," he said. "Now we will not SIGN MALICIOUS MESSAGES."
"But we can ASK THE HSM," said Toad.
"That is true," said Frog.

Frog and Toad with a box illustration. Badly edited text. Frog put the KEY in a box. "There," he said. "Now we will not SIGN MALICIOUS MESSAGES." "But we can ASK THE HSM," said Toad. "That is true," said Frog.

16.02.2026 16:04 👍 254 🔁 36 💬 1 📌 1
The production bug that made me care about undefined behavior

The production bug that made me care about undefined behavior. New blog article fresh out of the oven.
gaultier.github.io/blog/the_pro...
#cpp #bug

27.12.2025 18:28 👍 1 🔁 0 💬 0 📌 0
Detecting goroutine leaks with DTrace

New blog article!
Detecting goroutine leaks with DTrace: gaultier.github.io/blog/detecti...

#golang #dtrace

22.12.2025 18:38 👍 2 🔁 0 💬 0 📌 0

IMO it’s cruel to the users of your language because they will typically first suffer from data races way down the line, when the codebase is big and hard to modify to adopt thread safety principles.

16.12.2025 10:33 👍 0 🔁 0 💬 0 📌 0

Things that help: immutability at the language level (“const”), explicit shallow vs deep copy to avoid accidental sharing, documentation, high level concurrency constructs.
Things that make life harder: implicitly capturing closures, not documenting what is thread safe or not in the standard library

16.12.2025 10:31 👍 1 🔁 0 💬 1 📌 0

Rant: if you are designing a programming language from the ground up and the only solution you have for data races is “use the runtime race detector”, then you have not spent enough time in the trenches suffering from data corruption and rare, incoherent errors due to data races.

16.12.2025 10:26 👍 0 🔁 0 💬 1 📌 0
Preview
In defense of lock poisoning in Rust · sunshowers It's worth retaining one of multithreaded Rust's most valuable features.

New post: a defense of lock poisoning in Rust.

Followup to recent discussion: decided to write about lock poisoning, looking at the arguments on each side, and informed by our experience at @oxide.computer dealing with the parallel problem of unexpected async cancellations

Please give it a read!

02.12.2025 19:37 👍 183 🔁 43 💬 7 📌 1

I don’t even write Rust right now but this post got me caring about this topic and really smoothly explained the stakes !

03.12.2025 11:02 👍 4 🔁 0 💬 0 📌 0

Tracking and fixing many Go data races lately, I am getting a new found understanding and empathy for all these Mozilla developers who jumped on Rust the moment it was halfway usable.
Like a lost, thirsty traveler in the desert seeing an oasis from afar.
#golang #rust

27.11.2025 17:47 👍 1 🔁 0 💬 0 📌 0

Thank you, I will definitely watch this! For some reason I did not know about it!

23.11.2025 21:07 👍 0 🔁 0 💬 0 📌 0
A million ways to die from a data race in Go

A million ways to die from a data race in Go. New blog post. Well it’s not quite a million, but still.

gaultier.github.io/blog/a_milli...
#golang

21.11.2025 19:13 👍 4 🔁 0 💬 1 📌 0

But I’m getting tired of this status quo in 2025. You’ll probably have fewer data races in typical C code than in typical Go code!

20.11.2025 15:51 👍 0 🔁 0 💬 0 📌 0

Adding immutability, (deep) clone functions for most types, and explicit capture lists for closures would go a loooong way to help avoiding data races.

20.11.2025 15:48 👍 0 🔁 0 💬 0 📌 0

There are ways to reduce harm: do not use closures (prefer standalone functions) to avoid accidental captures, use value types that are passed by value (copied), etc.
But the language gives you no help at all and many ways to shoot yourself in the foot.

20.11.2025 15:47 👍 0 🔁 0 💬 1 📌 0

After many years of writing Go professionally and tracking very varied data races, I am slowly becoming convinced that if you care about data races, you should not use goroutines. At all.

#golang

20.11.2025 15:45 👍 0 🔁 0 💬 2 📌 0

“Hell is other people”.

Sartres clearly did not have to support 4 different SQL databases in the same codebase at scale.

Lucky bastard.

16.10.2025 16:11 👍 0 🔁 0 💬 0 📌 0
How to reproduce and fix an I/O data race with DTrace

More DTrace, more Go, more blog articles!
gaultier.github.io/blog/how_to_...
#dtrace #golang #bug

02.10.2025 08:25 👍 0 🔁 0 💬 0 📌 0
See all network traffic in a Go program, even when encrypted and compressed

And another blog article, once again about Go and DTrace:

gaultier.github.io/blog/go_dtra...
#dtrace #golang

26.09.2025 09:29 👍 0 🔁 0 💬 0 📌 0
Are my SQL files read at build time or run time?

I just wrote another Go + DTrace blog article!
This time: Are my SQL files read at build time or run time?
gaultier.github.io/blog/are_my_...

#golang #dtrace

17.09.2025 10:24 👍 2 🔁 0 💬 0 📌 0

Not a day after crafting this DTrace script and writing this article, I found myself using it to solve a completely different issue in a completely different Go program. Yeah, baby.

12.09.2025 14:15 👍 0 🔁 0 💬 0 📌 0
Observe live SQL queries in Go with DTrace

Go, SQL, and DTrace: a marriage made in heaven?
New blog post!
gaultier.github.io/blog/observe...

#golang #dtrace #sql

11.09.2025 11:53 👍 2 🔁 1 💬 1 📌 0
An amusing blind spot in Go's static analysis

Short article today!
gaultier.github.io/blog/an_amus...

#golang

22.08.2025 09:25 👍 0 🔁 0 💬 0 📌 0
A subtle bug with Go's errgroup

The good thing about spending your Friday afternoon pulling your hair troubleshooting a bug, is that it makes for a nice blog article afterwards…

gaultier.github.io/blog/subtle_...

#bug #golang

09.08.2025 09:30 👍 2 🔁 0 💬 0 📌 0

Your article on “defer” was a great read!

06.08.2025 15:50 👍 2 🔁 0 💬 0 📌 0

Thank you for making C better !
I am really looking forward personally to “defer” being standardized.

06.08.2025 15:50 👍 2 🔁 0 💬 1 📌 0
Preview
Go Assembly Mutation Testing Test coverage of delicate Go cryptographic assembly through a new mutation testing framework.

I joined the Go team just after exploiting a carry bug in a Go assembly core, and I've been looking for ways to prevent the next one ever since.

This year's attempt is very promising: mutation testing swapping e.g. ADC → ADD, CMOV → MOV, etc. to provide test coverage for constant time assembly.

31.07.2025 17:10 👍 38 🔁 3 💬 2 📌 1

Me: wow, my new work got me the new M4 MacBook Pro with 48 GB of RAM, every build is going to be instant!

npm run build: Worker terminated due to reaching memory limit: JS heap out of memory.

Tim Apple giveth, JavaScript taketh away

31.07.2025 13:20 👍 3 🔁 1 💬 0 📌 0

i hope to become the #1 RSS influencer

10.11.2024 19:27 👍 224 🔁 9 💬 4 📌 0