~/talk

Enforce Inform Ignore Assume - Gradual Adoption of Contracts In Production Code

links:none on file
slides:none on file

C++ contract checks are introduced as macros (BDE/BSLS_ASSERT style) that move through four concrete modes: Ignore (annotations compile but never run), Inform (telemetry logs violations with exponential backoff), Enforce (violation handler aborts or can throw to fail fast), and Assume (treat predicates as optimizer hints). Workflow shows inserting cheap and _safe expensive checks, running test drivers and production telemetry, fixing reported bugs, then enabling enforcement or optimizer assumptions once the system is clean.

AI-written summary · about

  1. 0:00Introduction
  2. 0:45Agenda
  3. 1:27What is a contract
  4. 3:05Examples of contracts
  5. 4:12Undefined behavior
  6. 5:16Contract no language
  7. 5:41Contract no Java
  8. 6:38Preconditions
  9. 9:10Postconditions
  10. 9:58Invariants
  11. 11:10Error Reporting
  12. 14:01Guarantees
  13. 16:47Changing Promises
  14. 18:54Finding a Contract
  15. 20:28Contract Terminology
  16. 21:22Wide vs Narrow Contracts
  17. 23:16Survey Results
  18. 28:04Example
  19. 31:21Post Conditions
  20. 33:45Operating Throws
  21. 35:47Simple Function
  22. 36:41Bug in Implementation
  23. 38:27Changing the Contract
  24. 40:52Is Another Wide Contract Better
  25. 42:07Plug
  26. 42:32Contract Tech
  27. 43:29Test Drivers vs Unit Tests
  28. 45:34C vs C Standard
  29. 46:47Key Issues
  30. 47:40Expensive Checks
  31. 48:54Customization
  32. 49:34Contract
  33. 51:02The Workflow
  34. 53:08Simple First Step
~/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.