The intended interface
IJuliaTimeMachine.@past — Macro@past nReturn 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
endSpawns 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 dictPlace all variables in dict into Main memory.
IJuliaTimeMachine.@past — Macro@past nReturn to the state after cell n was exectued.
IJuliaTimeMachine.@thread — MacroTM.@thread begin
code you want to run
endSpawns 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.