Felipe O. Carvalho
banner
felipe.rs
Felipe O. Carvalho
@felipe.rs
SWE @ dbt Labs. Past: SDF, VoDa, Spotify. Apache Arrow/Databases/Compilers/DistSys. Rust/C++/OCaml/TLA+. 🇧🇷 → 🇸🇪 → 🌎 http://bento.me/felipe / https://felipe.rs
One where the dependency graph is sparse.
November 14, 2025 at 10:46 PM
Sure, and this is the kind of thing you would be paying attention to if you were “optimizing for incremental builds”. Introducing a header with forward declarations for example.
November 14, 2025 at 10:43 PM
Parallelization of modular builds makes the modular build win over the unity build after a certain size. But if you built sequentially it would be slower.
November 13, 2025 at 5:46 PM
And it's my opinion that we should optimize for incremental builds instead of global time.
November 13, 2025 at 5:45 PM
What stage you are asking? This is my actual experience on different projects. But it also seems self-evident that separate compilation helps with incremental builds while building everything as a single compilation unit is better is faster than building small modules and then linking.
November 13, 2025 at 5:45 PM
Often the same people that say this go write Rust and write loops creating and destroying tons of Strings that cost much more than allocate than they would in a language with a good GC.
November 13, 2025 at 3:27 PM
This is a common thing and the reason behind avoiding pointers to register-sized values across function boundaries. An add10() that returns the value added by 10 is better than the one that mutates through the pointer. Totally fine if inlined though.
November 11, 2025 at 7:15 PM
If we forbid the inlining, the caller is forced to put i on the stack

str r0, [sp, #4]

to pass the ptr to add10

add r0, sp, #4 // put the ptr relative to the stack ptr on r0 before call

then the value is loaded from the stack into r1 before the printf call

ldr r1, [sp, #4]
November 8, 2025 at 7:48 PM
It’s only a 20-ish% increase from June in Brazil, so I’m securing mine before they have to renew their inventory and increase it even more.
November 8, 2025 at 3:57 AM
Oh, second ed is out already?
November 7, 2025 at 4:52 AM
De longe
November 4, 2025 at 9:26 PM
It's annoying in C++ to query an std::unordered_map<std::string, T> when what you have is a std::string_view (pointer, "borrowed") instead of the std::string (allocated on the heap, "owned").
October 26, 2025 at 1:32 PM
Add to Playlist gets worse every month or so
October 25, 2025 at 1:58 PM
Wondering if this is the kind of thing that @welltypedwit.ch will say is not good in practice.

There is a nice online demo/playground: se-tuebingen.github.io/oopsla-2025-...
The Simple Essence of Overloading: Playground
se-tuebingen.github.io
October 20, 2025 at 1:11 AM