Module Journal


module Journal: sig .. end
Journalization of functions


Journal management


val get_name : unit -> string
Returns the filename which the journal will be written into.
val set_name : string -> unit
set_journal_name name changes the filename into the journal will be written. The new filename is name ^ ".ml".
val write : unit -> unit
write () writes the content of the journal into the given file (without clearing the journal).
val prevent : ('a -> 'b) -> 'a -> 'b
val save : unit -> unit
Save the current state of the journal for future restauration.
Since Beryllium-20090901
val restore : unit -> unit
Restore a previously saved journal.
Since Beryllium-20090901

Journalization


val register : string ->
'a Type.t -> ?comment:(Format.formatter -> unit) -> ?is_dyn:bool -> 'a -> 'a
register n ty ~comment:pp ~register:r v journalizes the value v of type ty with the name n. n must exactly match the FQN of the value (i.e. "List.iter" and not "iter" even though the module List is already opened). If the comment argument is set, the given pretty printer ppwould be applied when the is journalized.

Set is_dyn to true to journalize dynamic function.

val never_write : string -> 'a -> 'a
never_write name f returns a closure g observationaly equal to f except that trying to write a call to g in the journal is an error. If f is not a closure, then never_write name f raises Invalid_argument.

Internal use only


val keep_file : string -> unit

This function has not to be used explictely. Only offers functions retrieving when running a journal file.
exception LoadingError of string