This commit is contained in:
Simon Cruanes 2024-01-09 17:39:18 -05:00
parent 92d0022079
commit 399e95b50f
No known key found for this signature in database
GPG key ID: EBFFF6F283F3A2B4
5 changed files with 30 additions and 26 deletions

View file

@ -2,6 +2,7 @@
(names bench_persistent_read bench_persistent benchs) (names bench_persistent_read bench_persistent benchs)
(libraries iter benchmark) (libraries iter benchmark)
(optional) (optional)
(flags :standard -w +a-4-42-44-48-50-58-32-60-70@8 -safe-string -color always) (flags :standard -w +a-4-42-44-48-50-58-32-60-70@8 -safe-string -color
always)
(ocamlopt_flags :standard -O3 -color always -unbox-closures (ocamlopt_flags :standard -O3 -color always -unbox-closures
-unbox-closures-factor 20)) -unbox-closures-factor 20))

View file

@ -1,6 +1,7 @@
(executable (executable
(name test_sexpr) (name test_sexpr)
(libraries iter) (libraries iter)
(flags :standard -w +a-4-42-44-48-50-58-32-60-70@8 -safe-string -color always) (flags :standard -w +a-4-42-44-48-50-58-32-60-70@8 -safe-string -color
always)
(ocamlopt_flags :standard -O3 -color always -unbox-closures (ocamlopt_flags :standard -O3 -color always -unbox-closures
-unbox-closures-factor 20)) -unbox-closures-factor 20))

View file

@ -189,7 +189,9 @@ let keep_error seq k =
(** Mutable unrolled list to serve as intermediate storage *) (** Mutable unrolled list to serve as intermediate storage *)
module MList = struct module MList = struct
type 'a node = Nil | Cons of { a : 'a array; mutable n : int; mutable tl : 'a node } type 'a node =
| Nil
| Cons of { a: 'a array; mutable n: int; mutable tl: 'a node }
(* build and call callback on every element *) (* build and call callback on every element *)
let of_iter_with seq k = let of_iter_with seq k =
@ -202,9 +204,9 @@ module MList = struct
match !acc with match !acc with
| Nil -> acc := !cur | Nil -> acc := !cur
| _ -> | _ ->
match !tail with (match !tail with
| Nil -> () | Nil -> ()
| Cons r -> r.tl <- !cur | Cons r -> r.tl <- !cur)
in in
seq (fun x -> seq (fun x ->
@ -673,7 +675,9 @@ let map_while f seq k =
let consume x = let consume x =
match f x with match f x with
| `Yield y -> k y | `Yield y -> k y
| `Return y -> k y; raise_notrace ExitMapWhile | `Return y ->
k y;
raise_notrace ExitMapWhile
| `Stop -> raise_notrace ExitMapWhile | `Stop -> raise_notrace ExitMapWhile
in in
try seq consume with ExitMapWhile -> () try seq consume with ExitMapWhile -> ()

View file

@ -1,4 +1,3 @@
(library (library
(name iter) (name iter)
(public_name iter) (public_name iter)

View file

@ -1,4 +1,3 @@
(tests (tests
(names t_iter) (names t_iter)
(libraries iter qcheck-core qcheck-core.runner ounit2)) (libraries iter qcheck-core qcheck-core.runner ounit2))