Chandler Carruth
chandlerc.blog
Chandler Carruth
@chandlerc.blog
Software, performance, optimization, programming languages, security, open source, #CarbonLang lead, #LLVM, #Clang, C++. 🏳️‍🌈 http://pronoun.is/he or http://pronoun.is/they
Lots of options for asserts other than show a dialog.
October 14, 2025 at 9:25 AM
I don't think it's insane.

Historically, assertions tended to be genuinely expensive. However, this doesn't have to be the case.

1) optimizing compilers are *remarkably* better these days: chandlerc.blog/posts/2024/1...

2) you can engineer your assertions to be cheap (and you should)
Story-time: C++, bounds checking, performance, and compilers
Recently, several of my colleagues at Google shared the story of how we are retrofitting spatial safety onto our monolithic C++ codebase: https://security.googleblog.com/2024/11/retrofitting-spatial-s...
chandlerc.blog
October 14, 2025 at 8:48 AM
Reposted by Chandler Carruth
We further *define* (b) to include any and all memory safety violations and undefined behavior.
October 14, 2025 at 8:16 AM
Reposted by Chandler Carruth
The default is, throughout all of our C++ server code:

a) It isn't an *invariant*, it is just an error, and it is propagated explicitly to the caller

or

b) It is an *invariant* and the state is corrupt if not valid. These, when checked, are terminating by default.
October 14, 2025 at 8:16 AM
Reposted by Chandler Carruth
Just to be clear, because it won't be from this poll:

All of Google's server C++ code uses terminating assertions by default.

There are debug-build-only terminating assertions, and non-terminating assertion tools available of course, but they are not the default.
October 14, 2025 at 8:16 AM
We further *define* (b) to include any and all memory safety violations and undefined behavior.
October 14, 2025 at 8:16 AM
The default is, throughout all of our C++ server code:

a) It isn't an *invariant*, it is just an error, and it is propagated explicitly to the caller

or

b) It is an *invariant* and the state is corrupt if not valid. These, when checked, are terminating by default.
October 14, 2025 at 8:16 AM
Just to be clear, because it won't be from this poll:

All of Google's server C++ code uses terminating assertions by default.

There are debug-build-only terminating assertions, and non-terminating assertion tools available of course, but they are not the default.
October 14, 2025 at 8:16 AM
I have heard it more recently casually (and imprecisely) used to refer to taking out a home equity loan (often a HELOC) in addition to a mortgage.

From what I can find, pre-1930s the loan-to-value was often <50%, and often under 60% through 1950s. Having trouble finding good data though.
October 11, 2025 at 8:40 AM
Definitely was a phrase when I was growing up in the US.

My impression is that it mostly became uncommon when mortgages started commonly being for ~most of the value of the house and so you couldn't realistically take out a significant "second" mortgage. Guessing the term was more common pre-1980
October 11, 2025 at 8:40 AM
Reposted by Chandler Carruth
We'd rather have racist billionaires, and coal mines, and cut foreign aid to Africa, and start wars with South America, and not sell soybeans to Asia, and let the 50 dudes that make up our entire our capital allocator class, pretend that monkey jpegs are money now.🤡

So here, take your monkey jpeg.
October 4, 2025 at 7:06 AM
Not "gen-AI more broadly" -> outside of coding tooling. Outside of coding, completely different set of questions around generative AI for me.

My question is specifically around coding tools.

Regarding security - yes, I do understand. There are reasonable ways of running fully untrusted code, etc.
September 22, 2025 at 10:35 PM
For example, Claude Code or Gemini CLI, etc. Largely the agent based coding tools.

I understand that you may feel these are strictly inferior to purpose-built classical tools, but there remains lots of interest in these approaches. My questions are about how to approach that interest.
September 22, 2025 at 9:18 PM
So that makes me wonder: what reasons to folks see to view AI coding tools (note, NOT gen-AI more broadly) necessary to completely preclude engagement with? What goes wrong with allowing users to use these tools if they want, and trying to have the needed guard rails and other factors for safety?
September 22, 2025 at 8:10 PM
Sometimes, I agree.

Other times, I think the best way to engage with users about how they are misusing tools is to integrate the tools and use that to drive a deeper discussion instead.

TBH, I'm not 100% sure where AI coding tools falls here yet, and that's the point of my questions.
September 22, 2025 at 8:10 PM
TIA for genuine and engaging answers! Interested in broad thoughts on this space too.

Please, no taking the discussion into all of the non-coding use cases of gen-AI -- its a super interesting topic, but want to keep this thread focused on the narrow area of coding tools.
September 22, 2025 at 7:41 PM