Copy-and-patch JIT compilation as a foundation for low-overhead dynamic program analysis in R, with instrumentation, coverage, profiling, and native debugging. Published at MPLR 2026.
A row polymorphism design for set-theoretic types that keeps substitutions simple by allowing Boolean combinations of row variables directly in record type constructors, with a complete tallying algorithm and an implementation in SSTT and MLsem. Accepted at OOPSLA 2026 (to appear).
In a previous post, I explained how to test a C++ function, find_na, used in a database for R values. find_na checks if NA is present or not in a previously serialized R value.
When you write a package in R, you probably write tests. A popular package for unit tests with R is testthat,1 with the final invocation:
devtools::test() If your package also includes native code, let’s say, C++, you can test it by testing the R API that exercises the native functions.
The fast-and-loose, permissive semantics of dynamic programming languages limit the power of static analyses. For that reason, soundness is often traded for precision through dynamic program analysis. Dynamic analysis is only as good as the available …
The R language eval function is powerful and makes analysis difficult. WWhat are the usage of eval in R?
Most dynamic languages allow users to turn text into code using various functions, often named `eval`, with language-dependent semantics. The widespread use of these reflective functions hinders static analysis and prevents compilers from performing …