Skip to content

Commit 91e5654

Browse files
committed
caml_is_js is not needed
Either we use #if BS macro or use Sys.backend_type in the future
1 parent e658259 commit 91e5654

12 files changed

+44
-52
lines changed

jscomp/core/lam_analysis.ml

-1
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@ let rec no_side_effects (lam : Lam.t) : bool =
5353
| ("caml_register_named_value"
5454
(* register to c runtime does not make sense in ocaml *)
5555
(* | "caml_set_oo_id" *) (* it does have side effect, just in creation path it happens not to have *)
56-
| "caml_is_js"
5756
| "caml_int64_float_of_bits"
5857
(* more safe to check if arguments are constant *)
5958
(* non-observable side effect *)

jscomp/core/lam_dispatch_primitive.ml

-1
Original file line numberDiff line numberDiff line change
@@ -594,7 +594,6 @@ let translate loc (prim_name : string)
594594
| "caml_sys_const_ostype_cygwin" -> E.caml_false
595595
| "caml_sys_const_ostype_win32" -> E.caml_false
596596
| "caml_sys_const_ostype_unix" -> E.caml_true
597-
| "caml_is_js" -> E.caml_true
598597
| "caml_sys_get_config" ->
599598
(** No cross compilation *)
600599
Js_of_lam_tuple.make [E.str Sys.os_type; E.small_int Sys.word_size;

jscomp/stdlib/sys.ml

-2
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,6 @@ external word_size : unit -> int = "%word_size"
2424
external unix : unit -> bool = "%ostype_unix"
2525
external win32 : unit -> bool = "%ostype_win32"
2626
external cygwin : unit -> bool = "%ostype_cygwin"
27-
external is_js : unit -> bool = "caml_is_js"
28-
let is_js = is_js ()
2927
let (executable_name, argv) = get_argv()
3028
let (os_type, _, _) = get_config()
3129
let big_endian = big_endian ()

jscomp/stdlib/sys.mli

-4
Original file line numberDiff line numberDiff line change
@@ -103,10 +103,6 @@ val big_endian : bool
103103
(** Whether the machine currently executing the Caml program is big-endian.
104104
@since 4.00.0 *)
105105

106-
val is_js : bool
107-
(** True if compiled against Javascript backend
108-
@since 4.03.0
109-
*)
110106
val max_string_length : int
111107
(** Maximum length of strings and byte sequences. *)
112108

jscomp/stdlib/sys.mlp

-2
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,6 @@ external word_size : unit -> int = "%word_size"
2424
external unix : unit -> bool = "%ostype_unix"
2525
external win32 : unit -> bool = "%ostype_win32"
2626
external cygwin : unit -> bool = "%ostype_cygwin"
27-
external is_js : unit -> bool = "caml_is_js"
28-
let is_js = is_js ()
2927
let (executable_name, argv) = get_argv()
3028
let (os_type, _, _) = get_config()
3129
let big_endian = big_endian ()

jscomp/test/.depend

+1-1
Original file line numberDiff line numberDiff line change
@@ -452,7 +452,7 @@ nested_pattern_match_test.cmj :
452452
noassert.cmj :
453453
node_fs_test.cmj : ../others/node.cmj ../runtime/js.cmj
454454
node_path_test.cmj : ../runtime/js.cmj
455-
number_lexer.cmj : ../stdlib/sys.cmj ../stdlib/lexing.cmj
455+
number_lexer.cmj : ../stdlib/lexing.cmj
456456
obj_curry_test.cmj :
457457
obj_literal_ppx.cmj : ../stdlib/array.cmj
458458
obj_literal_ppx_test.cmj : ../runtime/js.cmj

jscomp/test/number_lexer.js

+4-8
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,12 @@
11
'use strict';
22

3-
var Sys = require("../../lib/js/sys.js");
43
var Curry = require("../../lib/js/curry.js");
54
var Lexing = require("../../lib/js/lexing.js");
6-
var Pervasives = require("../../lib/js/pervasives.js");
75

8-
var l = Sys.is_js ? (function (prim) {
9-
console.log(prim);
10-
return /* () */0;
11-
}) : (function (param) {
12-
return Pervasives.output_string(Pervasives.stdout, param);
13-
});
6+
function l(prim) {
7+
console.log(prim);
8+
return /* () */0;
9+
}
1410

1511
var __ocaml_lex_tables = /* record */[
1612
/* lex_base */"\0\0\xf6\xff\xf7\xff\xf8\xff\xf9\xff\xfa\xff\xfb\xff\xfc\xff:\0\x85\0\xff\xff",

jscomp/test/number_lexer.ml

+28-24
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
# 1 "number_lexer.mll"
22

33
external log : string -> unit = "caml_alloc_dummy" [@@bs.val "console.log"]
4-
let l = if Sys.is_js then log else output_string stdout
4+
let l =
5+
#if BS then
6+
log
7+
#else output_string stdout
8+
#end
59

610

7-
# 8 "number_lexer.ml"
11+
# 12 "number_lexer.ml"
812
let __ocaml_lex_tables = {
913
Lexing.lex_base =
1014
"\000\000\246\255\247\255\248\255\249\255\250\255\251\255\252\255\
@@ -134,63 +138,63 @@ let rec token l lexbuf =
134138
and __ocaml_lex_token_rec l lexbuf __ocaml_lex_state =
135139
match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
136140
| 0 ->
137-
# 8 "number_lexer.mll"
141+
# 12 "number_lexer.mll"
138142
( l "new line" ; token l lexbuf)
139-
# 140 "number_lexer.ml"
143+
# 144 "number_lexer.ml"
140144

141145
| 1 ->
142-
# 9 "number_lexer.mll"
146+
# 13 "number_lexer.mll"
143147
( l "number"; l (Lexing.lexeme lexbuf); token l lexbuf )
144-
# 145 "number_lexer.ml"
148+
# 149 "number_lexer.ml"
145149

146150
| 2 ->
147-
# 10 "number_lexer.mll"
151+
# 14 "number_lexer.mll"
148152
(l "ident"; l (Lexing.lexeme lexbuf); token l lexbuf)
149-
# 150 "number_lexer.ml"
153+
# 154 "number_lexer.ml"
150154

151155
| 3 ->
152-
# 11 "number_lexer.mll"
156+
# 15 "number_lexer.mll"
153157
( l "+" ; token l lexbuf )
154-
# 155 "number_lexer.ml"
158+
# 159 "number_lexer.ml"
155159

156160
| 4 ->
157-
# 12 "number_lexer.mll"
161+
# 16 "number_lexer.mll"
158162
( l "-" ; token l lexbuf)
159-
# 160 "number_lexer.ml"
163+
# 164 "number_lexer.ml"
160164

161165
| 5 ->
162-
# 13 "number_lexer.mll"
166+
# 17 "number_lexer.mll"
163167
( l "*" ; token l lexbuf)
164-
# 165 "number_lexer.ml"
168+
# 169 "number_lexer.ml"
165169

166170
| 6 ->
167-
# 14 "number_lexer.mll"
171+
# 18 "number_lexer.mll"
168172
( l "/" ; token l lexbuf)
169-
# 170 "number_lexer.ml"
173+
# 174 "number_lexer.ml"
170174

171175
| 7 ->
172-
# 15 "number_lexer.mll"
176+
# 19 "number_lexer.mll"
173177
( l "(" ; token l lexbuf )
174-
# 175 "number_lexer.ml"
178+
# 179 "number_lexer.ml"
175179

176180
| 8 ->
177-
# 16 "number_lexer.mll"
181+
# 20 "number_lexer.mll"
178182
( l ")"; token l lexbuf )
179-
# 180 "number_lexer.ml"
183+
# 184 "number_lexer.ml"
180184

181185
| 9 ->
182-
# 17 "number_lexer.mll"
186+
# 21 "number_lexer.mll"
183187
( l "eof" )
184-
# 185 "number_lexer.ml"
188+
# 189 "number_lexer.ml"
185189

186190
| __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf;
187191
__ocaml_lex_token_rec l lexbuf __ocaml_lex_state
188192

189193
;;
190194

191-
# 19 "number_lexer.mll"
195+
# 23 "number_lexer.mll"
192196

193197
(* token l (Lexing.from_string "32 + 32 ( ) * / ") *)
194198
(* token (Lexing.from_string "32") *)
195199

196-
# 197 "number_lexer.ml"
200+
# 201 "number_lexer.ml"

jscomp/test/number_lexer.mll

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
{
22
external log : string -> unit = "caml_alloc_dummy" [@@bs.val "console.log"]
3-
let l = if Sys.is_js then log else output_string stdout
3+
let l =
4+
#if BS then
5+
log
6+
#else output_string stdout
7+
#end
48

59
}
610

jscomp/test/test_is_js.ml

+6-3
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1-
external is_js : unit -> bool = "caml_is_js"
2-
3-
let v = is_js ()
1+
let v =
2+
#if BS then
3+
true
4+
#else
5+
false
6+
#end

lib/js/sys.js

-3
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33
var Caml_sys = require("./caml_sys.js");
44
var Caml_exceptions = require("./caml_exceptions.js");
55

6-
var is_js = true;
7-
86
var match = Caml_sys.caml_sys_get_argv(/* () */0);
97

108
var big_endian = false;
@@ -92,7 +90,6 @@ exports.win32 = win32;
9290
exports.cygwin = cygwin;
9391
exports.word_size = word_size;
9492
exports.big_endian = big_endian;
95-
exports.is_js = is_js;
9693
exports.max_string_length = max_string_length;
9794
exports.max_array_length = max_array_length;
9895
exports.set_signal = set_signal;

lib/whole_compiler.ml

-2
Original file line numberDiff line numberDiff line change
@@ -94822,7 +94822,6 @@ let rec no_side_effects (lam : Lam.t) : bool =
9482294822
| ("caml_register_named_value"
9482394823
(* register to c runtime does not make sense in ocaml *)
9482494824
(* | "caml_set_oo_id" *) (* it does have side effect, just in creation path it happens not to have *)
94825-
| "caml_is_js"
9482694825
| "caml_int64_float_of_bits"
9482794826
(* more safe to check if arguments are constant *)
9482894827
(* non-observable side effect *)
@@ -103673,7 +103672,6 @@ let translate loc (prim_name : string)
103673103672
| "caml_sys_const_ostype_cygwin" -> E.caml_false
103674103673
| "caml_sys_const_ostype_win32" -> E.caml_false
103675103674
| "caml_sys_const_ostype_unix" -> E.caml_true
103676-
| "caml_is_js" -> E.caml_true
103677103675
| "caml_sys_get_config" ->
103678103676
(** No cross compilation *)
103679103677
Js_of_lam_tuple.make [E.str Sys.os_type; E.small_int Sys.word_size;

0 commit comments

Comments
 (0)