The intended interface
IJuliaTimeMachine.@past
— Macro@past n
Return to the state after cell n
was exectued.
IJuliaTimeMachine.vars
— Functionvars(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.
IJuliaTimeMachine.dontsave
— Functiondontsave(x)
Do not save variable x
in the history.
IJuliaTimeMachine.ans
— FunctionRecall the answer from a cell
IJuliaTimeMachine.@thread
— MacroTM.@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.
IJuliaTimeMachine.notify_jupyter!
— Functionnotify_jupyter!(bool)
If true, Print notifications about finishing jobs to the current jupyter output cell.
IJuliaTimeMachine.notify_terminal!
— Functionnotify_terminal!(bool)
If true, Print notifications about finishing jobs to the terminal from which jupyter was started.
IJuliaTimeMachine.unhook
— Functionunhook()
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.
All Docstrings
IJuliaTimeMachine.ans
— MethodRecall the answer from a cell
IJuliaTimeMachine.can_copy
— Methodcan_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.
IJuliaTimeMachine.clear_past
— Methodclear_past(indices)
Empty all storage of the past. Use to free up memory. If indices is omitted, it clears all history.
IJuliaTimeMachine.dontsave
— Methoddontsave(x)
Do not save variable x
in the history.
IJuliaTimeMachine.extract_symbols
— MethodThe 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.
IJuliaTimeMachine.let_block
— MethodCreates the let statement for all copyable variables.
IJuliaTimeMachine.main_to_dict
— MethodGo 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.
IJuliaTimeMachine.notify_jupyter!
— Functionnotify_jupyter!(bool)
If true, Print notifications about finishing jobs to the current jupyter output cell.
IJuliaTimeMachine.notify_terminal!
— Functionnotify_terminal!(bool)
If true, Print notifications about finishing jobs to the terminal from which jupyter was started.
IJuliaTimeMachine.put_state!
— Methodput_state!(vx::Varchive, key, di::Dict, ansc)
Assuming that state indexed by key (=n) is packed into ijstate, put it into the Varchive.
IJuliaTimeMachine.save_state
— MethodSave the current variables and ans in VX (a Varchive).
IJuliaTimeMachine.save_state_block
— MethodCreates a block that when executed saves the used variables in VX
.
IJuliaTimeMachine.saving!
— Functionsaving!(bool)
Turn saving of state on or off. Works by pushing or poping an IJulia postexecute_hook. True by default.
IJuliaTimeMachine.tm_hash
— Methodtm_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.
IJuliaTimeMachine.unhook
— Methodunhook()
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.
IJuliaTimeMachine.vars
— Methodvars(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.
IJuliaTimeMachine.@dict_to_main
— Macro@dict_to_main dict
Place all variables in dict into Main memory.
IJuliaTimeMachine.@past
— Macro@past n
Return to the state after cell n
was exectued.
IJuliaTimeMachine.@thread
— MacroTM.@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.