diff --git a/CHANGELOG.md b/CHANGELOG.md index bcdd4da73a..71a3f1d955 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -52,6 +52,7 @@ - Convert `caml_format` and `js_math` to `.res`. https://github.com/rescript-lang/rescript-compiler/pull/6834 - Convert `js.ml` files to `.res`. https://github.com/rescript-lang/rescript-compiler/pull/6835 - Remove old `.ml` tests. https://github.com/rescript-lang/rescript-compiler/pull/6847 +- Make compiler libs ready for uncurried mode. https://github.com/rescript-lang/rescript-compiler/pull/6861 #### :nail_care: Polish diff --git a/jscomp/runtime/caml_obj.res b/jscomp/runtime/caml_obj.res index cd45d644d2..f9fcff04f0 100644 --- a/jscomp/runtime/caml_obj.res +++ b/jscomp/runtime/caml_obj.res @@ -283,8 +283,8 @@ and aux_obj_compare = (a: Obj.t, b: Obj.t) => { } } - let do_key_a = do_key((a, b, min_key_rhs)) - let do_key_b = do_key((b, a, min_key_lhs)) + let do_key_a = key => do_key((a, b, min_key_rhs), key) + let do_key_b = key => do_key((b, a, min_key_lhs), key) O.for_in(a, do_key_a) O.for_in(b, do_key_b) let res = switch (min_key_lhs.contents, min_key_rhs.contents) { diff --git a/jscomp/runtime/curry.res b/jscomp/runtime/curry.res index 7d2fff69ab..dc78153463 100644 --- a/jscomp/runtime/curry.res +++ b/jscomp/runtime/curry.res @@ -22,6 +22,8 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +@@uncurried + /* Generated by scripts/curry_gen.ml */ external function_length: 'a => int = "#function_length" external apply_args: ('a => 'b, array<_>) => 'b = "#apply" @@ -89,12 +91,20 @@ external apply8: ( let curry_1 = (o, a0, arity) => switch arity { | 1 => apply1(Obj.magic(o), a0) - | 2 => apply2(Obj.magic(o), a0) - | 3 => apply3(Obj.magic(o), a0) - | 4 => apply4(Obj.magic(o), a0) - | 5 => apply5(Obj.magic(o), a0) - | 6 => apply6(Obj.magic(o), a0) - | 7 => apply7(Obj.magic(o), a0) + | 2 => param => apply2(Obj.magic(o), a0, param) + | 3 => Obj.magic((param, \"param$1") => apply3(Obj.magic(o), a0, param, \"param$1")) + | 4 => Obj.magic((param, \"param$1", \"param$2") => + apply4(Obj.magic(o), a0, param, \"param$1", \"param$2") + ) + | 5 => Obj.magic((param, \"param$1", \"param$2", \"param$3") => + apply5(Obj.magic(o), a0, param, \"param$1", \"param$2", \"param$3") + ) + | 6 => Obj.magic((param, \"param$1", \"param$2", \"param$3", \"param$4") => + apply6(Obj.magic(o), a0, param, \"param$1", \"param$2", \"param$3", \"param$4") + ) + | 7 => Obj.magic((param, \"param$1", \"param$2", \"param$3", \"param$4", \"param$5") => + apply7(Obj.magic(o), a0, param, \"param$1", \"param$2", \"param$3", \"param$4", \"param$5") + ) | _ => Obj.magic(app(o, [a0])) } ) @@ -124,11 +134,17 @@ let __1 = o => { switch arity { | 1 => app(apply1(Obj.magic(o), a0), [a1]) | 2 => apply2(Obj.magic(o), a0, a1) - | 3 => apply3(Obj.magic(o), a0, a1) - | 4 => apply4(Obj.magic(o), a0, a1) - | 5 => apply5(Obj.magic(o), a0, a1) - | 6 => apply6(Obj.magic(o), a0, a1) - | 7 => apply7(Obj.magic(o), a0, a1) + | 3 => param => apply3(Obj.magic(o), a0, a1, param) + | 4 => Obj.magic((param, \"param$1") => apply4(Obj.magic(o), a0, a1, param, \"param$1")) + | 5 => Obj.magic((param, \"param$1", \"param$2") => + apply5(Obj.magic(o), a0, a1, param, \"param$1", \"param$2") + ) + | 6 => Obj.magic((param, \"param$1", \"param$2", \"param$3") => + apply6(Obj.magic(o), a0, a1, param, \"param$1", \"param$2", \"param$3") + ) + | 7 => Obj.magic((param, \"param$1", \"param$2", \"param$3", \"param$4") => + apply7(Obj.magic(o), a0, a1, param, \"param$1", \"param$2", \"param$3", \"param$4") + ) | _ => Obj.magic(app(o, [a0, a1])) } ) @@ -139,7 +155,7 @@ let _2 = (o, a0, a1) => { if arity == 2 { apply2(o, a0, a1) } else { - curry_2(o, a0, a1, arity) + curry_2(Obj.magic(o), a0, a1, arity) } } @@ -159,10 +175,14 @@ let __2 = o => { | 1 => app(apply1(Obj.magic(o), a0), [a1, a2]) | 2 => app(apply2(Obj.magic(o), a0, a1), [a2]) | 3 => apply3(Obj.magic(o), a0, a1, a2) - | 4 => apply4(Obj.magic(o), a0, a1, a2) - | 5 => apply5(Obj.magic(o), a0, a1, a2) - | 6 => apply6(Obj.magic(o), a0, a1, a2) - | 7 => apply7(Obj.magic(o), a0, a1, a2) + | 4 => param => apply4(Obj.magic(o), a0, a1, a2, param) + | 5 => Obj.magic((param, \"param$1") => apply5(Obj.magic(o), a0, a1, a2, param, \"param$1")) + | 6 => Obj.magic((param, \"param$1", \"param$2") => + apply6(Obj.magic(o), a0, a1, a2, param, \"param$1", \"param$2") + ) + | 7 => Obj.magic((param, \"param$1", \"param$2", \"param$3") => + apply7(Obj.magic(o), a0, a1, a2, param, \"param$1", \"param$2", \"param$3") + ) | _ => Obj.magic(app(o, [a0, a1, a2])) } ) @@ -173,7 +193,7 @@ let _3 = (o, a0, a1, a2) => { if arity == 3 { apply3(o, a0, a1, a2) } else { - curry_3(o, a0, a1, a2, arity) + curry_3(Obj.magic(o), a0, a1, a2, arity) } } @@ -194,9 +214,11 @@ let __3 = o => { | 2 => app(apply2(Obj.magic(o), a0, a1), [a2, a3]) | 3 => app(apply3(Obj.magic(o), a0, a1, a2), [a3]) | 4 => apply4(Obj.magic(o), a0, a1, a2, a3) - | 5 => apply5(Obj.magic(o), a0, a1, a2, a3) - | 6 => apply6(Obj.magic(o), a0, a1, a2, a3) - | 7 => apply7(Obj.magic(o), a0, a1, a2, a3) + | 5 => param => apply5(Obj.magic(o), a0, a1, a2, a3, param) + | 6 => Obj.magic((param, \"param$1") => apply6(Obj.magic(o), a0, a1, a2, a3, param, \"param$1")) + | 7 => Obj.magic((param, \"param$1", \"param$2") => + apply7(Obj.magic(o), a0, a1, a2, a3, param, \"param$1", \"param$2") + ) | _ => Obj.magic(app(o, [a0, a1, a2, a3])) } ) @@ -207,7 +229,7 @@ let _4 = (o, a0, a1, a2, a3) => { if arity == 4 { apply4(o, a0, a1, a2, a3) } else { - curry_4(o, a0, a1, a2, a3, arity) + curry_4(Obj.magic(o), a0, a1, a2, a3, arity) } } @@ -229,8 +251,10 @@ let __4 = o => { | 3 => app(apply3(Obj.magic(o), a0, a1, a2), [a3, a4]) | 4 => app(apply4(Obj.magic(o), a0, a1, a2, a3), [a4]) | 5 => apply5(Obj.magic(o), a0, a1, a2, a3, a4) - | 6 => apply6(Obj.magic(o), a0, a1, a2, a3, a4) - | 7 => apply7(Obj.magic(o), a0, a1, a2, a3, a4) + | 6 => param => apply6(Obj.magic(o), a0, a1, a2, a3, a4, param) + | 7 => Obj.magic((param, \"param$1") => + apply7(Obj.magic(o), a0, a1, a2, a3, a4, param, \"param$1") + ) | _ => Obj.magic(app(o, [a0, a1, a2, a3, a4])) } ) @@ -241,7 +265,7 @@ let _5 = (o, a0, a1, a2, a3, a4) => { if arity == 5 { apply5(o, a0, a1, a2, a3, a4) } else { - curry_5(o, a0, a1, a2, a3, a4, arity) + curry_5(Obj.magic(o), a0, a1, a2, a3, a4, arity) } } @@ -264,7 +288,7 @@ let __5 = o => { | 4 => app(apply4(Obj.magic(o), a0, a1, a2, a3), [a4, a5]) | 5 => app(apply5(Obj.magic(o), a0, a1, a2, a3, a4), [a5]) | 6 => apply6(Obj.magic(o), a0, a1, a2, a3, a4, a5) - | 7 => apply7(Obj.magic(o), a0, a1, a2, a3, a4, a5) + | 7 => param => apply7(Obj.magic(o), a0, a1, a2, a3, a4, a5, param) | _ => Obj.magic(app(o, [a0, a1, a2, a3, a4, a5])) } ) @@ -275,7 +299,7 @@ let _6 = (o, a0, a1, a2, a3, a4, a5) => { if arity == 6 { apply6(o, a0, a1, a2, a3, a4, a5) } else { - curry_6(o, a0, a1, a2, a3, a4, a5, arity) + curry_6(Obj.magic(o), a0, a1, a2, a3, a4, a5, arity) } } @@ -309,7 +333,7 @@ let _7 = (o, a0, a1, a2, a3, a4, a5, a6) => { if arity == 7 { apply7(o, a0, a1, a2, a3, a4, a5, a6) } else { - curry_7(o, a0, a1, a2, a3, a4, a5, a6, arity) + curry_7(Obj.magic(o), a0, a1, a2, a3, a4, a5, a6, arity) } } @@ -343,7 +367,7 @@ let _8 = (o, a0, a1, a2, a3, a4, a5, a6, a7) => { if arity == 8 { apply8(o, a0, a1, a2, a3, a4, a5, a6, a7) } else { - curry_8(o, a0, a1, a2, a3, a4, a5, a6, a7, arity) + curry_8(Obj.magic(o), a0, a1, a2, a3, a4, a5, a6, a7, arity) } } diff --git a/jscomp/stdlib-406/arg.res b/jscomp/stdlib-406/arg.res index 7dadf08940..0ac5da3a18 100644 --- a/jscomp/stdlib-406/arg.res +++ b/jscomp/stdlib-406/arg.res @@ -109,7 +109,7 @@ let add_help = speclist => { let usage_b = (buf, speclist, errmsg) => { Buffer.add_string(buf, `${errmsg}\n`) - List.iter(print_spec(buf), add_help(speclist)) + List.iter(x => print_spec(buf, x), add_help(speclist)) } let usage_string = (speclist, errmsg) => { @@ -423,5 +423,5 @@ let align = (~limit=max_int, speclist) => { let completed = add_help(speclist) let len = List.fold_left(max_arg_len, 0, completed) let len = min(len, limit) - List.map(add_padding(len), completed) + List.map(x => add_padding(len, x), completed) } diff --git a/jscomp/stdlib-406/filename.res b/jscomp/stdlib-406/filename.res index 0dcb014b31..1ccdd3c3d5 100644 --- a/jscomp/stdlib-406/filename.res +++ b/jscomp/stdlib-406/filename.res @@ -114,9 +114,9 @@ module Unix = { let temp_dir_name = try Sys.getenv("TMPDIR") catch { | Not_found => "/tmp" } - let quote = generic_quote("'\\''") - let basename = generic_basename(is_dir_sep, current_dir_name) - let dirname = generic_dirname(is_dir_sep, current_dir_name) + let quote = x => generic_quote("'\\''", x) + let basename = x => generic_basename(is_dir_sep, current_dir_name, x) + let dirname = x => generic_dirname(is_dir_sep, current_dir_name, x) } module Win32 = { @@ -221,8 +221,8 @@ module Cygwin = { let check_suffix = Win32.check_suffix let temp_dir_name = Unix.temp_dir_name let quote = Unix.quote - let basename = generic_basename(is_dir_sep, current_dir_name) - let dirname = generic_dirname(is_dir_sep, current_dir_name) + let basename = x => generic_basename(is_dir_sep, current_dir_name, x) + let dirname = x => generic_dirname(is_dir_sep, current_dir_name, x) } let ( diff --git a/jscomp/stdlib-406/genlex.resi b/jscomp/stdlib-406/genlex.resi index 48dc4f9927..1d3f661670 100644 --- a/jscomp/stdlib-406/genlex.resi +++ b/jscomp/stdlib-406/genlex.resi @@ -70,4 +70,4 @@ type token = Blanks and newlines are skipped. Comments delimited by [(*] and [*)] are skipped as well, and can be nested. A {!Stream.Failure} exception is raised if end of stream is unexpectedly reached.*/ -let make_lexer: (list, Stream.t) => Stream.t +let make_lexer: list => (Stream.t => Stream.t) diff --git a/jscomp/stdlib-406/lexing.res b/jscomp/stdlib-406/lexing.res index 2773ecb4cf..31cde12fcc 100644 --- a/jscomp/stdlib-406/lexing.res +++ b/jscomp/stdlib-406/lexing.res @@ -161,7 +161,7 @@ let zero_pos = { } let from_function = f => { - refill_buff: lex_refill(f, Bytes.create(512)), + refill_buff: x => lex_refill(f, Bytes.create(512), x), lex_buffer: Bytes.create(1024), lex_buffer_len: 0, lex_abs_pos: 0, diff --git a/jscomp/stdlib-406/list.res b/jscomp/stdlib-406/list.res index c8ae708a4e..4aa190c89f 100644 --- a/jscomp/stdlib-406/list.res +++ b/jscomp/stdlib-406/list.res @@ -352,7 +352,7 @@ let rec find_opt = (p, param) => } } -let find_all = p => { +let find_all = (p, l) => { let rec find = (accu, param) => switch param { | list{} => rev(accu) @@ -363,7 +363,7 @@ let find_all = p => { find(accu, l) } } - find(list{}) + find(list{}, l) } let filter = find_all diff --git a/jscomp/stdlib-406/listLabels.res b/jscomp/stdlib-406/listLabels.res index 48d46d97fe..d08db5ee32 100644 --- a/jscomp/stdlib-406/listLabels.res +++ b/jscomp/stdlib-406/listLabels.res @@ -352,7 +352,7 @@ let rec find_opt = (~f as p, param) => } } -let find_all = (~f as p) => { +let find_all = (~f as p, l) => { let rec find = (accu, param) => switch param { | list{} => rev(accu) @@ -363,7 +363,7 @@ let find_all = (~f as p) => { find(accu, l) } } - find(list{}) + find(list{}, l) } let filter = find_all diff --git a/jscomp/test/a_string_test.js b/jscomp/test/a_string_test.js index c008b8256d..881f69d6a4 100644 --- a/jscomp/test/a_string_test.js +++ b/jscomp/test/a_string_test.js @@ -79,9 +79,9 @@ let suites_1 = { (function (param) { return { TAG: "Eq", - _0: List.filter(function (s) { + _0: List.filter((function (s) { return s !== ""; - })(Ext_string_test.split_by(undefined, (function (x) { + }), Ext_string_test.split_by(undefined, (function (x) { if (x === /* ' ' */32) { return true; } else { diff --git a/jscomp/test/gpr_2608_test.js b/jscomp/test/gpr_2608_test.js index 81367dfca2..3e58451f94 100644 --- a/jscomp/test/gpr_2608_test.js +++ b/jscomp/test/gpr_2608_test.js @@ -24,18 +24,18 @@ let oppHeroes = { let huntGrootCondition = false; if (List.length(/* [] */0) > 0) { - let x = List.filter(function (h) { + let x = List.filter((function (h) { return List.hd(/* [] */0) <= 1000; - })(oppHeroes); + }), oppHeroes); huntGrootCondition = List.length(x) === 0; } let huntGrootCondition2 = true; if (List.length(/* [] */0) < 0) { - let x$1 = List.filter(function (h) { + let x$1 = List.filter((function (h) { return List.hd(/* [] */0) <= 1000; - })(oppHeroes); + }), oppHeroes); huntGrootCondition2 = List.length(x$1) === 0; } diff --git a/jscomp/test/mario_game.js b/jscomp/test/mario_game.js index 64ffa43389..9ae6a416a1 100644 --- a/jscomp/test/mario_game.js +++ b/jscomp/test/mario_game.js @@ -2120,13 +2120,13 @@ function process_collision(dir, c1, c2, state) { function broad_phase(collid, all_collids, state) { let obj = collid._2; - return List.filter(function (c) { + return List.filter((function (c) { if (in_viewport(state.vpt, obj.pos) || is_player(collid)) { return true; } else { return out_of_viewport_below(state.vpt, obj.pos.y); } - })(all_collids); + }), all_collids); } function check_collisions(collid, all_collids, state) { diff --git a/jscomp/test/ocaml_re_test.js b/jscomp/test/ocaml_re_test.js index d52abaf351..6de282344e 100644 --- a/jscomp/test/ocaml_re_test.js +++ b/jscomp/test/ocaml_re_test.js @@ -1052,16 +1052,18 @@ function free_index(tbl_ref, l) { return idx; } -let remove_matches = List.filter(function (x) { - switch (x.TAG) { - case "TSeq" : - case "TExp" : - return true; - case "TMatch" : - return false; - - } -}); +function remove_matches(param) { + return List.filter((function (x) { + switch (x.TAG) { + case "TSeq" : + case "TExp" : + return true; + case "TMatch" : + return false; + + } + }), param); +} function split_at_match_rec(_l$p, _x) { while(true) { @@ -1081,7 +1083,7 @@ function split_at_match_rec(_l$p, _x) { case "TMatch" : return [ List.rev(l$p), - Curry._1(remove_matches, x.tl) + remove_matches(x.tl) ]; } @@ -1208,14 +1210,14 @@ function set_idx(idx, x) { function filter_marks(b, e, marks) { return { - marks: List.filter(function (param) { + marks: List.filter((function (param) { let i = param[0]; if (i < b) { return true; } else { return i > e; } - })(marks.marks), + }), marks.marks), pmarks: marks.pmarks }; } @@ -1264,7 +1266,7 @@ function delta_1(marks, c, next_cat, prev_cat, x, rem) { } }), y$p$1); let match = marks$p !== undefined ? [ - Curry._1(remove_matches, y$p$1), + remove_matches(y$p$1), marks$p ] : [ y$p$1, @@ -1382,10 +1384,10 @@ function delta_seq(c, next_cat, prev_cat, kind, y, z, rem) { return tseq(kind, y, z, rem); } if (kind === "Longest") { - return tseq(kind, Curry._1(remove_matches, y), z, delta_1(marks, c, next_cat, prev_cat, z, rem)); + return tseq(kind, remove_matches(y), z, delta_1(marks, c, next_cat, prev_cat, z, rem)); } if (kind !== "First") { - return delta_1(marks, c, next_cat, prev_cat, z, tseq(kind, Curry._1(remove_matches, y), z, rem)); + return delta_1(marks, c, next_cat, prev_cat, z, tseq(kind, remove_matches(y), z, rem)); } let match = split_at_match_rec(/* [] */0, y); return tseq(kind, match[0], z, delta_1(marks, c, next_cat, prev_cat, z, tseq(kind, match[1], z, rem))); diff --git a/lib/es6/arg.js b/lib/es6/arg.js index a7a56bbe89..929b1abbfd 100644 --- a/lib/es6/arg.js +++ b/lib/es6/arg.js @@ -127,18 +127,18 @@ function add_help(speclist) { function usage_b(buf, speclist, errmsg) { Buffer.add_string(buf, errmsg + "\n"); - List.iter((function (param) { - let doc = param[2]; + List.iter((function (x) { + let doc = x[2]; if (doc.length === 0) { return; } - let spec = param[1]; - let key = param[0]; + let spec = x[1]; + let key = x[0]; if (spec.TAG !== "Symbol") { return Buffer.add_string(buf, " " + key + " " + doc + "\n"); } let sym = make_symlist("{", "|", "}", spec._0); - return Buffer.add_string(buf, " " + key + " " + sym + doc + "\n"); + Buffer.add_string(buf, " " + key + " " + sym + doc + "\n"); }), add_help(speclist)); } @@ -699,14 +699,14 @@ function align(limitOpt, speclist) { let completed = add_help(speclist); let len = List.fold_left(max_arg_len, 0, completed); let len$1 = len < limit ? len : limit; - return List.map((function (param) { - let spec = param[1]; - let kwd = param[0]; - if (param[2] === "") { - return param; + return List.map((function (x) { + let spec = x[1]; + let kwd = x[0]; + if (x[2] === "") { + return x; } if (spec.TAG === "Symbol") { - let msg = param[2]; + let msg = x[2]; let cutcol = second_word(msg); let spaces = " ".repeat(Caml.int_max(0, len$1 - cutcol | 0) + 3 | 0); return [ @@ -715,7 +715,7 @@ function align(limitOpt, speclist) { "\n" + (spaces + replace_leading_tab(msg)) ]; } - let msg$1 = param[2]; + let msg$1 = x[2]; let cutcol$1 = second_word(msg$1); let kwd_len = kwd.length; let diff = (len$1 - kwd_len | 0) - cutcol$1 | 0; diff --git a/lib/es6/caml_obj.js b/lib/es6/caml_obj.js index a06bdb193f..ac65acfb10 100644 --- a/lib/es6/caml_obj.js +++ b/lib/es6/caml_obj.js @@ -227,21 +227,19 @@ function aux_obj_compare(a, b) { return; } }; - let partial_arg = [ - a, - b, - min_key_rhs - ]; - let do_key_a = function (param) { - return do_key(partial_arg, param); + let do_key_a = function (key) { + do_key([ + a, + b, + min_key_rhs + ], key); }; - let partial_arg$1 = [ - b, - a, - min_key_lhs - ]; - let do_key_b = function (param) { - return do_key(partial_arg$1, param); + let do_key_b = function (key) { + do_key([ + b, + a, + min_key_lhs + ], key); }; for_in(a, do_key_a); for_in(b, do_key_b); diff --git a/lib/es6/filename.js b/lib/es6/filename.js index cd135f9404..6460aeb646 100644 --- a/lib/es6/filename.js +++ b/lib/es6/filename.js @@ -131,28 +131,28 @@ catch (raw_exn){ } } -function quote(param) { +function quote(x) { let quotequote = "'\\''"; - let l = param.length; + let l = x.length; let b = Buffer.create(l + 20 | 0); Buffer.add_char(b, /* '\'' */39); for(let i = 0; i < l; ++i){ - if (Caml_string.get(param, i) === /* '\'' */39) { + if (Caml_string.get(x, i) === /* '\'' */39) { Buffer.add_string(b, quotequote); } else { - Buffer.add_char(b, Caml_string.get(param, i)); + Buffer.add_char(b, Caml_string.get(x, i)); } } Buffer.add_char(b, /* '\'' */39); return Buffer.contents(b); } -function basename(param) { - return generic_basename(is_dir_sep, current_dir_name, param); +function basename(x) { + return generic_basename(is_dir_sep, current_dir_name, x); } -function dirname(param) { - return generic_dirname(is_dir_sep, current_dir_name, param); +function dirname(x) { + return generic_dirname(is_dir_sep, current_dir_name, x); } let current_dir_name$1 = "."; @@ -310,12 +310,12 @@ function basename$1(s) { let current_dir_name$2 = "."; -function basename$2(param) { - return generic_basename(is_dir_sep$1, current_dir_name$2, param); +function basename$2(x) { + return generic_basename(is_dir_sep$1, current_dir_name$2, x); } -function dirname$2(param) { - return generic_dirname(is_dir_sep$1, current_dir_name$2, param); +function dirname$2(x) { + return generic_dirname(is_dir_sep$1, current_dir_name$2, x); } let match; diff --git a/lib/es6/lexing.js b/lib/es6/lexing.js index 82c8373a02..68c6aedf48 100644 --- a/lib/es6/lexing.js +++ b/lib/es6/lexing.js @@ -44,17 +44,17 @@ let zero_pos = { }; function from_function(f) { - let partial_arg = Caml_bytes.create(512); return { - refill_buff: (function (param) { - let read = Curry._2(f, partial_arg, partial_arg.length); - let n = read > 0 ? read : (param.lex_eof_reached = true, 0); - if ((param.lex_buffer_len + n | 0) > param.lex_buffer.length) { - if (((param.lex_buffer_len - param.lex_start_pos | 0) + n | 0) <= param.lex_buffer.length) { - Bytes.blit(param.lex_buffer, param.lex_start_pos, param.lex_buffer, 0, param.lex_buffer_len - param.lex_start_pos | 0); + refill_buff: (function (x) { + let aux_buffer = Caml_bytes.create(512); + let read = Curry._2(f, aux_buffer, aux_buffer.length); + let n = read > 0 ? read : (x.lex_eof_reached = true, 0); + if ((x.lex_buffer_len + n | 0) > x.lex_buffer.length) { + if (((x.lex_buffer_len - x.lex_start_pos | 0) + n | 0) <= x.lex_buffer.length) { + Bytes.blit(x.lex_buffer, x.lex_start_pos, x.lex_buffer, 0, x.lex_buffer_len - x.lex_start_pos | 0); } else { - let newlen = (param.lex_buffer.length << 1); - if (((param.lex_buffer_len - param.lex_start_pos | 0) + n | 0) > newlen) { + let newlen = (x.lex_buffer.length << 1); + if (((x.lex_buffer_len - x.lex_start_pos | 0) + n | 0) > newlen) { throw new Error("Failure", { cause: { RE_EXN_ID: "Failure", @@ -63,16 +63,16 @@ function from_function(f) { }); } let newbuf = Caml_bytes.create(newlen); - Bytes.blit(param.lex_buffer, param.lex_start_pos, newbuf, 0, param.lex_buffer_len - param.lex_start_pos | 0); - param.lex_buffer = newbuf; + Bytes.blit(x.lex_buffer, x.lex_start_pos, newbuf, 0, x.lex_buffer_len - x.lex_start_pos | 0); + x.lex_buffer = newbuf; } - let s = param.lex_start_pos; - param.lex_abs_pos = param.lex_abs_pos + s | 0; - param.lex_curr_pos = param.lex_curr_pos - s | 0; - param.lex_start_pos = 0; - param.lex_last_pos = param.lex_last_pos - s | 0; - param.lex_buffer_len = param.lex_buffer_len - s | 0; - let t = param.lex_mem; + let s = x.lex_start_pos; + x.lex_abs_pos = x.lex_abs_pos + s | 0; + x.lex_curr_pos = x.lex_curr_pos - s | 0; + x.lex_start_pos = 0; + x.lex_last_pos = x.lex_last_pos - s | 0; + x.lex_buffer_len = x.lex_buffer_len - s | 0; + let t = x.lex_mem; for(let i = 0 ,i_finish = t.length; i < i_finish; ++i){ let v = Caml_array.get(t, i); if (v >= 0) { @@ -81,8 +81,8 @@ function from_function(f) { } } - Bytes.blit(partial_arg, 0, param.lex_buffer, param.lex_buffer_len, n); - param.lex_buffer_len = param.lex_buffer_len + n | 0; + Bytes.blit(aux_buffer, 0, x.lex_buffer, x.lex_buffer_len, n); + x.lex_buffer_len = x.lex_buffer_len + n | 0; }), lex_buffer: Caml_bytes.create(1024), lex_buffer_len: 0, diff --git a/lib/es6/list.js b/lib/es6/list.js index e8c16c72b0..679fc2fd40 100644 --- a/lib/es6/list.js +++ b/lib/es6/list.js @@ -702,29 +702,27 @@ function find_opt(p, _param) { }; } -function find_all(p) { - return function (param) { - let _accu = /* [] */0; - let _param = param; - while(true) { - let param$1 = _param; - let accu = _accu; - if (!param$1) { - return rev_append(accu, /* [] */0); - } - let l = param$1.tl; - let x = param$1.hd; - if (Curry._1(p, x)) { - _param = l; - _accu = { - hd: x, - tl: accu - }; - continue; - } - _param = l; +function find_all(p, l) { + let _accu = /* [] */0; + let _param = l; + while(true) { + let param = _param; + let accu = _accu; + if (!param) { + return rev_append(accu, /* [] */0); + } + let l$1 = param.tl; + let x = param.hd; + if (Curry._1(p, x)) { + _param = l$1; + _accu = { + hd: x, + tl: accu + }; continue; - }; + } + _param = l$1; + continue; }; } diff --git a/lib/es6/listLabels.js b/lib/es6/listLabels.js index fb1469aafb..78e516c64d 100644 --- a/lib/es6/listLabels.js +++ b/lib/es6/listLabels.js @@ -702,29 +702,27 @@ function find_opt(p, _param) { }; } -function find_all(p) { - return function (param) { - let _accu = /* [] */0; - let _param = param; - while(true) { - let param$1 = _param; - let accu = _accu; - if (!param$1) { - return rev_append(accu, /* [] */0); - } - let l = param$1.tl; - let x = param$1.hd; - if (Curry._1(p, x)) { - _param = l; - _accu = { - hd: x, - tl: accu - }; - continue; - } - _param = l; +function find_all(p, l) { + let _accu = /* [] */0; + let _param = l; + while(true) { + let param = _param; + let accu = _accu; + if (!param) { + return rev_append(accu, /* [] */0); + } + let l$1 = param.tl; + let x = param.hd; + if (Curry._1(p, x)) { + _param = l$1; + _accu = { + hd: x, + tl: accu + }; continue; - }; + } + _param = l$1; + continue; }; } diff --git a/lib/js/arg.js b/lib/js/arg.js index 794153823a..04386fd044 100644 --- a/lib/js/arg.js +++ b/lib/js/arg.js @@ -127,18 +127,18 @@ function add_help(speclist) { function usage_b(buf, speclist, errmsg) { Buffer.add_string(buf, errmsg + "\n"); - List.iter((function (param) { - let doc = param[2]; + List.iter((function (x) { + let doc = x[2]; if (doc.length === 0) { return; } - let spec = param[1]; - let key = param[0]; + let spec = x[1]; + let key = x[0]; if (spec.TAG !== "Symbol") { return Buffer.add_string(buf, " " + key + " " + doc + "\n"); } let sym = make_symlist("{", "|", "}", spec._0); - return Buffer.add_string(buf, " " + key + " " + sym + doc + "\n"); + Buffer.add_string(buf, " " + key + " " + sym + doc + "\n"); }), add_help(speclist)); } @@ -699,14 +699,14 @@ function align(limitOpt, speclist) { let completed = add_help(speclist); let len = List.fold_left(max_arg_len, 0, completed); let len$1 = len < limit ? len : limit; - return List.map((function (param) { - let spec = param[1]; - let kwd = param[0]; - if (param[2] === "") { - return param; + return List.map((function (x) { + let spec = x[1]; + let kwd = x[0]; + if (x[2] === "") { + return x; } if (spec.TAG === "Symbol") { - let msg = param[2]; + let msg = x[2]; let cutcol = second_word(msg); let spaces = " ".repeat(Caml.int_max(0, len$1 - cutcol | 0) + 3 | 0); return [ @@ -715,7 +715,7 @@ function align(limitOpt, speclist) { "\n" + (spaces + replace_leading_tab(msg)) ]; } - let msg$1 = param[2]; + let msg$1 = x[2]; let cutcol$1 = second_word(msg$1); let kwd_len = kwd.length; let diff = (len$1 - kwd_len | 0) - cutcol$1 | 0; diff --git a/lib/js/caml_obj.js b/lib/js/caml_obj.js index d56c1f6396..7b027da14f 100644 --- a/lib/js/caml_obj.js +++ b/lib/js/caml_obj.js @@ -227,21 +227,19 @@ function aux_obj_compare(a, b) { return; } }; - let partial_arg = [ - a, - b, - min_key_rhs - ]; - let do_key_a = function (param) { - return do_key(partial_arg, param); + let do_key_a = function (key) { + do_key([ + a, + b, + min_key_rhs + ], key); }; - let partial_arg$1 = [ - b, - a, - min_key_lhs - ]; - let do_key_b = function (param) { - return do_key(partial_arg$1, param); + let do_key_b = function (key) { + do_key([ + b, + a, + min_key_lhs + ], key); }; for_in(a, do_key_a); for_in(b, do_key_b); diff --git a/lib/js/filename.js b/lib/js/filename.js index 2ee6ea8812..cdf5e59646 100644 --- a/lib/js/filename.js +++ b/lib/js/filename.js @@ -131,28 +131,28 @@ catch (raw_exn){ } } -function quote(param) { +function quote(x) { let quotequote = "'\\''"; - let l = param.length; + let l = x.length; let b = Buffer.create(l + 20 | 0); Buffer.add_char(b, /* '\'' */39); for(let i = 0; i < l; ++i){ - if (Caml_string.get(param, i) === /* '\'' */39) { + if (Caml_string.get(x, i) === /* '\'' */39) { Buffer.add_string(b, quotequote); } else { - Buffer.add_char(b, Caml_string.get(param, i)); + Buffer.add_char(b, Caml_string.get(x, i)); } } Buffer.add_char(b, /* '\'' */39); return Buffer.contents(b); } -function basename(param) { - return generic_basename(is_dir_sep, current_dir_name, param); +function basename(x) { + return generic_basename(is_dir_sep, current_dir_name, x); } -function dirname(param) { - return generic_dirname(is_dir_sep, current_dir_name, param); +function dirname(x) { + return generic_dirname(is_dir_sep, current_dir_name, x); } let current_dir_name$1 = "."; @@ -310,12 +310,12 @@ function basename$1(s) { let current_dir_name$2 = "."; -function basename$2(param) { - return generic_basename(is_dir_sep$1, current_dir_name$2, param); +function basename$2(x) { + return generic_basename(is_dir_sep$1, current_dir_name$2, x); } -function dirname$2(param) { - return generic_dirname(is_dir_sep$1, current_dir_name$2, param); +function dirname$2(x) { + return generic_dirname(is_dir_sep$1, current_dir_name$2, x); } let match; diff --git a/lib/js/lexing.js b/lib/js/lexing.js index 3e82b84f62..bb9e821aac 100644 --- a/lib/js/lexing.js +++ b/lib/js/lexing.js @@ -44,17 +44,17 @@ let zero_pos = { }; function from_function(f) { - let partial_arg = Caml_bytes.create(512); return { - refill_buff: (function (param) { - let read = Curry._2(f, partial_arg, partial_arg.length); - let n = read > 0 ? read : (param.lex_eof_reached = true, 0); - if ((param.lex_buffer_len + n | 0) > param.lex_buffer.length) { - if (((param.lex_buffer_len - param.lex_start_pos | 0) + n | 0) <= param.lex_buffer.length) { - Bytes.blit(param.lex_buffer, param.lex_start_pos, param.lex_buffer, 0, param.lex_buffer_len - param.lex_start_pos | 0); + refill_buff: (function (x) { + let aux_buffer = Caml_bytes.create(512); + let read = Curry._2(f, aux_buffer, aux_buffer.length); + let n = read > 0 ? read : (x.lex_eof_reached = true, 0); + if ((x.lex_buffer_len + n | 0) > x.lex_buffer.length) { + if (((x.lex_buffer_len - x.lex_start_pos | 0) + n | 0) <= x.lex_buffer.length) { + Bytes.blit(x.lex_buffer, x.lex_start_pos, x.lex_buffer, 0, x.lex_buffer_len - x.lex_start_pos | 0); } else { - let newlen = (param.lex_buffer.length << 1); - if (((param.lex_buffer_len - param.lex_start_pos | 0) + n | 0) > newlen) { + let newlen = (x.lex_buffer.length << 1); + if (((x.lex_buffer_len - x.lex_start_pos | 0) + n | 0) > newlen) { throw new Error("Failure", { cause: { RE_EXN_ID: "Failure", @@ -63,16 +63,16 @@ function from_function(f) { }); } let newbuf = Caml_bytes.create(newlen); - Bytes.blit(param.lex_buffer, param.lex_start_pos, newbuf, 0, param.lex_buffer_len - param.lex_start_pos | 0); - param.lex_buffer = newbuf; + Bytes.blit(x.lex_buffer, x.lex_start_pos, newbuf, 0, x.lex_buffer_len - x.lex_start_pos | 0); + x.lex_buffer = newbuf; } - let s = param.lex_start_pos; - param.lex_abs_pos = param.lex_abs_pos + s | 0; - param.lex_curr_pos = param.lex_curr_pos - s | 0; - param.lex_start_pos = 0; - param.lex_last_pos = param.lex_last_pos - s | 0; - param.lex_buffer_len = param.lex_buffer_len - s | 0; - let t = param.lex_mem; + let s = x.lex_start_pos; + x.lex_abs_pos = x.lex_abs_pos + s | 0; + x.lex_curr_pos = x.lex_curr_pos - s | 0; + x.lex_start_pos = 0; + x.lex_last_pos = x.lex_last_pos - s | 0; + x.lex_buffer_len = x.lex_buffer_len - s | 0; + let t = x.lex_mem; for(let i = 0 ,i_finish = t.length; i < i_finish; ++i){ let v = Caml_array.get(t, i); if (v >= 0) { @@ -81,8 +81,8 @@ function from_function(f) { } } - Bytes.blit(partial_arg, 0, param.lex_buffer, param.lex_buffer_len, n); - param.lex_buffer_len = param.lex_buffer_len + n | 0; + Bytes.blit(aux_buffer, 0, x.lex_buffer, x.lex_buffer_len, n); + x.lex_buffer_len = x.lex_buffer_len + n | 0; }), lex_buffer: Caml_bytes.create(1024), lex_buffer_len: 0, diff --git a/lib/js/list.js b/lib/js/list.js index 0d293713ec..29e7ac19f9 100644 --- a/lib/js/list.js +++ b/lib/js/list.js @@ -702,29 +702,27 @@ function find_opt(p, _param) { }; } -function find_all(p) { - return function (param) { - let _accu = /* [] */0; - let _param = param; - while(true) { - let param$1 = _param; - let accu = _accu; - if (!param$1) { - return rev_append(accu, /* [] */0); - } - let l = param$1.tl; - let x = param$1.hd; - if (Curry._1(p, x)) { - _param = l; - _accu = { - hd: x, - tl: accu - }; - continue; - } - _param = l; +function find_all(p, l) { + let _accu = /* [] */0; + let _param = l; + while(true) { + let param = _param; + let accu = _accu; + if (!param) { + return rev_append(accu, /* [] */0); + } + let l$1 = param.tl; + let x = param.hd; + if (Curry._1(p, x)) { + _param = l$1; + _accu = { + hd: x, + tl: accu + }; continue; - }; + } + _param = l$1; + continue; }; } diff --git a/lib/js/listLabels.js b/lib/js/listLabels.js index 576fa5c778..f63f6bb629 100644 --- a/lib/js/listLabels.js +++ b/lib/js/listLabels.js @@ -702,29 +702,27 @@ function find_opt(p, _param) { }; } -function find_all(p) { - return function (param) { - let _accu = /* [] */0; - let _param = param; - while(true) { - let param$1 = _param; - let accu = _accu; - if (!param$1) { - return rev_append(accu, /* [] */0); - } - let l = param$1.tl; - let x = param$1.hd; - if (Curry._1(p, x)) { - _param = l; - _accu = { - hd: x, - tl: accu - }; - continue; - } - _param = l; +function find_all(p, l) { + let _accu = /* [] */0; + let _param = l; + while(true) { + let param = _param; + let accu = _accu; + if (!param) { + return rev_append(accu, /* [] */0); + } + let l$1 = param.tl; + let x = param.hd; + if (Curry._1(p, x)) { + _param = l$1; + _accu = { + hd: x, + tl: accu + }; continue; - }; + } + _param = l$1; + continue; }; }