Skip to content

Commit 05c495d

Browse files
committed
clean up interfaces in caml_format, rename Js_fn into Fn (rescript-lang#264)
1 parent c95e570 commit 05c495d

19 files changed

+122
-435
lines changed
File renamed without changes.
File renamed without changes.

jscomp/lib/lib.mllib

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@ js
22
bench
33
# dom
44
js_date
5-
js_fn
5+
fn
66
xmlHTTPRequest

jscomp/runtime/.depend

+4-9
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
caml_array.cmi :
22
caml_bigarray.cmi :
33
caml_builtin_exceptions.cmi :
4-
caml_exceptions.cmi :
54
caml_float.cmi :
65
caml_format.cmi :
76
caml_int64.cmi :
@@ -22,8 +21,6 @@ caml_builtin_exceptions.cmo : caml_builtin_exceptions.cmi
2221
caml_builtin_exceptions.cmx : caml_builtin_exceptions.cmi
2322
caml_curry.cmo : js.cmo caml_oo.cmi
2423
caml_curry.cmx : js.cmx caml_oo.cmx
25-
caml_exceptions.cmo : caml_exceptions.cmi
26-
caml_exceptions.cmx : caml_exceptions.cmi
2724
caml_float.cmo : typed_array.cmo js.cmo caml_float.cmi
2825
caml_float.cmx : typed_array.cmx js.cmx caml_float.cmi
2926
caml_format.cmo : js.cmo caml_utils.cmi caml_format.cmi
@@ -50,12 +47,12 @@ caml_sys.cmo : js.cmo caml_sys.cmi
5047
caml_sys.cmx : js.cmx caml_sys.cmi
5148
caml_utils.cmo : caml_utils.cmi
5249
caml_utils.cmx : caml_utils.cmi
50+
fn.cmo :
51+
fn.cmx :
5352
js.cmo :
5453
js.cmx :
5554
js_error.cmo :
5655
js_error.cmx :
57-
js_fn.cmo :
58-
js_fn.cmx :
5956
typed_array.cmo :
6057
typed_array.cmx :
6158
caml_array.cmo : js.cmo caml_array.cmi
@@ -66,8 +63,6 @@ caml_builtin_exceptions.cmo : caml_builtin_exceptions.cmi
6663
caml_builtin_exceptions.cmj : caml_builtin_exceptions.cmi
6764
caml_curry.cmo : js.cmo caml_oo.cmi
6865
caml_curry.cmj : js.cmj caml_oo.cmj
69-
caml_exceptions.cmo : caml_exceptions.cmi
70-
caml_exceptions.cmj : caml_exceptions.cmi
7166
caml_float.cmo : typed_array.cmo js.cmo caml_float.cmi
7267
caml_float.cmj : typed_array.cmj js.cmj caml_float.cmi
7368
caml_format.cmo : js.cmo caml_utils.cmi caml_format.cmi
@@ -94,11 +89,11 @@ caml_sys.cmo : js.cmo caml_sys.cmi
9489
caml_sys.cmj : js.cmj caml_sys.cmi
9590
caml_utils.cmo : caml_utils.cmi
9691
caml_utils.cmj : caml_utils.cmi
92+
fn.cmo :
93+
fn.cmj :
9794
js.cmo :
9895
js.cmj :
9996
js_error.cmo :
10097
js_error.cmj :
101-
js_fn.cmo :
102-
js_fn.cmj :
10398
typed_array.cmo :
10499
typed_array.cmj :

jscomp/runtime/caml_exceptions.ml

-40
This file was deleted.

jscomp/runtime/caml_exceptions.mli

-34
This file was deleted.

jscomp/runtime/caml_format.js

+7-27
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ var Caml_int64 = require("./caml_int64");
55
var Caml_builtin_exceptions = require("./caml_builtin_exceptions");
66
var Caml_primitive = require("./caml_primitive");
77
var Caml_utils = require("./caml_utils");
8+
var Caml_curry = require("./caml_curry");
89
var Caml_string = require("./caml_string");
910

1011
function caml_failwith(s) {
@@ -14,13 +15,6 @@ function caml_failwith(s) {
1415
];
1516
}
1617

17-
function caml_invalid_argument(s) {
18-
throw [
19-
Caml_builtin_exceptions.invalid_argument,
20-
s
21-
];
22-
}
23-
2418
function parse_digit(c) {
2519
if (c >= 65) {
2620
if (c >= 97) {
@@ -800,20 +794,8 @@ function caml_format_float(fmt, x) {
800794
return finish_formatting(f, s);
801795
}
802796

803-
var caml_float_of_string = (
804-
805-
/**
806-
* external float_of_string : string -> float = "caml_float_of_string"
807-
* pervasives.ml
808-
* Semantics is slightly different from javascript :
809-
* console.assert(caml_float_of_string('infinity')===Infinity)
810-
* console.assert(caml_float_of_string('Infinity')===Infinity
811-
*
812-
* parseFloat('Infinity') === Infinity
813-
* parseFloat('infinity') === Nan
814-
* */
815-
function (s) {
816-
//s = caml_bytes_of_string (s);
797+
var float_of_string = (
798+
function (s, caml_failwith) {
817799
var res = +s;
818800
if ((s.length > 0) && (res === res))
819801
return res;
@@ -839,7 +821,9 @@ function (s) {
839821

840822
);
841823

842-
var repeat = Caml_utils.repeat;
824+
function caml_float_of_string(s) {
825+
return Caml_curry.app2(float_of_string, s, caml_failwith);
826+
}
843827

844828
var caml_nativeint_format = caml_format_int;
845829

@@ -849,10 +833,6 @@ var caml_int32_of_string = caml_int_of_string;
849833

850834
var caml_nativeint_of_string = caml_int_of_string;
851835

852-
exports.parse_digit = parse_digit;
853-
exports.caml_invalid_argument = caml_invalid_argument;
854-
exports.repeat = repeat;
855-
exports.caml_failwith = caml_failwith;
856836
exports.caml_format_float = caml_format_float;
857837
exports.caml_format_int = caml_format_int;
858838
exports.caml_nativeint_format = caml_nativeint_format;
@@ -863,4 +843,4 @@ exports.caml_int_of_string = caml_int_of_string;
863843
exports.caml_int32_of_string = caml_int32_of_string;
864844
exports.caml_int64_of_string = caml_int64_of_string;
865845
exports.caml_nativeint_of_string = caml_nativeint_of_string;
866-
/* caml_float_of_string Not a pure module */
846+
/* float_of_string Not a pure module */

jscomp/runtime/caml_format.ml

+17-15
Original file line numberDiff line numberDiff line change
@@ -558,20 +558,22 @@ let caml_format_float fmt x =
558558
end;
559559
finish_formatting f !s
560560

561-
let caml_float_of_string : string -> float = [%bs.raw {|
562-
563-
/**
564-
* external float_of_string : string -> float = "caml_float_of_string"
565-
* pervasives.ml
566-
* Semantics is slightly different from javascript :
567-
* console.assert(caml_float_of_string('infinity')===Infinity)
568-
* console.assert(caml_float_of_string('Infinity')===Infinity
569-
*
570-
* parseFloat('Infinity') === Infinity
571-
* parseFloat('infinity') === Nan
572-
* */
573-
function (s) {
574-
//s = caml_bytes_of_string (s);
561+
562+
(**
563+
external float_of_string : string -> float = "caml_float_of_string"
564+
pervasives.ml
565+
Semantics is slightly different from javascript :
566+
console.assert(caml_float_of_string('infinity')===Infinity)
567+
console.assert(caml_float_of_string('Infinity')===Infinity
568+
569+
parseFloat('Infinity') === Infinity
570+
parseFloat('infinity') === Nan
571+
572+
FIXME: arity of float_of_string is not inferred correctly
573+
*)
574+
575+
let float_of_string : string -> (string -> 'a) -> float = [%bs.raw {|
576+
function (s, caml_failwith) {
575577
var res = +s;
576578
if ((s.length > 0) && (res === res))
577579
return res;
@@ -598,7 +600,7 @@ function (s) {
598600
|}
599601
]
600602

601-
603+
let caml_float_of_string s = float_of_string s caml_failwith
602604

603605
let caml_nativeint_format = caml_format_int
604606
let caml_int32_format = caml_format_int

jscomp/runtime/caml_format.mli

-7
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,8 @@
1818

1919
(* Author: Hongbo Zhang *)
2020

21-
val parse_digit : char -> int
2221

23-
val caml_invalid_argument : string -> 'a
2422

25-
val repeat : int -> string -> string
26-
27-
val caml_failwith : string -> 'a
28-
29-
type fmt
3023

3124
val caml_format_float : string -> float -> string
3225

File renamed without changes.

jscomp/runtime/fn.ml

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../lib/fn.ml

jscomp/runtime/js_fn.ml

-1
This file was deleted.

0 commit comments

Comments
 (0)