This is very experimental and has not been thoroughly tested. Use with caution.
This function will reparse a single module (currently) into the
where its source code should reside, and then optionally restart a simulation
that stopped on an error, presumably after the developer has modified the
source code of the module that caused the break.
This will restart the simulation at the next event in the event queue
(i.e., returned by
events(sim)). Because of this, this function will
not do anything if the event queue is empty.
restartSpades(sim = NULL, module = NULL, numEvents = Inf, restart = TRUE, ...)
A simList. If not supplied (the default), this will take the sim from
SpaDES.core:::.pkgEnv$.sim, i.e., the one that was interrupted
A character string length one naming the module that caused the error and whose source code was fixed. This module will be reparsed and placed into the simList
Numeric. Default is Inf (i.e., all available). In the
options('spades.recoveryMode') is set to
TRUE or a numeric, then
there will be a list in the
.recoverableObjs. These will be
replayed backwards in time to reproduce the initial state of the simList before
the event that is
numEvents back from the first event in
TRUE, then the call to
spades will be made, i.e.,
restarting the simulation. If
FALSE, then it will return a new
with the module code parsed into the
A simList as if
spades had been called on a simList.
This will only parse the source code from the named module. It will not affect any
objects that are in the
The random number seed will be reset to the state it was at the start of the earliest event recovered, thereby returning to the exact stochastic simulation trajectory.
This will only work reliably
simList was not modified yet during the event which caused the error.
simList will be in the state it was at the time of the error.