diff --git a/CHANGES.md b/CHANGES.md index 756c51cd58..5fe38afa93 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -2,6 +2,9 @@ ## Features/Changes * Compiler/wasm: omit code pointer from closures when not used (#2059) +* Compiler: reference unboxing (#1958) + +## Bug fixes * Compiler: fix purity of comparison functions (again) (#2092) # 6.2.0 (2025-07-30) - Lille diff --git a/compiler/lib/driver.ml b/compiler/lib/driver.ml index b5cd1aa938..cf65e4f3a1 100644 --- a/compiler/lib/driver.ml +++ b/compiler/lib/driver.ml @@ -217,6 +217,7 @@ let round profile : 'a -> 'a = print +> tailcall +> (flow +> specialize +> eval +> fst) + +> Ref_unboxing.f +> inline profile +> phi +> deadcode diff --git a/compiler/lib/phisimpl.ml b/compiler/lib/phisimpl.ml index 5f633db638..8bbd8c0c4c 100644 --- a/compiler/lib/phisimpl.ml +++ b/compiler/lib/phisimpl.ml @@ -69,6 +69,11 @@ let program_deps { blocks; _ } = (fun _pc block -> List.iter block.body ~f:(fun i -> match i with + | Let (x, Prim (Extern "%identity", [ Pv y ])) -> + (* This is introduced by the reference unboxing pass *) + add_var vars x; + add_dep deps x y; + add_def vars defs x y | Let (x, e) -> add_var vars x; expr_deps blocks vars deps defs x e diff --git a/compiler/lib/ref_unboxing.ml b/compiler/lib/ref_unboxing.ml new file mode 100644 index 0000000000..5ea9187e79 --- /dev/null +++ b/compiler/lib/ref_unboxing.ml @@ -0,0 +1,173 @@ +open! Stdlib +open Code + +(* +ocamlc does not perform reference unboxing when emitting debugging +information. Inlining can also enable additional reference unboxing. + +We currently does not unbox references which are used within the scope +of an exception handler. This is tricky to get right, and would often +not result in significant performance improvements. +*) + +let debug = Debug.find "unbox-refs" + +let times = Debug.find "times" + +let stats = Debug.find "stats" + +let rewrite refs block m = + let m, l = + List.fold_left + ~f:(fun (m, rem) i -> + match i with + | Let (x, Block (0, [| y |], (NotArray | Unknown), Maybe_mutable)) + when Var.Set.mem x refs -> Var.Map.add x y m, rem + | Let (y, Field (x, 0, Non_float)) when Var.Map.mem x m -> + (* Optimized away by Phisimpl *) + m, Let (y, Prim (Extern "%identity", [ Pv (Var.Map.find x m) ])) :: rem + | Offset_ref (x, n) when Var.Map.mem x m -> + let y = Var.fresh () in + ( Var.Map.add x y m + , Let + ( y + , Prim + ( Extern "%int_add" + , [ Pv (Var.Map.find x m); Pc (Int (Targetint.of_int_exn n)) ] ) ) + :: rem ) + | Set_field (x, _, Non_float, y) when Var.Map.mem x m -> Var.Map.add x y m, rem + | Event _ + when match rem with + | Event _ :: _ -> true + | _ -> false -> m, rem + | _ -> m, i :: rem) + block.body + ~init:(m, []) + in + m, List.rev l + +let rewrite_cont relevant_vars vars (pc', args) = + let refs, _ = Int.Hashtbl.find relevant_vars pc' in + let vars = Var.Map.filter (fun x _ -> Var.Set.mem x refs) vars in + pc', List.map ~f:snd (Var.Map.bindings vars) @ args + +let rewrite_function p variables pc = + let relevant_vars = Int.Hashtbl.create 16 in + let g = Structure.(dominator_tree (build_graph p.blocks pc)) in + let rec traverse_tree g pc vars = + let block = Addr.Map.find pc p.blocks in + let vars' = + List.fold_left + ~f:(fun s i -> + match i with + | Let (x, Block (0, [| _ |], (NotArray | Unknown), Maybe_mutable)) + when Var.Hashtbl.mem variables x -> Var.Set.add x s + | _ -> s) + ~init:vars + block.body + in + Int.Hashtbl.add relevant_vars pc (vars, vars'); + Addr.Set.iter (fun pc' -> traverse_tree g pc' vars') (Structure.get_edges g pc) + in + traverse_tree g pc Var.Set.empty; + let rec traverse_tree' g pc blocks = + let block = Addr.Map.find pc p.blocks in + let vars, refs = Int.Hashtbl.find relevant_vars pc in + let vars = + Var.Set.fold (fun x m -> Var.Map.add x (Var.fork x) m) vars Var.Map.empty + in + let params = List.map ~f:snd (Var.Map.bindings vars) @ block.params in + let vars, body = rewrite refs block vars in + let branch = + match block.branch with + | Return _ | Raise _ | Stop -> block.branch + | Branch cont -> Branch (rewrite_cont relevant_vars vars cont) + | Cond (x, cont, cont') -> + Cond + ( x + , rewrite_cont relevant_vars vars cont + , rewrite_cont relevant_vars vars cont' ) + | Switch (x, a) -> + Switch (x, Array.map ~f:(fun cont -> rewrite_cont relevant_vars vars cont) a) + | Pushtrap (cont, x, cont') -> + Pushtrap + ( rewrite_cont relevant_vars vars cont + , x + , rewrite_cont relevant_vars vars cont' ) + | Poptrap cont -> Poptrap (rewrite_cont relevant_vars vars cont) + in + let blocks = Addr.Map.add pc { params; body; branch } blocks in + Addr.Set.fold + (fun pc' blocks -> traverse_tree' g pc' blocks) + (Structure.get_edges g pc) + blocks + in + let blocks = traverse_tree' g pc p.blocks in + { p with blocks } + +let f p = + let t = Timer.make () in + let candidates = Var.Hashtbl.create 128 in + let updated = Var.Hashtbl.create 128 in + let visited = BitSet.create' p.free_pc in + let discard x = Var.Hashtbl.remove candidates x in + let check_field_access depth x = + match Var.Hashtbl.find candidates x with + | exception Not_found -> false + | depth' -> + if depth' = depth + then true + else ( + Var.Hashtbl.remove candidates x; + false) + in + let rec traverse depth start_pc pc = + if not (BitSet.mem visited pc) + then ( + BitSet.set visited pc; + let block = Addr.Map.find pc p.blocks in + List.iter + ~f:(fun i -> + match i with + | Let (x, Block (0, [| _ |], (NotArray | Unknown), Maybe_mutable)) -> + Freevars.iter_instr_free_vars discard i; + Var.Hashtbl.replace candidates x depth + | Let (_, Closure (_, (pc', _), _)) -> traverse (depth + 1) pc' pc' + | Let (_, Field (x, 0, Non_float)) -> ignore (check_field_access depth x) + | Offset_ref (x, _) -> + if check_field_access depth x then Var.Hashtbl.replace updated x start_pc + | Set_field (x, _, Non_float, y) -> + discard y; + if check_field_access depth x then Var.Hashtbl.replace updated x start_pc + | _ -> Freevars.iter_instr_free_vars discard i) + block.body; + Freevars.iter_last_free_var discard block.branch; + match block.branch with + | Pushtrap ((pc', _), _, (pc'', _)) -> + traverse (depth + 1) start_pc pc'; + traverse depth start_pc pc'' + | Poptrap (pc', _) -> traverse (depth - 1) start_pc pc' + | _ -> Code.fold_children p.blocks pc (fun pc' () -> traverse depth start_pc pc') ()) + in + traverse 0 p.start p.start; + if debug () + then + Print.program + Format.err_formatter + (fun _ i -> + match i with + | Instr (Let (x, _)) + when Var.Hashtbl.mem candidates x && Var.Hashtbl.mem updated x -> "REF" + | _ -> "") + p; + Var.Hashtbl.filter_map_inplace + (fun x _depth -> try Some (Var.Hashtbl.find updated x) with Not_found -> None) + candidates; + let functions = + Var.Hashtbl.fold (fun _ pc s -> Addr.Set.add pc s) candidates Addr.Set.empty + in + let p = Addr.Set.fold (fun pc p -> rewrite_function p candidates pc) functions p in + if times () then Format.eprintf " reference unboxing: %a@." Timer.print t; + if stats () + then Format.eprintf "Stats - reference unboxing: %d@." (Var.Hashtbl.length candidates); + p diff --git a/compiler/tests-compiler/double-translation/effects_continuations.ml b/compiler/tests-compiler/double-translation/effects_continuations.ml index 4659311a96..609abc8928 100644 --- a/compiler/tests-compiler/double-translation/effects_continuations.ml +++ b/compiler/tests-compiler/double-translation/effects_continuations.ml @@ -101,7 +101,7 @@ let%expect_test "test-compiler/lib-effects/test1.ml" = [%expect {| function exceptions$0(s){ - try{var _k_ = caml_int_of_string(s), n = _k_;} + try{var _l_ = caml_int_of_string(s), n = _l_;} catch(exn$0){ var exn = caml_wrap_exception(exn$0), tag = exn[1]; if(tag !== Stdlib[7]) throw caml_maybe_attach_backtrace(exn, 0); @@ -110,7 +110,7 @@ let%expect_test "test-compiler/lib-effects/test1.ml" = try{ if(caml_string_equal(s, cst$0)) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - var _j_ = 7, m = _j_; + var _k_ = 7, m = _k_; } catch(exn){ var exn$0 = caml_wrap_exception(exn); @@ -120,8 +120,8 @@ let%expect_test "test-compiler/lib-effects/test1.ml" = try{ if(caml_string_equal(s, cst)) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - var _i_ = [0, [0, caml_call1(Stdlib[79], cst_toto), n, m]]; - return _i_; + var _j_ = [0, [0, caml_call1(Stdlib[79], cst_toto), n, m]]; + return _j_; } catch(exn){ var exn$1 = caml_wrap_exception(exn); @@ -131,7 +131,7 @@ let%expect_test "test-compiler/lib-effects/test1.ml" = } //end function exceptions$1(s, cont){ - try{var _i_ = caml_int_of_string(s), n = _i_;} + try{var _j_ = caml_int_of_string(s), n = _j_;} catch(exn){ var exn$2 = caml_wrap_exception(exn), tag = exn$2[1]; if(tag !== Stdlib[7]){ @@ -145,7 +145,7 @@ let%expect_test "test-compiler/lib-effects/test1.ml" = try{ if(caml_string_equal(s, cst$0)) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - var _h_ = 7, m = _h_; + var _i_ = 7, m = _i_; } catch(exn$0){ var exn$1 = caml_wrap_exception(exn$0); @@ -165,9 +165,9 @@ let%expect_test "test-compiler/lib-effects/test1.ml" = return caml_trampoline_cps_call2 (Stdlib[79], cst_toto, - function(_i_){caml_pop_trap(); return cont([0, [0, _i_, n, m]]);}); - var _g_ = Stdlib[8], raise = caml_pop_trap(); - return raise(caml_maybe_attach_backtrace(_g_, 1)); + function(_j_){caml_pop_trap(); return cont([0, [0, _j_, n, m]]);}); + var _h_ = Stdlib[8], raise = caml_pop_trap(); + return raise(caml_maybe_attach_backtrace(_h_, 1)); } //end var exceptions = caml_cps_closure(exceptions$0, exceptions$1); @@ -180,10 +180,10 @@ let%expect_test "test-compiler/lib-effects/test1.ml" = } //end function cond1$1(b, cont){ - function _g_(ic){return cont([0, ic, 7]);} + function _h_(ic){return cont([0, ic, 7]);} return b - ? caml_trampoline_cps_call2(Stdlib[79], cst_toto$0, _g_) - : caml_trampoline_cps_call2(Stdlib[79], cst_titi, _g_); + ? caml_trampoline_cps_call2(Stdlib[79], cst_toto$0, _h_) + : caml_trampoline_cps_call2(Stdlib[79], cst_titi, _h_); } //end var cond1 = caml_cps_closure(cond1$0, cond1$1); @@ -197,26 +197,26 @@ let%expect_test "test-compiler/lib-effects/test1.ml" = } //end function cond2$1(b, cont){ - function _g_(_g_){return cont(7);} + function _h_(_h_){return cont(7);} return b - ? caml_trampoline_cps_call2(Stdlib_Printf[3], _a_, _g_) - : caml_trampoline_cps_call2(Stdlib_Printf[3], _b_, _g_); + ? caml_trampoline_cps_call2(Stdlib_Printf[3], _a_, _h_) + : caml_trampoline_cps_call2(Stdlib_Printf[3], _b_, _h_); } //end var cond2 = caml_cps_closure(cond2$0, cond2$1); //end function cond3$0(b){ - var x = [0, 0]; - if(b) x[1] = 1; else caml_call1(Stdlib_Printf[3], _c_); - return x[1]; + var x = 0, x$0 = b ? 1 : (caml_call1(Stdlib_Printf[3], _c_), x); + return x$0; } //end function cond3$1(b, cont){ - var x = [0, 0]; - function _g_(_g_){return cont(x[1]);} + function _g_(x){return cont(x);} + var x = 0; return b - ? (x[1] = 1, _g_(0)) - : caml_trampoline_cps_call2(Stdlib_Printf[3], _c_, _g_); + ? _g_(1) + : caml_trampoline_cps_call2 + (Stdlib_Printf[3], _c_, function(_h_){return _g_(x);}); } //end var cond3 = caml_cps_closure(cond3$0, cond3$1); diff --git a/compiler/tests-compiler/effects_continuations.ml b/compiler/tests-compiler/effects_continuations.ml index adff198c65..ac55b7774a 100644 --- a/compiler/tests-compiler/effects_continuations.ml +++ b/compiler/tests-compiler/effects_continuations.ml @@ -102,7 +102,7 @@ let%expect_test "test-compiler/lib-effects/test1.ml" = [%expect {| function exceptions(s, cont){ - try{var _i_ = runtime.caml_int_of_string(s), n = _i_;} + try{var _j_ = runtime.caml_int_of_string(s), n = _j_;} catch(exn$0){ var exn = caml_wrap_exception(exn$0), tag = exn[1]; if(tag !== Stdlib[7]){ @@ -114,7 +114,7 @@ let%expect_test "test-compiler/lib-effects/test1.ml" = try{ if(caml_string_equal(s, cst$0)) throw caml_maybe_attach_backtrace(Stdlib[8], 1); - var _h_ = 7, m = _h_; + var _i_ = 7, m = _i_; } catch(exn){ var exn$0 = caml_wrap_exception(exn); @@ -136,31 +136,32 @@ let%expect_test "test-compiler/lib-effects/test1.ml" = return caml_trampoline_cps_call2 (Stdlib[79], cst_toto, - function(_i_){caml_pop_trap(); return cont([0, [0, _i_, n, m]]);}); - var _g_ = Stdlib[8], raise = caml_pop_trap(); - return raise(caml_maybe_attach_backtrace(_g_, 1)); + function(_j_){caml_pop_trap(); return cont([0, [0, _j_, n, m]]);}); + var _h_ = Stdlib[8], raise = caml_pop_trap(); + return raise(caml_maybe_attach_backtrace(_h_, 1)); } //end function cond1(b, cont){ - function _g_(ic){return cont([0, ic, 7]);} + function _h_(ic){return cont([0, ic, 7]);} return b - ? caml_trampoline_cps_call2(Stdlib[79], cst_toto$0, _g_) - : caml_trampoline_cps_call2(Stdlib[79], cst_titi, _g_); + ? caml_trampoline_cps_call2(Stdlib[79], cst_toto$0, _h_) + : caml_trampoline_cps_call2(Stdlib[79], cst_titi, _h_); } //end function cond2(b, cont){ - function _g_(_g_){return cont(7);} + function _h_(_h_){return cont(7);} return b - ? caml_trampoline_cps_call2(Stdlib_Printf[3], _a_, _g_) - : caml_trampoline_cps_call2(Stdlib_Printf[3], _b_, _g_); + ? caml_trampoline_cps_call2(Stdlib_Printf[3], _a_, _h_) + : caml_trampoline_cps_call2(Stdlib_Printf[3], _b_, _h_); } //end function cond3(b, cont){ - var x = [0, 0]; - function _g_(_g_){return cont(x[1]);} + function _g_(x){return cont(x);} + var x = 0; return b - ? (x[1] = 1, _g_(0)) - : caml_trampoline_cps_call2(Stdlib_Printf[3], _c_, _g_); + ? _g_(1) + : caml_trampoline_cps_call2 + (Stdlib_Printf[3], _c_, function(_h_){return _g_(x);}); } //end function loop1(b, cont){ diff --git a/compiler/tests-compiler/loops.ml b/compiler/tests-compiler/loops.ml index 605276270c..1a15b1b890 100644 --- a/compiler/tests-compiler/loops.ml +++ b/compiler/tests-compiler/loops.ml @@ -86,19 +86,19 @@ let rec fun_with_loop acc = function (list_rev, caml_call1(list_rev, caml_call1(list_rev, acc))); var x = param[1]; if(1 === x && ! param[2]) break; - var xs = param[2], a = [0, acc], i = 0; + var xs = param[2], a$2 = acc, i = 0; for(;;){ - a[1] = [0, 1, a[1]]; - var _a_ = i + 1 | 0; - if(10 === i){var acc$0 = [0, x, a[1]]; acc = acc$0; param = xs; break;} + var a = [0, 1, a$2], _a_ = i + 1 | 0; + if(10 === i){var acc$0 = [0, x, a]; acc = acc$0; param = xs; break;} + a$2 = a; i = _a_; } } - var a$0 = [0, acc], i$0 = 0; + var a$1 = acc, i$0 = 0; for(;;){ - a$0[1] = [0, 1, a$0[1]]; - var _b_ = i$0 + 1 | 0; - if(10 === i$0) return a$0[1]; + var a$0 = [0, 1, a$1], _b_ = i$0 + 1 | 0; + if(10 === i$0) return a$0; + a$1 = a$0; i$0 = _b_; } } @@ -582,34 +582,32 @@ let () = print_endline (trim " ") var s$0 = copy(caml_bytes_of_string(x)), len = caml_ml_bytes_length(s$0), - i = [0, 0]; + ofs = 0; for(;;){ - if(i[1] >= len) break; - if(! is_space(caml_bytes_unsafe_get(s$0, i[1]))) break; - i[1]++; + if(ofs >= len) break; + if(! is_space(caml_bytes_unsafe_get(s$0, ofs))) break; + ofs = ofs + 1 | 0; } - var j = [0, len - 1 | 0]; + var j = len - 1 | 0; for(;;){ - if(i[1] > j[1]) break; - if(! is_space(caml_bytes_unsafe_get(s$0, j[1]))) break; - j[1]--; - } - a: - { - if(i[1] <= j[1]){ - var len$0 = (j[1] - i[1] | 0) + 1 | 0, ofs = i[1]; - if - (0 <= ofs && 0 <= len$0 && (caml_ml_bytes_length(s$0) - len$0 | 0) >= ofs){ - var r = caml_create_bytes(len$0); - caml_blit_bytes(s$0, ofs, r, 0, len$0); - var b = r; - break a; + if(ofs <= j && is_space(caml_bytes_unsafe_get(s$0, j))){j = j - 1 | 0; continue;} + a: + { + if(ofs <= j){ + var len$0 = (j - ofs | 0) + 1 | 0; + if + (0 <= ofs && 0 <= len$0 && (caml_ml_bytes_length(s$0) - len$0 | 0) >= ofs){ + var r = caml_create_bytes(len$0); + caml_blit_bytes(s$0, ofs, r, 0, len$0); + var b = r; + break a; + } + throw caml_maybe_attach_backtrace([0, Invalid_argument, s], 1); } - throw caml_maybe_attach_backtrace([0, Invalid_argument, s], 1); + var b = empty; } - var b = empty; + return caml_string_of_bytes(copy(b)); } - return caml_string_of_bytes(copy(b)); } //end |}] diff --git a/compiler/tests-full/stdlib.cma.expected.js b/compiler/tests-full/stdlib.cma.expected.js index b655d5d72f..d00b2ea5cc 100644 --- a/compiler/tests-full/stdlib.cma.expected.js +++ b/compiler/tests-full/stdlib.cma.expected.js @@ -4862,16 +4862,16 @@ function init(n, f){ var s = /*<>*/ caml_create_bytes(n), - _L_ = /*<>*/ n - 1 | 0, - _M_ = 0; - if(_L_ >= 0){ - var i = _M_; + _Z_ = /*<>*/ n - 1 | 0, + ___ = 0; + if(_Z_ >= 0){ + var i = ___; for(;;){ /*<>*/ /*<>*/ caml_bytes_unsafe_set (s, i, /*<>*/ caml_call1(f, i)); - var _N_ = /*<>*/ i + 1 | 0; - if(_L_ === i) break; - i = _N_; + var _$_ = /*<>*/ i + 1 | 0; + if(_Z_ === i) break; + i = _$_; } } /*<>*/ return s; @@ -4926,11 +4926,11 @@ function symbol(a, b){ var c = /*<>*/ a + b | 0, - _L_ = /*<>*/ b < 0 ? 1 : 0, + _Z_ = /*<>*/ b < 0 ? 1 : 0, match = c < 0 ? 1 : 0; a: { - if(a < 0){if(! _L_ || match) break a;} else if(_L_ || ! match) break a; + if(a < 0){if(! _Z_ || match) break a;} else if(_Z_ || ! match) break a; /*<>*/ return Stdlib[1].call(null, cst_Bytes_extend) /*<>*/ ; } /*<>*/ return c; @@ -4988,30 +4988,30 @@ } function iter(f, a){ var - _J_ = /*<>*/ caml_ml_bytes_length(a) - 1 | 0, - _K_ = 0; - if(_J_ >= 0){ - var i = _K_; + _X_ = /*<>*/ caml_ml_bytes_length(a) - 1 | 0, + _Y_ = 0; + if(_X_ >= 0){ + var i = _Y_; for(;;){ /*<>*/ caml_call1(f, caml_bytes_unsafe_get(a, i)); - var _L_ = /*<>*/ i + 1 | 0; - if(_J_ === i) break; - i = _L_; + var _Z_ = /*<>*/ i + 1 | 0; + if(_X_ === i) break; + i = _Z_; } } /*<>*/ return 0; /*<>*/ } function iteri(f, a){ var - _H_ = /*<>*/ caml_ml_bytes_length(a) - 1 | 0, - _I_ = 0; - if(_H_ >= 0){ - var i = _I_; + _V_ = /*<>*/ caml_ml_bytes_length(a) - 1 | 0, + _W_ = 0; + if(_V_ >= 0){ + var i = _W_; for(;;){ /*<>*/ caml_call2(f, i, caml_bytes_unsafe_get(a, i)); - var _J_ = /*<>*/ i + 1 | 0; - if(_H_ === i) break; - i = _J_; + var _X_ = /*<>*/ i + 1 | 0; + if(_V_ === i) break; + i = _X_; } } /*<>*/ return 0; @@ -5023,7 +5023,7 @@ { var acc = /*<>*/ 0, param = l, pos$1 = 0; for(;;){ - /*<>*/ if(! param){var _H_ = acc; break a;} + /*<>*/ if(! param){var _V_ = acc; break a;} var hd = param[1]; if(! param[2]) break; var @@ -5041,10 +5041,10 @@ param = tl; } } - var _H_ = /*<>*/ caml_ml_bytes_length(hd) + acc | 0; + var _V_ = /*<>*/ caml_ml_bytes_length(hd) + acc | 0; } var - dst = /*<>*/ caml_create_bytes(_H_), + dst = /*<>*/ caml_create_bytes(_V_), pos = /*<>*/ pos$1, param$0 = l; for(;;){ @@ -5084,10 +5084,10 @@ /*<>*/ return r; /*<>*/ } function is_space(param){ - var _H_ = /*<>*/ param - 9 | 0; + var _V_ = /*<>*/ param - 9 | 0; a: { - if(4 < _H_ >>> 0){if(23 !== _H_) break a;} else if(2 === _H_) break a; + if(4 < _V_ >>> 0){if(23 !== _V_) break a;} else if(2 === _V_) break a; /*<>*/ return 1; } /*<>*/ return 0; @@ -5095,35 +5095,37 @@ function trim(s){ var len = /*<>*/ caml_ml_bytes_length(s), - i = /*<>*/ [0, 0]; - /*<>*/ for(;;){ - if(i[1] >= len) break; + i = /*<>*/ 0; + for(;;){ + if(i >= len) break; if (! /*<>*/ is_space - ( /*<>*/ caml_bytes_unsafe_get(s, i[1]))) + ( /*<>*/ caml_bytes_unsafe_get(s, i))) break; - /*<>*/ i[1]++; + /*<>*/ i = i + 1 | 0; } - var j = /*<>*/ [0, len - 1 | 0]; - /*<>*/ for(;;){ + var j = /*<>*/ len - 1 | 0; + for(;;){ if - (i[1] <= j[1] + (i <= j && /*<>*/ is_space - ( /*<>*/ caml_bytes_unsafe_get(s, j[1]))){ /*<>*/ j[1]--; continue;} - /*<>*/ return i[1] <= j[1] - ? /*<>*/ sub(s, i[1], (j[1] - i[1] | 0) + 1 | 0) + ( /*<>*/ caml_bytes_unsafe_get(s, j))){ /*<>*/ j = j - 1 | 0; continue;} + /*<>*/ return i <= j + ? /*<>*/ sub(s, i, (j - i | 0) + 1 | 0) : empty /*<>*/ ; } } function unsafe_escape(s){ var - n = /*<>*/ [0, 0], - _C_ = /*<>*/ caml_ml_bytes_length(s) - 1 | 0, - _E_ = 0; - if(_C_ >= 0){ - var i$0 = _E_; + _E_ = /*<>*/ 0, + _F_ = /*<>*/ caml_ml_bytes_length(s) - 1 | 0, + _Q_ = 0; + if(_F_ < 0) + var n$0 = _E_; + else{ + var n = _E_, i$0 = _Q_; for(;;){ var match = /*<>*/ caml_bytes_unsafe_get(s, i$0); a: @@ -5133,12 +5135,12 @@ c: { if(32 <= match){ - var _A_ = match - 34 | 0; - if(58 < _A_ >>> 0){ - if(93 <= _A_) break c; + var _C_ = match - 34 | 0; + if(58 < _C_ >>> 0){ + if(93 <= _C_) break c; } - else if(56 < _A_ - 1 >>> 0) break b; - var _B_ = /*<>*/ 1; + else if(56 < _C_ - 1 >>> 0) break b; + var _D_ = /*<>*/ 1; break a; } /*<>*/ if(11 <= match){ @@ -5146,26 +5148,26 @@ } else if(8 <= match) break b; } - var _B_ = /*<>*/ 4; + var _D_ = /*<>*/ 4; break a; } - var _B_ = /*<>*/ 2; + var _D_ = /*<>*/ 2; } - /*<>*/ n[1] = n[1] + _B_ | 0; - var _H_ = i$0 + 1 | 0; - if(_C_ === i$0) break; - i$0 = _H_; + var _H_ = /*<>*/ n + _D_ | 0, _U_ = i$0 + 1 | 0; + if(_F_ === i$0){var n$0 = _H_; break;} + n = _H_; + i$0 = _U_; } } - /*<>*/ if(n[1] === caml_ml_bytes_length(s)) + /*<>*/ if(n$0 === caml_ml_bytes_length(s)) /*<>*/ return s; - var s$0 = /*<>*/ caml_create_bytes(n[1]); - /*<>*/ n[1] = 0; var - _D_ = /*<>*/ caml_ml_bytes_length(s) - 1 | 0, - _F_ = 0; - if(_D_ >= 0){ - var i = _F_; + s$0 = /*<>*/ caml_create_bytes(n$0), + _G_ = /*<>*/ caml_ml_bytes_length(s) - 1 | 0, + _R_ = 0, + _S_ = 0; + if(_G_ >= 0){ + var n$1 = _R_, i = _S_; for(;;){ var c = /*<>*/ caml_bytes_unsafe_get(s, i); a: @@ -5182,53 +5184,60 @@ if(14 <= c) break b; switch(c){ case 8: - /*<>*/ caml_bytes_unsafe_set(s$0, n[1], 92); - /*<>*/ n[1]++; - /*<>*/ caml_bytes_unsafe_set(s$0, n[1], 98); + /*<>*/ caml_bytes_unsafe_set(s$0, n$1, 92); + var _I_ = /*<>*/ n$1 + 1 | 0; + /*<>*/ caml_bytes_unsafe_set(s$0, _I_, 98); + var n$2 = _I_; break a; case 9: - /*<>*/ caml_bytes_unsafe_set(s$0, n[1], 92); - /*<>*/ n[1]++; - /*<>*/ caml_bytes_unsafe_set(s$0, n[1], 116); + /*<>*/ caml_bytes_unsafe_set(s$0, n$1, 92); + var _J_ = /*<>*/ n$1 + 1 | 0; + /*<>*/ caml_bytes_unsafe_set(s$0, _J_, 116); + var n$2 = _J_; break a; case 10: - /*<>*/ caml_bytes_unsafe_set(s$0, n[1], 92); - /*<>*/ n[1]++; - /*<>*/ caml_bytes_unsafe_set(s$0, n[1], 110); + /*<>*/ caml_bytes_unsafe_set(s$0, n$1, 92); + var _K_ = /*<>*/ n$1 + 1 | 0; + /*<>*/ caml_bytes_unsafe_set(s$0, _K_, 110); + var n$2 = _K_; break a; case 13: - /*<>*/ caml_bytes_unsafe_set(s$0, n[1], 92); - /*<>*/ n[1]++; - /*<>*/ caml_bytes_unsafe_set(s$0, n[1], 114); + /*<>*/ caml_bytes_unsafe_set(s$0, n$1, 92); + var _L_ = /*<>*/ n$1 + 1 | 0; + /*<>*/ caml_bytes_unsafe_set(s$0, _L_, 114); + var n$2 = _L_; break a; default: break b; } } /*<>*/ if(34 > c) break c; } - /*<>*/ caml_bytes_unsafe_set(s$0, n[1], 92); - /*<>*/ n[1]++; - /*<>*/ caml_bytes_unsafe_set(s$0, n[1], c); + /*<>*/ caml_bytes_unsafe_set(s$0, n$1, 92); + var _P_ = /*<>*/ n$1 + 1 | 0; + /*<>*/ caml_bytes_unsafe_set(s$0, _P_, c); + var n$2 = _P_; break a; } - /*<>*/ caml_bytes_unsafe_set(s$0, n[1], c); + /*<>*/ caml_bytes_unsafe_set(s$0, n$1, c); + var n$2 = n$1; break a; } - /*<>*/ caml_bytes_unsafe_set(s$0, n[1], 92); - /*<>*/ n[1]++; + /*<>*/ caml_bytes_unsafe_set(s$0, n$1, 92); + var _M_ = /*<>*/ n$1 + 1 | 0; /*<>*/ caml_bytes_unsafe_set - (s$0, n[1], 48 + (c / 100 | 0) | 0); - /*<>*/ n[1]++; + (s$0, _M_, 48 + (c / 100 | 0) | 0); + var _N_ = /*<>*/ _M_ + 1 | 0; /*<>*/ caml_bytes_unsafe_set - (s$0, n[1], 48 + ((c / 10 | 0) % 10 | 0) | 0); - /*<>*/ n[1]++; + (s$0, _N_, 48 + ((c / 10 | 0) % 10 | 0) | 0); + var _O_ = /*<>*/ _N_ + 1 | 0; /*<>*/ caml_bytes_unsafe_set - (s$0, n[1], 48 + (c % 10 | 0) | 0); + (s$0, _O_, 48 + (c % 10 | 0) | 0); + var n$2 = _O_; } - /*<>*/ n[1]++; - var _G_ = i + 1 | 0; - if(_D_ === i) break; - i = _G_; + var _V_ = /*<>*/ n$2 + 1 | 0, _T_ = i + 1 | 0; + if(_G_ === i) break; + n$1 = _V_; + i = _T_; } } /*<>*/ return s$0; @@ -5242,19 +5251,19 @@ /*<>*/ if(0 === l) /*<>*/ return s; var r = /*<>*/ caml_create_bytes(l), - _y_ = /*<>*/ l - 1 | 0, - _z_ = 0; - if(_y_ >= 0){ - var i = _z_; + _A_ = /*<>*/ l - 1 | 0, + _B_ = 0; + if(_A_ >= 0){ + var i = _B_; for(;;){ /*<>*/ /*<>*/ caml_bytes_unsafe_set (r, i, /*<>*/ caml_call1 (f, /*<>*/ caml_bytes_unsafe_get(s, i))); - var _A_ = /*<>*/ i + 1 | 0; - if(_y_ === i) break; - i = _A_; + var _C_ = /*<>*/ i + 1 | 0; + if(_A_ === i) break; + i = _C_; } } /*<>*/ return r; @@ -5264,57 +5273,62 @@ /*<>*/ if(0 === l) /*<>*/ return s; var r = /*<>*/ caml_create_bytes(l), - _w_ = /*<>*/ l - 1 | 0, - _x_ = 0; - if(_w_ >= 0){ - var i = _x_; + _y_ = /*<>*/ l - 1 | 0, + _z_ = 0; + if(_y_ >= 0){ + var i = _z_; for(;;){ /*<>*/ /*<>*/ caml_bytes_unsafe_set (r, i, /*<>*/ caml_call2 (f, i, /*<>*/ caml_bytes_unsafe_get(s, i))); - var _y_ = /*<>*/ i + 1 | 0; - if(_w_ === i) break; - i = _y_; + var _A_ = /*<>*/ i + 1 | 0; + if(_y_ === i) break; + i = _A_; } } /*<>*/ return r; /*<>*/ } function fold_left(f, x, a){ var - r = /*<>*/ [0, x], - _u_ = /*<>*/ caml_ml_bytes_length(a) - 1 | 0, - _v_ = 0; - if(_u_ >= 0){ - var i = _v_; + _v_ = /*<>*/ caml_ml_bytes_length(a) - 1 | 0, + _x_ = 0; + if(_v_ < 0) + var r$0 = x; + else{ + var r = x, i = _x_; for(;;){ - /*<>*/ r[1] = - /*<>*/ caml_call2 - (f, r[1], /*<>*/ caml_bytes_unsafe_get(a, i)); - var _w_ = /*<>*/ i + 1 | 0; - if(_u_ === i) break; - i = _w_; + var + _w_ = + /*<>*/ /*<>*/ caml_call2 + (f, r, /*<>*/ caml_bytes_unsafe_get(a, i)), + _y_ = /*<>*/ i + 1 | 0; + if(_v_ === i){var r$0 = _w_; break;} + r = _w_; + i = _y_; } } - /*<>*/ return r[1]; + /*<>*/ return r$0; /*<>*/ } function fold_right(f, a, x){ - var - r = /*<>*/ [0, x], - _t_ = /*<>*/ caml_ml_bytes_length(a) - 1 | 0; - if(_t_ >= 0){ - var i = _t_; + var _t_ = /*<>*/ caml_ml_bytes_length(a) - 1 | 0; + if(_t_ < 0) + var r$0 = x; + else{ + var r = x, i = _t_; for(;;){ - /*<>*/ r[1] = - /*<>*/ caml_call2 - (f, /*<>*/ caml_bytes_unsafe_get(a, i), r[1]); - var _u_ = /*<>*/ i - 1 | 0; - if(0 === i) break; - i = _u_; + var + _u_ = + /*<>*/ /*<>*/ caml_call2 + (f, /*<>*/ caml_bytes_unsafe_get(a, i), r), + _v_ = /*<>*/ i - 1 | 0; + if(0 === i){var r$0 = _u_; break;} + r = _u_; + i = _v_; } } - /*<>*/ return r[1]; + /*<>*/ return r$0; /*<>*/ } function exists(p, s){ var @@ -5527,24 +5541,31 @@ cst_Bytes_of_seq_cannot_grow_b = "Bytes.of_seq: cannot grow bytes"; function split_on_char(sep, s){ var - r = /*<>*/ [0, 0], - j = /*<>*/ [0, caml_ml_bytes_length(s)], - _q_ = /*<>*/ caml_ml_bytes_length(s) - 1 | 0; - if(_q_ >= 0){ - var i = _q_; + _q_ = /*<>*/ 0, + _r_ = /*<>*/ caml_ml_bytes_length(s), + _s_ = /*<>*/ caml_ml_bytes_length(s) - 1 | 0; + if(_s_ < 0) + var j$1 = _r_, r$1 = _q_; + else{ + var j = _r_, r = _q_, i = _s_; for(;;){ - /*<>*/ if(caml_bytes_unsafe_get(s, i) === sep){ - var _s_ = /*<>*/ r[1]; - r[1] = [0, sub(s, i + 1 | 0, (j[1] - i | 0) - 1 | 0), _s_]; - /*<>*/ j[1] = i; - } - var _t_ = /*<>*/ i - 1 | 0; - if(0 === i) break; + /*<>*/ if(caml_bytes_unsafe_get(s, i) === sep) + var + j$0 = /*<>*/ i, + r$0 = + [0, + /*<>*/ sub(s, i + 1 | 0, (j - i | 0) - 1 | 0), + r]; + else + var j$0 = /*<>*/ j, r$0 = r; + var _t_ = i - 1 | 0; + if(0 === i){var j$1 = j$0, r$1 = r$0; break;} + j = j$0; + r = r$0; i = _t_; } } - var _r_ = /*<>*/ r[1]; - return [0, sub(s, 0, j[1]), _r_] /*<>*/ ; + /*<>*/ return [0, sub(s, 0, j$1), r$1] /*<>*/ ; /*<>*/ } function to_seq(s){ function aux(i, param){ @@ -6756,24 +6777,31 @@ } function split_on_char(sep, s){ var - r = /*<>*/ [0, 0], - j = /*<>*/ [0, caml_ml_string_length(s)], - _a_ = /*<>*/ caml_ml_string_length(s) - 1 | 0; - if(_a_ >= 0){ - var i = _a_; + _a_ = /*<>*/ 0, + _b_ = /*<>*/ caml_ml_string_length(s), + _c_ = /*<>*/ caml_ml_string_length(s) - 1 | 0; + if(_c_ < 0) + var j$1 = _b_, r$1 = _a_; + else{ + var j = _b_, r = _a_, i = _c_; for(;;){ - /*<>*/ if(caml_string_unsafe_get(s, i) === sep){ - var _c_ = /*<>*/ r[1]; - r[1] = [0, sub(s, i + 1 | 0, (j[1] - i | 0) - 1 | 0), _c_]; - /*<>*/ j[1] = i; - } - var _d_ = /*<>*/ i - 1 | 0; - if(0 === i) break; + /*<>*/ if(caml_string_unsafe_get(s, i) === sep) + var + j$0 = /*<>*/ i, + r$0 = + [0, + /*<>*/ sub(s, i + 1 | 0, (j - i | 0) - 1 | 0), + r]; + else + var j$0 = /*<>*/ j, r$0 = r; + var _d_ = i - 1 | 0; + if(0 === i){var j$1 = j$0, r$1 = r$0; break;} + j = j$0; + r = r$0; i = _d_; } } - var _b_ = /*<>*/ r[1]; - return [0, sub(s, 0, j[1]), _b_] /*<>*/ ; + /*<>*/ return [0, sub(s, 0, j$1), r$1] /*<>*/ ; /*<>*/ } var compare = /*<>*/ runtime.caml_string_compare; function to_seq(s){ @@ -7072,15 +7100,15 @@ res = /*<>*/ /*<>*/ caml_array_make (l, /*<>*/ caml_call1(f, 0)), - _am_ = /*<>*/ l - 1 | 0, - _an_ = 1; - if(_am_ >= 1){ - var i = _an_; + _al_ = /*<>*/ l - 1 | 0, + _am_ = 1; + if(_al_ >= 1){ + var i = _am_; for(;;){ /*<>*/ res[i + 1] = caml_call1(f, i); - var _ao_ = /*<>*/ i + 1 | 0; - if(_am_ === i) break; - i = _ao_; + var _an_ = /*<>*/ i + 1 | 0; + if(_al_ === i) break; + i = _an_; } } /*<>*/ return res; @@ -7090,14 +7118,14 @@ /*<>*/ Stdlib[1].call(null, cst_Array_make_matrix); var res = /*<>*/ caml_array_make(sx, [0]); /*<>*/ if(0 < sy){ - var _ak_ = /*<>*/ sx - 1 | 0, _al_ = 0; - if(_ak_ >= 0){ - var x = _al_; + var _aj_ = /*<>*/ sx - 1 | 0, _ak_ = 0; + if(_aj_ >= 0){ + var x = _ak_; for(;;){ /*<>*/ res[x + 1] = caml_array_make(sy, init); - var _am_ = /*<>*/ x + 1 | 0; - if(_ak_ === x) break; - x = _am_; + var _al_ = /*<>*/ x + 1 | 0; + if(_aj_ === x) break; + x = _al_; } } } @@ -7108,29 +7136,29 @@ /*<>*/ Stdlib[1].call(null, cst_Array_init_matrix); var res = /*<>*/ caml_array_make(sx, [0]); /*<>*/ if(0 < sy){ - var _af_ = /*<>*/ sx - 1 | 0, _ah_ = 0; - if(_af_ >= 0){ - var x = _ah_; + var _ae_ = /*<>*/ sx - 1 | 0, _ag_ = 0; + if(_ae_ >= 0){ + var x = _ag_; for(;;){ var row = /*<>*/ /*<>*/ caml_array_make (sy, /*<>*/ caml_call2(f, x, 0)), - _ag_ = /*<>*/ sy - 1 | 0, - _ai_ = 1; - if(_ag_ >= 1){ - var y = _ai_; + _af_ = /*<>*/ sy - 1 | 0, + _ah_ = 1; + if(_af_ >= 1){ + var y = _ah_; for(;;){ /*<>*/ row[y + 1] = caml_call2(f, x, y); - var _ak_ = /*<>*/ y + 1 | 0; - if(_ag_ === y) break; - y = _ak_; + var _aj_ = /*<>*/ y + 1 | 0; + if(_af_ === y) break; + y = _aj_; } } /*<>*/ res[x + 1] = row; - var _aj_ = x + 1 | 0; - if(_af_ === x) break; - x = _aj_; + var _ai_ = x + 1 | 0; + if(_ae_ === x) break; + x = _ai_; } } } @@ -7176,14 +7204,14 @@ /*<>*/ return Stdlib[1].call(null, cst_Array_blit) /*<>*/ ; } function iter(f, a){ - var _ad_ = /*<>*/ a.length - 2 | 0, _ae_ = 0; - if(_ad_ >= 0){ - var i = _ae_; + var _ac_ = /*<>*/ a.length - 2 | 0, _ad_ = 0; + if(_ac_ >= 0){ + var i = _ad_; for(;;){ /*<>*/ caml_call1(f, a[i + 1]); - var _af_ = /*<>*/ i + 1 | 0; - if(_ad_ === i) break; - i = _af_; + var _ae_ = /*<>*/ i + 1 | 0; + if(_ac_ === i) break; + i = _ae_; } } /*<>*/ return 0; @@ -7192,14 +7220,14 @@ /*<>*/ if(a.length - 1 !== b.length - 1) /*<>*/ return Stdlib[1].call (null, cst_Array_iter2_arrays_must_ha) /*<>*/ ; - var _ab_ = /*<>*/ a.length - 2 | 0, _ac_ = 0; - if(_ab_ >= 0){ - var i = _ac_; + var _aa_ = /*<>*/ a.length - 2 | 0, _ab_ = 0; + if(_aa_ >= 0){ + var i = _ab_; for(;;){ /*<>*/ caml_call2(f, a[i + 1], b[i + 1]); - var _ad_ = /*<>*/ i + 1 | 0; - if(_ab_ === i) break; - i = _ad_; + var _ac_ = /*<>*/ i + 1 | 0; + if(_aa_ === i) break; + i = _ac_; } } /*<>*/ return 0; @@ -7211,41 +7239,41 @@ r = /*<>*/ /*<>*/ caml_array_make (l, /*<>*/ caml_call1(f, a[1])), - _$_ = /*<>*/ l - 1 | 0, - _aa_ = 1; - if(_$_ >= 1){ - var i = _aa_; + ___ = /*<>*/ l - 1 | 0, + _$_ = 1; + if(___ >= 1){ + var i = _$_; for(;;){ /*<>*/ r[i + 1] = caml_call1(f, a[i + 1]); - var _ab_ = /*<>*/ i + 1 | 0; - if(_$_ === i) break; - i = _ab_; + var _aa_ = /*<>*/ i + 1 | 0; + if(___ === i) break; + i = _aa_; } } /*<>*/ return r; /*<>*/ } function map_inplace(f, a){ - var _Z_ = /*<>*/ a.length - 2 | 0, ___ = 0; - if(_Z_ >= 0){ - var i = ___; + var _Y_ = /*<>*/ a.length - 2 | 0, _Z_ = 0; + if(_Y_ >= 0){ + var i = _Z_; for(;;){ /*<>*/ a[i + 1] = caml_call1(f, a[i + 1]); - var _$_ = /*<>*/ i + 1 | 0; - if(_Z_ === i) break; - i = _$_; + var ___ = /*<>*/ i + 1 | 0; + if(_Y_ === i) break; + i = ___; } } /*<>*/ return 0; /*<>*/ } function mapi_inplace(f, a){ - var _X_ = /*<>*/ a.length - 2 | 0, _Y_ = 0; - if(_X_ >= 0){ - var i = _Y_; + var _W_ = /*<>*/ a.length - 2 | 0, _X_ = 0; + if(_W_ >= 0){ + var i = _X_; for(;;){ /*<>*/ a[i + 1] = caml_call2(f, i, a[i + 1]); - var _Z_ = /*<>*/ i + 1 | 0; - if(_X_ === i) break; - i = _Z_; + var _Y_ = /*<>*/ i + 1 | 0; + if(_W_ === i) break; + i = _Y_; } } /*<>*/ return 0; @@ -7262,28 +7290,28 @@ r = /*<>*/ /*<>*/ caml_array_make (la, /*<>*/ caml_call2(f, a[1], b[1])), - _V_ = /*<>*/ la - 1 | 0, - _W_ = 1; - if(_V_ >= 1){ - var i = _W_; + _U_ = /*<>*/ la - 1 | 0, + _V_ = 1; + if(_U_ >= 1){ + var i = _V_; for(;;){ /*<>*/ r[i + 1] = caml_call2(f, a[i + 1], b[i + 1]); - var _X_ = /*<>*/ i + 1 | 0; - if(_V_ === i) break; - i = _X_; + var _W_ = /*<>*/ i + 1 | 0; + if(_U_ === i) break; + i = _W_; } } /*<>*/ return r; /*<>*/ } function iteri(f, a){ - var _T_ = /*<>*/ a.length - 2 | 0, _U_ = 0; - if(_T_ >= 0){ - var i = _U_; + var _S_ = /*<>*/ a.length - 2 | 0, _T_ = 0; + if(_S_ >= 0){ + var i = _T_; for(;;){ /*<>*/ caml_call2(f, i, a[i + 1]); - var _V_ = /*<>*/ i + 1 | 0; - if(_T_ === i) break; - i = _V_; + var _U_ = /*<>*/ i + 1 | 0; + if(_S_ === i) break; + i = _U_; } } /*<>*/ return 0; @@ -7295,15 +7323,15 @@ r = /*<>*/ /*<>*/ caml_array_make (l, /*<>*/ caml_call2(f, 0, a[1])), - _R_ = /*<>*/ l - 1 | 0, - _S_ = 1; - if(_R_ >= 1){ - var i = _S_; + _Q_ = /*<>*/ l - 1 | 0, + _R_ = 1; + if(_Q_ >= 1){ + var i = _R_; for(;;){ /*<>*/ r[i + 1] = caml_call2(f, i, a[i + 1]); - var _T_ = /*<>*/ i + 1 | 0; - if(_R_ === i) break; - i = _T_; + var _S_ = /*<>*/ i + 1 | 0; + if(_Q_ === i) break; + i = _S_; } } /*<>*/ return r; @@ -7348,20 +7376,21 @@ } /*<>*/ } function fold_left(f, x, a){ - var - r = /*<>*/ [0, x], - _P_ = /*<>*/ a.length - 2 | 0, - _Q_ = 0; - if(_P_ >= 0){ - var i = _Q_; + var _N_ = /*<>*/ a.length - 2 | 0, _P_ = 0; + if(_N_ < 0) + var r$0 = x; + else{ + var r = x, i = _P_; for(;;){ - /*<>*/ r[1] = caml_call2(f, r[1], a[i + 1]); - var _R_ = /*<>*/ i + 1 | 0; - if(_P_ === i) break; - i = _R_; + var + _O_ = /*<>*/ caml_call2(f, r, a[i + 1]), + _Q_ = /*<>*/ i + 1 | 0; + if(_N_ === i){var r$0 = _O_; break;} + r = _O_; + i = _Q_; } } - /*<>*/ return r[1]; + /*<>*/ return r$0; /*<>*/ } function fold_left_map(f, acc, input_array){ var len = /*<>*/ input_array.length - 1; @@ -7372,40 +7401,43 @@ elt = /*<>*/ match[2], acc$0 = match[1], output_array = /*<>*/ caml_array_make(len, elt), - acc$1 = /*<>*/ [0, acc$0], - _N_ = /*<>*/ len - 1 | 0, - _O_ = 1; - if(_N_ >= 1){ - var i = _O_; + _L_ = /*<>*/ len - 1 | 0, + _M_ = 1; + if(_L_ < 1) + var acc$3 = acc$0; + else{ + var acc$2 = acc$0, i = _M_; for(;;){ var match$0 = - /*<>*/ caml_call2(f, acc$1[1], input_array[i + 1]), + /*<>*/ caml_call2(f, acc$2, input_array[i + 1]), elt$0 = /*<>*/ match$0[2], - acc$2 = match$0[1]; - /*<>*/ acc$1[1] = acc$2; - /*<>*/ output_array[i + 1] = elt$0; - var _P_ = /*<>*/ i + 1 | 0; - if(_N_ === i) break; - i = _P_; + acc$1 = match$0[1]; + /*<>*/ output_array[i + 1] = elt$0; + var _N_ = /*<>*/ i + 1 | 0; + if(_L_ === i){var acc$3 = acc$1; break;} + acc$2 = acc$1; + i = _N_; } } - /*<>*/ return [0, acc$1[1], output_array]; + /*<>*/ return [0, acc$3, output_array]; /*<>*/ } function fold_right(f, a, x){ - var - r = /*<>*/ [0, x], - _M_ = /*<>*/ a.length - 2 | 0; - if(_M_ >= 0){ - var i = _M_; + var _J_ = /*<>*/ a.length - 2 | 0; + if(_J_ < 0) + var r$0 = x; + else{ + var r = x, i = _J_; for(;;){ - /*<>*/ r[1] = caml_call2(f, a[i + 1], r[1]); - var _N_ = /*<>*/ i - 1 | 0; - if(0 === i) break; - i = _N_; + var + _K_ = /*<>*/ caml_call2(f, a[i + 1], r), + _L_ = /*<>*/ i - 1 | 0; + if(0 === i){var r$0 = _K_; break;} + r = _K_; + i = _L_; } } - /*<>*/ return r[1]; + /*<>*/ return r$0; /*<>*/ } function exists(p, a){ var @@ -7540,10 +7572,10 @@ n = /*<>*/ x.length - 1, a = /*<>*/ caml_array_make(n, a0), b = /*<>*/ caml_array_make(n, b0), - _K_ = /*<>*/ n - 1 | 0, - _L_ = 1; - if(_K_ >= 1){ - var i = _L_; + _H_ = /*<>*/ n - 1 | 0, + _I_ = 1; + if(_H_ >= 1){ + var i = _I_; for(;;){ var match$0 = /*<>*/ x[i + 1], @@ -7551,9 +7583,9 @@ ai = match$0[1]; /*<>*/ a[i + 1] = ai; /*<>*/ b[i + 1] = bi; - var _M_ = /*<>*/ i + 1 | 0; - if(_K_ === i) break; - i = _M_; + var _J_ = /*<>*/ i + 1 | 0; + if(_H_ === i) break; + i = _J_; } } /*<>*/ return [0, a, b]; @@ -7567,15 +7599,15 @@ /*<>*/ if(0 === na) /*<>*/ return [0]; var x = /*<>*/ caml_array_make(na, [0, a[1], b[1]]), - _I_ = /*<>*/ na - 1 | 0, - _J_ = 1; - if(_I_ >= 1){ - var i = _J_; + _F_ = /*<>*/ na - 1 | 0, + _G_ = 1; + if(_F_ >= 1){ + var i = _G_; for(;;){ /*<>*/ x[i + 1] = [0, a[i + 1], b[i + 1]]; - var _K_ = i + 1 | 0; - if(_I_ === i) break; - i = _K_; + var _H_ = i + 1 | 0; + if(_F_ === i) break; + i = _H_; } } /*<>*/ return x; @@ -7590,44 +7622,40 @@ cst_Array_shuffle_rand = "Array.shuffle: 'rand "; function sort(cmp, a){ function maxson(l, i){ - var - i31 = /*<>*/ ((i + i | 0) + i | 0) + 1 | 0, - x = /*<>*/ [0, i31]; - /*<>*/ if((i31 + 2 | 0) < l){ - var - _C_ = /*<>*/ i31 + 1 | 0, - _G_ = /*<>*/ caml_check_bound(a, _C_)[_C_ + 1]; - /*<>*/ if - ( /*<>*/ caml_call2 - (cmp, - /*<>*/ caml_check_bound(a, i31)[i31 + 1], - _G_) - < 0) - /*<>*/ x[1] = i31 + 1 | 0; + var i31 = /*<>*/ ((i + i | 0) + i | 0) + 1 | 0; + /*<>*/ if((i31 + 2 | 0) < l){ var - _D_ = /*<>*/ i31 + 2 | 0, - _H_ = /*<>*/ caml_check_bound(a, _D_)[_D_ + 1], - _E_ = /*<>*/ x[1]; - /*<>*/ if - ( /*<>*/ caml_call2 - (cmp, - /*<>*/ caml_check_bound(a, _E_)[_E_ + 1], - _H_) - < 0) - /*<>*/ x[1] = i31 + 2 | 0; - /*<>*/ return x[1]; + _A_ = /*<>*/ i31 + 1 | 0, + _D_ = /*<>*/ caml_check_bound(a, _A_)[_A_ + 1], + x = + /*<>*/ /*<>*/ caml_call2 + (cmp, + /*<>*/ caml_check_bound(a, i31)[i31 + 1], + _D_) + < 0 + ? i31 + 1 | 0 + : i31, + _B_ = /*<>*/ i31 + 2 | 0, + _E_ = /*<>*/ caml_check_bound(a, _B_)[_B_ + 1], + x$0 = + /*<>*/ /*<>*/ caml_call2 + (cmp, /*<>*/ caml_check_bound(a, x)[x + 1], _E_) + < 0 + ? i31 + 2 | 0 + : x; + /*<>*/ return x$0; } /*<>*/ if((i31 + 1 | 0) < l){ var - _F_ = i31 + 1 | 0, - _I_ = /*<>*/ caml_check_bound(a, _F_)[_F_ + 1]; + _C_ = i31 + 1 | 0, + _F_ = /*<>*/ caml_check_bound(a, _C_)[_C_ + 1]; /*<>*/ if (0 > /*<>*/ caml_call2 (cmp, /*<>*/ caml_check_bound(a, i31)[i31 + 1], - _I_)) + _F_)) /*<>*/ return i31 + 1 | 0; } /*<>*/ if(i31 < l) /*<>*/ return i31; @@ -7636,9 +7664,9 @@ /*<>*/ } var l = /*<>*/ a.length - 1, - _u_ = /*<>*/ ((l + 1 | 0) / 3 | 0) - 1 | 0; - if(_u_ >= 0){ - var i$6 = _u_; + _s_ = /*<>*/ ((l + 1 | 0) / 3 | 0) - 1 | 0; + if(_s_ >= 0){ + var i$6 = _s_; for(;;){ var e$1 = /*<>*/ caml_check_bound(a, i$6)[i$6 + 1]; /*<>*/ try{ @@ -7653,8 +7681,8 @@ /*<>*/ caml_check_bound(a, i)[i + 1] = e$1; break; } - var _y_ = /*<>*/ caml_check_bound(a, j)[j + 1]; - /*<>*/ caml_check_bound(a, i)[i + 1] = _y_; + var _w_ = /*<>*/ caml_check_bound(a, j)[j + 1]; + /*<>*/ caml_check_bound(a, i)[i + 1] = _w_; /*<>*/ i = j; } } @@ -7664,14 +7692,14 @@ var i$0 = exn[2]; /*<>*/ caml_check_bound(a, i$0)[i$0 + 1] = e$1; } - var _C_ = /*<>*/ i$6 - 1 | 0; + var _A_ = /*<>*/ i$6 - 1 | 0; if(0 === i$6) break; - i$6 = _C_; + i$6 = _A_; } } - var _v_ = /*<>*/ l - 1 | 0; - if(_v_ >= 2){ - var i$4 = _v_; + var _t_ = /*<>*/ l - 1 | 0; + if(_t_ >= 2){ + var i$4 = _t_; a: for(;;){ var e$0 = /*<>*/ caml_check_bound(a, i$4)[i$4 + 1]; @@ -7682,8 +7710,8 @@ for(;;){ var j$0 = /*<>*/ maxson(i$4, i$1), - _z_ = /*<>*/ caml_check_bound(a, j$0)[j$0 + 1]; - /*<>*/ caml_check_bound(a, i$1)[i$1 + 1] = _z_; + _x_ = /*<>*/ caml_check_bound(a, j$0)[j$0 + 1]; + /*<>*/ caml_check_bound(a, i$1)[i$1 + 1] = _x_; /*<>*/ i$1 = j$0; } } @@ -7705,30 +7733,30 @@ /*<>*/ caml_check_bound(a, i$3)[i$3 + 1] = e$0; else{ var - _A_ = + _y_ = /*<>*/ caml_check_bound(a, father)[father + 1]; - /*<>*/ caml_check_bound(a, i$3)[i$3 + 1] = _A_; + /*<>*/ caml_check_bound(a, i$3)[i$3 + 1] = _y_; /*<>*/ if(0 < father){i$3 = father; continue;} /*<>*/ caml_check_bound(a, 0)[1] = e$0; } - var _B_ = /*<>*/ i$4 - 1 | 0; + var _z_ = /*<>*/ i$4 - 1 | 0; if(2 === i$4) break a; - i$4 = _B_; + i$4 = _z_; break; } } } } - var _w_ = /*<>*/ 1 < l ? 1 : 0; - if(_w_){ + var _u_ = /*<>*/ 1 < l ? 1 : 0; + if(_u_){ var e = /*<>*/ caml_check_bound(a, 1)[2]; /*<>*/ a[2] = caml_check_bound(a, 0)[1]; /*<>*/ a[1] = e; - var _x_ = /*<>*/ 0; + var _v_ = /*<>*/ 0; } else - var _x_ = /*<>*/ _w_; - return _x_; + var _v_ = /*<>*/ _u_; + return _v_; /*<>*/ } function stable_sort(cmp, a){ function merge(src1ofs, src1len, src2, src2ofs, src2len, dst, dstofs){ @@ -7773,39 +7801,37 @@ } /*<>*/ } function isortto(srcofs, dst, dstofs, len){ - var _m_ = /*<>*/ len - 1 | 0, _s_ = 0; + var _m_ = /*<>*/ len - 1 | 0, _q_ = 0; if(_m_ >= 0){ - var i = _s_; + var i = _q_; a: for(;;){ var _n_ = /*<>*/ srcofs + i | 0, e = /*<>*/ caml_check_bound(a, _n_)[_n_ + 1], - j = /*<>*/ [0, (dstofs + i | 0) - 1 | 0]; - /*<>*/ for(;;){ - if(dstofs <= j[1]){ - var _o_ = j[1]; - /*<>*/ if - (0 + j = /*<>*/ (dstofs + i | 0) - 1 | 0; + for(;;){ + if + (dstofs <= j + && + 0 < /*<>*/ caml_call2 (cmp, - /*<>*/ caml_check_bound(dst, _o_)[_o_ + 1], + /*<>*/ caml_check_bound(dst, j)[j + 1], e)){ - var - _p_ = /*<>*/ j[1], - _t_ = /*<>*/ caml_check_bound(dst, _p_)[_p_ + 1], - _q_ = /*<>*/ j[1] + 1 | 0; - /*<>*/ caml_check_bound(dst, _q_)[_q_ + 1] = _t_; - /*<>*/ j[1]--; - continue; - } + var + _o_ = /*<>*/ j + 1 | 0, + _r_ = /*<>*/ caml_check_bound(dst, j)[j + 1]; + /*<>*/ caml_check_bound(dst, _o_)[_o_ + 1] = _r_; + /*<>*/ j = j - 1 | 0; + continue; } - var _r_ = /*<>*/ j[1] + 1 | 0; - caml_check_bound(dst, _r_)[_r_ + 1] = e; - var _u_ = /*<>*/ i + 1 | 0; + var _p_ = /*<>*/ j + 1 | 0; + caml_check_bound(dst, _p_)[_p_ + 1] = e; + var _s_ = /*<>*/ i + 1 | 0; if(_m_ === i) break a; - i = _u_; + i = _s_; break; } } @@ -8036,8 +8062,8 @@ to_string = Stdlib[35]; function is_integer(x){ var - _ap_ = /*<>*/ x === runtime.caml_trunc_float(x) ? 1 : 0; - /*<>*/ return _ap_ ? is_finite(x) : _ap_ /*<>*/ ; + _ao_ = /*<>*/ x === runtime.caml_trunc_float(x) ? 1 : 0; + /*<>*/ return _ao_ ? is_finite(x) : _ao_ /*<>*/ ; } function succ(x){ /*<>*/ return caml_nextafter_float(x, infinity) /*<>*/ ; @@ -8134,19 +8160,19 @@ /*<>*/ return caml_hash(10, 100, 0, x) /*<>*/ ; } function check(a, ofs, len, msg){ - var _an_ = /*<>*/ ofs < 0 ? 1 : 0; - if(_an_) - var _am_ = _an_; + var _am_ = /*<>*/ ofs < 0 ? 1 : 0; + if(_am_) + var _al_ = _am_; else{ - var _ao_ = len < 0 ? 1 : 0; - if(_ao_) - var _am_ = _ao_; + var _an_ = len < 0 ? 1 : 0; + if(_an_) + var _al_ = _an_; else var - _ap_ = (ofs + len | 0) < 0 ? 1 : 0, - _am_ = _ap_ || (a.length - 1 < (ofs + len | 0) ? 1 : 0); + _ao_ = (ofs + len | 0) < 0 ? 1 : 0, + _al_ = _ao_ || (a.length - 1 < (ofs + len | 0) ? 1 : 0); } - return _am_ ? /*<>*/ Stdlib[1].call(null, msg) : _am_ /*<>*/ ; + return _al_ ? /*<>*/ Stdlib[1].call(null, msg) : _al_ /*<>*/ ; } var empty = /*<>*/ caml_floatarray_create(0), @@ -8169,15 +8195,15 @@ (null, cst_Float_Array_init) /*<>*/ ; var res = /*<>*/ caml_floatarray_create(l), - _ak_ = /*<>*/ l - 1 | 0, - _al_ = 0; - if(_ak_ >= 0){ - var i = _al_; + _aj_ = /*<>*/ l - 1 | 0, + _ak_ = 0; + if(_aj_ >= 0){ + var i = _ak_; for(;;){ /*<>*/ res[i + 1] = caml_call1(f, i); - var _am_ = /*<>*/ i + 1 | 0; - if(_ak_ === i) break; - i = _am_; + var _al_ = /*<>*/ i + 1 | 0; + if(_aj_ === i) break; + i = _al_; } } /*<>*/ return res; @@ -8191,14 +8217,14 @@ /*<>*/ /*<>*/ caml_array_make (sx, /*<>*/ caml_floatarray_create(0)); /*<>*/ if(0 < sy){ - var _ai_ = /*<>*/ sx - 1 | 0, _aj_ = 0; - if(_ai_ >= 0){ - var x = _aj_; + var _ah_ = /*<>*/ sx - 1 | 0, _ai_ = 0; + if(_ah_ >= 0){ + var x = _ai_; for(;;){ /*<>*/ res[x + 1] = caml_floatarray_make(sy, v); - var _ak_ = /*<>*/ x + 1 | 0; - if(_ai_ === x) break; - x = _ak_; + var _aj_ = /*<>*/ x + 1 | 0; + if(_ah_ === x) break; + x = _aj_; } } } @@ -8213,27 +8239,27 @@ /*<>*/ /*<>*/ caml_array_make (sx, /*<>*/ caml_floatarray_create(0)); /*<>*/ if(0 < sy){ - var _ad_ = /*<>*/ sx - 1 | 0, _af_ = 0; - if(_ad_ >= 0){ - var x = _af_; + var _ac_ = /*<>*/ sx - 1 | 0, _ae_ = 0; + if(_ac_ >= 0){ + var x = _ae_; for(;;){ var row = /*<>*/ caml_floatarray_create(sy), - _ae_ = /*<>*/ sy - 1 | 0, - _ag_ = 0; - if(_ae_ >= 0){ - var y = _ag_; + _ad_ = /*<>*/ sy - 1 | 0, + _af_ = 0; + if(_ad_ >= 0){ + var y = _af_; for(;;){ /*<>*/ row[y + 1] = caml_call2(f, x, y); - var _ai_ = /*<>*/ y + 1 | 0; - if(_ae_ === y) break; - y = _ai_; + var _ah_ = /*<>*/ y + 1 | 0; + if(_ad_ === y) break; + y = _ah_; } } /*<>*/ res[x + 1] = row; - var _ah_ = /*<>*/ x + 1 | 0; - if(_ad_ === x) break; - x = _ah_; + var _ag_ = /*<>*/ x + 1 | 0; + if(_ac_ === x) break; + x = _ag_; } } } @@ -8312,7 +8338,7 @@ /*<>*/ return Stdlib_List[11].call (null, a.length - 1, - function(_ad_){ /*<>*/ return a[_ad_ + 1];}) /*<>*/ ; + function(_ac_){ /*<>*/ return a[_ac_ + 1];}) /*<>*/ ; } function of_list(l){ var @@ -8331,14 +8357,14 @@ } /*<>*/ } function iter(f, a){ - var _ab_ = /*<>*/ a.length - 2 | 0, _ac_ = 0; - if(_ab_ >= 0){ - var i = _ac_; + var _aa_ = /*<>*/ a.length - 2 | 0, _ab_ = 0; + if(_aa_ >= 0){ + var i = _ab_; for(;;){ /*<>*/ caml_call1(f, a[i + 1]); - var _ad_ = /*<>*/ i + 1 | 0; - if(_ab_ === i) break; - i = _ad_; + var _ac_ = /*<>*/ i + 1 | 0; + if(_aa_ === i) break; + i = _ac_; } } /*<>*/ return 0; @@ -8347,14 +8373,14 @@ /*<>*/ if(a.length - 1 !== b.length - 1) /*<>*/ return Stdlib[1].call (null, cst_Float_Array_iter2_arrays_m) /*<>*/ ; - var _$_ = /*<>*/ a.length - 2 | 0, _aa_ = 0; - if(_$_ >= 0){ - var i = _aa_; + var ___ = /*<>*/ a.length - 2 | 0, _$_ = 0; + if(___ >= 0){ + var i = _$_; for(;;){ /*<>*/ caml_call2(f, a[i + 1], b[i + 1]); - var _ab_ = /*<>*/ i + 1 | 0; - if(_$_ === i) break; - i = _ab_; + var _aa_ = /*<>*/ i + 1 | 0; + if(___ === i) break; + i = _aa_; } } /*<>*/ return 0; @@ -8363,28 +8389,28 @@ var l = /*<>*/ a.length - 1, r = /*<>*/ caml_floatarray_create(l), - _Z_ = /*<>*/ l - 1 | 0, - ___ = 0; - if(_Z_ >= 0){ - var i = ___; + _Y_ = /*<>*/ l - 1 | 0, + _Z_ = 0; + if(_Y_ >= 0){ + var i = _Z_; for(;;){ /*<>*/ r[i + 1] = caml_call1(f, a[i + 1]); - var _$_ = /*<>*/ i + 1 | 0; - if(_Z_ === i) break; - i = _$_; + var ___ = /*<>*/ i + 1 | 0; + if(_Y_ === i) break; + i = ___; } } /*<>*/ return r; /*<>*/ } function map_inplace(f, a){ - var _X_ = /*<>*/ a.length - 2 | 0, _Y_ = 0; - if(_X_ >= 0){ - var i = _Y_; + var _W_ = /*<>*/ a.length - 2 | 0, _X_ = 0; + if(_W_ >= 0){ + var i = _X_; for(;;){ /*<>*/ a[i + 1] = caml_call1(f, a[i + 1]); - var _Z_ = /*<>*/ i + 1 | 0; - if(_X_ === i) break; - i = _Z_; + var _Y_ = /*<>*/ i + 1 | 0; + if(_W_ === i) break; + i = _Y_; } } /*<>*/ return 0; @@ -8398,28 +8424,28 @@ (null, cst_Float_Array_map2_arrays_mu) /*<>*/ ; var r = /*<>*/ caml_floatarray_create(la), - _V_ = /*<>*/ la - 1 | 0, - _W_ = 0; - if(_V_ >= 0){ - var i = _W_; + _U_ = /*<>*/ la - 1 | 0, + _V_ = 0; + if(_U_ >= 0){ + var i = _V_; for(;;){ /*<>*/ r[i + 1] = caml_call2(f, a[i + 1], b[i + 1]); - var _X_ = /*<>*/ i + 1 | 0; - if(_V_ === i) break; - i = _X_; + var _W_ = /*<>*/ i + 1 | 0; + if(_U_ === i) break; + i = _W_; } } /*<>*/ return r; /*<>*/ } function iteri(f, a){ - var _T_ = /*<>*/ a.length - 2 | 0, _U_ = 0; - if(_T_ >= 0){ - var i = _U_; + var _S_ = /*<>*/ a.length - 2 | 0, _T_ = 0; + if(_S_ >= 0){ + var i = _T_; for(;;){ /*<>*/ caml_call2(f, i, a[i + 1]); - var _V_ = /*<>*/ i + 1 | 0; - if(_T_ === i) break; - i = _V_; + var _U_ = /*<>*/ i + 1 | 0; + if(_S_ === i) break; + i = _U_; } } /*<>*/ return 0; @@ -8428,62 +8454,65 @@ var l = /*<>*/ a.length - 1, r = /*<>*/ caml_floatarray_create(l), - _R_ = /*<>*/ l - 1 | 0, - _S_ = 0; - if(_R_ >= 0){ - var i = _S_; + _Q_ = /*<>*/ l - 1 | 0, + _R_ = 0; + if(_Q_ >= 0){ + var i = _R_; for(;;){ /*<>*/ r[i + 1] = caml_call2(f, i, a[i + 1]); - var _T_ = /*<>*/ i + 1 | 0; - if(_R_ === i) break; - i = _T_; + var _S_ = /*<>*/ i + 1 | 0; + if(_Q_ === i) break; + i = _S_; } } /*<>*/ return r; /*<>*/ } function mapi_inplace(f, a){ - var _P_ = /*<>*/ a.length - 2 | 0, _Q_ = 0; - if(_P_ >= 0){ - var i = _Q_; + var _O_ = /*<>*/ a.length - 2 | 0, _P_ = 0; + if(_O_ >= 0){ + var i = _P_; for(;;){ /*<>*/ a[i + 1] = caml_call2(f, i, a[i + 1]); - var _R_ = /*<>*/ i + 1 | 0; - if(_P_ === i) break; - i = _R_; + var _Q_ = /*<>*/ i + 1 | 0; + if(_O_ === i) break; + i = _Q_; } } /*<>*/ return 0; /*<>*/ } function fold_left(f, x, a){ - var - r = /*<>*/ [0, x], - _N_ = /*<>*/ a.length - 2 | 0, - _O_ = 0; - if(_N_ >= 0){ - var i = _O_; + var _L_ = /*<>*/ a.length - 2 | 0, _N_ = 0; + if(_L_ < 0) + var r$0 = x; + else{ + var r = x, i = _N_; for(;;){ - /*<>*/ r[1] = caml_call2(f, r[1], a[i + 1]); - var _P_ = /*<>*/ i + 1 | 0; - if(_N_ === i) break; - i = _P_; + var + _M_ = /*<>*/ caml_call2(f, r, a[i + 1]), + _O_ = /*<>*/ i + 1 | 0; + if(_L_ === i){var r$0 = _M_; break;} + r = _M_; + i = _O_; } } - /*<>*/ return r[1]; + /*<>*/ return r$0; /*<>*/ } function fold_right(f, a, x){ - var - r = /*<>*/ [0, x], - _M_ = /*<>*/ a.length - 2 | 0; - if(_M_ >= 0){ - var i = _M_; + var _J_ = /*<>*/ a.length - 2 | 0; + if(_J_ < 0) + var r$0 = x; + else{ + var r = x, i = _J_; for(;;){ - /*<>*/ r[1] = caml_call2(f, a[i + 1], r[1]); - var _N_ = /*<>*/ i - 1 | 0; - if(0 === i) break; - i = _N_; + var + _K_ = /*<>*/ caml_call2(f, a[i + 1], r), + _L_ = /*<>*/ i - 1 | 0; + if(0 === i){var r$0 = _K_; break;} + r = _K_; + i = _L_; } } - /*<>*/ return r[1]; + /*<>*/ return r$0; /*<>*/ } function exists(p, a){ var @@ -8590,44 +8619,40 @@ _b_ = [0, cst_float_ml, 483, 6]; function sort(cmp, a){ function maxson(l, i){ - var - i31 = /*<>*/ ((i + i | 0) + i | 0) + 1 | 0, - x = /*<>*/ [0, i31]; - /*<>*/ if((i31 + 2 | 0) < l){ - var - _G_ = /*<>*/ i31 + 1 | 0, - _K_ = /*<>*/ caml_check_bound(a, _G_)[_G_ + 1]; - /*<>*/ if - ( /*<>*/ caml_call2 - (cmp, - /*<>*/ caml_check_bound(a, i31)[i31 + 1], - _K_) - < 0) - /*<>*/ x[1] = i31 + 1 | 0; + var i31 = /*<>*/ ((i + i | 0) + i | 0) + 1 | 0; + /*<>*/ if((i31 + 2 | 0) < l){ var - _H_ = /*<>*/ i31 + 2 | 0, - _L_ = /*<>*/ caml_check_bound(a, _H_)[_H_ + 1], - _I_ = /*<>*/ x[1]; - /*<>*/ if - ( /*<>*/ caml_call2 - (cmp, - /*<>*/ caml_check_bound(a, _I_)[_I_ + 1], - _L_) - < 0) - /*<>*/ x[1] = i31 + 2 | 0; - /*<>*/ return x[1]; + _E_ = /*<>*/ i31 + 1 | 0, + _H_ = /*<>*/ caml_check_bound(a, _E_)[_E_ + 1], + x = + /*<>*/ /*<>*/ caml_call2 + (cmp, + /*<>*/ caml_check_bound(a, i31)[i31 + 1], + _H_) + < 0 + ? i31 + 1 | 0 + : i31, + _F_ = /*<>*/ i31 + 2 | 0, + _I_ = /*<>*/ caml_check_bound(a, _F_)[_F_ + 1], + x$0 = + /*<>*/ /*<>*/ caml_call2 + (cmp, /*<>*/ caml_check_bound(a, x)[x + 1], _I_) + < 0 + ? i31 + 2 | 0 + : x; + /*<>*/ return x$0; } /*<>*/ if((i31 + 1 | 0) < l){ var - _J_ = i31 + 1 | 0, - _M_ = /*<>*/ caml_check_bound(a, _J_)[_J_ + 1]; + _G_ = i31 + 1 | 0, + _J_ = /*<>*/ caml_check_bound(a, _G_)[_G_ + 1]; /*<>*/ if (0 > /*<>*/ caml_call2 (cmp, /*<>*/ caml_check_bound(a, i31)[i31 + 1], - _M_)) + _J_)) /*<>*/ return i31 + 1 | 0; } /*<>*/ if(i31 < l) /*<>*/ return i31; @@ -8636,9 +8661,9 @@ /*<>*/ } var l = /*<>*/ a.length - 1, - _y_ = /*<>*/ ((l + 1 | 0) / 3 | 0) - 1 | 0; - if(_y_ >= 0){ - var i$6 = _y_; + _w_ = /*<>*/ ((l + 1 | 0) / 3 | 0) - 1 | 0; + if(_w_ >= 0){ + var i$6 = _w_; for(;;){ var e$1 = /*<>*/ caml_check_bound(a, i$6)[i$6 + 1]; /*<>*/ try{ @@ -8653,8 +8678,8 @@ /*<>*/ caml_check_bound(a, i)[i + 1] = e$1; break; } - var _C_ = /*<>*/ caml_check_bound(a, j)[j + 1]; - /*<>*/ caml_check_bound(a, i)[i + 1] = _C_; + var _A_ = /*<>*/ caml_check_bound(a, j)[j + 1]; + /*<>*/ caml_check_bound(a, i)[i + 1] = _A_; /*<>*/ i = j; } } @@ -8664,14 +8689,14 @@ var i$0 = exn[2]; /*<>*/ caml_check_bound(a, i$0)[i$0 + 1] = e$1; } - var _G_ = /*<>*/ i$6 - 1 | 0; + var _E_ = /*<>*/ i$6 - 1 | 0; if(0 === i$6) break; - i$6 = _G_; + i$6 = _E_; } } - var _z_ = /*<>*/ l - 1 | 0; - if(_z_ >= 2){ - var i$4 = _z_; + var _x_ = /*<>*/ l - 1 | 0; + if(_x_ >= 2){ + var i$4 = _x_; a: for(;;){ var e$0 = /*<>*/ caml_check_bound(a, i$4)[i$4 + 1]; @@ -8682,8 +8707,8 @@ for(;;){ var j$0 = /*<>*/ maxson(i$4, i$1), - _D_ = /*<>*/ caml_check_bound(a, j$0)[j$0 + 1]; - /*<>*/ caml_check_bound(a, i$1)[i$1 + 1] = _D_; + _B_ = /*<>*/ caml_check_bound(a, j$0)[j$0 + 1]; + /*<>*/ caml_check_bound(a, i$1)[i$1 + 1] = _B_; /*<>*/ i$1 = j$0; } } @@ -8705,30 +8730,30 @@ /*<>*/ caml_check_bound(a, i$3)[i$3 + 1] = e$0; else{ var - _E_ = + _C_ = /*<>*/ caml_check_bound(a, father)[father + 1]; - /*<>*/ caml_check_bound(a, i$3)[i$3 + 1] = _E_; + /*<>*/ caml_check_bound(a, i$3)[i$3 + 1] = _C_; /*<>*/ if(0 < father){i$3 = father; continue;} /*<>*/ caml_check_bound(a, 0)[1] = e$0; } - var _F_ = /*<>*/ i$4 - 1 | 0; + var _D_ = /*<>*/ i$4 - 1 | 0; if(2 === i$4) break a; - i$4 = _F_; + i$4 = _D_; break; } } } } - var _A_ = /*<>*/ 1 < l ? 1 : 0; - if(_A_){ + var _y_ = /*<>*/ 1 < l ? 1 : 0; + if(_y_){ var e = /*<>*/ caml_check_bound(a, 1)[2]; /*<>*/ a[2] = caml_check_bound(a, 0)[1]; /*<>*/ a[1] = e; - var _B_ = /*<>*/ 0; + var _z_ = /*<>*/ 0; } else - var _B_ = /*<>*/ _A_; - return _B_; + var _z_ = /*<>*/ _y_; + return _z_; /*<>*/ } function stable_sort(cmp, a){ function merge(src1ofs, src1len, src2, src2ofs, src2len, dst, dstofs){ @@ -8773,39 +8798,37 @@ } /*<>*/ } function isortto(srcofs, dst, dstofs, len){ - var _q_ = /*<>*/ len - 1 | 0, _w_ = 0; + var _q_ = /*<>*/ len - 1 | 0, _u_ = 0; if(_q_ >= 0){ - var i = _w_; + var i = _u_; a: for(;;){ var _r_ = /*<>*/ srcofs + i | 0, e = /*<>*/ caml_check_bound(a, _r_)[_r_ + 1], - j = /*<>*/ [0, (dstofs + i | 0) - 1 | 0]; - /*<>*/ for(;;){ - if(dstofs <= j[1]){ - var _s_ = j[1]; - /*<>*/ if - (0 + j = /*<>*/ (dstofs + i | 0) - 1 | 0; + for(;;){ + if + (dstofs <= j + && + 0 < /*<>*/ caml_call2 (cmp, - /*<>*/ caml_check_bound(dst, _s_)[_s_ + 1], + /*<>*/ caml_check_bound(dst, j)[j + 1], e)){ - var - _t_ = /*<>*/ j[1], - _x_ = /*<>*/ caml_check_bound(dst, _t_)[_t_ + 1], - _u_ = /*<>*/ j[1] + 1 | 0; - /*<>*/ caml_check_bound(dst, _u_)[_u_ + 1] = _x_; - /*<>*/ j[1]--; - continue; - } + var + _s_ = /*<>*/ j + 1 | 0, + _v_ = /*<>*/ caml_check_bound(dst, j)[j + 1]; + /*<>*/ caml_check_bound(dst, _s_)[_s_ + 1] = _v_; + /*<>*/ j = j - 1 | 0; + continue; } - var _v_ = /*<>*/ j[1] + 1 | 0; - caml_check_bound(dst, _v_)[_v_ + 1] = e; - var _y_ = /*<>*/ i + 1 | 0; + var _t_ = /*<>*/ j + 1 | 0; + caml_check_bound(dst, _t_)[_t_ + 1] = e; + var _w_ = /*<>*/ i + 1 | 0; if(_q_ === i) break a; - i = _y_; + i = _w_; break; } } @@ -12548,21 +12571,28 @@ var old_pos = /*<>*/ b[2], old_len = /*<>*/ b[1][2], - new_len = /*<>*/ [0, old_len]; - /*<>*/ for(;;){ - if(new_len[1] >= (old_pos + more | 0)) break; - /*<>*/ new_len[1] = 2 * new_len[1] | 0; - } - /*<>*/ if(Stdlib_Sys[12] < new_len[1]) - /*<>*/ if((old_pos + more | 0) <= Stdlib_Sys[12]) - /*<>*/ new_len[1] = Stdlib_Sys[12]; - else - /*<>*/ Stdlib[2].call - (null, cst_Buffer_add_cannot_grow_buf); - var new_buffer = /*<>*/ caml_create_bytes(new_len[1]); + new_len = /*<>*/ old_len; + for(;;){ + if(new_len >= (old_pos + more | 0)) break; + /*<>*/ new_len = 2 * new_len | 0; + } + var + new_len$0 = + /*<>*/ Stdlib_Sys[12] < new_len + ? (old_pos + + more + | 0) + <= Stdlib_Sys[12] + ? Stdlib_Sys[12] + : ( /*<>*/ Stdlib + [2].call + (null, cst_Buffer_add_cannot_grow_buf), + new_len) + : new_len, + new_buffer = /*<>*/ caml_create_bytes(new_len$0); /*<>*/ Stdlib_Bytes[11].call (null, b[1][1], 0, new_buffer, 0, b[2]); - /*<>*/ b[1] = [0, new_buffer, new_len[1]]; + /*<>*/ b[1] = [0, new_buffer, new_len$0]; /*<>*/ } function add_char(b, c){ var @@ -13676,14 +13706,14 @@ var str_ind = /*<>*/ c >>> 3 | 0, mask = 1 << (c & 7), - _a7_ = + _a9_ = /*<>*/ runtime.caml_bytes_get (char_set, str_ind) | mask; /*<>*/ return /*<>*/ caml_bytes_set (char_set, str_ind, - /*<>*/ Stdlib[29].call(null, _a7_)) /*<>*/ ; + /*<>*/ Stdlib[29].call(null, _a9_)) /*<>*/ ; } function freeze_char_set(char_set){ /*<>*/ return Stdlib_Bytes[6].call @@ -13695,18 +13725,18 @@ i = /*<>*/ 0; for(;;){ var - _a6_ = + _a8_ = /*<>*/ caml_string_get(char_set, i) ^ 255; /*<>*/ /*<>*/ caml_bytes_set (char_set$0, i, - /*<>*/ Stdlib[29].call(null, _a6_)); - var _a7_ = /*<>*/ i + 1 | 0; + /*<>*/ Stdlib[29].call(null, _a8_)); + var _a9_ = /*<>*/ i + 1 | 0; if(31 === i) /*<>*/ return Stdlib_Bytes[44].call (null, char_set$0) /*<>*/ ; - /*<>*/ i = _a7_; + /*<>*/ i = _a9_; } /*<>*/ } function is_in_char_set(char_set, c){ @@ -13775,11 +13805,11 @@ /*<>*/ if(prec_opt) var ndec = prec_opt[1], - _a6_ = /*<>*/ [0, ndec]; + _a8_ = /*<>*/ [0, ndec]; else - var _a6_ = /*<>*/ 0; + var _a8_ = /*<>*/ 0; /*<>*/ return [0, - [8, _a_, pad_of_pad_opt(pad_opt$5), _a6_, fmt]] /*<>*/ ; + [8, _a_, pad_of_pad_opt(pad_opt$5), _a8_, fmt]] /*<>*/ ; case 7: var pad_opt$6 = /*<>*/ ign[1]; /*<>*/ return [0, @@ -13925,19 +13955,19 @@ before = /*<>*/ Stdlib_Char[1].call (null, c - 1 | 0), - _a3_ = /*<>*/ is_in_char_set(set, c); - /*<>*/ if(_a3_) + _a5_ = /*<>*/ is_in_char_set(set, c); + /*<>*/ if(_a5_) var - _a4_ = - /*<>*/ is_in_char_set(set, before), _a6_ = - /*<>*/ _a4_ + /*<>*/ is_in_char_set(set, before), + _a8_ = + /*<>*/ _a6_ ? /*<>*/ is_in_char_set(set, after) - : _a4_, - _a5_ = /*<>*/ 1 - _a6_; + : _a6_, + _a7_ = /*<>*/ 1 - _a8_; else - var _a5_ = /*<>*/ _a3_; - return _a5_; + var _a7_ = /*<>*/ _a5_; + return _a7_; /*<>*/ } /*<>*/ if(is_alone(93)) /*<>*/ buffer_add_char(buf, 93); @@ -14155,11 +14185,11 @@ /*<>*/ if(2 === formatting_lit[0]){ var c = formatting_lit[1], - _a3_ = + _a5_ = /*<>*/ Stdlib_String[1].call (null, 1, c); /*<>*/ return Stdlib[28].call - (null, cst$7, _a3_); + (null, cst$7, _a5_); } var str = /*<>*/ formatting_lit[1]; return str; @@ -14172,17 +14202,17 @@ } function bprint_string_literal(buf, str){ var - _a1_ = + _a3_ = /*<>*/ caml_ml_string_length(str) - 1 | 0, - _a2_ = 0; - if(_a1_ >= 0){ - var i = _a2_; + _a4_ = 0; + if(_a3_ >= 0){ + var i = _a4_; for(;;){ /*<>*/ /*<>*/ bprint_char_literal (buf, /*<>*/ caml_string_get(str, i)); - var _a3_ = /*<>*/ i + 1 | 0; - if(_a1_ === i) break; - i = _a3_; + var _a5_ = /*<>*/ i + 1 | 0; + if(_a3_ === i) break; + i = _a5_; } } /*<>*/ } @@ -14542,12 +14572,12 @@ (buf, ign_flag); /*<>*/ switch(counter){ case 0: - var _aY_ = /*<>*/ 108; break; + var _a0_ = /*<>*/ 108; break; case 1: - var _aY_ = /*<>*/ 110; break; - default: var _aY_ = /*<>*/ 78; + var _a0_ = /*<>*/ 110; break; + default: var _a0_ = /*<>*/ 78; } - /*<>*/ buffer_add_char(buf, _aY_); + /*<>*/ buffer_add_char(buf, _a0_); /*<>*/ fmt = rest$20; ign_flag = 0; break; @@ -14576,19 +14606,19 @@ var rest$23 = /*<>*/ fmt[3], arity = fmt[1], - _aZ_ = + _a1_ = /*<>*/ int_of_custom_arity(arity), - _a0_ = /*<>*/ 1; - if(_aZ_ >= 1){ - var i = _a0_; + _a2_ = /*<>*/ 1; + if(_a1_ >= 1){ + var i = _a2_; for(;;){ /*<>*/ buffer_add_char(buf, 37); /*<>*/ bprint_ignored_flag (buf, ign_flag); /*<>*/ buffer_add_char(buf, 63); - var _a1_ = /*<>*/ i + 1 | 0; - if(_aZ_ === i) break; - i = _a1_; + var _a3_ = /*<>*/ i + 1 | 0; + if(_a1_ === i) break; + i = _a3_; } } /*<>*/ fmt = rest$23; @@ -15102,12 +15132,12 @@ var rest2$7 = ty2[2], ty2$0 = ty2[1], - _aY_ = + _a0_ = /*<>*/ trans (rest1$7, rest2$7); /*<>*/ return [8, trans(ty1$0, ty2$0), - _aY_] /*<>*/ ; + _a0_] /*<>*/ ; case 10: break a; case 11: @@ -15384,18 +15414,18 @@ var rest$11 = /*<>*/ fmtty[2], formatting_gen = fmtty[1], - _aX_ = /*<>*/ fmtty_of_fmt(rest$11); + _aZ_ = /*<>*/ fmtty_of_fmt(rest$11); /*<>*/ if(0 === formatting_gen[0]) var fmt = formatting_gen[1][1], - _aW_ = /*<>*/ fmtty_of_fmt(fmt); + _aY_ = /*<>*/ fmtty_of_fmt(fmt); else var fmt$0 = /*<>*/ formatting_gen[1][1], - _aW_ = /*<>*/ fmtty_of_fmt(fmt$0); + _aY_ = /*<>*/ fmtty_of_fmt(fmt$0); /*<>*/ return CamlinternalFormatBasics [1].call - (null, _aW_, _aX_) /*<>*/ ; + (null, _aY_, _aZ_) /*<>*/ ; case 19: var rest$12 = /*<>*/ fmtty[1]; /*<>*/ return [13, @@ -15422,10 +15452,10 @@ if(9 === ign[0]){ var fmtty$3 = ign[2], - _aY_ = /*<>*/ fmtty_of_fmt(fmtty$2); + _a0_ = /*<>*/ fmtty_of_fmt(fmtty$2); /*<>*/ return CamlinternalFormatBasics [1].call - (null, fmtty$3, _aY_) /*<>*/ ; + (null, fmtty$3, _a0_) /*<>*/ ; } /*<>*/ fmtty = fmtty$2; } @@ -15734,11 +15764,11 @@ /*<>*/ } function type_format(fmt, fmtty){ var - _aW_ = /*<>*/ type_format_gen(fmt, fmtty); - /*<>*/ if(typeof _aW_[2] !== "number") + _aY_ = /*<>*/ type_format_gen(fmt, fmtty); + /*<>*/ if(typeof _aY_[2] !== "number") /*<>*/ throw caml_maybe_attach_backtrace (Type_mismatch, 1); - var fmt$0 = /*<>*/ _aW_[1]; + var fmt$0 = /*<>*/ _aY_[1]; /*<>*/ return fmt$0; /*<>*/ } function type_format_gen(fmt, fmtty0){ @@ -16034,7 +16064,7 @@ fmt_rest$13 = fmt[3], sub_fmtty$1 = fmt[2], pad_opt$0 = fmt[1], - _aW_ = + _aY_ = /*<>*/ [0, CamlinternalFormatBasics[2].call(null, sub_fmtty1)]; /*<>*/ if @@ -16043,7 +16073,7 @@ /*<>*/ CamlinternalFormatBasics [2].call (null, sub_fmtty$1)], - _aW_)) + _aY_)) /*<>*/ throw caml_maybe_attach_backtrace (Type_mismatch, 1); var @@ -16207,13 +16237,13 @@ var sub_fmtty$3 = /*<>*/ ign[2], pad_opt$2 = ign[1], - _aV_ = + _aX_ = /*<>*/ type_ignored_format_substituti (sub_fmtty$3, rest, fmtty0), - match$43 = /*<>*/ _aV_[2], + match$43 = /*<>*/ _aX_[2], fmtty$21 = match$43[2], fmt$22 = match$43[1], - sub_fmtty$4 = _aV_[1]; + sub_fmtty$4 = _aX_[1]; /*<>*/ return [0, [23, [9, pad_opt$2, sub_fmtty$4], fmt$22], fmtty$21]; @@ -16418,7 +16448,7 @@ sub_fmtty_rest$17 = sub_fmtty[3], sub2_fmtty$2 = sub_fmtty[2], sub1_fmtty$0 = sub_fmtty[1], - _aU_ = + _aW_ = /*<>*/ [0, CamlinternalFormatBasics[2].call(null, sub1_fmtty)]; /*<>*/ if @@ -16427,11 +16457,11 @@ /*<>*/ CamlinternalFormatBasics [2].call (null, sub1_fmtty$0)], - _aU_)) + _aW_)) /*<>*/ throw caml_maybe_attach_backtrace (Type_mismatch, 1); var - _aV_ = + _aX_ = /*<>*/ [0, CamlinternalFormatBasics[2].call(null, sub2_fmtty$1)]; /*<>*/ if @@ -16440,7 +16470,7 @@ /*<>*/ CamlinternalFormatBasics [2].call (null, sub2_fmtty$2)], - _aV_)) + _aX_)) /*<>*/ throw caml_maybe_attach_backtrace (Type_mismatch, 1); var @@ -16538,12 +16568,12 @@ (Type_mismatch, 1); /*<>*/ } function recast(fmt, fmtty){ - var _aU_ = /*<>*/ symm(fmtty); + var _aW_ = /*<>*/ symm(fmtty); /*<>*/ return /*<>*/ type_format (fmt, /*<>*/ CamlinternalFormatBasics [2].call - (null, _aU_)) /*<>*/ ; + (null, _aW_)) /*<>*/ ; } function fix_padding(padty, width, str){ var @@ -16554,10 +16584,10 @@ /*<>*/ if(width$0 <= len) /*<>*/ return str; var - _aU_ = /*<>*/ 2 === padty$0 ? 48 : 32, + _aW_ = /*<>*/ 2 === padty$0 ? 48 : 32, res = /*<>*/ Stdlib_Bytes[1].call - (null, width$0, _aU_); + (null, width$0, _aW_); /*<>*/ switch(padty$0){ case 0: /*<>*/ Stdlib_String[6].call @@ -16722,23 +16752,28 @@ /*<>*/ if(13 > iconv) /*<>*/ return s; var - n = /*<>*/ [0, 0], - _aP_ = + _aP_ = /*<>*/ 0, + _aQ_ = /*<>*/ caml_ml_string_length(s) - 1 | 0, - _aR_ = 0; - if(_aP_ >= 0){ - var i$0 = _aR_; + _aS_ = 0; + if(_aQ_ < 0) + var digits = _aP_; + else{ + var n = _aP_, i$0 = _aS_; for(;;){ - /*<>*/ if - (9 >= caml_string_unsafe_get(s, i$0) - 48 >>> 0) - /*<>*/ n[1]++; - var _aU_ = /*<>*/ i$0 + 1 | 0; - if(_aP_ === i$0) break; - i$0 = _aU_; + var + n$0 = + /*<>*/ 9 + < caml_string_unsafe_get(s, i$0) - 48 >>> 0 + ? n + : n + 1 | 0, + _aW_ = i$0 + 1 | 0; + if(_aQ_ === i$0){var digits = n$0; break;} + n = n$0; + i$0 = _aW_; } } var - digits = /*<>*/ n[1], buf = /*<>*/ /*<>*/ caml_create_bytes ( /*<>*/ caml_ml_string_length(s) @@ -16750,30 +16785,32 @@ /*<>*/ pos[1]++; /*<>*/ } var - left = - /*<>*/ [0, - ((digits - 1 | 0) % 3 | 0) + 1 | 0], - _aQ_ = + _aR_ = /*<>*/ caml_ml_string_length(s) - 1 | 0, - _aS_ = 0; - if(_aQ_ >= 0){ - var i = _aS_; + _aT_ = ((digits - 1 | 0) % 3 | 0) + 1 | 0, + _aU_ = 0; + if(_aR_ >= 0){ + var left = _aT_, i = _aU_; for(;;){ var c = /*<>*/ caml_string_unsafe_get(s, i); - if(9 < c - 48 >>> 0) + if(9 < c - 48 >>> 0){ /*<>*/ put(c); + var left$1 = /*<>*/ left; + } else{ - /*<>*/ if(0 === left[1]){ - /*<>*/ put(95); - /*<>*/ left[1] = 3; - } - /*<>*/ left[1]--; + var + left$0 = + /*<>*/ 0 === left + ? ( /*<>*/ put(95), 3) + : left; /*<>*/ put(c); + var left$1 = /*<>*/ left$0 - 1 | 0; } - var _aT_ = /*<>*/ i + 1 | 0; - if(_aQ_ === i) break; - i = _aT_; + var _aV_ = /*<>*/ i + 1 | 0; + if(_aR_ === i) break; + left = left$1; + i = _aV_; } } /*<>*/ return Stdlib_Bytes[44].call @@ -21095,17 +21132,20 @@ case 13: var f$6 = /*<>*/ param[1]; /*<>*/ no_arg$0(0); - var acc = /*<>*/ [0, 0]; - /*<>*/ for(;;){ + var acc = /*<>*/ 0; + for(;;){ if(current[1] >= (argv[1].length - 2 | 0)) /*<>*/ return /*<>*/ caml_call1 (f$6, - /*<>*/ Stdlib_List[10].call(null, acc[1])) /*<>*/ ; + /*<>*/ Stdlib_List[10].call(null, acc)) /*<>*/ ; var _H_ = /*<>*/ current[1] + 1 | 0, - _K_ = /*<>*/ acc[1]; - acc[1] = [0, caml_check_bound(argv[1], _H_)[_H_ + 1], _K_]; + _K_ = + /*<>*/ [0, + caml_check_bound(argv[1], _H_)[_H_ + 1], + acc]; /*<>*/ consume_arg$0(0); + /*<>*/ acc = _K_; } break; default: @@ -22583,14 +22623,13 @@ var len = /*<>*/ caml_ml_bytes_length(buf); /*<>*/ if((ofs + n | 0) <= len) /*<>*/ return buf; - var new_len = /*<>*/ [0, len]; - /*<>*/ for(;;){ - if(new_len[1] >= (ofs + n | 0)) break; - /*<>*/ new_len[1] = (2 * new_len[1] | 0) + 1 | 0; + var new_len$0 = /*<>*/ len; + for(;;){ + if(new_len$0 >= (ofs + n | 0)) break; + /*<>*/ new_len$0 = (2 * new_len$0 | 0) + 1 | 0; } var - new_len$0 = /*<>*/ new_len[1], - new_len$1 = + new_len = /*<>*/ new_len$0 <= Stdlib_Sys[12] ? new_len$0 : ofs @@ -22599,7 +22638,7 @@ : /*<>*/ Stdlib [2].call (null, cst_In_channel_input_all_chann), - new_buf = /*<>*/ caml_create_bytes(new_len$1); + new_buf = /*<>*/ caml_create_bytes(new_len); /*<>*/ Stdlib_Bytes[11].call (null, buf, 0, new_buf, 0, ofs); /*<>*/ return new_buf; @@ -24400,9 +24439,9 @@ var Stdlib_String = global_data.Stdlib__String; function ongoing_traversal(h){ var - _K_ = /*<>*/ h.length - 1 < 4 ? 1 : 0, - _L_ = _K_ || (h[4] < 0 ? 1 : 0); - return _L_; + _J_ = /*<>*/ h.length - 1 < 4 ? 1 : 0, + _K_ = _J_ || (h[4] < 0 ? 1 : 0); + return _K_; /*<>*/ } function flip_ongoing_traversal(h){ /*<>*/ h[4] = - h[4] | 0; @@ -24466,24 +24505,24 @@ s = /*<>*/ power_2_above(16, initial_size); /*<>*/ if(random) var - _K_ = + _J_ = /*<>*/ caml_call1(Stdlib_Domain[11][2], prng_key), seed = /*<>*/ /*<>*/ caml_call1 - (Stdlib_Random[19][4], _K_); + (Stdlib_Random[19][4], _J_); else var seed = /*<>*/ 0; /*<>*/ return [0, 0, caml_array_make(s, 0), seed, s] /*<>*/ ; /*<>*/ } function clear(h){ - var _K_ = /*<>*/ 0 < h[1] ? 1 : 0; - return _K_ + var _J_ = /*<>*/ 0 < h[1] ? 1 : 0; + return _J_ ? (h [1] = 0, /*<>*/ Stdlib_Array[8].call (null, h[2], 0, h[2].length - 1, 0)) - : _K_ /*<>*/ ; + : _J_ /*<>*/ ; } function reset(h){ var len = /*<>*/ h[2].length - 1; @@ -24522,10 +24561,10 @@ /*<>*/ } function copy(h){ var - _I_ = /*<>*/ h[4], - _J_ = h[3], - _K_ = Stdlib_Array[14].call(null, copy_bucketlist, h[2]); - /*<>*/ return [0, h[1], _K_, _J_, _I_]; + _H_ = /*<>*/ h[4], + _I_ = h[3], + _J_ = Stdlib_Array[14].call(null, copy_bucketlist, h[2]); + /*<>*/ return [0, h[1], _J_, _I_, _H_]; /*<>*/ } function length(h){ /*<>*/ return h[1]; @@ -24534,10 +24573,10 @@ var nsize = /*<>*/ ndata.length - 1, ndata_tail = /*<>*/ caml_array_make(nsize, 0), - _C_ = /*<>*/ odata.length - 2 | 0, - _F_ = 0; - if(_C_ >= 0){ - var i$0 = _F_; + _B_ = /*<>*/ odata.length - 2 | 0, + _E_ = 0; + if(_B_ >= 0){ + var i$0 = _E_; a: for(;;){ var @@ -24546,9 +24585,9 @@ cell = /*<>*/ cell$1; for(;;){ /*<>*/ if(! cell){ - var _I_ = /*<>*/ i$0 + 1 | 0; - if(_C_ === i$0) break a; - i$0 = _I_; + var _H_ = /*<>*/ i$0 + 1 | 0; + if(_B_ === i$0) break a; + i$0 = _H_; break; } var @@ -24571,33 +24610,33 @@ } } /*<>*/ if(inplace){ - var _D_ = /*<>*/ nsize - 1 | 0, _G_ = 0; - if(_D_ >= 0){ - var i = _G_; + var _C_ = /*<>*/ nsize - 1 | 0, _F_ = 0; + if(_C_ >= 0){ + var i = _F_; for(;;){ var match$0 = /*<>*/ caml_check_bound(ndata_tail, i)[i + 1]; /*<>*/ if(match$0) /*<>*/ match$0[3] = 0; - var _H_ = /*<>*/ i + 1 | 0; - if(_D_ === i) break; - i = _H_; + var _G_ = /*<>*/ i + 1 | 0; + if(_C_ === i) break; + i = _G_; } } - var _E_ = /*<>*/ 0; + var _D_ = /*<>*/ 0; } else - var _E_ = /*<>*/ inplace; - return _E_; + var _D_ = /*<>*/ inplace; + return _D_; /*<>*/ } function resize(indexfun, h){ var odata = /*<>*/ h[2], osize = /*<>*/ odata.length - 1, nsize = /*<>*/ osize * 2 | 0, - _C_ = /*<>*/ nsize < Stdlib_Sys[13] ? 1 : 0; - if(! _C_) return _C_; + _B_ = /*<>*/ nsize < Stdlib_Sys[13] ? 1 : 0; + if(! _B_) return _B_; var ndata = /*<>*/ caml_array_make(nsize, 0), inplace = /*<>*/ 1 - ongoing_traversal(h); @@ -24613,9 +24652,9 @@ /*<>*/ if(1 - old_trav) /*<>*/ flip_ongoing_traversal(h); /*<>*/ try{ - var d = h[2], _y_ = /*<>*/ d.length - 2 | 0, _A_ = 0; - if(_y_ >= 0){ - var i = _A_; + var d = h[2], _x_ = /*<>*/ d.length - 2 | 0, _z_ = 0; + if(_x_ >= 0){ + var i = _z_; a: for(;;){ var @@ -24625,9 +24664,9 @@ [i + 1]; /*<>*/ for(;;){ /*<>*/ if(! param){ - var _C_ = /*<>*/ i + 1 | 0; - if(_y_ === i) break a; - i = _C_; + var _B_ = /*<>*/ i + 1 | 0; + if(_x_ === i) break a; + i = _B_; break; } var @@ -24640,9 +24679,9 @@ } } var - _z_ = /*<>*/ 1 - old_trav, - _B_ = _z_ ? /*<>*/ flip_ongoing_traversal(h) : _z_; - return _B_; + _y_ = /*<>*/ 1 - old_trav, + _A_ = _y_ ? /*<>*/ flip_ongoing_traversal(h) : _y_; + return _A_; } catch(exn$0){ var exn = /*<>*/ caml_wrap_exception(exn$0); @@ -24659,9 +24698,9 @@ /*<>*/ if(1 - old_trav) /*<>*/ flip_ongoing_traversal(h); /*<>*/ try{ - var _u_ = d.length - 2 | 0, _w_ = 0; - if(_u_ >= 0){ - var i = _w_; + var _t_ = d.length - 2 | 0, _v_ = 0; + if(_t_ >= 0){ + var i = _v_; a: for(;;){ var @@ -24674,9 +24713,9 @@ /*<>*/ prec[3] = 0; else /*<>*/ caml_check_bound(h[2], i)[i + 1] = 0; - var _y_ = /*<>*/ i + 1 | 0; - if(_u_ === i) break a; - i = _y_; + var _x_ = /*<>*/ i + 1 | 0; + if(_t_ === i) break a; + i = _x_; break; } var @@ -24702,9 +24741,9 @@ } } var - _v_ = /*<>*/ 1 - old_trav, - _x_ = _v_ ? /*<>*/ flip_ongoing_traversal(h) : _v_; - return _x_; + _u_ = /*<>*/ 1 - old_trav, + _w_ = _u_ ? /*<>*/ flip_ongoing_traversal(h) : _u_; + return _w_; } catch(exn$0){ var exn = /*<>*/ caml_wrap_exception(exn$0); @@ -24719,27 +24758,23 @@ /*<>*/ if(1 - old_trav) /*<>*/ flip_ongoing_traversal(h); /*<>*/ try{ - var - d = h[2], - accu$1 = /*<>*/ [0, init], - _r_ = /*<>*/ d.length - 2 | 0, - _s_ = 0; - if(_r_ >= 0){ - var i = _s_; + var d = h[2], _r_ = /*<>*/ d.length - 2 | 0, _s_ = 0; + if(_r_ < 0) + var accu$2 = init; + else{ + var accu$1 = init, i = _s_; a: for(;;){ var - accu$2 = /*<>*/ accu$1[1], b$0 = /*<>*/ caml_check_bound(d, i)[i + 1], b = /*<>*/ b$0, - accu = accu$2; + accu = accu$1; for(;;){ /*<>*/ if(! b){ - /*<>*/ accu$1[1] = accu; - var _u_ = i + 1 | 0; - if(_r_ === i) break a; - i = _u_; - break; + var _t_ = /*<>*/ i + 1 | 0; + if(_r_ !== i){accu$1 = accu; i = _t_; break;} + var accu$2 = accu; + break a; } var key = /*<>*/ b[1], @@ -24753,8 +24788,7 @@ } /*<>*/ if(1 - old_trav) /*<>*/ flip_ongoing_traversal(h); - var _t_ = /*<>*/ accu$1[1]; - return _t_; + return accu$2; } catch(exn$0){ var exn = /*<>*/ caml_wrap_exception(exn$0); @@ -28435,7 +28469,7 @@ /*<>*/ return create(1, next) /*<>*/ ; } var _a_ = /*<>*/ 0; - function from_function(_aw_){return create(_a_, _aw_);} + function from_function(_ax_){return create(_a_, _ax_);} var len = /*<>*/ 1024; function scan_close_at_end(ic){ /*<>*/ Stdlib[93].call(null, ic); @@ -28481,10 +28515,10 @@ (scan_close_at_end, [1, fname, ic], ic) /*<>*/ ; } var _b_ = /*<>*/ Stdlib[79]; - function open_in(_aw_){return open_in_file(_b_, _aw_);} + function open_in(_ax_){return open_in_file(_b_, _ax_);} var _c_ = /*<>*/ Stdlib[80]; - function open_in_bin(_aw_){ - /*<>*/ return open_in_file(_c_, _aw_); + function open_in_bin(_ax_){ + /*<>*/ return open_in_file(_c_, _ax_); } function from_channel(ic){ /*<>*/ return from_ic(scan_raise_at_end, [0, ic], ic) /*<>*/ ; @@ -28627,15 +28661,15 @@ /*<>*/ for(;;){ var c = /*<>*/ peek_char(ib), - _aw_ = /*<>*/ 1 - ib[1]; - if(! _aw_) return _aw_; - var _av_ = /*<>*/ c - 9 | 0; + _ax_ = /*<>*/ 1 - ib[1]; + if(! _ax_) return _ax_; + var _aw_ = /*<>*/ c - 9 | 0; a: { - if(4 < _av_ >>> 0){ - if(23 !== _av_) break a; + if(4 < _aw_ >>> 0){ + if(23 !== _aw_) break a; } - else if(1 >= _av_ - 2 >>> 0) break a; + else if(1 >= _aw_ - 2 >>> 0) break a; /*<>*/ invalidate_current_char(ib); continue; } @@ -28687,31 +28721,31 @@ /*<>*/ switch(conv){ case 0: var - _as_ = /*<>*/ token_string(ib), + _at_ = /*<>*/ token_string(ib), tok = /*<>*/ /*<>*/ Stdlib[28].call - (null, cst_0b, _as_); + (null, cst_0b, _at_); break; case 3: var - _at_ = /*<>*/ token_string(ib), + _au_ = /*<>*/ token_string(ib), tok = /*<>*/ /*<>*/ Stdlib[28].call - (null, cst_0o, _at_); + (null, cst_0o, _au_); break; case 4: var - _au_ = /*<>*/ token_string(ib), + _av_ = /*<>*/ token_string(ib), tok = /*<>*/ /*<>*/ Stdlib[28].call - (null, cst_0u, _au_); + (null, cst_0u, _av_); break; case 5: var - _av_ = /*<>*/ token_string(ib), + _aw_ = /*<>*/ token_string(ib), tok = /*<>*/ /*<>*/ Stdlib[28].call - (null, cst_0x, _av_); + (null, cst_0x, _aw_); break; default: var @@ -28796,13 +28830,13 @@ /*<>*/ return 7 < param - 48 >>> 0 ? 0 : 1 /*<>*/ ; } function is_hexa_digit(param){ - var _as_ = /*<>*/ param - 48 | 0; + var _at_ = /*<>*/ param - 48 | 0; a: { - if(22 < _as_ >>> 0){ - if(5 < _as_ - 49 >>> 0) break a; + if(22 < _at_ >>> 0){ + if(5 < _at_ - 49 >>> 0) break a; } - else if(6 >= _as_ - 10 >>> 0) break a; + else if(6 >= _at_ - 10 >>> 0) break a; /*<>*/ return 1; } /*<>*/ return 0; @@ -28933,28 +28967,31 @@ } var len = /*<>*/ caml_ml_string_length(str), - width$0 = /*<>*/ [0, width], _ap_ = /*<>*/ len - 1 | 0, - _aq_ = 0; - if(_ap_ >= 0){ - var i = _aq_; + _ar_ = 0; + if(_ap_ < 0) + var width$1 = width; + else{ + var width$0 = width, i = _ar_; for(;;){ var c = /*<>*/ peek_char(ib), - _ar_ = + _as_ = /*<>*/ /*<>*/ lowercase ( /*<>*/ caml_string_get(str, i)); - /*<>*/ if(lowercase(c) !== _ar_) + /*<>*/ if(lowercase(c) !== _as_) /*<>*/ caml_call1(error, 0); - /*<>*/ if(0 === width$0[1]) + /*<>*/ if(0 === width$0) /*<>*/ caml_call1(error, 0); - /*<>*/ width$0[1] = store_char(width$0[1], ib, c); - var _as_ = /*<>*/ i + 1 | 0; - if(_ap_ === i) break; - i = _as_; + var + _aq_ = /*<>*/ store_char(width$0, ib, c), + _at_ = /*<>*/ i + 1 | 0; + if(_ap_ === i){var width$1 = _aq_; break;} + width$0 = _aq_; + i = _at_; } } - /*<>*/ return width$0[1]; + /*<>*/ return width$1; /*<>*/ } function scan_hex_float(width, precision, ib){ var @@ -30508,28 +30545,33 @@ var params = /*<>*/ [0, 1, 1, 1, 3, 16]; function public_method_label(s){ var - accu = /*<>*/ [0, 0], - _C_ = + _C_ = /*<>*/ 0, + _D_ = /*<>*/ runtime.caml_ml_string_length(s) - 1 | 0, - _D_ = 0; - if(_C_ >= 0){ - var i = _D_; + _F_ = 0; + if(_D_ < 0) + var accu$1 = _C_; + else{ + var accu$0 = _C_, i = _F_; for(;;){ var - _E_ = /*<>*/ runtime.caml_string_get(s, i); - /*<>*/ accu[1] = (223 * accu[1] | 0) + _E_ | 0; - var _F_ = i + 1 | 0; - if(_C_ === i) break; - i = _F_; + _E_ = + /*<>*/ (223 * accu$0 | 0) + + runtime.caml_string_get(s, i) + | 0, + _G_ = /*<>*/ i + 1 | 0; + if(_D_ === i){var accu$1 = _E_; break;} + accu$0 = _E_; + i = _G_; } } - /*<>*/ accu[1] = accu[1] & 2147483647; var + accu = /*<>*/ accu$1 & 2147483647, tag = - /*<>*/ 1073741823 < accu[1] - ? accu[1] + 2147483648 | 0 - : accu[1]; + /*<>*/ 1073741823 < accu + ? accu + 2147483648 | 0 + : accu; /*<>*/ return tag; /*<>*/ } var @@ -31079,23 +31121,28 @@ function build_path(n, keys, tables){ var res = /*<>*/ [0, 0, 0, 0], - r = /*<>*/ [0, res], - _g_ = /*<>*/ 0; - if(n >= 0){ - var i = _g_; + _h_ = /*<>*/ 0; + if(n < 0) + var r$0 = res; + else{ + var r = res, i = _h_; for(;;){ - var _h_ = /*<>*/ r[1]; - r[1] = [0, caml_check_bound(keys, i)[i + 1], _h_, 0]; - var _i_ = /*<>*/ i + 1 | 0; - if(n === i) break; + var + _g_ = + /*<>*/ [0, + caml_check_bound(keys, i)[i + 1], + r, + 0], + _i_ = /*<>*/ i + 1 | 0; + if(n === i){var r$0 = _g_; break;} + r = _g_; i = _i_; } } - var v = /*<>*/ r[1]; /*<>*/ if(! tables) /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _b_], 1); - /*<>*/ tables[2] = v; + /*<>*/ tables[2] = r$0; /*<>*/ return res; /*<>*/ } function lookup_tables(root, keys){ @@ -31673,22 +31720,22 @@ CamlinternalOO = global_data.CamlinternalOO, _a_ = [0, 0]; function copy(a, dummy){ - var _af_ = /*<>*/ Stdlib_Obj[17]; - if(caml_obj_tag(a) !== _af_) + var _ai_ = /*<>*/ Stdlib_Obj[17]; + if(caml_obj_tag(a) !== _ai_) /*<>*/ return Stdlib_Array[7].call(null, a) /*<>*/ ; var n = /*<>*/ a.length - 1, arr = /*<>*/ caml_array_make(n, dummy), - _ae_ = /*<>*/ n - 1 | 0, - _ag_ = 0; - if(_ae_ >= 0){ - var i = _ag_; + _ah_ = /*<>*/ n - 1 | 0, + _aj_ = 0; + if(_ah_ >= 0){ + var i = _aj_; for(;;){ var v = /*<>*/ a[i + 1]; /*<>*/ arr[i + 1] = v; - var _ah_ = /*<>*/ i + 1 | 0; - if(_ae_ === i) break; - i = _ah_; + var _ak_ = /*<>*/ i + 1 | 0; + if(_ah_ === i) break; + i = _ak_; } } /*<>*/ return arr; @@ -31870,10 +31917,10 @@ _c_ = CamlinternalOO[3].call(null, _b_, cst_x); CamlinternalOO[17].call(null, _b_); _a_[1] = - function(_ae_){ - var _ad_ = /*<>*/ CamlinternalOO[24].call(null, 0, _b_); - _ad_[_c_ + 1] = _ae_[2]; - return _ad_; + function(_ah_){ + var _ag_ = /*<>*/ CamlinternalOO[24].call(null, 0, _b_); + _ag_[_c_ + 1] = _ah_[2]; + return _ag_; }; } var dummy = /*<>*/ caml_call1(_a_[1], [0, 0, r]); @@ -31906,26 +31953,26 @@ function check_same_length(f, param, expected){ var length_a = /*<>*/ param[1], - _ad_ = /*<>*/ expected !== length_a ? 1 : 0; - return _ad_ + _ag_ = /*<>*/ expected !== length_a ? 1 : 0; + return _ag_ ? /*<>*/ caml_call3 (Stdlib_Printf[10].call(null, Stdlib[1], _m_), f, expected, length_a) - : _ad_ /*<>*/ ; + : _ag_ /*<>*/ ; } function check_valid_length(length, arr){ var capacity = /*<>*/ arr.length - 1, - _ad_ = /*<>*/ capacity < length ? 1 : 0; - return _ad_ + _ag_ = /*<>*/ capacity < length ? 1 : 0; + return _ag_ ? /*<>*/ caml_call3 (Stdlib_Printf[10].call(null, Stdlib[1], _l_), invalid_state_description, length, capacity) - : _ad_ /*<>*/ ; + : _ag_ /*<>*/ ; } function unsafe_get(arr, dummy, i, length){ var v = /*<>*/ arr[i + 1]; @@ -31939,8 +31986,8 @@ function make(n, x){ /*<>*/ if(n < 0) /*<>*/ negative_length_requested(cst_make, n); - var _ad_ = /*<>*/ Stdlib_Obj[16]; - if(caml_obj_tag(x) !== _ad_) + var _ag_ = /*<>*/ Stdlib_Obj[16]; + if(caml_obj_tag(x) !== _ag_) var arr$0 = /*<>*/ /*<>*/ caml_array_make @@ -31957,16 +32004,16 @@ /*<>*/ negative_length_requested(cst_init, n); var arr = /*<>*/ caml_array_make(n, dummy), - _ab_ = /*<>*/ n - 1 | 0, - _ac_ = 0; - if(_ab_ >= 0){ - var i = _ac_; + _ae_ = /*<>*/ n - 1 | 0, + _af_ = 0; + if(_ae_ >= 0){ + var i = _af_; for(;;){ var v = /*<>*/ caml_call1(f, i); /*<>*/ arr[i + 1] = v; - var _ad_ = /*<>*/ i + 1 | 0; - if(_ab_ === i) break; - i = _ad_; + var _ag_ = /*<>*/ i + 1 | 0; + if(_ae_ === i) break; + i = _ag_; } } /*<>*/ return [0, n, arr, dummy]; @@ -32059,16 +32106,16 @@ function remove_last(a){ var last = /*<>*/ a[1] - 1 | 0, - _aa_ = /*<>*/ 0 <= last ? 1 : 0; - if(_aa_){ + _ad_ = /*<>*/ 0 <= last ? 1 : 0; + if(_ad_){ /*<>*/ a[1] = last; var dummy = /*<>*/ a[3]; caml_check_bound(a[2], last)[last + 1] = dummy; - var _ab_ = /*<>*/ 0; + var _ae_ = /*<>*/ 0; } else - var _ab_ = /*<>*/ _aa_; - return _ab_; + var _ae_ = /*<>*/ _ad_; + return _ae_; /*<>*/ } function truncate(a, n){ /*<>*/ if(n < 0) @@ -32098,24 +32145,24 @@ /*<>*/ if(capacity_request <= cur_capacity) /*<>*/ return 0; /*<>*/ if(Stdlib_Sys[13] < capacity_request){ - var _Z_ = /*<>*/ Stdlib_Sys[13]; + var _aa_ = /*<>*/ Stdlib_Sys[13]; caml_call3 (Stdlib_Printf[10].call(null, Stdlib[1], _j_), f$1, capacity_request, - _Z_); + _aa_); } var n = /*<>*/ 512 < cur_capacity ? cur_capacity + (cur_capacity / 2 | 0) | 0 : cur_capacity * 2 | 0, - ___ = /*<>*/ Stdlib_Sys[13], - _$_ = Stdlib[17].call(null, 8, n), - _aa_ = /*<>*/ Stdlib[16].call(null, _$_, ___), + _ab_ = /*<>*/ Stdlib_Sys[13], + _ac_ = Stdlib[17].call(null, 8, n), + _ad_ = /*<>*/ Stdlib[16].call(null, _ac_, _ab_), new_capacity = /*<>*/ Stdlib[17].call - (null, _aa_, capacity_request); + (null, _ad_, capacity_request); /*<>*/ if(0 >= new_capacity) throw caml_maybe_attach_backtrace([0, Assert_failure, _q_], 1); var @@ -32153,12 +32200,12 @@ /*<>*/ return 0; } var - _Y_ = /*<>*/ cur_capacity < n ? 1 : 0, - _Z_ = - _Y_ + _$_ = /*<>*/ cur_capacity < n ? 1 : 0, + _aa_ = + _$_ ? (a[2] = /*<>*/ extend(arr, a[1], a[3], n), 0) - : _Y_; - /*<>*/ return _Z_; + : _$_; + /*<>*/ return _aa_; /*<>*/ } function reset(param){ /*<>*/ param[1] = 0; @@ -32176,8 +32223,8 @@ /*<>*/ return 0; /*<>*/ for(;;){ /*<>*/ ensure_extra_capacity(a, 1); - var _Y_ = /*<>*/ 1 - add_last_if_room(a, x); - /*<>*/ if(! _Y_) return _Y_; + var _$_ = /*<>*/ 1 - add_last_if_room(a, x); + /*<>*/ if(! _$_) return _$_; } /*<>*/ } function append_list(a, li$0){ @@ -32218,47 +32265,47 @@ /*<>*/ if(src_dummy === dst_dummy) /*<>*/ return Stdlib_Array[9].call (null, src_arr, src_pos, dst_arr, dst_pos, blit_length) /*<>*/ ; - var _Q_ = /*<>*/ blit_length < 0 ? 1 : 0; - if(_Q_) - var _P_ = _Q_; + var _T_ = /*<>*/ blit_length < 0 ? 1 : 0; + if(_T_) + var _S_ = _T_; else{ - var _S_ = src_pos < 0 ? 1 : 0; - if(_S_) - var _P_ = _S_; + var _V_ = src_pos < 0 ? 1 : 0; + if(_V_) + var _S_ = _V_; else{ - var _T_ = (src_pos + blit_length | 0) < 0 ? 1 : 0; - if(_T_) - var _P_ = _T_; + var _W_ = (src_pos + blit_length | 0) < 0 ? 1 : 0; + if(_W_) + var _S_ = _W_; else{ - var _U_ = src_arr.length - 1 < (src_pos + blit_length | 0) ? 1 : 0; - if(_U_) - var _P_ = _U_; + var _X_ = src_arr.length - 1 < (src_pos + blit_length | 0) ? 1 : 0; + if(_X_) + var _S_ = _X_; else{ - var _V_ = dst_pos < 0 ? 1 : 0; - if(_V_) - var _P_ = _V_; + var _Y_ = dst_pos < 0 ? 1 : 0; + if(_Y_) + var _S_ = _Y_; else var - _Y_ = (dst_pos + blit_length | 0) < 0 ? 1 : 0, - _P_ = - _Y_ || (dst_arr.length - 1 < (dst_pos + blit_length | 0) ? 1 : 0); + _$_ = (dst_pos + blit_length | 0) < 0 ? 1 : 0, + _S_ = + _$_ || (dst_arr.length - 1 < (dst_pos + blit_length | 0) ? 1 : 0); } } } } - if(_P_) + if(_S_) /*<>*/ throw caml_maybe_attach_backtrace ([0, Assert_failure, _d_], 1); /*<>*/ if(src_arr === dst_arr) throw caml_maybe_attach_backtrace([0, Assert_failure, _e_], 1); - var _R_ = /*<>*/ blit_length - 1 | 0, _W_ = 0; - if(_R_ >= 0){ - var i = _W_; + var _U_ = /*<>*/ blit_length - 1 | 0, _Z_ = 0; + if(_U_ >= 0){ + var i = _Z_; for(;;){ /*<>*/ dst_arr[(dst_pos + i | 0) + 1] = src_arr[(src_pos + i | 0) + 1]; - var _X_ = /*<>*/ i + 1 | 0; - if(_R_ === i) break; - i = _X_; + var ___ = /*<>*/ i + 1 | 0; + if(_U_ === i) break; + i = ___; } } /*<>*/ return 0; @@ -32269,18 +32316,18 @@ /*<>*/ caml_call1 (Stdlib_Printf[10].call(null, Stdlib[1], _r_), len); var - _M_ = /*<>*/ src_pos < 0 ? 1 : 0, - _N_ = _M_ || (src_length < (src_pos + len | 0) ? 1 : 0); - if(_N_) + _P_ = /*<>*/ src_pos < 0 ? 1 : 0, + _Q_ = _P_ || (src_length < (src_pos + len | 0) ? 1 : 0); + if(_Q_) /*<>*/ caml_call3 (Stdlib_Printf[10].call(null, Stdlib[1], _s_), src_pos, src_pos + len | 0, src_length); var - _O_ = /*<>*/ dst_pos < 0 ? 1 : 0, - _P_ = _O_ || (dst_length < dst_pos ? 1 : 0); - if(_P_) + _R_ = /*<>*/ dst_pos < 0 ? 1 : 0, + _S_ = _R_ || (dst_length < dst_pos ? 1 : 0); + if(_S_) /*<>*/ caml_call3 (Stdlib_Printf[10].call(null, Stdlib[1], _t_), dst_pos, @@ -32298,23 +32345,23 @@ /*<>*/ if(arr.length - 1 < (length_a + length_b | 0)) /*<>*/ return 0; /*<>*/ param[1] = length_a + length_b | 0; - var _K_ = /*<>*/ Stdlib_Obj[17], src_pos = 0; - if(caml_obj_tag(src) !== _K_) + var _N_ = /*<>*/ Stdlib_Obj[17], src_pos = 0; + if(caml_obj_tag(src) !== _N_) /*<>*/ Stdlib_Array[9].call (null, src, src_pos, arr, length_a, length_b); else{ - var _H_ = /*<>*/ length_b - 1 | 0, _L_ = 0; - if(_H_ >= 0){ - var i = _L_; + var _K_ = /*<>*/ length_b - 1 | 0, _O_ = 0; + if(_K_ >= 0){ + var i = _O_; for(;;){ var - _I_ = /*<>*/ i | 0, - v = /*<>*/ caml_check_bound(src, _I_)[_I_ + 1], - _J_ = /*<>*/ length_a + i | 0; - /*<>*/ caml_check_bound(arr, _J_)[_J_ + 1] = v; - var _M_ = /*<>*/ i + 1 | 0; - if(_H_ === i) break; - i = _M_; + _L_ = /*<>*/ i | 0, + v = /*<>*/ caml_check_bound(src, _L_)[_L_ + 1], + _M_ = /*<>*/ length_a + i | 0; + /*<>*/ caml_check_bound(arr, _M_)[_M_ + 1] = v; + var _P_ = /*<>*/ i + 1 | 0; + if(_K_ === i) break; + i = _P_; } } } @@ -32325,8 +32372,8 @@ /*<>*/ return 0; /*<>*/ for(;;){ /*<>*/ ensure_extra_capacity(a, b.length - 1); - var _H_ = /*<>*/ 1 - append_array_if_room(a, b); - /*<>*/ if(! _H_) return _H_; + var _K_ = /*<>*/ 1 - append_array_if_room(a, b); + /*<>*/ if(! _K_) return _K_; } /*<>*/ } function append_if_room(param, b, length_b){ @@ -32347,22 +32394,22 @@ /*<>*/ for(;;){ /*<>*/ ensure_extra_capacity(a, length_b); /*<>*/ check_same_length(cst_append$0, b, length_b); - var _H_ = /*<>*/ 1 - append_if_room(a, b, length_b); - /*<>*/ if(! _H_) return _H_; + var _K_ = /*<>*/ 1 - append_if_room(a, b, length_b); + /*<>*/ if(! _K_) return _K_; } /*<>*/ } function iter(f, k, a){ var length = /*<>*/ a[1], arr = a[2], dummy = a[3]; /*<>*/ check_valid_length(length, arr); - var _F_ = /*<>*/ length - 1 | 0, _G_ = 0; - if(_F_ >= 0){ - var i = _G_; + var _I_ = /*<>*/ length - 1 | 0, _J_ = 0; + if(_I_ >= 0){ + var i = _J_; for(;;){ /*<>*/ /*<>*/ caml_call1 (k, /*<>*/ unsafe_get(arr, dummy, i, length)); - var _H_ = /*<>*/ i + 1 | 0; - if(_F_ === i) break; - i = _H_; + var _K_ = /*<>*/ i + 1 | 0; + if(_I_ === i) break; + i = _K_; } } /*<>*/ return check_same_length(f, a, length) /*<>*/ ; @@ -32373,15 +32420,15 @@ function iteri(k, a){ var length = /*<>*/ a[1], arr = a[2], dummy = a[3]; /*<>*/ check_valid_length(length, arr); - var _D_ = /*<>*/ length - 1 | 0, _E_ = 0; - if(_D_ >= 0){ - var i = _E_; + var _G_ = /*<>*/ length - 1 | 0, _H_ = 0; + if(_G_ >= 0){ + var i = _H_; for(;;){ /*<>*/ /*<>*/ caml_call2 (k, i, /*<>*/ unsafe_get(arr, dummy, i, length)); - var _F_ = /*<>*/ i + 1 | 0; - if(_D_ === i) break; - i = _F_; + var _I_ = /*<>*/ i + 1 | 0; + if(_G_ === i) break; + i = _I_; } } /*<>*/ return check_same_length(cst_iteri, a, length) /*<>*/ ; @@ -32391,10 +32438,10 @@ /*<>*/ check_valid_length(length, arr_in); var arr_out = /*<>*/ caml_array_make(length, dummy), - _B_ = /*<>*/ length - 1 | 0, - _C_ = 0; - if(_B_ >= 0){ - var i = _C_; + _E_ = /*<>*/ length - 1 | 0, + _F_ = 0; + if(_E_ >= 0){ + var i = _F_; for(;;){ var v = @@ -32402,9 +32449,9 @@ (f, /*<>*/ unsafe_get(arr_in, dummy, i, length)); /*<>*/ arr_out[i + 1] = v; - var _D_ = /*<>*/ i + 1 | 0; - if(_B_ === i) break; - i = _D_; + var _G_ = /*<>*/ i + 1 | 0; + if(_E_ === i) break; + i = _G_; } } var res = /*<>*/ [0, length, arr_out, dummy]; @@ -32416,10 +32463,10 @@ /*<>*/ check_valid_length(length, arr_in); var arr_out = /*<>*/ caml_array_make(length, dummy), - _z_ = /*<>*/ length - 1 | 0, - _A_ = 0; - if(_z_ >= 0){ - var i = _A_; + _C_ = /*<>*/ length - 1 | 0, + _D_ = 0; + if(_C_ >= 0){ + var i = _D_; for(;;){ var v = @@ -32428,9 +32475,9 @@ i, /*<>*/ unsafe_get(arr_in, dummy, i, length)); /*<>*/ arr_out[i + 1] = v; - var _B_ = /*<>*/ i + 1 | 0; - if(_z_ === i) break; - i = _B_; + var _E_ = /*<>*/ i + 1 | 0; + if(_C_ === i) break; + i = _E_; } } var res = /*<>*/ [0, length, arr_out, dummy]; @@ -32440,41 +32487,44 @@ function fold_left(f, acc, a){ var length = /*<>*/ a[1], arr = a[2], dummy = a[3]; /*<>*/ check_valid_length(length, arr); - var - r = /*<>*/ [0, acc], - _x_ = /*<>*/ length - 1 | 0, - _y_ = 0; - if(_x_ >= 0){ - var i = _y_; + var _z_ = /*<>*/ length - 1 | 0, _B_ = 0; + if(_z_ < 0) + var r$0 = acc; + else{ + var r = acc, i = _B_; for(;;){ - var v = /*<>*/ unsafe_get(arr, dummy, i, length); - /*<>*/ r[1] = caml_call2(f, r[1], v); - var _z_ = /*<>*/ i + 1 | 0; - if(_x_ === i) break; - i = _z_; + var + v = /*<>*/ unsafe_get(arr, dummy, i, length), + _A_ = /*<>*/ caml_call2(f, r, v), + _C_ = /*<>*/ i + 1 | 0; + if(_z_ === i){var r$0 = _A_; break;} + r = _A_; + i = _C_; } } /*<>*/ check_same_length(cst_fold_left, a, length); - /*<>*/ return r[1]; + /*<>*/ return r$0; /*<>*/ } function fold_right(f, a, acc){ var length = /*<>*/ a[1], arr = a[2], dummy = a[3]; /*<>*/ check_valid_length(length, arr); - var - r = /*<>*/ [0, acc], - _w_ = /*<>*/ length - 1 | 0; - if(_w_ >= 0){ - var i = _w_; + var _x_ = /*<>*/ length - 1 | 0; + if(_x_ < 0) + var r$0 = acc; + else{ + var r = acc, i = _x_; for(;;){ - var v = /*<>*/ unsafe_get(arr, dummy, i, length); - /*<>*/ r[1] = caml_call2(f, v, r[1]); - var _x_ = /*<>*/ i - 1 | 0; - if(0 === i) break; - i = _x_; + var + v = /*<>*/ unsafe_get(arr, dummy, i, length), + _y_ = /*<>*/ caml_call2(f, v, r), + _z_ = /*<>*/ i - 1 | 0; + if(0 === i){var r$0 = _y_; break;} + r = _y_; + i = _z_; } } /*<>*/ check_same_length(cst_fold_right, a, length); - /*<>*/ return r[1]; + /*<>*/ return r$0; /*<>*/ } function exists(p, a){ var length = /*<>*/ a[1], arr = a[2], dummy = a[3]; @@ -32485,15 +32535,15 @@ var res = /*<>*/ 0; else{ var - _w_ = + _x_ = /*<>*/ /*<>*/ caml_call1 (p, /*<>*/ unsafe_get(arr, dummy, i, length)); - /*<>*/ if(! _w_){ + /*<>*/ if(! _x_){ var i$0 = i + 1 | 0; i = i$0; continue; } - var res = _w_; + var res = _x_; } /*<>*/ check_same_length(cst_exists, a, length); /*<>*/ return res; @@ -32508,15 +32558,15 @@ var res = /*<>*/ 1; else{ var - _w_ = + _x_ = /*<>*/ /*<>*/ caml_call1 (p, /*<>*/ unsafe_get(arr, dummy, i, length)); - /*<>*/ if(_w_){ + /*<>*/ if(_x_){ var i$0 = i + 1 | 0; i = i$0; continue; } - var res = _w_; + var res = _x_; } /*<>*/ check_same_length(cst_for_all, a, length); /*<>*/ return res; @@ -32527,10 +32577,10 @@ /*<>*/ iter (cst_filter, function(x){ - var _w_ = /*<>*/ caml_call1(f, x); - /*<>*/ return _w_ + var _x_ = /*<>*/ caml_call1(f, x); + /*<>*/ return _x_ ? /*<>*/ add_last(b, x) - : _w_ /*<>*/ ; + : _x_ /*<>*/ ; }, a); /*<>*/ return b; @@ -32697,18 +32747,18 @@ var r = /*<>*/ 1; else{ var - _w_ = /*<>*/ unsafe_get(arr2, dum2, i, length), - _v_ = + _x_ = /*<>*/ unsafe_get(arr2, dum2, i, length), + _w_ = /*<>*/ /*<>*/ caml_call2 (eq, /*<>*/ unsafe_get(arr1, dum1, i, length), - _w_); - /*<>*/ if(_v_){ + _x_); + /*<>*/ if(_w_){ var i$0 = i + 1 | 0; i = i$0; continue; } - var r = _v_; + var r = _w_; } /*<>*/ check_same_length(cst_equal, a1, length); /*<>*/ check_same_length(cst_equal$0, a2, length); @@ -32733,12 +32783,12 @@ var r = /*<>*/ 0; else{ var - _v_ = /*<>*/ unsafe_get(arr2, dum2, i, length), + _w_ = /*<>*/ unsafe_get(arr2, dum2, i, length), c = /*<>*/ /*<>*/ caml_call2 (cmp, /*<>*/ unsafe_get(arr1, dum1, i, length), - _v_); + _w_); /*<>*/ if(0 === c){ var i$0 = /*<>*/ i + 1 | 0; i = i$0; @@ -32775,9 +32825,9 @@ var a = /*<>*/ Stdlib_Array[11].call(null, li), length = /*<>*/ a.length - 1, - _v_ = /*<>*/ Stdlib_Obj[17], + _w_ = /*<>*/ Stdlib_Obj[17], arr = - caml_obj_tag(a) !== _v_ + caml_obj_tag(a) !== _w_ ? a : /*<>*/ copy(a, dummy); /*<>*/ return [0, length, arr, dummy]; @@ -32786,20 +32836,24 @@ var length = /*<>*/ a[1], arr = a[2], dummy = a[3]; /*<>*/ check_valid_length(length, arr); var - l = /*<>*/ [0, 0], - _t_ = /*<>*/ length - 1 | 0; - if(_t_ >= 0){ - var i = _t_; + _t_ = /*<>*/ 0, + _u_ = /*<>*/ length - 1 | 0; + if(_u_ < 0) + var l$0 = _t_; + else{ + var l = _t_, i = _u_; for(;;){ - var _u_ = /*<>*/ l[1]; - l[1] = [0, unsafe_get(arr, dummy, i, length), _u_]; - var _v_ = /*<>*/ i - 1 | 0; - if(0 === i) break; - i = _v_; + var + _v_ = + /*<>*/ [0, unsafe_get(arr, dummy, i, length), l], + _w_ = /*<>*/ i - 1 | 0; + if(0 === i){var l$0 = _v_; break;} + l = _v_; + i = _w_; } } /*<>*/ check_same_length(cst_to_list, a, length); - /*<>*/ return l[1]; + /*<>*/ return l$0; /*<>*/ } function of_seq(seq){ var init = /*<>*/ create(0); @@ -32962,7 +33016,7 @@ Stdlib_Random = global_data.Stdlib__Random; function MakeSeeded(H){ var - prng = [246, function(_H_){return caml_call1(Stdlib_Random[19][2], 0);}]; + prng = [246, function(_I_){return caml_call1(Stdlib_Random[19][2], 0);}]; function create(opt, initial_size){ var random = @@ -32977,18 +33031,18 @@ x = x$0; } /*<>*/ if(random){ - var _G_ = /*<>*/ runtime.caml_obj_tag(prng); + var _H_ = /*<>*/ runtime.caml_obj_tag(prng); a: - if(250 === _G_) - var _H_ = prng[1]; + if(250 === _H_) + var _I_ = prng[1]; else{ - if(246 !== _G_ && 244 !== _G_){var _H_ = prng; break a;} - var _H_ = CamlinternalLazy[2].call(null, prng); + if(246 !== _H_ && 244 !== _H_){var _I_ = prng; break a;} + var _I_ = CamlinternalLazy[2].call(null, prng); } var seed = /*<>*/ /*<>*/ caml_call1 - (Stdlib_Random[19][4], _H_); + (Stdlib_Random[19][4], _I_); } else var seed = /*<>*/ 0; @@ -33002,15 +33056,15 @@ /*<>*/ h[1] = 0; var len = /*<>*/ h[2].length - 1, - _E_ = /*<>*/ len - 1 | 0, - _F_ = 0; - if(_E_ >= 0){ - var i = _F_; + _F_ = /*<>*/ len - 1 | 0, + _G_ = 0; + if(_F_ >= 0){ + var i = _G_; for(;;){ /*<>*/ caml_check_bound(h[2], i)[i + 1] = 0; - var _G_ = /*<>*/ i + 1 | 0; - if(_E_ === i) break; - i = _G_; + var _H_ = /*<>*/ i + 1 | 0; + if(_F_ === i) break; + i = _H_; } } /*<>*/ return 0; @@ -33027,10 +33081,10 @@ } function copy(h){ var - _C_ = /*<>*/ h[4], - _D_ = h[3], - _E_ = Stdlib_Array[7].call(null, h[2]); - /*<>*/ return [0, h[1], _E_, _D_, _C_]; + _D_ = /*<>*/ h[4], + _E_ = h[3], + _F_ = Stdlib_Array[7].call(null, h[2]); + /*<>*/ return [0, h[1], _F_, _E_, _D_]; /*<>*/ } function key_index(h, hkey){ /*<>*/ return hkey & (h[2].length - 2 | 0); @@ -33054,17 +33108,17 @@ /*<>*/ } var d = /*<>*/ h[2], - _A_ = /*<>*/ d.length - 2 | 0, - _B_ = 0; - if(_A_ >= 0){ - var i = _B_; + _B_ = /*<>*/ d.length - 2 | 0, + _C_ = 0; + if(_B_ >= 0){ + var i = _C_; for(;;){ /*<>*/ d[i + 1] = /*<>*/ do_bucket ( /*<>*/ caml_check_bound(d, i)[i + 1]); - var _C_ = /*<>*/ i + 1 | 0; - if(_A_ === i) break; - i = _C_; + var _D_ = /*<>*/ i + 1 | 0; + if(_B_ === i) break; + i = _D_; } } /*<>*/ return 0; @@ -33076,9 +33130,9 @@ nsize = /*<>*/ osize * 2 | 0; /*<>*/ clean(h); var - _v_ = /*<>*/ nsize < Stdlib_Sys[13] ? 1 : 0, - _w_ = _v_ ? (osize >>> 1 | 0) <= h[1] ? 1 : 0 : _v_; - if(_w_){ + _w_ = /*<>*/ nsize < Stdlib_Sys[13] ? 1 : 0, + _x_ = _w_ ? (osize >>> 1 | 0) <= h[1] ? 1 : 0 : _w_; + if(_x_){ var ndata = /*<>*/ caml_array_make(nsize, 0); /*<>*/ h[2] = ndata; var @@ -33095,23 +33149,23 @@ /*<>*/ ndata[nidx + 1] = [0, hkey, data, caml_check_bound(ndata, nidx)[nidx + 1]]; /*<>*/ }, - _x_ = /*<>*/ osize - 1 | 0, - _z_ = 0; - if(_x_ >= 0){ - var i = _z_; + _y_ = /*<>*/ osize - 1 | 0, + _A_ = 0; + if(_y_ >= 0){ + var i = _A_; for(;;){ /*<>*/ /*<>*/ insert_bucket ( /*<>*/ caml_check_bound(odata, i)[i + 1]); - var _A_ = /*<>*/ i + 1 | 0; - if(_x_ === i) break; - i = _A_; + var _B_ = /*<>*/ i + 1 | 0; + if(_y_ === i) break; + i = _B_; } } - var _y_ = /*<>*/ 0; + var _z_ = /*<>*/ 0; } else - var _y_ = /*<>*/ _w_; - return _y_; + var _z_ = /*<>*/ _x_; + return _z_; /*<>*/ } function add(h, key, info){ var @@ -33126,8 +33180,8 @@ /*<>*/ caml_check_bound(h[2], i)[i + 1] = bucket; /*<>*/ h[1] = h[1] + 1 | 0; var - _v_ = /*<>*/ h[2].length - 1 << 1 < h[1] ? 1 : 0; - return _v_ ? /*<>*/ resize(h) : _v_ /*<>*/ ; + _w_ = /*<>*/ h[2].length - 1 << 1 < h[1] ? 1 : 0; + return _w_ ? /*<>*/ resize(h) : _w_ /*<>*/ ; } function remove(h, key){ var hkey = /*<>*/ caml_call2(H[2], h[3], key); @@ -33160,20 +33214,20 @@ /*<>*/ } var i = /*<>*/ key_index(h, hkey), - _v_ = + _w_ = /*<>*/ /*<>*/ remove_bucket ( /*<>*/ caml_check_bound(h[2], i)[i + 1]); - /*<>*/ caml_check_bound(h[2], i)[i + 1] = _v_; + /*<>*/ caml_check_bound(h[2], i)[i + 1] = _w_; /*<>*/ return 0; } function find(h, key){ var hkey = /*<>*/ caml_call2(H[2], h[3], key), - _v_ = /*<>*/ key_index(h, hkey), + _w_ = /*<>*/ key_index(h, hkey), param = /*<>*/ /*<>*/ caml_check_bound - (h[2], _v_) - [_v_ + 1]; + (h[2], _w_) + [_w_ + 1]; /*<>*/ for(;;){ /*<>*/ if(! param) /*<>*/ throw caml_maybe_attach_backtrace @@ -33202,11 +33256,11 @@ function find_opt(h, key){ var hkey = /*<>*/ caml_call2(H[2], h[3], key), - _v_ = /*<>*/ key_index(h, hkey), + _w_ = /*<>*/ key_index(h, hkey), param = /*<>*/ /*<>*/ caml_check_bound - (h[2], _v_) - [_v_ + 1]; + (h[2], _w_) + [_w_ + 1]; /*<>*/ for(;;){ /*<>*/ if(! param) /*<>*/ return 0; @@ -33256,10 +33310,10 @@ } } /*<>*/ } - var _v_ = /*<>*/ key_index(h, hkey); + var _w_ = /*<>*/ key_index(h, hkey); /*<>*/ return /*<>*/ find_in_bucket - ( /*<>*/ caml_check_bound(h[2], _v_) - [_v_ + 1]) /*<>*/ ; + ( /*<>*/ caml_check_bound(h[2], _w_) + [_w_ + 1]) /*<>*/ ; } function replace(h, key, info){ var @@ -33279,8 +33333,8 @@ /*<>*/ if(hkey === hk){ /*<>*/ if(! caml_call2(H[3], c, key)){ var - _v_ = /*<>*/ caml_call3(H[5], c, key, info); - return _v_; + _w_ = /*<>*/ caml_call3(H[5], c, key, info); + return _w_; } /*<>*/ param = next; } @@ -33298,18 +33352,18 @@ /*<>*/ caml_check_bound(h[2], i)[i + 1] = [0, hkey, container, l]; /*<>*/ h[1] = h[1] + 1 | 0; var - _u_ = /*<>*/ h[2].length - 1 << 1 < h[1] ? 1 : 0; - return _u_ ? /*<>*/ resize(h) : _u_ /*<>*/ ; + _v_ = /*<>*/ h[2].length - 1 << 1 < h[1] ? 1 : 0; + return _v_ ? /*<>*/ resize(h) : _v_ /*<>*/ ; } } function mem(h, key){ var hkey = /*<>*/ caml_call2(H[2], h[3], key), - _u_ = /*<>*/ key_index(h, hkey), + _v_ = /*<>*/ key_index(h, hkey), param = /*<>*/ /*<>*/ caml_check_bound - (h[2], _u_) - [_u_ + 1]; + (h[2], _v_) + [_v_ + 1]; /*<>*/ for(;;){ /*<>*/ if(! param) /*<>*/ return 0; @@ -33348,9 +33402,9 @@ /*<>*/ Stdlib_Array[18].call (null, function(m, b){ - var _u_ = /*<>*/ bucket_length(0, b); + var _v_ = /*<>*/ bucket_length(0, b); /*<>*/ return Stdlib_Int[11].call - (null, m, _u_); + (null, m, _v_); }, 0, h[2]), @@ -33393,9 +33447,9 @@ /*<>*/ Stdlib_Array[18].call (null, function(m, b){ - var _u_ = /*<>*/ bucket_length_alive(0, b); + var _v_ = /*<>*/ bucket_length_alive(0, b); /*<>*/ return Stdlib_Int[11].call - (null, m, _u_); + (null, m, _v_); }, 0, h[2]), @@ -33530,7 +33584,7 @@ } var include = /*<>*/ MakeSeeded$0([0, equal, seeded_hash]), - _u_ = include[1], + _v_ = include[1], clear = include[2], reset = include[3], copy = include[4], @@ -33548,10 +33602,10 @@ clean = include[17], stats_alive = include[18]; function create(sz){ - /*<>*/ return caml_call2(_u_, _a_, sz) /*<>*/ ; + /*<>*/ return caml_call2(_v_, _a_, sz) /*<>*/ ; } function of_seq(i){ - var tbl = /*<>*/ caml_call2(_u_, _a_, 16); + var tbl = /*<>*/ caml_call2(_v_, _a_, 16); /*<>*/ caml_call2(replace_seq, tbl, i); /*<>*/ return tbl; /*<>*/ } @@ -33579,8 +33633,8 @@ /*<>*/ return [0, 0]; /*<>*/ } function add(b, k, d){ - var _u_ = /*<>*/ b[1]; - b[1] = [0, make(k, d), _u_]; + var _v_ = /*<>*/ b[1]; + b[1] = [0, make(k, d), _v_]; /*<>*/ return 0; /*<>*/ } function test_key(k, e){ @@ -33614,7 +33668,7 @@ match = /*<>*/ Stdlib_List[40].call (null, - function(_u_){ /*<>*/ return test_key(k, _u_);}, + function(_v_){ /*<>*/ return test_key(k, _v_);}, b[1]); /*<>*/ if(! match) /*<>*/ return 0; @@ -33689,9 +33743,9 @@ var k2 = /*<>*/ param[2], k1 = param[1], - _u_ = + _v_ = /*<>*/ caml_call2(H2[2], seed, k2) * 65599 | 0; - /*<>*/ return caml_call2(H1[2], seed, k1) + _u_ | 0 /*<>*/ ; + /*<>*/ return caml_call2(H1[2], seed, k1) + _v_ | 0 /*<>*/ ; /*<>*/ } function equal(c, param){ var @@ -33718,11 +33772,11 @@ } function check_key(c){ var - _u_ = /*<>*/ caml_call2(Stdlib_Obj[23][7], c, 0); - /*<>*/ return _u_ + _v_ = /*<>*/ caml_call2(Stdlib_Obj[23][7], c, 0); + /*<>*/ return _v_ ? /*<>*/ caml_call2 (Stdlib_Obj[23][7], c, 1) - : _u_ /*<>*/ ; + : _v_ /*<>*/ ; } /*<>*/ return MakeSeeded ([0, @@ -33746,7 +33800,7 @@ include = /*<>*/ MakeSeeded$1 ([0, equal$0, seeded_hash$0], [0, equal, seeded_hash]), - _u_ = include[1], + _v_ = include[1], clear = include[2], reset = include[3], copy = include[4], @@ -33764,10 +33818,10 @@ clean = include[17], stats_alive = include[18]; function create(sz){ - /*<>*/ return caml_call2(_u_, _b_, sz) /*<>*/ ; + /*<>*/ return caml_call2(_v_, _b_, sz) /*<>*/ ; } function of_seq(i){ - var tbl = /*<>*/ caml_call2(_u_, _b_, 16); + var tbl = /*<>*/ caml_call2(_v_, _b_, 16); /*<>*/ caml_call2(replace_seq, tbl, i); /*<>*/ return tbl; /*<>*/ } @@ -33795,8 +33849,8 @@ /*<>*/ return [0, 0]; /*<>*/ } function add$0(b, k1, k2, d){ - var _u_ = /*<>*/ b[1]; - b[1] = [0, make$1(k1, k2, d), _u_]; + var _v_ = /*<>*/ b[1]; + b[1] = [0, make$1(k1, k2, d), _v_]; /*<>*/ return 0; /*<>*/ } function test_keys(k1, k2, e){ @@ -33832,8 +33886,8 @@ match = /*<>*/ Stdlib_List[40].call (null, - function(_u_){ - /*<>*/ return test_keys(k1, k2, _u_); + function(_v_){ + /*<>*/ return test_keys(k1, k2, _v_); }, b[1]); /*<>*/ if(! match) @@ -33873,15 +33927,15 @@ l = /*<>*/ keys.length - 1, eph = /*<>*/ create$1(l); /*<>*/ set_data$1(eph, data); - var _s_ = /*<>*/ l - 1 | 0, _t_ = 0; - if(_s_ >= 0){ - var i = _t_; + var _t_ = /*<>*/ l - 1 | 0, _u_ = 0; + if(_t_ >= 0){ + var i = _u_; for(;;){ /*<>*/ /*<>*/ set_key$0 (eph, i, /*<>*/ caml_check_bound(keys, i)[i + 1]); - var _u_ = /*<>*/ i + 1 | 0; - if(_s_ === i) break; - i = _u_; + var _v_ = /*<>*/ i + 1 | 0; + if(_t_ === i) break; + i = _v_; } } /*<>*/ return eph; @@ -33892,9 +33946,9 @@ if(l !== keys.length - 1) /*<>*/ throw caml_maybe_attach_backtrace (Stdlib[3], 1); - var _p_ = /*<>*/ l - 1 | 0, _q_ = 0; - if(_p_ >= 0){ - var i = _q_; + var _q_ = /*<>*/ l - 1 | 0, _r_ = 0; + if(_q_ >= 0){ + var i = _r_; for(;;){ var match = /*<>*/ get_key$0(eph, i); /*<>*/ if(! match) @@ -33904,13 +33958,13 @@ /*<>*/ if(k !== caml_check_bound(keys, i)[i + 1]) /*<>*/ throw caml_maybe_attach_backtrace (Stdlib[3], 1); - var _s_ = /*<>*/ i + 1 | 0; - if(_p_ === i) break; - i = _s_; + var _t_ = /*<>*/ i + 1 | 0; + if(_q_ === i) break; + i = _t_; } } - var _r_ = /*<>*/ get_data$1(eph); - return _r_; + var _s_ = /*<>*/ get_data$1(eph); + return _s_; } catch(exn$0){ var exn = /*<>*/ caml_wrap_exception(exn$0); @@ -33922,38 +33976,43 @@ function create(k, d){ var c = /*<>*/ create$1(k.length - 1); /*<>*/ set_data$1(c, d); - var _n_ = /*<>*/ k.length - 2 | 0, _o_ = 0; - if(_n_ >= 0){ - var i = _o_; + var _o_ = /*<>*/ k.length - 2 | 0, _p_ = 0; + if(_o_ >= 0){ + var i = _p_; for(;;){ /*<>*/ /*<>*/ set_key$0 (c, i, /*<>*/ caml_check_bound(k, i)[i + 1]); - var _p_ = /*<>*/ i + 1 | 0; - if(_n_ === i) break; - i = _p_; + var _q_ = /*<>*/ i + 1 | 0; + if(_o_ === i) break; + i = _q_; } } /*<>*/ return c; /*<>*/ } function seeded_hash(seed, k){ var - h = /*<>*/ [0, 0], - _j_ = /*<>*/ k.length - 2 | 0, - _k_ = 0; - if(_j_ >= 0){ - var i = _k_; + _j_ = /*<>*/ 0, + _k_ = /*<>*/ k.length - 2 | 0, + _m_ = 0; + if(_k_ < 0) + var h$0 = _j_; + else{ + var h = _j_, i = _m_; for(;;){ var - _l_ = /*<>*/ h[1], - _m_ = caml_check_bound(k, i)[i + 1]; - /*<>*/ h[1] = - (caml_call2(H[2], seed, _m_) * 65599 | 0) + _l_ | 0; - var _n_ = /*<>*/ i + 1 | 0; - if(_j_ === i) break; - i = _n_; + _n_ = /*<>*/ caml_check_bound(k, i)[i + 1], + _l_ = + /*<>*/ (caml_call2(H[2], seed, _n_) * 65599 + | 0) + + h + | 0, + _o_ = /*<>*/ i + 1 | 0; + if(_k_ === i){var h$0 = _l_; break;} + h = _l_; + i = _o_; } } - /*<>*/ return h[1]; + /*<>*/ return h$0; /*<>*/ } function equal(c, k){ var