New patches: [unrevert anon**20120817143200 Ignore-this: b68574a74639e75622c52e09d3876b3b ] { hunk ./src/extensions/kaputtBigarray.ml 164 - let bigarray k l dims elem = +(*XXX k l dims elem *) + let bigarray = fun (k : ('a, 'b) Bigarray.kind) (l : 'c Bigarray.layout) (dims : int array) (elem : 'a Kaputt.Enumerator.t) -> hunk ./src/extensions/kaputtBigarray.ml 186 - (string_of_bigarray (snd elem)) + (string_of_bigarray elem.Enumerator.to_string) hunk ./src/library/abbreviations.mli 57 - type 'a t = 'a Enumerator.t + type 'a t = 'a Enumerator.t = { + build : unit -> 'a lazy_list; + to_string : 'a -> string; + } hunk ./src/library/enumerator.ml 24 -type 'a t = (unit -> 'a lazy_list) * ('a -> string) +type 'a t = { + build : unit -> 'a lazy_list; + to_string : 'a -> string; + } hunk ./src/library/enumerator.ml 38 - iter_list f ((fst e) ()) + iter_list f (e.build ()) hunk ./src/library/enumerator.ml 44 - (fun () -> Nil), - (fun _ -> "") + { build = (fun () -> Nil); + to_string = (fun _ -> "") } hunk ./src/library/enumerator.ml 48 - (fun () -> Cons ((), lazy Nil)), - Utils.string_of_unit + { build = (fun () -> Cons ((), lazy Nil)); + to_string = Utils.string_of_unit } hunk ./src/library/enumerator.ml 52 - (fun () -> Cons (false, lazy (Cons (true, lazy Nil)))), - string_of_bool + { build = (fun () -> Cons (false, lazy (Cons (true, lazy Nil)))); + to_string = string_of_bool } hunk ./src/library/enumerator.ml 62 - fun x y -> (f x y, prn) + fun x y -> { build = f x y; to_string = prn } hunk ./src/library/enumerator.ml 79 - (ch (Char.code x) (Char.code y)), Char.escaped + { build = (ch (Char.code x) (Char.code y)); + to_string = Char.escaped } hunk ./src/library/enumerator.ml 93 - curr = Array.init (Array.length a) (fun i -> (fst a.(i)) ()); } + curr = Array.init (Array.length a) (fun i -> a.(i).build ()); } hunk ./src/library/enumerator.ml 110 - s.curr.(i) <- (fst s.init.(i)) (); + s.curr.(i) <- s.init.(i).build (); hunk ./src/library/enumerator.ml 135 - f, print + { build = f; to_string = print } hunk ./src/library/enumerator.ml 161 - (float x y 1), string_of_float + { build = float x y 1; + to_string = string_of_float } hunk ./src/library/enumerator.ml 180 - (Utils.make_string_of_array (snd elem)) + (Utils.make_string_of_array elem.to_string) hunk ./src/library/enumerator.ml 187 - (Utils.make_string_of_list (snd elem)) + (Utils.make_string_of_list elem.to_string) hunk ./src/library/enumerator.ml 189 +(* XXX hunk ./src/library/enumerator.ml 191 - let f, p = + let e = hunk ./src/library/enumerator.ml 195 - (snd elem) in - (fun () -> Cons (None, lazy (f ()))), - Utils.make_string_of_option p + (Utils.make_string_of_option elem.to_string) in + { build = (fun () -> Cons (None, lazy (e.build ()))); + to_string = e.to_string } +*) hunk ./src/library/enumerator.ml 204 - (Utils.make_string_of_ref (snd elem)) + (Utils.make_string_of_ref elem.to_string) hunk ./src/library/enumerator.ml 224 - (Utils.make_string_of_queue (snd elem)) + (Utils.make_string_of_queue elem.to_string) hunk ./src/library/enumerator.ml 234 - (Utils.make_string_of_stack (snd elem)) + (Utils.make_string_of_stack elem.to_string) hunk ./src/library/enumerator.ml 246 - (Utils.make_string_of_weak (snd elem)) + (Utils.make_string_of_weak elem.to_string) hunk ./src/library/enumerator.ml 257 - (fc (open_in fn)), Utils.string_of_char + { build = fc (open_in fn); + to_string = Utils.string_of_char } hunk ./src/library/enumerator.ml 266 - (fb (open_in fn)), string_of_int + { build = fb (open_in fn); + to_string = string_of_int } hunk ./src/library/enumerator.ml 275 - (fl (open_in fn)), Utils.string_of_string + { build = fl (open_in fn); + to_string = Utils.string_of_string } hunk ./src/library/enumerator.ml 284 - (fv (open_in fn)), p + { build = fv (open_in fn); + to_string = p } hunk ./src/library/enumerator.ml 292 - (fun () -> Cons (x, lazy Nil)), - (fun _ -> String.copy s) + { build = (fun () -> Cons (x, lazy Nil)); + to_string = (fun _ -> String.copy s) } hunk ./src/library/enumerator.ml 301 - (l x), prn + { build = l x; + to_string = prn } hunk ./src/library/enumerator.ml 311 - (a 0), prn + { build = a 0; + to_string = prn } hunk ./src/library/enumerator.ml 321 - (s 0), Utils.string_of_char + { build = s 0; + to_string = Utils.string_of_char } hunk ./src/library/enumerator.ml 333 - (fun () -> f ((fst e) ())), - (snd e) + { build = (fun () -> f (e.build ())); + to_string = e.to_string } hunk ./src/library/enumerator.ml 341 - (fun () -> t ((fst e) ())), - (snd e) + { build = (fun () -> t (e.build ())); + to_string = e.to_string } hunk ./src/library/enumerator.ml 344 -let sequence (l : 'a t list) = +let sequence (l : 'a t list) = (*XXX type annot*) hunk ./src/library/enumerator.ml 347 - | Nil -> (match l with [] -> Nil | hd :: tl -> s ((fst hd) ()) tl) + | Nil -> (match l with [] -> Nil | hd :: tl -> s (hd.build ()) tl) hunk ./src/library/enumerator.ml 349 - (fun () -> + { build = (fun () -> hunk ./src/library/enumerator.ml 352 - | hd :: tl -> s ((fst hd) ()) tl), - (snd (List.hd l)) + | hd :: tl -> s (hd.build ()) tl); + to_string = (List.hd l).to_string } hunk ./src/library/enumerator.ml 355 -let for_each (x : int) (y : int) (g : int -> 'a t) = +let for_each (x : int) (y : int) (g : int -> 'a t) = (*XXX type annot*) hunk ./src/library/enumerator.ml 358 - | Nil -> (if x <= y then fe ((fst (g x)) ()) (succ x) y else Nil) + | Nil -> (if x <= y then fe ((g x).build ()) (succ x) y else Nil) hunk ./src/library/enumerator.ml 360 - (fun () -> + { build = (fun () -> hunk ./src/library/enumerator.ml 362 - fe ((fst (g x)) ()) (succ x) y + fe ((g x).build ()) (succ x) y hunk ./src/library/enumerator.ml 364 - Nil), - (snd (g x)) + Nil); + to_string = (g x).to_string } hunk ./src/library/enumerator.ml 405 - (Utils.make_string_of_tuple2 (snd e1) (snd e2)) + (Utils.make_string_of_tuple2 e1.to_string e2.to_string) hunk ./src/library/enumerator.ml 411 - (Utils.make_string_of_tuple3 (snd e1) (snd e2) (snd e3)) + (Utils.make_string_of_tuple3 e1.to_string e2.to_string e3.to_string) hunk ./src/library/enumerator.ml 417 - (Utils.make_string_of_tuple4 (snd e1) (snd e2) (snd e3) (snd e4)) + (Utils.make_string_of_tuple4 e1.to_string e2.to_string e3.to_string e4.to_string) hunk ./src/library/enumerator.ml 423 - (Utils.make_string_of_tuple5 (snd e1) (snd e2) (snd e3) (snd e4) (snd e5)) + (Utils.make_string_of_tuple5 e1.to_string e2.to_string e3.to_string e4.to_string e5.to_string) hunk ./src/library/enumerator.mli 27 -type 'a t = (unit -> 'a lazy_list) * ('a -> string) -(** The type of enumerators, a couple of functions where: - - the first function returns a lazy list used to enumerate values for - a given type (calls should return equal lists); - - the second function converts values from this type into strings. *) +type 'a t = { + build : unit -> 'a lazy_list; + (** Should return a lazy list used to enumerate values (calls + should return equal lists). *) + to_string : 'a -> string; + (** Converts values to strings. *) + } +(** The type of enumerators. *) hunk ./src/library/enumerator.mli 104 +(*XXX hunk ./src/library/enumerator.mli 108 +*) hunk ./src/library/enumerator.mli 249 -val create_state_based : (unit -> 'a t array) -> ('a State.state -> 'b) -> 'c -> (unit -> 'b lazy_list) * 'c +val create_state_based : (unit -> 'a t array) -> ('a State.state -> 'b) -> ('b -> string) -> 'b t hunk ./src/library/test.ml 303 - let prn = snd enum in + let prn = enum.Enumerator.to_string in } Context: [BUG0000087: install shouldn't build anything. kaputt@x9c.fr**20120825190118 Ignore-this: e7d01afda7c45f50ae9341c1d9f4cc36 ] [MAJOR: new 'Mock' module recording calls made to a function. kaputt@x9c.fr**20120819115010 Ignore-this: 937c2225fd9058deb7acf0600d7e7e8b ] [MINOR: tests should actually call ocamlopt/ocamljava. kaputt@x9c.fr**20120817162605 Ignore-this: e25579846077549ce998c361bb2ad3e5 ] [MAJOR: bugfixes to bigarray/nums extensions. kaputt@x9c.fr**20120817162402 Ignore-this: 6826419ea161231e8236ce2a08444a3d ] [MINOR: preprocessor concatenating ".mlt" files. kaputt@x9c.fr**20120817154648 Ignore-this: f40ec85f4b9c3bf9dd5f14e0a69847bf ] [MINOR: support for partial functions. kaputt@x9c.fr**20120817133823 Ignore-this: 6f08d1657620995314504bf2f86be55b ] [MINOR: tests updated for new version. kaputt@x9c.fr**20120817133118 Ignore-this: 937352c310ea2c085aeac4748989b001 ] [MINOR: update for OCaml 4.00.0. kaputt@x9c.fr**20120817133022 Ignore-this: ab59ab7e011ee8b99536523660dca3c ] [MINOR: removed deprecated functions. kaputt@x9c.fr**20120815070123 Ignore-this: a20b60360426597127bc4e6a83c968d2 ] [MINOR: copyright update for year 2012. kaputt@x9c.fr**20120815065225 Ignore-this: bc1ba50f350dd5ec53dfc50d6fe6b0ef ] [MINOR: dropped support for old OCaml versions. kaputt@x9c.fr**20120815064540 Ignore-this: 9ed44de0580d8059030bbe2f3b8b765e ] [MINOR: installation was missing some files. kaputt@x9c.fr**20110816160417 Ignore-this: 4f743e5a34942352f04bb433891d8c4 ] [TAG 1.1 kaputt@x9c.fr**20110220142329 Ignore-this: be00385838074050f8349800628d7132 ] Patch bundle hash: d19412200b116cd596401ae65d5b53669410dd31