diff --git a/CHANGES.md b/CHANGES.md index ce66e5a4a7..ac05c86909 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -30,9 +30,11 @@ * Compiler: improve deadcode optimization (#1963, #1962, #1967) * Compiler: improve coloring optimization (#1971, #1984, #1986, #1989) * Compiler: faster constant sharing (#1988) +* Compiler: faster wat output (#1992) +* Compiler: faster js code generation (#1985) * Compiler: more efficient code generation from bytecode (#1972) * Runtime: use Dataview to convert between floats and bit representation -* Compiler: speed-up compilation by improving the scheduling of optimization passes (#1962) +* Compiler: speed-up compilation by improving the scheduling of optimization passes (#1962, #2001) * Compiler: deadcode elimination of cyclic values (#1978) * Compiler: directly write Wasm binary modules (#2000, #2003) diff --git a/compiler/lib/driver.ml b/compiler/lib/driver.ml index 4048252f3b..1ec644848d 100644 --- a/compiler/lib/driver.ml +++ b/compiler/lib/driver.ml @@ -78,7 +78,7 @@ let specialize (p, info) = let p = specialize_js (p, info) in p, info -let eval (p, info) = if Config.Flag.staticeval () then Eval.f info p else p +let eval (p, info) = if Config.Flag.staticeval () then Eval.f info p, info else p, info let flow p = if debug () then Format.eprintf "Data flow...@."; @@ -142,7 +142,7 @@ let stats = Debug.find "stats" let rec loop max name round i (p : 'a) : 'a = let debug = times () || stats () in if debug then Format.eprintf "%s#%d...@." name i; - let p' = round ~first:(i = 1) p in + let p' = round p in if i >= max then ( if debug then Format.eprintf "%s#%d: couldn't reach fix point.@." name i; @@ -153,19 +153,12 @@ let rec loop max name round i (p : 'a) : 'a = p') else loop max name round (i + 1) p' -let round ~first : 'a -> 'a = - print - +> tailcall - +> (if first then Fun.id else phi) - +> flow - +> specialize - +> eval - +> inline - +> deadcode +let round : 'a -> 'a = + print +> tailcall +> (flow +> specialize +> eval +> fst) +> inline +> phi +> deadcode (* o1 *) -let o1 = loop 2 "round" round 1 +> phi +> flow +> specialize +> eval +> print +let o1 = loop 2 "round" round 1 +> (flow +> specialize +> eval +> fst) +> print (* o2 *) diff --git a/compiler/tests-compiler/static_eval.ml b/compiler/tests-compiler/static_eval.ml index 0bb7aa41f7..bae69657bb 100644 --- a/compiler/tests-compiler/static_eval.ml +++ b/compiler/tests-compiler/static_eval.ml @@ -142,11 +142,11 @@ let%expect_test "static eval of string get" = key = param[1], data = param[2], next = param[3], - r = [0, key, data, next], - prec = r, + prec$1 = [0, key, data, next], + prec = prec$1, param$0 = next; for(;;){ - if(! param$0) return r; + if(! param$0) return prec$1; var key$0 = param$0[1], data$0 = param$0[2], diff --git a/compiler/tests-full/stdlib.cma.expected.js b/compiler/tests-full/stdlib.cma.expected.js index c58fab0f3c..001fa8941c 100644 --- a/compiler/tests-full/stdlib.cma.expected.js +++ b/compiler/tests-full/stdlib.cma.expected.js @@ -2062,7 +2062,7 @@ /*<>*/ } function iterate(f, x){ function next(_m_){ /*<>*/ return iterate1(f, x, _m_);} - /*<>*/ return function(_m_){ + /*<>*/ return function(param){ /*<>*/ return [0, x, next];} /*<>*/ ; } function mapi_aux(f, i, xs, param){ @@ -2098,7 +2098,7 @@ /*<>*/ } function scan(f, s, xs){ function next(_k_){ /*<>*/ return tail_scan(f, s, xs, _k_);} - /*<>*/ return function(_k_){ + /*<>*/ return function(param){ /*<>*/ return [0, s, next];} /*<>*/ ; } function take_aux(n, xs){ @@ -2179,7 +2179,7 @@ /*<>*/ return take_while(_j_, xs$0, _k_); } /*<>*/ return [0, - function(_j_){ /*<>*/ return [0, x, next];}, + function(param){ /*<>*/ return [0, x, next];}, function(_j_){ /*<>*/ return group(eq, _i_, _j_);}] /*<>*/ ; /*<>*/ } var @@ -2260,7 +2260,7 @@ /*<>*/ return 0 < caml_call2(cmp, x, y) ? [0, y, - function(_h_){ + function(param){ var match = /*<>*/ caml_call1(ys, 0); /*<>*/ if(! match) /*<>*/ return [0, x, xs]; @@ -2269,7 +2269,7 @@ }] : [0, x, - function(_h_){ + function(param){ var match = /*<>*/ caml_call1(xs, 0); /*<>*/ if(! match) /*<>*/ return [0, y, ys]; @@ -2412,11 +2412,11 @@ tails = /*<>*/ match$1[2], heads = match$1[1], _f_ = - /*<>*/ function(_g_){ + /*<>*/ function(param){ /*<>*/ return [0, xs$0, tails]; }; /*<>*/ return [0, - function(_g_){ /*<>*/ return [0, x, heads];}, + function(param){ /*<>*/ return [0, x, heads];}, function(_g_){ /*<>*/ return _a_(_f_, xss$0, _g_); }] /*<>*/ ; @@ -3299,8 +3299,8 @@ var r = /*<>*/ param[2], l = param[1], - _h_ = /*<>*/ flatten(r); - /*<>*/ return caml_call2(Stdlib[37], l, _h_); + _f_ = /*<>*/ flatten(r); + /*<>*/ return caml_call2(Stdlib[37], l, _f_); } function map(f, param){ /*<>*/ if(! param) /*<>*/ return 0; @@ -3438,8 +3438,8 @@ } function map2(f, l1, l2){ /*<>*/ if(l1){ - var _g_ = l1[2], a1 = l1[1]; - if(_g_){ + var _e_ = l1[2], a1 = l1[1]; + if(_e_){ if(l2){ var match = l2[2]; if(match){ @@ -3447,8 +3447,8 @@ l2$0 = match[2], b2 = match[1], b1 = l2[1], - l1$0 = _g_[2], - a2 = _g_[1], + l1$0 = _e_[2], + a2 = _e_[1], r1 = /*<>*/ caml_call2(f, a1, b1), r2 = /*<>*/ caml_call2(f, a2, b2), block = /*<>*/ [0, r2, 24029], @@ -3460,8 +3460,8 @@ a: { /*<>*/ if(l1$1){ - var _h_ = l1$1[2], a1$0 = l1$1[1]; - if(_h_){ + var _f_ = l1$1[2], a1$0 = l1$1[1]; + if(_f_){ if(l2$1){ var match$0 = l2$1[2]; if(match$0){ @@ -3469,8 +3469,8 @@ l2$2 = match$0[2], b2$0 = match$0[1], b1$1 = l2$1[1], - l1$2 = _h_[2], - a2$0 = _h_[1], + l1$2 = _f_[2], + a2$0 = _f_[1], r1$1 = /*<>*/ caml_call2(f, a1$0, b1$1), r2$0 = /*<>*/ caml_call2(f, a2$0, b2$0), dst$0 = /*<>*/ [0, r2$0, 24029]; @@ -3592,8 +3592,8 @@ var l = /*<>*/ param[2], a = param[1], - _g_ = /*<>*/ caml_call1(p, a); - /*<>*/ if(! _g_) return _g_; + _e_ = /*<>*/ caml_call1(p, a); + /*<>*/ if(! _e_) return _e_; param = l; } /*<>*/ } @@ -3604,8 +3604,8 @@ var l = /*<>*/ param[2], a = param[1], - _g_ = /*<>*/ caml_call1(p, a); - /*<>*/ if(_g_) return _g_; + _e_ = /*<>*/ caml_call1(p, a); + /*<>*/ if(_e_) return _e_; param = l; } /*<>*/ } @@ -3619,8 +3619,8 @@ a2 = l2[1], l1$0 = l1[2], a1 = l1[1], - _g_ = /*<>*/ caml_call2(p, a1, a2); - /*<>*/ if(! _g_) return _g_; + _e_ = /*<>*/ caml_call2(p, a1, a2); + /*<>*/ if(! _e_) return _e_; l1 = l1$0; l2 = l2$0; continue; @@ -3640,8 +3640,8 @@ a2 = l2[1], l1$0 = l1[2], a1 = l1[1], - _g_ = /*<>*/ caml_call2(p, a1, a2); - /*<>*/ if(_g_) return _g_; + _e_ = /*<>*/ caml_call2(p, a1, a2); + /*<>*/ if(_e_) return _e_; l1 = l1$0; l2 = l2$0; continue; @@ -3658,8 +3658,8 @@ var l = /*<>*/ param[2], a = param[1], - _g_ = /*<>*/ 0 === caml_compare(a, x) ? 1 : 0; - /*<>*/ if(_g_) return _g_; + _e_ = /*<>*/ 0 === caml_compare(a, x) ? 1 : 0; + /*<>*/ if(_e_) return _e_; param = l; } /*<>*/ } @@ -3670,8 +3670,8 @@ var l = /*<>*/ param[2], a = param[1], - _g_ = /*<>*/ a === x ? 1 : 0; - if(_g_) return _g_; + _e_ = /*<>*/ a === x ? 1 : 0; + if(_e_) return _e_; param = l; } /*<>*/ } @@ -3739,8 +3739,8 @@ var l = /*<>*/ param[2], a = param[1][1], - _g_ = /*<>*/ 0 === caml_compare(a, x) ? 1 : 0; - /*<>*/ if(_g_) return _g_; + _e_ = /*<>*/ 0 === caml_compare(a, x) ? 1 : 0; + /*<>*/ if(_e_) return _e_; param = l; } /*<>*/ } @@ -3751,8 +3751,8 @@ var l = /*<>*/ param[2], a = param[1][1], - _g_ = /*<>*/ a === x ? 1 : 0; - if(_g_) return _g_; + _e_ = /*<>*/ a === x ? 1 : 0; + if(_e_) return _e_; param = l; } /*<>*/ } @@ -3792,16 +3792,16 @@ } /*<>*/ } function find_index(p){ - var _f_ = /*<>*/ 0; - return function(_g_){ - var i = /*<>*/ _f_, param = _g_; + var i = /*<>*/ 0; + return function(param$0){ + var i$0 = /*<>*/ i, param = param$0; for(;;){ /*<>*/ if(! param) /*<>*/ return 0; var l = /*<>*/ param[2], a = param[1]; /*<>*/ if(caml_call1(p, a)) - /*<>*/ return [0, i]; - var i$0 = /*<>*/ i + 1 | 0; - i = i$0; + /*<>*/ return [0, i$0]; + var i$1 = /*<>*/ i$0 + 1 | 0; + i$0 = i$1; param = l; }} /*<>*/ ; /*<>*/ } @@ -3818,19 +3818,19 @@ } /*<>*/ } function find_mapi(f){ - var _e_ = /*<>*/ 0; - return function(_f_){ - var i = /*<>*/ _e_, param = _f_; + var i = /*<>*/ 0; + return function(param$0){ + var i$0 = /*<>*/ i, param = param$0; for(;;){ /*<>*/ if(! param) /*<>*/ return 0; var l = /*<>*/ param[2], x = param[1], - result = /*<>*/ caml_call2(f, i, x); + result = /*<>*/ caml_call2(f, i$0, x); /*<>*/ if(result) /*<>*/ return result; - var i$0 = /*<>*/ i + 1 | 0; - i = i$0; + var i$1 = /*<>*/ i$0 + 1 | 0; + i$0 = i$1; param = l; }} /*<>*/ ; /*<>*/ } @@ -3999,21 +3999,22 @@ l$0 = l[2], x = l[1], block = /*<>*/ [0, x, 24029], + n$0 = n - 1 | 0, dst = /*<>*/ block, offset = 1, - n$0 = n - 1 | 0, + n$1 = n$0, l$1 = l$0; for(;;){ - /*<>*/ if(0 !== n$0 && l$1){ + /*<>*/ if(0 !== n$1 && l$1){ var l$2 = l$1[2], x$0 = l$1[1], dst$0 = /*<>*/ [0, x$0, 24029]; dst[offset + 1] = dst$0; - var n$1 = n$0 - 1 | 0; + var n$2 = n$1 - 1 | 0; dst = dst$0; offset = 1; - n$0 = n$1; + n$1 = n$2; l$1 = l$2; continue; } @@ -4023,41 +4024,41 @@ } /*<>*/ return 0; /*<>*/ } - function drop(n, l){ + function drop(n, rest){ /*<>*/ if(n < 0) /*<>*/ caml_call1(Stdlib[1], cst_List_drop); - var i = /*<>*/ 0, rest = l; + var i = /*<>*/ 0, rest$0 = rest; for(;;){ - /*<>*/ if(rest){ - var rest$0 = rest[2]; + /*<>*/ if(rest$0){ + var rest$1 = rest$0[2]; /*<>*/ if(i < n){ var i$0 = /*<>*/ i + 1 | 0; i = i$0; - rest = rest$0; + rest$0 = rest$1; continue; } } - /*<>*/ return rest; + /*<>*/ return rest$0; } /*<>*/ } function take_while(p, rest){ /*<>*/ if(rest){ - var l = rest[2], x = rest[1]; + var rest$0 = rest[2], x = rest[1]; /*<>*/ if(caml_call1(p, x)){ var block = /*<>*/ [0, x, 24029], dst = /*<>*/ block, offset = 1, - rest$0 = l; + rest$1 = rest$0; for(;;){ - /*<>*/ if(rest$0){ - var rest$1 = rest$0[2], x$0 = rest$0[1]; + /*<>*/ if(rest$1){ + var rest$2 = rest$1[2], x$0 = rest$1[1]; /*<>*/ if(caml_call1(p, x$0)){ var dst$0 = /*<>*/ [0, x$0, 24029]; dst[offset + 1] = dst$0; dst = dst$0; offset = 1; - rest$0 = rest$1; + rest$1 = rest$2; continue; } } @@ -7345,7 +7346,7 @@ /*<>*/ return r; /*<>*/ } function to_list(a){ - var i = /*<>*/ a.length - 2 | 0, res = 0; + var i$1 = /*<>*/ a.length - 2 | 0, i = i$1, res = 0; for(;;){ /*<>*/ if(0 > i) /*<>*/ return res; var res$0 = /*<>*/ [0, a[i + 1], res], i$0 = i - 1 | 0; @@ -7783,12 +7784,14 @@ var src1r = /*<>*/ src1ofs + src1len | 0, src2r = src2ofs + src2len | 0, - _u_ = + s2$1 = /*<>*/ caml_check_bound(src2, src2ofs)[src2ofs + 1], + s1$1 = + /*<>*/ caml_check_bound(a, src1ofs)[src1ofs + 1], i1 = /*<>*/ src1ofs, - s1 = /*<>*/ caml_check_bound(a, src1ofs)[src1ofs + 1], - i2 = /*<>*/ src2ofs, - s2 = _u_, + s1 = s1$1, + i2 = src2ofs, + s2 = s2$1, d = dstofs; for(;;) /*<>*/ if(0 < caml_call2(cmp, s1, s2)){ @@ -7945,7 +7948,7 @@ return function(_c_){ /*<>*/ return aux(_b_, _c_);} /*<>*/ ; /*<>*/ } - function of_seq(i$1){ + function of_seq(i$2){ var l = /*<>*/ caml_call3 @@ -7954,14 +7957,15 @@ /*<>*/ return [0, x, acc]; /*<>*/ }, 0, - i$1); + i$2); /*<>*/ if(! l) /*<>*/ return [0]; var tl = /*<>*/ l[2], hd = l[1], len = /*<>*/ list_length(0, l), a = /*<>*/ caml_array_make(len, hd), - i = /*<>*/ len - 2 | 0, + i$1 = /*<>*/ len - 2 | 0, + i = i$1, param = tl; for(;;){ /*<>*/ if(! param) /*<>*/ return a; @@ -8795,12 +8799,14 @@ var src1r = /*<>*/ src1ofs + src1len | 0, src2r = src2ofs + src2len | 0, - _y_ = + s2$1 = /*<>*/ caml_check_bound(src2, src2ofs)[src2ofs + 1], + s1$1 = + /*<>*/ caml_check_bound(a, src1ofs)[src1ofs + 1], i1 = /*<>*/ src1ofs, - s1 = /*<>*/ caml_check_bound(a, src1ofs)[src1ofs + 1], - i2 = /*<>*/ src2ofs, - s2 = _y_, + s1 = s1$1, + i2 = src2ofs, + s2 = s2$1, d = dstofs; for(;;) /*<>*/ if(0 < caml_call2(cmp, s1, s2)){ @@ -8935,7 +8941,7 @@ return function(_m_){ /*<>*/ return aux(_l_, _m_);} /*<>*/ ; /*<>*/ } - function of_seq(i$1){ + function of_seq(i$2){ var l = /*<>*/ caml_call3 @@ -8944,10 +8950,11 @@ /*<>*/ return [0, x, acc]; /*<>*/ }, 0, - i$1), + i$2), len = /*<>*/ caml_call1(Stdlib_List[1], l), a = /*<>*/ caml_floatarray_create(len), - i = /*<>*/ len - 1 | 0, + i$1 = /*<>*/ len - 1 | 0, + i = i$1, param = l; for(;;){ /*<>*/ if(! param) /*<>*/ return a; @@ -10018,7 +10025,7 @@ /*<>*/ return caml_check_bound(env[2], _c_)[_c_ + 1] /*<>*/ ; } function symbol_start_pos(param){ - var i = /*<>*/ env[12]; + var i$1 = /*<>*/ env[12], i = i$1; for(;;){ /*<>*/ if(0 >= i){ var _c_ = /*<>*/ env[11]; @@ -10535,9 +10542,10 @@ /*<>*/ } function compare(s1, s2){ var - _p_ = /*<>*/ cons_enum(s2, 0), - e1 = /*<>*/ /*<>*/ cons_enum(s1, 0), - e2 = /*<>*/ _p_; + e2$2 = /*<>*/ cons_enum(s2, 0), + e1$2 = /*<>*/ cons_enum(s1, 0), + e1 = /*<>*/ e1$2, + e2 = e2$2; for(;;){ /*<>*/ if(! e1) return e2 ? -1 : 0 /*<>*/ ; @@ -11197,8 +11205,8 @@ var hl = /*<>*/ height(l), hr = /*<>*/ height(r), - _x_ = /*<>*/ hr <= hl ? hl + 1 | 0 : hr + 1 | 0; - return [0, l, x, d, r, _x_]; + _w_ = /*<>*/ hr <= hl ? hl + 1 | 0 : hr + 1 | 0; + return [0, l, x, d, r, _w_]; /*<>*/ } function singleton(x, d){ /*<>*/ return [0, 0, x, d, 0, 1]; @@ -11220,8 +11228,8 @@ ld = l[3], lv = l[2], ll = l[1], - _t_ = /*<>*/ height(lr); - /*<>*/ if(_t_ <= height(ll)) + _s_ = /*<>*/ height(lr); + /*<>*/ if(_s_ <= height(ll)) /*<>*/ return /*<>*/ create (ll, lv, ld, /*<>*/ create(lr, x, d, r)) /*<>*/ ; /*<>*/ if(! lr) @@ -11231,16 +11239,16 @@ lrd = lr[3], lrv = lr[2], lrl = lr[1], - _u_ = /*<>*/ create(lrr, x, d, r); + _t_ = /*<>*/ create(lrr, x, d, r); /*<>*/ return /*<>*/ create ( /*<>*/ create(ll, lv, ld, lrl), lrv, lrd, - _u_) /*<>*/ ; + _t_) /*<>*/ ; } /*<>*/ if((hl + 2 | 0) >= hr){ - var _x_ = /*<>*/ hr <= hl ? hl + 1 | 0 : hr + 1 | 0; - return [0, l, x, d, r, _x_]; + var _w_ = /*<>*/ hr <= hl ? hl + 1 | 0 : hr + 1 | 0; + return [0, l, x, d, r, _w_]; } /*<>*/ if(! r) /*<>*/ return caml_call1(Stdlib[1], cst_Map_bal$2) /*<>*/ ; @@ -11249,8 +11257,8 @@ rd = r[3], rv = r[2], rl = r[1], - _v_ = /*<>*/ height(rl); - /*<>*/ if(_v_ <= height(rr)) + _u_ = /*<>*/ height(rl); + /*<>*/ if(_u_ <= height(rr)) /*<>*/ return /*<>*/ create ( /*<>*/ create(l, x, d, rl), rv, rd, rr) /*<>*/ ; /*<>*/ if(! rl) @@ -11260,9 +11268,9 @@ rld = rl[3], rlv = rl[2], rll = rl[1], - _w_ = /*<>*/ create(rlr, rv, rd, rr); + _v_ = /*<>*/ create(rlr, rv, rd, rr); /*<>*/ return /*<>*/ create - ( /*<>*/ create(l, x, d, rll), rlv, rld, _w_) /*<>*/ ; + ( /*<>*/ create(l, x, d, rll), rlv, rld, _v_) /*<>*/ ; } var empty = /*<>*/ 0; function is_empty(param){ @@ -11463,8 +11471,8 @@ v = param[2], l = param[1], c = /*<>*/ caml_call2(Ord[1], x, v), - _t_ = /*<>*/ 0 === c ? 1 : 0; - if(_t_) return _t_; + _s_ = /*<>*/ 0 === c ? 1 : 0; + if(_s_) return _s_; param = 0 <= c ? r : l; } /*<>*/ } @@ -11671,15 +11679,15 @@ d = param[3], v = param[2], l = param[1], - _r_ = /*<>*/ caml_call2(p, v, d); - /*<>*/ if(_r_){ - var _s_ = /*<>*/ for_all(p, l); - /*<>*/ if(_s_){param = r; continue;} - var _t_ = _s_; + _q_ = /*<>*/ caml_call2(p, v, d); + /*<>*/ if(_q_){ + var _r_ = /*<>*/ for_all(p, l); + /*<>*/ if(_r_){param = r; continue;} + var _s_ = _r_; } else - var _t_ = /*<>*/ _r_; - return _t_; + var _s_ = /*<>*/ _q_; + return _s_; } /*<>*/ } function exists(p, param$0){ @@ -11691,15 +11699,15 @@ d = param[3], v = param[2], l = param[1], - _p_ = /*<>*/ caml_call2(p, v, d); - /*<>*/ if(_p_) - var _q_ = _p_; + _o_ = /*<>*/ caml_call2(p, v, d); + /*<>*/ if(_o_) + var _p_ = _o_; else{ - var _r_ = /*<>*/ exists(p, l); - /*<>*/ if(! _r_){param = r; continue;} - var _q_ = _r_; + var _q_ = /*<>*/ exists(p, l); + /*<>*/ if(! _q_){param = r; continue;} + var _p_ = _q_; } - /*<>*/ return _q_; + /*<>*/ return _p_; } /*<>*/ } function add_min_binding(k, x, param){ @@ -11801,10 +11809,10 @@ r2 = /*<>*/ match[3], d2 = match[2], l2 = match[1], - _m_ = /*<>*/ merge(f, r1, r2), - _n_ = /*<>*/ caml_call3(f, v1, [0, d1], d2); + _l_ = /*<>*/ merge(f, r1, r2), + _m_ = /*<>*/ caml_call3(f, v1, [0, d1], d2); /*<>*/ return /*<>*/ concat_or_join - ( /*<>*/ merge(f, l1, l2), v1, _n_, _m_) /*<>*/ ; + ( /*<>*/ merge(f, l1, l2), v1, _m_, _l_) /*<>*/ ; } } else if(! s2) /*<>*/ return 0; @@ -11820,10 +11828,10 @@ r1$0 = /*<>*/ match$0[3], d1$0 = match$0[2], l1$0 = match$0[1], - _o_ = /*<>*/ merge(f, r1$0, r2$0), - _p_ = /*<>*/ caml_call3(f, v2, d1$0, [0, d2$0]); + _n_ = /*<>*/ merge(f, r1$0, r2$0), + _o_ = /*<>*/ caml_call3(f, v2, d1$0, [0, d2$0]); /*<>*/ return /*<>*/ concat_or_join - ( /*<>*/ merge(f, l1$0, l2$0), v2, _p_, _o_) /*<>*/ ; + ( /*<>*/ merge(f, l1$0, l2$0), v2, _o_, _n_) /*<>*/ ; } function union(f, s1, s2){ /*<>*/ if(s1){ @@ -11924,11 +11932,11 @@ rf = /*<>*/ match$0[2], rt = match$0[1]; /*<>*/ if(pvd){ - var _l_ = /*<>*/ concat(lf, rf); - /*<>*/ return [0, join(lt, v, d, rt), _l_] /*<>*/ ; + var _k_ = /*<>*/ concat(lf, rf); + /*<>*/ return [0, join(lt, v, d, rt), _k_] /*<>*/ ; } - var _m_ = /*<>*/ join(lf, v, d, rf); - /*<>*/ return [0, concat(lt, rt), _m_] /*<>*/ ; + var _l_ = /*<>*/ join(lf, v, d, rf); + /*<>*/ return [0, concat(lt, rt), _l_] /*<>*/ ; /*<>*/ } function cons_enum(m$0, e$1){ var m = /*<>*/ m$0, e = e$1; @@ -11946,9 +11954,10 @@ /*<>*/ } function compare(cmp, m1, m2){ var - _l_ = /*<>*/ cons_enum(m2, 0), - e1 = /*<>*/ /*<>*/ cons_enum(m1, 0), - e2 = /*<>*/ _l_; + e2$2 = /*<>*/ cons_enum(m2, 0), + e1$2 = /*<>*/ cons_enum(m1, 0), + e1 = /*<>*/ e1$2, + e2 = e2$2; for(;;){ /*<>*/ if(! e1) return e2 ? -1 : 0 /*<>*/ ; @@ -11976,9 +11985,10 @@ /*<>*/ } function equal(cmp, m1, m2){ var - _l_ = /*<>*/ cons_enum(m2, 0), - e1 = /*<>*/ /*<>*/ cons_enum(m1, 0), - e2 = /*<>*/ _l_; + e2$2 = /*<>*/ cons_enum(m2, 0), + e1$2 = /*<>*/ cons_enum(m1, 0), + e1 = /*<>*/ e1$2, + e2 = e2$2; for(;;){ /*<>*/ if(! e1) return e2 ? 0 : 1 /*<>*/ ; @@ -17999,14 +18009,14 @@ var rest = fmt[1], x = /*<>*/ make_iprintf(k, o, rest); - /*<>*/ return function(_aL_){ + /*<>*/ return function(param){ /*<>*/ return x;} /*<>*/ ; case 1: var rest$0 = /*<>*/ fmt[1], x$0 = /*<>*/ make_iprintf(k, o, rest$0); - /*<>*/ return function(_aL_){ + /*<>*/ return function(param){ /*<>*/ return x$0;} /*<>*/ ; case 2: var match = /*<>*/ fmt[1]; @@ -18015,7 +18025,7 @@ rest$1 = fmt[2], x$1 = /*<>*/ make_iprintf(k, o, rest$1); - /*<>*/ return function(_aL_){ + /*<>*/ return function(param){ /*<>*/ return x$1;} /*<>*/ ; } /*<>*/ if(0 === match[0]){ @@ -18023,7 +18033,7 @@ rest$2 = fmt[2], x$2 = /*<>*/ make_iprintf(k, o, rest$2); - /*<>*/ return function(_aL_){ + /*<>*/ return function(param){ /*<>*/ return x$2;} /*<>*/ ; } var @@ -18031,10 +18041,10 @@ x$3 = /*<>*/ make_iprintf(k, o, rest$3), x$4 = - /*<>*/ function(_aL_){ + /*<>*/ function(param){ /*<>*/ return x$3; }; - /*<>*/ return function(_aL_){ + /*<>*/ return function(param){ /*<>*/ return x$4;} /*<>*/ ; case 3: var match$0 = /*<>*/ fmt[1]; @@ -18043,7 +18053,7 @@ rest$4 = fmt[2], x$5 = /*<>*/ make_iprintf(k, o, rest$4); - /*<>*/ return function(_aL_){ + /*<>*/ return function(param){ /*<>*/ return x$5;} /*<>*/ ; } /*<>*/ if(0 === match$0[0]){ @@ -18051,7 +18061,7 @@ rest$5 = fmt[2], x$6 = /*<>*/ make_iprintf(k, o, rest$5); - /*<>*/ return function(_aL_){ + /*<>*/ return function(param){ /*<>*/ return x$6;} /*<>*/ ; } var @@ -18059,10 +18069,10 @@ x$7 = /*<>*/ make_iprintf(k, o, rest$6), x$8 = - /*<>*/ function(_aL_){ + /*<>*/ function(param){ /*<>*/ return x$7; }; - /*<>*/ return function(_aL_){ + /*<>*/ return function(param){ /*<>*/ return x$8;} /*<>*/ ; case 4: var @@ -18106,7 +18116,7 @@ rest$12 = fmt[2], x$9 = /*<>*/ make_iprintf(k, o, rest$12); - /*<>*/ return function(_aL_){ + /*<>*/ return function(param){ /*<>*/ return x$9;} /*<>*/ ; } /*<>*/ if(0 === match$1[0]){ @@ -18114,7 +18124,7 @@ rest$13 = fmt[2], x$10 = /*<>*/ make_iprintf(k, o, rest$13); - /*<>*/ return function(_aL_){ + /*<>*/ return function(param){ /*<>*/ return x$10;} /*<>*/ ; } var @@ -18122,10 +18132,10 @@ x$11 = /*<>*/ make_iprintf(k, o, rest$14), x$12 = - /*<>*/ function(_aL_){ + /*<>*/ function(param){ /*<>*/ return x$11; }; - /*<>*/ return function(_aL_){ + /*<>*/ return function(param){ /*<>*/ return x$12;} /*<>*/ ; case 10: var rest$15 = /*<>*/ fmt[1]; @@ -18144,7 +18154,7 @@ rest$18 = /*<>*/ fmt[3], x$13 = /*<>*/ make_iprintf(k, o, rest$18); - /*<>*/ return function(_aL_){ + /*<>*/ return function(param){ /*<>*/ return x$13;} /*<>*/ ; case 14: var @@ -18165,17 +18175,17 @@ x$14 = /*<>*/ make_iprintf(k, o, rest$20), x$15 = - /*<>*/ function(_aL_){ + /*<>*/ function(param){ /*<>*/ return x$14; }; - /*<>*/ return function(_aL_){ + /*<>*/ return function(param){ /*<>*/ return x$15;} /*<>*/ ; case 16: var rest$21 = /*<>*/ fmt[1], x$16 = /*<>*/ make_iprintf(k, o, rest$21); - /*<>*/ return function(_aL_){ + /*<>*/ return function(param){ /*<>*/ return x$16;} /*<>*/ ; case 17: var rest$22 = /*<>*/ fmt[2]; @@ -18218,21 +18228,21 @@ rest$25 = /*<>*/ fmt[3], x$17 = /*<>*/ make_iprintf(k, o, rest$25); - /*<>*/ return function(_aL_){ + /*<>*/ return function(param){ /*<>*/ return x$17;} /*<>*/ ; case 21: var rest$26 = /*<>*/ fmt[2], x$18 = /*<>*/ make_iprintf(k, o, rest$26); - /*<>*/ return function(_aL_){ + /*<>*/ return function(param){ /*<>*/ return x$18;} /*<>*/ ; case 22: var rest$27 = /*<>*/ fmt[1], x$19 = /*<>*/ make_iprintf(k, o, rest$27); - /*<>*/ return function(_aL_){ + /*<>*/ return function(param){ /*<>*/ return x$19;} /*<>*/ ; case 23: var @@ -18268,71 +18278,71 @@ if(typeof prec !== "number"){ var x$2 = /*<>*/ make_iprintf(k, o, fmt); - /*<>*/ return function(_aL_){ + /*<>*/ return function(param){ /*<>*/ return x$2;} /*<>*/ ; } /*<>*/ if(prec){ var x = /*<>*/ make_iprintf(k, o, fmt), x$0 = - /*<>*/ function(_aL_){ + /*<>*/ function(param){ /*<>*/ return x; }; - /*<>*/ return function(_aL_){ + /*<>*/ return function(param){ /*<>*/ return x$0;} /*<>*/ ; } var x$1 = /*<>*/ make_iprintf(k, o, fmt); - /*<>*/ return function(_aL_){ + /*<>*/ return function(param){ /*<>*/ return x$1;} /*<>*/ ; } /*<>*/ if(0 === pad[0]){ if(typeof prec !== "number"){ var x$6 = /*<>*/ make_iprintf(k, o, fmt); - /*<>*/ return function(_aL_){ + /*<>*/ return function(param){ /*<>*/ return x$6;} /*<>*/ ; } /*<>*/ if(prec){ var x$3 = /*<>*/ make_iprintf(k, o, fmt), x$4 = - /*<>*/ function(_aL_){ + /*<>*/ function(param){ /*<>*/ return x$3; }; - /*<>*/ return function(_aL_){ + /*<>*/ return function(param){ /*<>*/ return x$4;} /*<>*/ ; } var x$5 = /*<>*/ make_iprintf(k, o, fmt); - /*<>*/ return function(_aL_){ + /*<>*/ return function(param){ /*<>*/ return x$5;} /*<>*/ ; } /*<>*/ if(typeof prec !== "number"){ var x$12 = /*<>*/ make_iprintf(k, o, fmt), x$13 = - /*<>*/ function(_aL_){ + /*<>*/ function(param){ /*<>*/ return x$12; }; - /*<>*/ return function(_aL_){ + /*<>*/ return function(param){ /*<>*/ return x$13;} /*<>*/ ; } /*<>*/ if(prec){ var x$7 = /*<>*/ make_iprintf(k, o, fmt), x$8 = - /*<>*/ function(_aL_){ + /*<>*/ function(param){ /*<>*/ return x$7; }, x$9 = - /*<>*/ function(_aL_){ + /*<>*/ function(param){ /*<>*/ return x$8; }; - /*<>*/ return function(_aL_){ + /*<>*/ return function(param){ /*<>*/ return x$9;} /*<>*/ ; } var x$10 = /*<>*/ make_iprintf(k, o, fmt); - function x$11(_aL_){ /*<>*/ return x$10;} - /*<>*/ return function(_aL_){ + function x$11(param){ /*<>*/ return x$10;} + /*<>*/ return function(param){ /*<>*/ return x$11;} /*<>*/ ; /*<>*/ } function fn_of_custom_arity$0(counter, k, o, fmt, param){ @@ -18342,7 +18352,7 @@ x = /*<>*/ fn_of_custom_arity (k, o, fmt, arity); - /*<>*/ return function(_aL_){ + /*<>*/ return function(param){ /*<>*/ return x;} /*<>*/ ; } /*<>*/ if(counter >= 50) @@ -18729,21 +18739,21 @@ /*<>*/ invalid_format_message (end_ind, cst_unexpected_end_of_format); var - match$0 = + match$1 = /*<>*/ 95 === caml_string_get(str, str_ind$2) ? /*<>*/ parse_flags (str_ind, str_ind$2 + 1 | 0, end_ind, 1) : /*<>*/ parse_flags (str_ind, str_ind$2, end_ind, 0), - fmt_rest = /*<>*/ match$0[1]; + fmt_rest = /*<>*/ match$1[1]; /*<>*/ return add_literal (lit_start, str_ind, fmt_rest) /*<>*/ ; } var str_ind$0 = /*<>*/ str_ind + 1 | 0; a: if(str_ind$0 === end_ind) - var match$1 = /*<>*/ _N_; + var match$0 = /*<>*/ _N_; else{ var c = @@ -18756,7 +18766,7 @@ switch(switcher){ case 0: var - match$1 = + match$0 = /*<>*/ parse_tag (1, str_ind$0 + 1 | 0, end_ind); break a; @@ -18766,7 +18776,7 @@ /*<>*/ parse (str_ind$0 + 1 | 0, end_ind) [1], - match$1 = + match$0 = /*<>*/ [0, [17, 1, fmt_rest$2]]; break a; } @@ -18775,7 +18785,7 @@ /*<>*/ switch(c - 91 | 0){ case 0: var - match$1 = + match$0 = /*<>*/ parse_tag (0, str_ind$0 + 1 | 0, end_ind); break a; @@ -18785,7 +18795,7 @@ /*<>*/ parse (str_ind$0 + 1 | 0, end_ind) [1], - match$1 = + match$0 = /*<>*/ [0, [17, 0, fmt_rest$3]]; break a; } @@ -18797,7 +18807,7 @@ /*<>*/ parse (str_ind$0 + 1 | 0, end_ind) [1], - match$1 = + match$0 = /*<>*/ [0, [17, 3, fmt_rest$4]]; break a; } @@ -18809,7 +18819,7 @@ /*<>*/ parse (str_ind$0 + 1 | 0, end_ind) [1], - match$1 = + match$0 = /*<>*/ [0, [17, _O_, fmt_rest$5]]; break a; case 5: @@ -18825,7 +18835,7 @@ /*<>*/ parse (str_ind$0 + 2 | 0, end_ind) [1], - match$1 = + match$0 = /*<>*/ [0, [17, 6, fmt_rest$6]]; break a; } @@ -18833,7 +18843,7 @@ fmt_rest$7 = /*<>*/ parse(str_ind$0, end_ind) [1], - match$1 = + match$0 = /*<>*/ [0, [12, 64, fmt_rest$7]]; break a; case 12: @@ -18842,7 +18852,7 @@ /*<>*/ parse (str_ind$0 + 1 | 0, end_ind) [1], - match$1 = + match$0 = /*<>*/ [0, [17, _P_, fmt_rest$8]]; break a; case 14: @@ -18851,7 +18861,7 @@ /*<>*/ parse (str_ind$0 + 1 | 0, end_ind) [1], - match$1 = + match$0 = /*<>*/ [0, [17, 4, fmt_rest$9]]; break a; case 27: @@ -18968,7 +18978,7 @@ fmt_rest$12 = /*<>*/ parse(next_ind, end_ind) [1], - match$1 = + match$0 = /*<>*/ [0, [17, formatting_lit$0, fmt_rest$12]]; break a; @@ -19036,7 +19046,7 @@ /*<>*/ parse (next_ind$0, end_ind) [1], - match$1 = + match$0 = /*<>*/ [0, [17, formatting_lit$1, fmt_rest$13]]; break a; @@ -19045,7 +19055,7 @@ fmt_rest$14 = /*<>*/ parse(str_ind$4, end_ind) [1], - match$1 = + match$0 = /*<>*/ [0, [17, _Q_, fmt_rest$14]]; break a; @@ -19055,7 +19065,7 @@ /*<>*/ parse (str_ind$0 + 1 | 0, end_ind) [1], - match$1 = + match$0 = /*<>*/ [0, [17, 2, fmt_rest$10]]; break a; case 32: @@ -19064,7 +19074,7 @@ /*<>*/ parse (str_ind$0 + 1 | 0, end_ind) [1], - match$1 = + match$0 = /*<>*/ [0, [17, 5, fmt_rest$11]]; break a; } @@ -19074,10 +19084,10 @@ /*<>*/ parse (str_ind$0 + 1 | 0, end_ind) [1], - match$1 = + match$0 = /*<>*/ [0, [17, [2, c], fmt_rest$1]]; } - var fmt_rest$0 = /*<>*/ match$1[1]; + var fmt_rest$0 = /*<>*/ match$0[1]; /*<>*/ return add_literal (lit_start, str_ind, fmt_rest$0) /*<>*/ ; } @@ -22214,7 +22224,8 @@ /*<>*/ return 0; var backtrace = /*<>*/ match[1], - i = /*<>*/ backtrace.length - 2 | 0; + i$1 = /*<>*/ backtrace.length - 2 | 0, + i = /*<>*/ i$1; for(;;){ /*<>*/ if(-1 === i) var _y_ = /*<>*/ 0; @@ -22329,7 +22340,7 @@ /*<>*/ caml_call1(Stdlib[103], 0); } catch(exn){} - /*<>*/ try{ + /*<>*/ try{ var _v_ = /*<>*/ caml_call2 @@ -22966,7 +22977,10 @@ } var buf$2 = /*<>*/ ensure(buf, nread, 65537); /*<>*/ runtime.caml_bytes_set(buf$2, nread, c); - var buf$0 = /*<>*/ buf$2, ofs = nread + 1 | 0; + var + ofs$1 = /*<>*/ nread + 1 | 0, + buf$0 = buf$2, + ofs = ofs$1; for(;;){ var buf$1 = /*<>*/ ensure(buf$0, ofs, chunk_size), @@ -24756,9 +24770,9 @@ var Stdlib_String = global_data.Stdlib__String; function ongoing_traversal(h){ var - _F_ = /*<>*/ h.length - 1 < 4 ? 1 : 0, - _G_ = _F_ || (h[4] < 0 ? 1 : 0); - return _G_; + _E_ = /*<>*/ h.length - 1 < 4 ? 1 : 0, + _F_ = _E_ || (h[4] < 0 ? 1 : 0); + return _F_; /*<>*/ } function flip_ongoing_traversal(h){ /*<>*/ h[4] = - h[4] | 0; @@ -24822,24 +24836,24 @@ s = /*<>*/ power_2_above(16, initial_size); /*<>*/ if(random) var - _F_ = + _E_ = /*<>*/ caml_call1(Stdlib_Domain[11][2], prng_key), seed = /*<>*/ /*<>*/ caml_call1 - (Stdlib_Random[19][4], _F_); + (Stdlib_Random[19][4], _E_); else var seed = /*<>*/ 0; /*<>*/ return [0, 0, caml_array_make(s, 0), seed, s] /*<>*/ ; /*<>*/ } function clear(h){ - var _F_ = /*<>*/ 0 < h[1] ? 1 : 0; - return _F_ + var _E_ = /*<>*/ 0 < h[1] ? 1 : 0; + return _E_ ? (h [1] = 0, /*<>*/ caml_call4 (Stdlib_Array[8], h[2], 0, h[2].length - 1, 0)) - : _F_ /*<>*/ ; + : _E_ /*<>*/ ; } function reset(h){ var len = /*<>*/ h[2].length - 1; @@ -24860,12 +24874,12 @@ key = /*<>*/ param[1], data = param[2], next = param[3], - r = /*<>*/ [0, key, data, next], - prec = /*<>*/ r, + prec$1 = /*<>*/ [0, key, data, next], + prec = /*<>*/ prec$1, param$0 = next; for(;;){ /*<>*/ if(! param$0) - /*<>*/ return r; + /*<>*/ return prec$1; var key$0 = /*<>*/ param$0[1], data$0 = param$0[2], @@ -24878,10 +24892,10 @@ /*<>*/ } function copy(h){ var - _D_ = /*<>*/ h[4], - _E_ = h[3], - _F_ = caml_call2(Stdlib_Array[14], copy_bucketlist, h[2]); - /*<>*/ return [0, h[1], _F_, _E_, _D_]; + _C_ = /*<>*/ h[4], + _D_ = h[3], + _E_ = caml_call2(Stdlib_Array[14], copy_bucketlist, h[2]); + /*<>*/ return [0, h[1], _E_, _D_, _C_]; /*<>*/ } function length(h){ /*<>*/ return h[1]; @@ -24890,17 +24904,16 @@ var nsize = /*<>*/ ndata.length - 1, ndata_tail = /*<>*/ caml_array_make(nsize, 0), - _x_ = /*<>*/ odata.length - 2 | 0, - _A_ = 0; - if(_x_ >= 0){ - var i$0 = _A_; + _w_ = /*<>*/ odata.length - 2 | 0, + _z_ = 0; + if(_w_ >= 0){ + var i$0 = _z_; for(;;){ var - cell = - /*<>*/ /*<>*/ caml_check_bound - (odata, i$0) - [i$0 + 1]; - /*<>*/ for(;;){ + cell$1 = + /*<>*/ caml_check_bound(odata, i$0)[i$0 + 1], + cell = /*<>*/ cell$1; + for(;;){ /*<>*/ if(! cell) break; var key = cell[1], @@ -24919,39 +24932,39 @@ = cell$0; /*<>*/ cell = next; } - var _D_ = /*<>*/ i$0 + 1 | 0; - if(_x_ === i$0) break; - i$0 = _D_; + var _C_ = /*<>*/ i$0 + 1 | 0; + if(_w_ === i$0) break; + i$0 = _C_; } } /*<>*/ if(inplace){ - var _y_ = /*<>*/ nsize - 1 | 0, _B_ = 0; - if(_y_ >= 0){ - var i = _B_; + var _x_ = /*<>*/ nsize - 1 | 0, _A_ = 0; + if(_x_ >= 0){ + var i = _A_; for(;;){ var match$0 = /*<>*/ caml_check_bound(ndata_tail, i)[i + 1]; /*<>*/ if(match$0) /*<>*/ match$0[3] = 0; - var _C_ = /*<>*/ i + 1 | 0; - if(_y_ === i) break; - i = _C_; + var _B_ = /*<>*/ i + 1 | 0; + if(_x_ === i) break; + i = _B_; } } - var _z_ = /*<>*/ 0; + var _y_ = /*<>*/ 0; } else - var _z_ = /*<>*/ inplace; - return _z_; + var _y_ = /*<>*/ inplace; + return _y_; /*<>*/ } function resize(indexfun, h){ var odata = /*<>*/ h[2], osize = /*<>*/ odata.length - 1, nsize = /*<>*/ osize * 2 | 0, - _x_ = /*<>*/ nsize < Stdlib_Sys[13] ? 1 : 0; - if(! _x_) return _x_; + _w_ = /*<>*/ nsize < Stdlib_Sys[13] ? 1 : 0; + if(! _w_) return _w_; var ndata = /*<>*/ caml_array_make(nsize, 0), inplace = /*<>*/ 1 - ongoing_traversal(h); @@ -24967,9 +24980,9 @@ /*<>*/ if(1 - old_trav) /*<>*/ flip_ongoing_traversal(h); /*<>*/ try{ - var d = h[2], _t_ = /*<>*/ d.length - 2 | 0, _v_ = 0; - if(_t_ >= 0){ - var i = _v_; + var d = h[2], _s_ = /*<>*/ d.length - 2 | 0, _u_ = 0; + if(_s_ >= 0){ + var i = _u_; for(;;){ var param = @@ -24982,15 +24995,15 @@ /*<>*/ caml_call2(f, key, data); /*<>*/ param = next; } - var _x_ = /*<>*/ i + 1 | 0; - if(_t_ === i) break; - i = _x_; + var _w_ = /*<>*/ i + 1 | 0; + if(_s_ === i) break; + i = _w_; } } var - _u_ = /*<>*/ 1 - old_trav, - _w_ = _u_ ? /*<>*/ flip_ongoing_traversal(h) : _u_; - return _w_; + _t_ = /*<>*/ 1 - old_trav, + _v_ = _t_ ? /*<>*/ flip_ongoing_traversal(h) : _t_; + return _v_; } catch(exn$0){ var exn = /*<>*/ caml_wrap_exception(exn$0); @@ -25006,10 +25019,10 @@ old_trav = /*<>*/ ongoing_traversal(h); /*<>*/ if(1 - old_trav) /*<>*/ flip_ongoing_traversal(h); - /*<>*/ try{ - var _p_ = d.length - 2 | 0, _r_ = 0; - if(_p_ >= 0){ - var i = _r_; + /*<>*/ try{ + var _o_ = d.length - 2 | 0, _q_ = 0; + if(_o_ >= 0){ + var i = _q_; for(;;){ var slot$0 = /*<>*/ caml_check_bound(h[2], i)[i + 1], @@ -25041,15 +25054,15 @@ /*<>*/ prec[3] = 0; else /*<>*/ caml_check_bound(h[2], i)[i + 1] = 0; - var _t_ = /*<>*/ i + 1 | 0; - if(_p_ === i) break; - i = _t_; + var _s_ = /*<>*/ i + 1 | 0; + if(_o_ === i) break; + i = _s_; } } var - _q_ = /*<>*/ 1 - old_trav, - _s_ = _q_ ? /*<>*/ flip_ongoing_traversal(h) : _q_; - return _s_; + _p_ = /*<>*/ 1 - old_trav, + _r_ = _p_ ? /*<>*/ flip_ongoing_traversal(h) : _p_; + return _r_; } catch(exn$0){ var exn = /*<>*/ caml_wrap_exception(exn$0); @@ -25073,12 +25086,10 @@ var i = _m_; for(;;){ var - _o_ = /*<>*/ accu$1[1], - b = - /*<>*/ /*<>*/ caml_check_bound - (d, i) - [i + 1], - accu = /*<>*/ _o_; + accu$2 = /*<>*/ accu$1[1], + b$0 = /*<>*/ caml_check_bound(d, i)[i + 1], + b = /*<>*/ b$0, + accu = accu$2; for(;;){ /*<>*/ if(! b) break; var @@ -25090,9 +25101,9 @@ accu = accu$0; } /*<>*/ accu$1[1] = accu; - var _p_ = i + 1 | 0; + var _o_ = i + 1 | 0; if(_l_ === i) break; - i = _p_; + i = _o_; } } /*<>*/ if(1 - old_trav) @@ -26107,9 +26118,10 @@ live = /*<>*/ count_bucket(0, bucket, 0); /*<>*/ if(live <= prev_len){ var + j$2 = /*<>*/ length(bucket) - 1 | 0, i$0 = /*<>*/ 0, - j = /*<>*/ length(bucket) - 1 | 0; - /*<>*/ for(;;){ + j = j$2; + for(;;){ /*<>*/ if(prev_len > j) break; /*<>*/ if(check(bucket, i$0)){ var i$1 = /*<>*/ i$0 + 1 | 0; @@ -27562,10 +27574,10 @@ /*<>*/ caml_call3 (Stdlib_String[16], s, i, n)]) /*<>*/ ; } - function g(_D_){ + function g(param){ /*<>*/ return add_symbolic_output_item(sob, 0); } - function h(_D_){ + function h(param){ /*<>*/ return add_symbolic_output_item(sob, 1); } function i(n){ @@ -29160,16 +29172,7 @@ (width$1, ib) /*<>*/ ; case 4: /*<>*/ return scan_decimal_digit_plus(width$1, ib) /*<>*/ ; - case 0: - /*<>*/ return scan_digit_plus - (cst_binary, is_binary_digit, width$1, ib) /*<>*/ ; - case 3: - /*<>*/ return scan_digit_plus - (cst_octal, is_octal_digit, width$1, ib) /*<>*/ ; - case 5: - /*<>*/ return scan_digit_plus - (cst_hexadecimal, is_hexa_digit, width$1, ib) /*<>*/ ; - default: + case 2: var width$0 = /*<>*/ scan_sign(width$1, ib), c = /*<>*/ checked_peek_char(ib); @@ -29208,6 +29211,15 @@ ib) /*<>*/ ; } /*<>*/ return scan_decimal_digit_star(width, ib) /*<>*/ ; + case 0: + /*<>*/ return scan_digit_plus + (cst_binary, is_binary_digit, width$1, ib) /*<>*/ ; + case 3: + /*<>*/ return scan_digit_plus + (cst_octal, is_octal_digit, width$1, ib) /*<>*/ ; + default: + /*<>*/ return scan_digit_plus + (cst_hexadecimal, is_hexa_digit, width$1, ib) /*<>*/ ; } } function scan_fractional_part(width, ib){ @@ -29604,13 +29616,12 @@ : c /*<>*/ ; } function scan_backslash_char(width, ib){ - var - c$1 = /*<>*/ check_next_char(cst_a_Char, width, ib); + var c0 = /*<>*/ check_next_char(cst_a_Char, width, ib); a: { - /*<>*/ if(40 <= c$1){ - if(58 > c$1){ - if(48 > c$1) break a; + /*<>*/ if(40 <= c0){ + if(58 > c0){ + if(48 > c0) break a; var get_digit$0 = /*<>*/ function(param){ @@ -29622,7 +29633,7 @@ c1$0 = /*<>*/ get_digit$0(0), c2$0 = /*<>*/ get_digit$0(0), c = - /*<>*/ ((100 * (c$1 - 48 | 0) | 0) + /*<>*/ ((100 * (c0 - 48 | 0) | 0) + (10 * (c1$0 - 48 | 0) | 0) | 0) + (c2$0 - 48 | 0) @@ -29637,11 +29648,11 @@ _O_ = /*<>*/ bad_input ( /*<>*/ caml_call4 - (Stdlib_Printf[4], _l_, c$1, c1$0, c2$0)); + (Stdlib_Printf[4], _l_, c0, c1$0, c2$0)); } /*<>*/ return store_char(width - 2 | 0, ib, _O_) /*<>*/ ; } - var switcher = /*<>*/ c$1 - 92 | 0; + var switcher = /*<>*/ c0 - 92 | 0; if(28 < switcher >>> 0) break a; switch(switcher){ case 28: @@ -29689,25 +29700,25 @@ default: break a; } } - else if(34 !== c$1 && 39 > c$1) break a; - /*<>*/ if(110 <= c$1) - if(117 <= c$1) - var _M_ = c$1; + else if(34 !== c0 && 39 > c0) break a; + /*<>*/ if(110 <= c0) + if(117 <= c0) + var _M_ = c0; else - switch(c$1 - 110 | 0){ + switch(c0 - 110 | 0){ case 0: var _M_ = /*<>*/ 10; break; case 4: var _M_ = /*<>*/ 13; break; case 6: var _M_ = /*<>*/ 9; break; - default: var _M_ = /*<>*/ c$1; + default: var _M_ = /*<>*/ c0; } else - var _M_ = 98 === c$1 ? 8 : c$1; + var _M_ = 98 === c0 ? 8 : c0; /*<>*/ return store_char(width, ib, _M_) /*<>*/ ; } - /*<>*/ return bad_input_escape(c$1) /*<>*/ ; + /*<>*/ return bad_input_escape(c0) /*<>*/ ; } function scan_caml_string(width, ib){ function find_stop$0(counter, width$5){ @@ -34141,7 +34152,7 @@ /*<>*/ return 0; /*<>*/ } function remove(b, k){ - var l = /*<>*/ b[1], acc = 0; + var l$0 = /*<>*/ b[1], l = l$0, acc = 0; for(;;){ /*<>*/ if(! l) /*<>*/ return 0; @@ -34359,7 +34370,7 @@ /*<>*/ return 0; /*<>*/ } function remove$0(b, k1, k2){ - var l = /*<>*/ b[1], acc = 0; + var l$0 = /*<>*/ b[1], l = l$0, acc = 0; for(;;){ /*<>*/ if(! l) /*<>*/ return 0; @@ -34663,7 +34674,7 @@ } /*<>*/ } function remove$1(b, k){ - var l = /*<>*/ b[1], acc = 0; + var l$0 = /*<>*/ b[1], l = l$0, acc = 0; for(;;){ /*<>*/ if(! l) /*<>*/ return 0; @@ -34820,7 +34831,9 @@ function generic_basename(is_dir_sep, current_dir_name, name){ /*<>*/ if(name === cst$19) /*<>*/ return current_dir_name; - var n = /*<>*/ caml_ml_string_length(name) - 1 | 0; + var + n$3 = /*<>*/ caml_ml_string_length(name) - 1 | 0, + n = n$3; for(;;){ /*<>*/ if(0 > n) /*<>*/ return caml_call3 @@ -34844,7 +34857,9 @@ function generic_dirname(is_dir_sep, current_dir_name, name){ /*<>*/ if(name === cst$19) /*<>*/ return current_dir_name; - var n = /*<>*/ caml_ml_string_length(name) - 1 | 0; + var + n$5 = /*<>*/ caml_ml_string_length(name) - 1 | 0, + n = n$5; for(;;){ /*<>*/ if(0 > n) /*<>*/ return caml_call3 @@ -35524,7 +35539,9 @@ (Stdlib[1], cst_Filename_chop_suffix) /*<>*/ ; } function extension_len(name){ - var i0 = /*<>*/ caml_ml_string_length(name) - 1 | 0; + var + i$3 = /*<>*/ caml_ml_string_length(name) - 1 | 0, + i0 = i$3; for(;;){ /*<>*/ if (0 <= i0 && ! /*<>*/ is_dir_sep$1(name, i0)){