Thank you guys for pointing me in this direction. This
rcpp.cache.dir is a life-saver. A few notes for anyone who finds this: If you want to avoid recompilation every time you load the exposed stan functions, you have to follow these steps:
- set the
rcpp.cache.dir option as described avove
- Use the
stanc_builder function with the (default)
obfuscate_model_name=FALSE setting in order to ensure that the same c++ code is generated each time
- pass the result from stanc_builder into expose_stan_functions
So like this:
model_src <- stanc_builder("foo.stan")
Also make sure that a recent enough
Rcpp is installed which supports dso caching.
@bgoodri: Should we make
expose_stan_functions by default such that the model name is not obfuscated? This would lead to easier caching of this. Maybe we could even switch on the caching stuff if rstan_auto_write is set to true?
User who use exposed stan functions will love this caching.