---
title: "Details"
output: rmarkdown::html_vignette
vignette: >
  %\VignetteIndexEntry{Details}
  %\VignetteEngine{knitr::rmarkdown}
  %\VignetteEncoding{UTF-8}
---

```{r, include = FALSE}
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)
```

# Influential environment variables and options

`DUST_WORKDIR_ROOT`: an environment variable which sets the **root** working directory for compilation of your code.  Normally, we use the session-specific directory, which is a good choice.  You might want to change this in a few cases:

* You want to generate models from a process and you want these to outlive the lifetime of that process (e.g., for running models on an HPC)
* You want to cache the compilation across sessions

If you set this environment variable, then we'll create models here, each with a name in the pattern `dust_<hash>` where `<hash>` is the hash of the generated code.  This means that if your model changes we'll still recompile it.

`DUST_QUIET`: an environment variable which controls the default level of verbosity when compiling dust models.  Set this to a truthy value (e.g., `TRUE`) to change the default.  This can always be overridden by providing a value for the `quiet` argument to [dust_compile()] and [dust_package()].

`DUST_DEBUG`: an environment variable which controls how [pkgload::compile_dll] compiles the C++ code.  Set this to a truthy value (e.g., `TRUE`) to disable optimisation, which allows faster compilation at the cost of slower runtime.  This can be overridden by the `debug` argument to [dust_compile()].
