Module Dose_common.Util Source Source val uuid : unit -> stringreturn a unique identifier based on random numbers
Source val list_unique : 'a list -> 'a listreturn a list of unique elements. This algorithm runs in O(n) but is not stable . elements are returned in reverse order
Source val memo : ('a -> 'b ) -> 'a -> 'b A generic memoization function. To use with care as it allocates an hashtbl storing all results that will be released only on exit
Source val timestamp : unit -> stringDebug, ProgressBars, Timers and Loggers
Debug, Info and Warning messages are printed immediately on stderr. * Info messages are enabled per default. Debug and Warning messages * must be enabled explicitely
Ex : To use the Message framework, you should declare three functions * at the begin of each module as:
let debug fmt = Util.make_debug "MyModuleLabel" fmt let info fmt = Util.make_info "MyModuleLabel" fmt let warning fmt = Util.make_warning "MyModuleLabel" fmt
and then use these function as
debug "this is a message string %s" "a string"
To enable this handle, from the main program use the function
Debug.enable "MyModuleLabel"
include Util.Logging(struct let label = "label" end) ;;
ProgressBars are printed immediately on stderr. * To be used, the **must** be created outside the functions where * they are used. * They can enabled or disabled (default)
Timers are printed all at once by the dump function on stderr. * They can enabled or disabled (default)
Source val range : int -> int -> int list Source val string_of_list :
?delim :(string * string) ->
?sep :string ->
('a -> string) ->
'a list ->
stringassociate a sat solver variable to a package id
intprojection n integer projection of size n