~/talk

Designing Types for R, Empirically

Talkat OOPSLA 2020 · 2020-11-15..11-20· [data-science]
links:none on file
links:none on file
speakerdeck:fikovnik
name:Jan Vitek
linkedin:jvitek
slides:none on file

A function annotation language and runtime contract checker are built and evaluated: Typetracer is a dynamic tracer on a modified R VM that infers types from package tests and examples, and contractr installs those inferred types as runtime contracts. The corpus covers ~400 well‑tested packages and ~8,000 reverse dependencies; Typetracer records ~90 million assertions with only 2% violations (≈80% of failures involve classes). Results show 33% scalars, 3% NA‑ful types, and ~50% of common manual assertions can be replaced by contracts.

AI-written summary · about

  1. 0:00Intro
  2. 0:54Errors in R can go undetected
  3. 1:42Some folks care about types
  4. 2:40We built a function type annotation and contract checking framework...
  5. 3:02R has six vectorized primitive types
  6. 3:21R users care about scalars
  7. 4:02R vectors are homogeneous
  8. 4:32R has values for missing data
  9. 5:32R is very reflective
  10. 5:57R also has classes
  11. 6:36Contract Putting types in the hands of programmers
  12. 7:15We have ... ... a type language and contract checking framework!
  13. 7:56Data Collection and Exploration Experimental Design
  14. 9:40Findings: Expressiveness
  15. 12:29Findings: Robustness Did client code respect the types?
  16. 13:42Findings: Usefulness How many existing checks can we elide?
  17. 14:58Takeaways
~/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.