~/talk

Garbage In, Garbage Out: Arguing about Undefined Behavior...

Talkat CppCon 2016 · 2016-09-18..09-23· [compilers-and-language-design]
slides:none on file

Argues that undefined behavior is a symptom not the root problem and proposes treating language features as either narrow vs wide contracts with concrete principles: a narrow contract must be checkable, provide significant value, be explainable, and not break long‑standing code. Shows concrete examples (null dereference, signed left shifts, unsigned wrap causing allocation bugs in SPEC, a Bzip inner loop where signed vs unsigned changes 2x performance), points to Android and WebAssembly tradeoffs and recommends targeted runtime/static checks rather than blanket redefinition.

AI-written summary · about

  1. 0:00Introduction
  2. 5:30Undefined Behavior
  3. 8:10Programming Errors
  4. 11:30Symptoms of Undefined Behavior
  5. 12:37Wide vs Narrow Contracts
  6. 15:07What can we do
  7. 16:30Can we define all behaviors
  8. 17:25What are the tradeoffs
  9. 17:42Can we constrain undefined behavior
  10. 18:12This isnt about undefined behavior
  11. 18:41The wishywashy thing
  12. 19:30Narrow contracts
  13. 20:37Programming error
  14. 21:13Principles
  15. 24:25Examples
  16. 27:48Complicated Example
  17. 33:14Spec Example
  18. 39:17Optimization Example
  19. 44:07Questions
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.