The intended interface

IJuliaTimeMachine.varsFunction
vars(cell)
vars(vx::Varchive, cell)

Returns a dictionary of the variables from cell cell. If vx is omitted, returns from the default history. This is how it is usually used.

source
IJuliaTimeMachine.@threadMacro
TM.@thread begin
    code you want to run
end

Spawns a process that runs your code in its own thread, and eventually saves the result when it finishes in Out[cellnum]. It copies variables, so that changes to those variables do not interact with other cells.

source
IJuliaTimeMachine.unhookFunction
unhook()

Remove the pre and postexecute hooks created by Time Machine. Made for when the Time Machine is causing strange errors. These typically cause strange errors to happen whenever a cell is executed.

source

All Docstrings

IJuliaTimeMachine.can_copyMethod
can_copy(x)

Is supposed to return true if deepcopy works on x. The code to test this is based on deepcopy, but it could get some strange case wrong.

source
IJuliaTimeMachine.extract_symbolsMethod

The goal of extract_symbols is to find all the variables that appear in a block. It returns them in a Set of Symbols. This will return many more symbols than we want, so we only save those that we can copy.

source
IJuliaTimeMachine.main_to_dictMethod

Go over every symbol in Main. If deepcopy works on it, put it in the dict d. Note that it doesn't capture functions, which is unfortunate.

source
IJuliaTimeMachine.put_state!Method
put_state!(vx::Varchive, key, di::Dict, ansc)

Assuming that state indexed by key (=n) is packed into ijstate, put it into the Varchive.

source
IJuliaTimeMachine.saving!Function
saving!(bool)

Turn saving of state on or off. Works by pushing or poping an IJulia postexecute_hook. True by default.

source
IJuliaTimeMachine.tm_hashMethod
tm_hash(x)

Produces a hash of any variable for which can_copy returns true. If variables x and y are different, they will probably have different hashes.

source
IJuliaTimeMachine.unhookMethod
unhook()

Remove the pre and postexecute hooks created by Time Machine. Made for when the Time Machine is causing strange errors. These typically cause strange errors to happen whenever a cell is executed.

source
IJuliaTimeMachine.varsMethod
vars(cell)
vars(vx::Varchive, cell)

Returns a dictionary of the variables from cell cell. If vx is omitted, returns from the default history. This is how it is usually used.

source
IJuliaTimeMachine.@threadMacro
TM.@thread begin
    code you want to run
end

Spawns a process that runs your code in its own thread, and eventually saves the result when it finishes in Out[cellnum]. It copies variables, so that changes to those variables do not interact with other cells.

source