Sanitizers are a relatively recent trend in software engineering. They aim at automatically finding bugs in programs, and they are now commonly available to programmers as part of compiler toolchains. For example, the LLVM project includes out-of-the-box sanitizers to detect thread safety (tsan
), memory (asan
, msan
, lsan
), or undefined behaviour (ubsan
) bugs.
In this article, we present nsan
, a new sanitizer for locating and debugging floating-point numerical issues, implemented inside the LLVM sanitizer framework. nsan
puts emphasis on practicality. It aims at providing precise, and actionable feedback, in a timely manner.
nsan
uses compile-time instrumentation to augment each floating-point computation in the program with a higher-precision shadow which is checked for consistency during program execution. This makes nsan
between 1 and 4 orders of magnitude faster than existing approaches, which allows running it routinely as part of unit tests, or detecting issues in large production applications.
Wed 3 MarDisplayed time zone: Eastern Time (US & Canada) change
10:00 - 10:45 | Safety & CorrectnessCC Research Papers at CC Virtual Room Chair(s): Jan Vitek Northeastern University / Czech Technical University | ||
10:00 15mTalk | A Modern Compiler for the French Tax Code CC Research Papers Denis Merigoux Inria, Raphaƫl Monat Sorbonne University; CNRS; LIP6, Jonathan Protzenko Microsoft Research | ||
10:15 15mTalk | NSan: A Floating-Point Numerical Sanitizer CC Research Papers Clement Courbet Google Research | ||
10:30 15mTalk | Communication-Safe Web Programming in TypeScript with Routed Multiparty Session Types CC Research Papers Anson Miu Imperial College London; Bloomberg, Francisco Ferreira Imperial College London, Nobuko Yoshida Imperial College London, Fangyi Zhou Imperial College London Pre-print Media Attached |