Skip to content

Commit 245f30a

Browse files
committed
remove caml_bytes_extern
1 parent 7f8b420 commit 245f30a

File tree

5 files changed

+32
-36
lines changed

5 files changed

+32
-36
lines changed

jscomp/runtime/caml_bytes.ml

Lines changed: 25 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -22,17 +22,24 @@
2222
* along with this program; if not, write to the Free Software
2323
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *)
2424

25-
open Caml_bytes_extern
25+
26+
external new_uninitialized : int -> bytes = "Array" [@@bs.new]
27+
28+
external (.![]) : bytes -> int -> char = "%bytes_unsafe_get"
29+
external (.![]<-) : bytes -> int -> char -> unit = "%bytes_unsafe_set"
30+
external length : bytes -> int = "%bytes_length"
31+
32+
2633

2734
let get s i =
2835
if i < 0 || i >= length s then
2936
raise (Invalid_argument "index out of bounds")
30-
else unsafe_get s i
37+
else s.![i]
3138

3239
let caml_fill_bytes (s : bytes) i l (c : char) =
3340
if l > 0 then
3441
for k = i to l + i - 1 do
35-
unsafe_set s k c
42+
s.![k] <- c
3643
done
3744

3845
let caml_create_bytes len : bytes =
@@ -41,7 +48,7 @@ let caml_create_bytes len : bytes =
4148
else
4249
let result = new_uninitialized len in
4350
for i = 0 to len - 1 do
44-
unsafe_set result i '\000'
51+
result.![i] <- '\000'
4552
done ;
4653
result
4754

@@ -53,14 +60,14 @@ let copyWithin (s1 : bytes) i1 i2 len =
5360
let range_b = len - 1 in
5461
let range = if range_a > range_b then range_b else range_a in
5562
for j = range downto 0 do
56-
unsafe_set s1 (i2 + j) (unsafe_get s1 (i1 + j))
63+
s1.![i2 + j] <- s1.![i1 + j]
5764
done
5865
else if i1 > i2 then
5966
let range_a = length s1 - i1 - 1 in
6067
let range_b = len - 1 in
6168
let range = if range_a > range_b then range_b else range_a in
6269
for k = 0 to range do
63-
unsafe_set s1 (i2 + k) (unsafe_get s1 (i1 + k))
70+
s1.![i2 + k] <- s1.![i1 + k]
6471
done
6572

6673
(* TODO: when the compiler could optimize small function calls,
@@ -74,20 +81,20 @@ let caml_blit_bytes (s1:bytes) i1 (s2:bytes) i2 len =
7481
let off1 = length s1 - i1 in
7582
if len <= off1 then
7683
for i = 0 to len - 1 do
77-
unsafe_set s2 (i2 + i) (unsafe_get s1 (i1 + i))
84+
s2.![i2 + i] <- s1.![i1 + i]
7885
done
7986
else
8087
begin
8188
for i = 0 to off1 - 1 do
82-
unsafe_set s2 (i2 + i) (unsafe_get s1 (i1 + i))
89+
s2.![i2 + i] <- s1.![i1 + i]
8390
done;
8491
for i = off1 to len - 1 do
85-
unsafe_set s2 (i2 + i) '\000'
92+
s2.![i2 + i] <- '\000'
8693
done
8794
end
8895

8996
external to_int_array : bytes -> int array = "%identity"
90-
let string_of_large_bytes bytes i len =
97+
let string_of_large_bytes (bytes : bytes) i len =
9198
let s = ref "" in
9299
let s_len = ref len in
93100
let seg = 1024 in
@@ -118,15 +125,15 @@ let caml_blit_string (s1 : string) i1 (s2 : bytes) i2 (len : int ) =
118125
let off1 = Caml_string_extern.length s1 - i1 in
119126
if len <= off1 then
120127
for i = 0 to len - 1 do
121-
unsafe_set s2 (i2 + i) (Caml_string_extern.unsafe_get s1 (i1 + i))
128+
s2.![i2 + i] <- Caml_string_extern.unsafe_get s1 (i1 + i)
122129
done
123130
else
124131
begin
125132
for i = 0 to off1 - 1 do
126-
unsafe_set s2 (i2 + i) (Caml_string_extern.unsafe_get s1 (i1 + i))
133+
s2.![i2 + i] <- Caml_string_extern.unsafe_get s1 (i1 + i)
127134
done;
128135
for i = off1 to len - 1 do
129-
unsafe_set s2 (i2 + i) '\000'
136+
s2.![i2 + i] <- '\000'
130137
done
131138
end
132139

@@ -135,7 +142,7 @@ let bytes_of_string s =
135142
let len = Caml_string_extern.length s in
136143
let res = new_uninitialized len in
137144
for i = 0 to len - 1 do
138-
unsafe_set res i (Caml_string_extern.unsafe_get s i)
145+
res.![i] <- Caml_string_extern.unsafe_get s i
139146
(* Note that when get a char and convert it to int immedately, should be optimized
140147
should be [s.charCodeAt[i]]
141148
*)
@@ -145,7 +152,7 @@ let bytes_of_string s =
145152

146153
let rec caml_bytes_compare_aux (s1 : bytes) (s2 : bytes) off len def =
147154
if off < len then
148-
let a, b = Caml_bytes_extern.unsafe_get s1 off, Caml_bytes_extern.unsafe_get s2 off in
155+
let a, b = s1.![off], s2.![off] in
149156
if a > b then 1
150157
else if a < b then -1
151158
else caml_bytes_compare_aux s1 s2 (off + 1) len def
@@ -160,7 +167,7 @@ let bytes_of_string s =
160167
161168
*)
162169
let caml_bytes_compare (s1 : bytes) (s2 : bytes) : int =
163-
let len1, len2 = Caml_bytes_extern.length s1, Caml_bytes_extern.length s2 in
170+
let len1, len2 = length s1, length s2 in
164171
if len1 = len2 then
165172
caml_bytes_compare_aux s1 s2 0 len1 0
166173
else if len1 < len2 then
@@ -171,12 +178,12 @@ let caml_bytes_compare (s1 : bytes) (s2 : bytes) : int =
171178
let rec caml_bytes_equal_aux (s1 : bytes) s2 (off : int) len =
172179
if off = len then true
173180
else
174-
let a, b = Caml_bytes_extern.unsafe_get s1 off, Caml_bytes_extern.unsafe_get s2 off in
181+
let a, b = s1.![off], s2.![off] in
175182
a = b
176183
&& caml_bytes_equal_aux s1 s2 (off + 1) len
177184

178185
let caml_bytes_equal (s1 : bytes) (s2 : bytes) : bool =
179-
let len1, len2 = Caml_bytes_extern.length s1, Caml_bytes_extern.length s2 in
186+
let len1, len2 = length s1, length s2 in
180187
len1 = len2 &&
181188
caml_bytes_equal_aux s1 s2 0 len1
182189

jscomp/runtime/caml_bytes_extern.ml

Lines changed: 0 additions & 8 deletions
This file was deleted.

jscomp/runtime/release.ninja

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ build runtime/js.cmj runtime/js.cmi : cc runtime/js.ml
1515
bsc_flags = $bsc_no_open_flags
1616
build runtime/caml_array.cmj : cc_cmi runtime/caml_array.ml | runtime/caml_array.cmi runtime/caml_array_extern.cmj
1717
build runtime/caml_array.cmi : cc runtime/caml_array.mli | runtime/bs_stdlib_mini.cmi runtime/js.cmi runtime/js.cmj
18-
build runtime/caml_bytes.cmj : cc_cmi runtime/caml_bytes.ml | runtime/caml_bytes.cmi runtime/caml_bytes_extern.cmj runtime/caml_string_extern.cmj
18+
build runtime/caml_bytes.cmj : cc_cmi runtime/caml_bytes.ml | runtime/caml_bytes.cmi runtime/caml_string_extern.cmj
1919
build runtime/caml_bytes.cmi : cc runtime/caml_bytes.mli | runtime/bs_stdlib_mini.cmi runtime/js.cmi runtime/js.cmj
2020
build runtime/caml_float.cmj : cc_cmi runtime/caml_float.ml | runtime/caml_float.cmi runtime/caml_float_extern.cmj
2121
build runtime/caml_float.cmi : cc runtime/caml_float.mli | runtime/bs_stdlib_mini.cmi runtime/js.cmi runtime/js.cmj
@@ -29,7 +29,7 @@ build runtime/caml_hash_primitive.cmj : cc_cmi runtime/caml_hash_primitive.ml |
2929
build runtime/caml_hash_primitive.cmi : cc runtime/caml_hash_primitive.mli | runtime/bs_stdlib_mini.cmi runtime/js.cmi runtime/js.cmj
3030
build runtime/caml_int32.cmj : cc_cmi runtime/caml_int32.ml | runtime/caml_int32.cmi runtime/caml_nativeint_extern.cmj
3131
build runtime/caml_int32.cmi : cc runtime/caml_int32.mli | runtime/bs_stdlib_mini.cmi runtime/js.cmi runtime/js.cmj
32-
build runtime/caml_int64.cmj : cc_cmi runtime/caml_int64.ml | runtime/caml_float.cmj runtime/caml_float_extern.cmj runtime/caml_int64.cmi runtime/caml_nativeint_extern.cmj runtime/caml_primitive.cmj runtime/caml_string_extern.cmj runtime/js.cmj
32+
build runtime/caml_int64.cmj : cc_cmi runtime/caml_int64.ml | runtime/caml_float.cmj runtime/caml_float_extern.cmj runtime/caml_int64.cmi runtime/caml_nativeint_extern.cmj runtime/caml_string_extern.cmj runtime/js.cmj
3333
build runtime/caml_int64.cmi : cc runtime/caml_int64.mli | runtime/bs_stdlib_mini.cmi runtime/js.cmi runtime/js.cmj
3434
build runtime/caml_io.cmj : cc_cmi runtime/caml_io.ml | runtime/caml_io.cmi runtime/caml_string_extern.cmj runtime/caml_undefined_extern.cmj runtime/js.cmj
3535
build runtime/caml_io.cmi : cc runtime/caml_io.mli | runtime/bs_stdlib_mini.cmi runtime/caml_undefined_extern.cmj runtime/js.cmi runtime/js.cmj
@@ -39,9 +39,9 @@ build runtime/caml_md5.cmj : cc_cmi runtime/caml_md5.ml | runtime/caml_array_ext
3939
build runtime/caml_md5.cmi : cc runtime/caml_md5.mli | runtime/bs_stdlib_mini.cmi runtime/js.cmi runtime/js.cmj
4040
build runtime/caml_module.cmj : cc_cmi runtime/caml_module.ml | runtime/caml_array_extern.cmj runtime/caml_module.cmi runtime/caml_obj.cmj
4141
build runtime/caml_module.cmi : cc runtime/caml_module.mli | runtime/bs_stdlib_mini.cmi runtime/js.cmi runtime/js.cmj
42-
build runtime/caml_obj.cmj : cc_cmi runtime/caml_obj.ml | runtime/caml_array_extern.cmj runtime/caml_obj.cmi runtime/caml_option.cmj runtime/caml_primitive.cmj runtime/js.cmj
42+
build runtime/caml_obj.cmj : cc_cmi runtime/caml_obj.ml | runtime/caml_array_extern.cmj runtime/caml_obj.cmi runtime/caml_option.cmj runtime/js.cmj
4343
build runtime/caml_obj.cmi : cc runtime/caml_obj.mli | runtime/bs_stdlib_mini.cmi runtime/js.cmi runtime/js.cmj
44-
build runtime/caml_oo.cmj : cc_cmi runtime/caml_oo.ml | runtime/caml_array.cmj runtime/caml_array_extern.cmj runtime/caml_exceptions.cmj runtime/caml_oo.cmi
44+
build runtime/caml_oo.cmj : cc_cmi runtime/caml_oo.ml | runtime/caml_array_extern.cmj runtime/caml_exceptions.cmj runtime/caml_oo.cmi
4545
build runtime/caml_oo.cmi : cc runtime/caml_oo.mli | runtime/bs_stdlib_mini.cmi runtime/js.cmi runtime/js.cmj
4646
build runtime/caml_option.cmj : cc_cmi runtime/caml_option.ml | runtime/caml_option.cmi runtime/caml_undefined_extern.cmj runtime/js.cmj
4747
build runtime/caml_option.cmi : cc runtime/caml_option.mli | runtime/bs_stdlib_mini.cmi runtime/caml_undefined_extern.cmj runtime/js.cmi runtime/js.cmj
@@ -56,16 +56,15 @@ build runtime/caml_string.cmi : cc runtime/caml_string.mli | runtime/bs_stdlib_m
5656
build runtime/caml_sys.cmj : cc_cmi runtime/caml_sys.ml | runtime/caml_array_extern.cmj runtime/caml_nativeint_extern.cmj runtime/caml_sys.cmi runtime/caml_undefined_extern.cmj runtime/js.cmj
5757
build runtime/caml_sys.cmi : cc runtime/caml_sys.mli | runtime/bs_stdlib_mini.cmi runtime/js.cmi runtime/js.cmj
5858
build runtime/caml_array_extern.cmi runtime/caml_array_extern.cmj : cc runtime/caml_array_extern.ml | runtime/bs_stdlib_mini.cmi runtime/js.cmi runtime/js.cmj
59-
build runtime/caml_bytes_extern.cmi runtime/caml_bytes_extern.cmj : cc runtime/caml_bytes_extern.ml | runtime/bs_stdlib_mini.cmi runtime/js.cmi runtime/js.cmj
6059
build runtime/caml_exceptions.cmi runtime/caml_exceptions.cmj : cc runtime/caml_exceptions.ml | runtime/bs_stdlib_mini.cmi runtime/js.cmi runtime/js.cmj
6160
build runtime/caml_external_polyfill.cmi runtime/caml_external_polyfill.cmj : cc runtime/caml_external_polyfill.ml | runtime/bs_stdlib_mini.cmi runtime/js.cmi runtime/js.cmj
6261
build runtime/caml_float_extern.cmi runtime/caml_float_extern.cmj : cc runtime/caml_float_extern.ml | runtime/bs_stdlib_mini.cmi runtime/js.cmi runtime/js.cmj
6362
build runtime/caml_int32_extern.cmi runtime/caml_int32_extern.cmj : cc runtime/caml_int32_extern.ml | runtime/bs_stdlib_mini.cmi runtime/js.cmi runtime/js.cmj
6463
build runtime/caml_int64_extern.cmi runtime/caml_int64_extern.cmj : cc runtime/caml_int64_extern.ml | runtime/bs_stdlib_mini.cmi runtime/js.cmi runtime/js.cmj
65-
build runtime/caml_js_exceptions.cmi runtime/caml_js_exceptions.cmj : cc runtime/caml_js_exceptions.ml | runtime/bs_stdlib_mini.cmi runtime/caml_exceptions.cmj runtime/caml_option.cmj runtime/js.cmi runtime/js.cmj
64+
build runtime/caml_js_exceptions.cmi runtime/caml_js_exceptions.cmj : cc runtime/caml_js_exceptions.ml | runtime/bs_stdlib_mini.cmi runtime/caml_exceptions.cmj runtime/js.cmi runtime/js.cmj
6665
build runtime/caml_nativeint_extern.cmi runtime/caml_nativeint_extern.cmj : cc runtime/caml_nativeint_extern.ml | runtime/bs_stdlib_mini.cmi runtime/js.cmi runtime/js.cmj
6766
build runtime/caml_oo_curry.cmi runtime/caml_oo_curry.cmj : cc runtime/caml_oo_curry.ml | runtime/bs_stdlib_mini.cmi runtime/caml_oo.cmj runtime/curry.cmj runtime/js.cmi runtime/js.cmj
6867
build runtime/caml_string_extern.cmi runtime/caml_string_extern.cmj : cc runtime/caml_string_extern.ml | runtime/bs_stdlib_mini.cmi runtime/js.cmi runtime/js.cmj
6968
build runtime/caml_undefined_extern.cmi runtime/caml_undefined_extern.cmj : cc runtime/caml_undefined_extern.ml | runtime/bs_stdlib_mini.cmi runtime/js.cmi runtime/js.cmj
70-
build runtime/curry.cmi runtime/curry.cmj : cc runtime/curry.ml | runtime/bs_stdlib_mini.cmi runtime/caml_array.cmj runtime/caml_array_extern.cmj runtime/js.cmi runtime/js.cmj
71-
build runtime : phony runtime/bs_stdlib_mini.cmi runtime/js.cmj runtime/js.cmi runtime/caml_array.cmi runtime/caml_array.cmj runtime/caml_bytes.cmi runtime/caml_bytes.cmj runtime/caml_float.cmi runtime/caml_float.cmj runtime/caml_format.cmi runtime/caml_format.cmj runtime/caml_gc.cmi runtime/caml_gc.cmj runtime/caml_hash.cmi runtime/caml_hash.cmj runtime/caml_hash_primitive.cmi runtime/caml_hash_primitive.cmj runtime/caml_int32.cmi runtime/caml_int32.cmj runtime/caml_int64.cmi runtime/caml_int64.cmj runtime/caml_io.cmi runtime/caml_io.cmj runtime/caml_lexer.cmi runtime/caml_lexer.cmj runtime/caml_md5.cmi runtime/caml_md5.cmj runtime/caml_module.cmi runtime/caml_module.cmj runtime/caml_obj.cmi runtime/caml_obj.cmj runtime/caml_oo.cmi runtime/caml_oo.cmj runtime/caml_option.cmi runtime/caml_option.cmj runtime/caml_parser.cmi runtime/caml_parser.cmj runtime/caml_primitive.cmi runtime/caml_primitive.cmj runtime/caml_splice_call.cmi runtime/caml_splice_call.cmj runtime/caml_string.cmi runtime/caml_string.cmj runtime/caml_sys.cmi runtime/caml_sys.cmj runtime/caml_array_extern.cmi runtime/caml_array_extern.cmj runtime/caml_bytes_extern.cmi runtime/caml_bytes_extern.cmj runtime/caml_exceptions.cmi runtime/caml_exceptions.cmj runtime/caml_external_polyfill.cmi runtime/caml_external_polyfill.cmj runtime/caml_float_extern.cmi runtime/caml_float_extern.cmj runtime/caml_int32_extern.cmi runtime/caml_int32_extern.cmj runtime/caml_int64_extern.cmi runtime/caml_int64_extern.cmj runtime/caml_js_exceptions.cmi runtime/caml_js_exceptions.cmj runtime/caml_nativeint_extern.cmi runtime/caml_nativeint_extern.cmj runtime/caml_oo_curry.cmi runtime/caml_oo_curry.cmj runtime/caml_string_extern.cmi runtime/caml_string_extern.cmj runtime/caml_undefined_extern.cmi runtime/caml_undefined_extern.cmj runtime/curry.cmi runtime/curry.cmj
69+
build runtime/curry.cmi runtime/curry.cmj : cc runtime/curry.ml | runtime/bs_stdlib_mini.cmi runtime/caml_array_extern.cmj runtime/js.cmi runtime/js.cmj
70+
build runtime : phony runtime/bs_stdlib_mini.cmi runtime/js.cmj runtime/js.cmi runtime/caml_array.cmi runtime/caml_array.cmj runtime/caml_bytes.cmi runtime/caml_bytes.cmj runtime/caml_float.cmi runtime/caml_float.cmj runtime/caml_format.cmi runtime/caml_format.cmj runtime/caml_gc.cmi runtime/caml_gc.cmj runtime/caml_hash.cmi runtime/caml_hash.cmj runtime/caml_hash_primitive.cmi runtime/caml_hash_primitive.cmj runtime/caml_int32.cmi runtime/caml_int32.cmj runtime/caml_int64.cmi runtime/caml_int64.cmj runtime/caml_io.cmi runtime/caml_io.cmj runtime/caml_lexer.cmi runtime/caml_lexer.cmj runtime/caml_md5.cmi runtime/caml_md5.cmj runtime/caml_module.cmi runtime/caml_module.cmj runtime/caml_obj.cmi runtime/caml_obj.cmj runtime/caml_oo.cmi runtime/caml_oo.cmj runtime/caml_option.cmi runtime/caml_option.cmj runtime/caml_parser.cmi runtime/caml_parser.cmj runtime/caml_primitive.cmi runtime/caml_primitive.cmj runtime/caml_splice_call.cmi runtime/caml_splice_call.cmj runtime/caml_string.cmi runtime/caml_string.cmj runtime/caml_sys.cmi runtime/caml_sys.cmj runtime/caml_array_extern.cmi runtime/caml_array_extern.cmj runtime/caml_exceptions.cmi runtime/caml_exceptions.cmj runtime/caml_external_polyfill.cmi runtime/caml_external_polyfill.cmj runtime/caml_float_extern.cmi runtime/caml_float_extern.cmj runtime/caml_int32_extern.cmi runtime/caml_int32_extern.cmj runtime/caml_int64_extern.cmi runtime/caml_int64_extern.cmj runtime/caml_js_exceptions.cmi runtime/caml_js_exceptions.cmj runtime/caml_nativeint_extern.cmi runtime/caml_nativeint_extern.cmj runtime/caml_oo_curry.cmi runtime/caml_oo_curry.cmj runtime/caml_string_extern.cmi runtime/caml_string_extern.cmj runtime/caml_undefined_extern.cmi runtime/caml_undefined_extern.cmj runtime/curry.cmi runtime/curry.cmj

lib/es6/caml_bytes_extern.js

Lines changed: 0 additions & 1 deletion
This file was deleted.

lib/js/caml_bytes_extern.js

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)