Blogs / Personal blogs

John Regehr

blog.regehr.org

[This piece is co-authored with Vsevolod Livinskii.] Formal verification isn’t some sort of magic pixie dust that we sprinkle over a computer system to make it better. Real formal verification involves a lot of the same kind of difficult, nasty, grungy engineering work that any other systems-level job involves…

Popular posts
41
Total points
7,180
HN comments
3,664
Rank
#125 personal

Visit blog.regehr.org → RSS feedOn Hacker News May 2010 – Aug 2023

Software Engineering 34Programming Languages 20Systems & Performance 8Life, Learning & Writing 6Security & Privacy 5Career & Management 3

2

Teaching C

I was hoping you would mention the dynamic checkers, ASAN etc. My fear is people will start using these but not understand how to really use them properly. Since they’re dynamic checkers you really need a good testing harness and test cases to go with it. The bugs ASAN/TSAN etc catch are usually strange boundary…

10

The Strict Aliasing Situation Is Pretty Bad

One thing that works well in practice in cases where you really don’t want to process single bytes at a time is to use a union for going from one type to another. Granted, writing one member of a union and reading from a different one also isn’t allowed per the standard, but every compiler I’ve come across allows it…

11

Undefined Behavior in 2017

Since you talk about the sanitizers and tools like Checked-C, I’ll note there’s also SaferCPlusPlus[1], which is essentially a memory-safe (and data race safe) subset of C++. The idea is that there are a finite number of C++ elements that contribute to memory unsafety, and since the advent of C++11, it is now…

15

Undefined Behavior != Unsafe Programming

Are you arguing that undefined behaviour should not be a thing in, e.g., C? It sounds like you’re claiming that the fabled sufficiently smart compiler could take code in a C-like language with no UB, and emit something equivalent to what a C compiler would produce given equivalent input in C that correctly avoids UB…

19

The Future of Compiler Optimization

Hello, My name is Nadav and I am a PhD candidate, researching compilers for embedded systems and high-level synthesis. This is an excellent post and I enjoyed reading it. I have a few comments. 1. I agree about verification and optimization joining forces. We already see it to some extent with compiler warnings. 2…

20

Do C compilers disprove Fermat's Last Theorem?

(You probably already have realized this.) The reason the compiler produced code that terminated was based upon the fact that the values being altered (i.e., a, b and c) within the “while” loop are never referenced again after the loop. But, once you added code which printed the resulting values it was forced to…