val uuid : unit -> string
return a unique identifier based on random numbers
val list_unique : 'a list -> 'a list
return a list of unique elements. This algorithm runs in O(n) but is not stable . elements are returned in reverse order
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
val timestamp : unit -> string
Debug, 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) ;;
module Logging (X : sig ... end ) : sig ... 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)
module Timer : sig ... end
Timers are printed all at once by the dump
function on stderr. * They can enabled or disabled (default)
val range : int -> int -> int list
val string_of_list :
?delim :(string * string) ->
?sep :string ->
('a -> string) ->
'a list ->
string
associate a sat solver variable to a package id
intprojection n
integer projection of size n