Runtime Detection of Data Races in OCaml with ThreadSanitizerRemote
The possibility to write truly parallel OCaml code brings forth new possibilities of bugs. Among those, data races (concurrent accesses to the same data) are hard to detect and dangerous, as they are non-deterministic, possibly silent, and can lead to highly unexpected results. ThreadSanitizer (TSan) is an open-source library and program instrumentation pass to reliably detect data races at runtime. TSan has been instrumental in finding thousands of data races across many programming languages. We will describe the core principles of data race detection in TSan, explain why it was challenging to apply it to OCaml, and the adaptations needed to the runtime system. We plan to demo how you can already use it in your own code, and explain the limitations to be aware of.
(icfp23-ocaml-final18.pdf) | 127KiB |
Sat 9 SepDisplayed time zone: Pacific Time (US & Canada) change
09:00 - 10:30 | |||
09:00 22mTalk | Eio 1.0 – Effects-based IO for OCaml 5 OCaml Thomas Leonard Tarides, Patrick Ferris University of Cambridge, UK, Christiano Haesbaert Tarides, Lucas Pluvinage Tarides, Vesa Karvonen Tarides, Sudha Parimala Tarides, KC Sivaramakrishnan IIT Madras and Tarides, Vincent Balat Tarides, Anil Madhavapeddy University of Cambridge, UK File Attached | ||
09:22 22mTalk | Modern DSL compiler architecture in OCaml our experience with CatalaRemote OCaml File Attached | ||
09:45 22mTalk | Runtime Detection of Data Races in OCaml with ThreadSanitizerRemote OCaml File Attached | ||
10:07 22mTalk | Targeted Static Analysis for OCaml C Stubs: Eliminating gremlins from the codeRemote OCaml Edwin Török XenServer, Cloud Software Group File Attached |