Skip to content

Commit 599df42

Browse files
authored
Merge pull request #4411 from BuckleScript/cleanup
clean up, remove unused code
2 parents 6a5b199 + 596d64b commit 599df42

File tree

457 files changed

+22773
-24144
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

457 files changed

+22773
-24144
lines changed

jscomp/core/js_block_runtime.ml

Lines changed: 1 addition & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -23,74 +23,16 @@
2323
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *)
2424

2525

26-
let tag_is_zero (tag : J.expression) =
27-
match tag.expression_desc with
28-
| Number (Int {i = 0l; _}) -> true
29-
| _ -> false;;
30-
31-
let needChromeRuntime
32-
(tag : J.expression)
33-
(tag_info : J.tag_info) =
34-
match tag_info with
35-
| Blk_poly_var _
36-
| Blk_constructor _ -> true
37-
| Blk_record_inlined _ -> true
38-
| Blk_record _
39-
| Blk_module_export
40-
| Blk_module _ -> false
41-
| Blk_tuple
42-
| Blk_extension
43-
| Blk_class
44-
| Blk_array
45-
| Blk_record_ext _ -> false
46-
| Blk_na _ -> not (tag_is_zero tag )
47-
48-
let needBlockRuntime (tag : J.expression) (tag_info : J.tag_info) =
49-
match tag_info with
50-
| Blk_poly_var _
51-
| Blk_module _
52-
| Blk_module_export
53-
| Blk_record _
54-
| Blk_tuple
55-
| Blk_extension
56-
| Blk_class
57-
| Blk_array -> false
58-
| Blk_record_inlined {num_nonconst = 1}
59-
| Blk_constructor {num_nonconst = 1}
60-
| Blk_na _ -> not (tag_is_zero tag)
61-
| Blk_record_inlined _
62-
| Blk_constructor _ -> true
63-
| Blk_record_ext _
64-
-> false
65-
(* converted to [Pcreate_extension] in the beginning*)
66-
6726
let option_id =
6827
Ident.create_persistent Js_runtime_modules.option
6928
let curry_id =
7029
Ident.create_persistent Js_runtime_modules.curry
71-
let block_id =
72-
Ident.create_persistent Js_runtime_modules.block
73-
let caml_chrome_id =
74-
Ident.create_persistent Js_runtime_modules.caml_chrome_block
7530

76-
let check_additional_id (x : J.expression) =
31+
let check_additional_id (x : J.expression) : Ident.t option =
7732
match x.expression_desc with
7833
| Optional_block(_,false) ->
7934
Some option_id
8035
| Call(_, _, {arity = NA}) ->
8136
Some curry_id
82-
| Caml_block(_,_,tag,tag_info)
83-
->
84-
if not !Js_config.debug then
85-
if needBlockRuntime tag tag_info then
86-
Some block_id
87-
else None
88-
else
89-
if needChromeRuntime tag tag_info then
90-
(* This may depends on two modules, so in the runtime
91-
we let chrome depends on block
92-
*)
93-
Some caml_chrome_id
94-
else None
9537
| _ ->
9638
None

jscomp/core/js_block_runtime.mli

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,18 +22,7 @@
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-
val tag_is_zero :
26-
J.expression -> bool
2725

28-
val needChromeRuntime:
29-
J.expression ->
30-
J.tag_info ->
31-
bool
32-
33-
val needBlockRuntime:
34-
J.expression ->
35-
J.tag_info ->
36-
bool
3726

3827
val check_additional_id :
3928
J.expression -> Ident.t option

jscomp/core/js_dump.ml

Lines changed: 6 additions & 105 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,6 @@ module L = Js_dump_lit
5959

6060
(* There modules are dynamically inserted in the last stage
6161
{Caml_curry}
62-
{Caml_block}
6362
{Caml_option}
6463
6564
They can appear anywhere so even if you have a module
@@ -95,36 +94,6 @@ module Curry_gen = struct
9594
P.string f (Printf.sprintf "%d" len)
9695
end
9796

98-
let block_dot f =
99-
P.string f Js_runtime_modules.block;
100-
P.string f L.dot
101-
102-
let pp_block_create f =
103-
block_dot f ;
104-
P.string f L.caml_block_create
105-
106-
let dbg_block_dot f =
107-
P.string f Js_runtime_modules.caml_chrome_block;
108-
P.string f L.dot
109-
110-
let dbg_block_create f =
111-
dbg_block_dot f ;
112-
P.string f L.caml_block_create
113-
114-
115-
116-
let dbg_poly_var f =
117-
dbg_block_dot f;
118-
P.string f L.block_poly_var
119-
120-
let dbg_simple_variant f =
121-
dbg_block_dot f ;
122-
P.string f L.block_simple_variant
123-
124-
let dbg_variant f =
125-
dbg_block_dot f ;
126-
P.string f L.block_variant
127-
12897

12998

13099
let return_indent = String.length L.return / Ext_pp.indent_length
@@ -878,7 +847,7 @@ and expression_desc cxt ~(level:int) f x : cxt =
878847
else []
879848
) in
880849
if p.num_nonconst = 1 then tails
881-
else ("tag",
850+
else (L.tag,
882851
if !Js_config.debug then tag else {tag with comment = Some p.name}) :: tails in
883852
if p.num_nonconst = 1 && not !Js_config.debug then
884853
pp_comment_option f (Some p.name);
@@ -893,85 +862,17 @@ and expression_desc cxt ~(level:int) f x : cxt =
893862
if p.num_nonconst = 1 then
894863
tails
895864
else
896-
("tag",
865+
(L.tag,
897866
if !Js_config.debug then tag else {tag with comment = Some p.name}) :: tails
898867
in
899868
if p.num_nonconst = 1 && not !Js_config.debug then
900869
pp_comment_option f (Some p.name);
901870
expression_desc cxt ~level f (Object objs)
902-
| Caml_block( el, mutable_flag, tag, tag_info)
871+
| Caml_block ( _, _, _, (Blk_module_export | Blk_na _ )) -> assert false
872+
| Caml_block( el, mutable_flag, _tag, (Blk_tuple | Blk_class | Blk_array ))
903873
->
904-
pp_comment_option f (Lam_compile_util.comment_of_tag_info tag_info);
905-
(* Note that, if we ignore more than tag [0] we loose some information
906-
with regard tag
907-
908-
TODO: for numbers like 248, 255 we can reverse engineer to make it
909-
[Obj.xx_flag], but we can not do this in runtime libraries
910-
911-
When it does not need block runtime, it means it will be compiled
912-
as an array, note exception or open variant it is outer-most is
913-
simply an array
914-
*)
915-
if not !Js_config.debug then begin
916-
if not (Js_block_runtime.needBlockRuntime tag tag_info) then
917-
expression_desc cxt ~level f (Array (el, mutable_flag))
918-
else
919-
begin
920-
pp_block_create f;
921-
P.paren_group f 1 (fun _ -> arguments cxt f [tag; E.array mutable_flag el])
922-
end
923-
end
924-
else
925-
if not (Js_block_runtime.needChromeRuntime tag tag_info) then
926-
expression_desc cxt ~level f (Array (el, mutable_flag))
927-
else
928-
(
929-
match tag_info with
930-
| Blk_record _
931-
| Blk_module _
932-
| Blk_module_export ->
933-
assert false
934-
(*
935-
This can not happen, see the pattern match on previous branch
936-
TODO: we still need clean up local module compilation
937-
to make it more obvious
938-
*)
939-
| Blk_poly_var name ->
940-
dbg_poly_var f;
941-
P.paren_group f 1 (fun _ -> arguments cxt f [
942-
E.str name;
943-
E.array mutable_flag el])
944-
| Blk_constructor{name; num_nonconst = number}
945-
946-
-> (* has to be debug mode *)
947-
if number = 1 && Js_block_runtime.tag_is_zero tag then
948-
begin
949-
dbg_simple_variant f;
950-
P.paren_group f 1 (fun _ ->
951-
arguments cxt f
952-
[E.str name; E.array mutable_flag el])
953-
end
954-
else begin
955-
dbg_variant f;
956-
P.paren_group f 1 (fun _ ->
957-
arguments cxt f
958-
[E.str name; tag; E.array mutable_flag el])
959-
end
960-
961-
962-
963-
| Blk_record_inlined _ (* TODO: No support for debug mode yet *)
964-
| Blk_tuple
965-
| Blk_extension
966-
| Blk_class
967-
| Blk_array
968-
| Blk_record_ext _
969-
| Blk_na _
970-
->
971-
dbg_block_create f;
972-
P.paren_group f 1 (fun _ -> arguments cxt f [tag; E.array mutable_flag el])
973-
)
974-
874+
expression_desc cxt ~level f (Array (el, mutable_flag))
875+
975876
| Caml_block_tag e ->
976877
P.group f 1 (fun _ ->
977878
let cxt = expression ~level:15 cxt f e in

jscomp/core/js_dump_lit.ml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ let true_ = "true"
7171
let false_ = "false"
7272

7373
let debugger = "debugger"
74-
let tag = "tag"
74+
let tag = "TAG"
7575
let bind = "bind"
7676
let math = "Math"
7777
let apply = "apply"

jscomp/core/lam_analysis.ml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,9 +61,7 @@ let rec no_side_effects (lam : Lam.t) : bool =
6161
| "caml_make_vect"
6262
| "caml_create_bytes"
6363
| "caml_obj_dup"
64-
| "caml_array_dup"
65-
| "caml_obj_block"
66-
64+
| "caml_array_dup"
6765
), _ -> true
6866
| "caml_ml_open_descriptor_in", [Lconst ( (Const_int {value = 0}))] -> true
6967
| "caml_ml_open_descriptor_out",

jscomp/core/lam_dispatch_primitive.ml

Lines changed: 1 addition & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -647,27 +647,7 @@ let translate loc (prim_name : string)
647647
end
648648
| _ -> assert false
649649
end
650-
| "caml_obj_block" ->
651-
(** TODO: Optimize for [CamlinternalOO] input
652-
external new_block : tag:int -> size:int -> t = "caml_obj_block"
653-
Note that we don't need initialize its content anyway
654-
TODO: more optimizations later
655-
ATTENTION: This optmization is coupled with memory layout
656-
*)
657-
begin match args with
658-
| [ tag;
659-
{expression_desc = Number (Int { i ;_}); _} ] ->
660-
E.make_block tag (Blk_na "obj_block")
661-
(Ext_list.init (Int32.to_int i)
662-
(fun _ -> E.zero_int_literal)) NA
663-
664-
| [ _; _] ->
665-
call Js_runtime_modules.obj_runtime
666-
(* E.uninitialized_object tag size *)
667-
| _ -> assert false
668650

669-
670-
end
671651
| "caml_format_float"
672652
| "caml_hexstring_of_float"
673653
| "caml_nativeint_format"
@@ -735,17 +715,7 @@ let translate loc (prim_name : string)
735715
*)
736716
begin match args with
737717
| [e] -> E.tag e
738-
| _ -> assert false end
739-
740-
(* End of Unix support *)
741-
(* bigarrary support *)
742-
743-
(* call Js_config.bigarray *)
744-
(* End of bigarray support *)
745-
| "caml_bswap16"
746-
| "caml_int32_bswap"
747-
| "caml_nativeint_bswap"
748-
-> call Js_runtime_modules.int32
718+
| _ -> assert false end
749719
| "caml_get_public_method"
750720
->
751721
call Js_runtime_modules.oo

jscomp/ext/js_runtime_modules.ml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@ let int64 = "Caml_int64"
4545
let md5 = "Caml_md5"
4646
let gc = "Caml_gc"
4747
let int32 = "Caml_int32"
48-
let block = "Block"
49-
let caml_chrome_block = "Caml_chrome_debugger"
48+
49+
5050
let option = "Caml_option"
5151
let module_ = "Caml_module"
5252
let external_polyfill = "Caml_external_polyfill"

jscomp/main/builtin_cmi_datasets.ml

Lines changed: 125 additions & 125 deletions
Large diffs are not rendered by default.

jscomp/main/builtin_cmj_datasets.ml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
(* a6ef764a95e857fb790f85fcc5f16e08 *)
1+
(* 49b8700d850ed87f5ed554cc526795d4 *)
22
let module_names : string array = Obj.magic (
33
"Gc" (* 220 *),
44
"Js" (* 23 *),
@@ -239,7 +239,7 @@ let module_data : string array = Obj.magic (
239239
(* Belt_MapString *)"\132\149\166\190\000\000\003p\000\000\001\011\000\000\003i\000\000\0031\160\b\000\000\212\000\176\"eq\144\160\160C@@@\176#cmp\144\160\160C@@@\176#eqU\144\160\160C@@@\176#get\144\160\160B@@@\176#has\144\160\160B@@@\176#map\144\160\160B@@@\176#set\144\160\160C@@@\176$cmpU\144\160\160C@@@\176$keep\144\160\160B@@@\176$mapU\144\160\160B@@@\176$size\144\160\160A@@@\176$some\144\160\160B@@@\176%empty\144@\144\146A\176%every\144\160\160B@@@\176%keepU\144\160\160B@@@\176%merge\144\160\160C@@@\176%someU\144\160\160B@@@\176%split\144\160\160B@@@\176&everyU\144\160\160B@@@\176&getExn\144\160\160B@@@\176&maxKey\144\160\160A@@@\176&mergeU\144\160\160C@@@\176&minKey\144\160\160A@@@\176&reduce\144\160\160C@@@\176&remove\144\160\160B@@@\176&toList\144\160\160A@@@\176&update\144\160\160C@@@\176'forEach\144\160\160B@@@\176'isEmpty\144\160\160A@@@\176'maximum\144\160\160A@@@\176'minimum\144\160\160A@@@\176'reduceU\144\160\160C@@@\176'toArray\144\160\160A@@@\176'updateU\144\160\160C@@@\176(forEachU\144\160\160B@@@\176)fromArray\144\160\160A@@@\176)mergeMany\144\160\160B@@@\176)partition\144\160\160B@@@\176*mapWithKey\144\160\160B@@@\176*partitionU\144\160\160B@@@\176*removeMany\144\160\160B@@@\176+findFirstBy\144\160\160B@@@\176+keysToArray\144\160\160A@@@\176+mapWithKeyU\144\160\160B@@@\176,findFirstByU\144\160\160B@@@\176,getUndefined\144\160\160B@@@\176,maxUndefined\144\160\160A@@@\176,minUndefined\144\160\160A@@@\176-valuesToArray\144\160\160A@@@\176.getWithDefault\144\160\160C@@@\176/maxKeyUndefined\144\160\160A@@@\176/minKeyUndefined\144\160\160A@@@\1766checkInvariantInternal\144\160\160A@@@A",
240240
(* Belt_SetString *)"\132\149\166\190\000\000\002}\000\000\000\197\000\000\002\130\000\000\002Y\160\b\000\000\156\000\176\"eq\144\160\160B@@@\176#add\144\160\160B@@@\176#cmp\144\160\160B@@@\176#get\144\160\160B@@@\176#has\144\160\160B@@@\176$diff\144\160\160B@@@\176$keep\144\160\160B@@@\176$size\144\160\160A@@@\176$some\144\160\160B@@@\176%empty\144@\144\146A\176%every\144\160\160B@@@\176%keepU\144\160\160B@@@\176%someU\144\160\160B@@@\176%split\144\160\160B@@@\176%union\144\160\160B@@@\176&everyU\144\160\160B@@@\176&getExn\144\160\160B@@@\176&reduce\144\160\160C@@@\176&remove\144\160\160B@@@\176&subset\144\160\160B@@@\176&toList\144\160\160A@@@\176'forEach\144\160\160B@@@\176'isEmpty\144\160\160A@@@\176'maximum\144\160\160A@@@\176'minimum\144\160\160A@@@\176'reduceU\144\160\160C@@@\176'toArray\144\160\160A@@@\176(forEachU\144\160\160B@@@\176)fromArray\144\160\160A@@@\176)intersect\144\160\160B@@@\176)mergeMany\144\160\160B@@@\176)partition\144\160\160B@@@\176*partitionU\144\160\160B@@@\176*removeMany\144\160\160B@@@\176,getUndefined\144\160\160B@@@\176,maxUndefined\144\160\160A@@@\176,minUndefined\144\160\160A@@@\1765fromSortedArrayUnsafe\144\160\160A@@@\1766checkInvariantInternal\144\160\160A@@@A",
241241
(* Belt_SortArray *)"\132\149\166\190\000\000\001U\000\000\000R\000\000\001\031\000\000\001\004\160\b\000\000@\000\176$diff\144\160\160I@@@\176%diffU\144\160\160I@@@\176%union\144\160\160I@@@\176&unionU\144\160\160I@@@\176(isSorted\144\160\160B@@@\176)intersect\144\160\160I@@@\176)isSortedU\144\160\160B@@@\176*intersectU\144\160\160I@@@\176,stableSortBy\144\160\160B@@@\176-stableSortByU\144\160\160B@@@\176.binarySearchBy\144\160\160C@@@\176/binarySearchByU\144\160\160C@@@\1763stableSortInPlaceBy\144\160\160B@@@\1764stableSortInPlaceByU\144\160\160B@@@\1764strictlySortedLength\144\160\160B@@@\1765strictlySortedLengthU\144\160\160B@@@A",
242-
(* CamlinternalOO *)"\132\149\166\190\000\000\003q\000\000\000\198\000\000\002\193\000\000\002\131\160\b\000\000l\000\176$copy\144\160\160A@@\144\180A\160\176\001\003\250!o@@\151\176\148.caml_set_oo_id\160\151\176\148,caml_obj_dup\160\144\004\r@\176\192<stdlib-406/camlinternalOO.ml^\001\005U\001\005h\192\004\002^\001\005U\001\005~@@\176\192\004\004_\001\005\131\001\005\133\192\004\005_\001\005\131\001\005\141@\176%stats\144\160\160A@@@\176%widen\144\160\160A@@@\176&narrow\144\160\160D@@@\176(inherits\144\160\160F@@@\176*get_method\144\160\160B@@@\176*init_class\144\160\160A@@@\176*make_class\144\160\160B@@@\176*new_method\144\160\160A@@@\176*set_method\144\160\160C@@@\176+set_methods\144\160\160B@@@\176,create_table\144\160\160A@@@\176,get_variable\144\160\160B@@\144\180B\160\176\001\006e%table@\160\176\001\006f$name@@\147\192\151\176\161b\146&getExn\160\145\[email protected]_MapStringA@\176\192&_none_A@\000\255\004\002A\160\151\176\161F\161$varsA\160\144\004\027@\176\192\004a\001\001b\001(\164\001(\180\192\004b\001\001b\001(\164\001(\190@\160\144\004\029@\176\192\004f\001\001b\001(\164\001(\168\192\004g\001\001b\001(\164\001(\195@A\176,new_variable\144\160\160B@@@\176-create_object\144\160\160A@@@\176-get_variables\144\160\160B@@@\176-lookup_tables\144\160\160B@@@\176/add_initializer\144\160\160B@@@\1760get_method_label\144\160\160B@@@\1760make_class_store\144\160\160C@@@\1760run_initializers\144\160\160B@@@\1761create_object_opt\144\160\160B@@@\1761get_method_labels\144\160\160B@@@\1763public_method_label\144\160\160A@@@\1764run_initializers_opt\144\160\160C@@@\1765new_methods_variables\144\160\160C@@@\176\t\"create_object_and_run_initializers\144\160\160B@@@A",
242+
(* CamlinternalOO *)"\132\149\166\190\000\000\003q\000\000\000\198\000\000\002\193\000\000\002\131\160\b\000\000l\000\176$copy\144\160\160A@@\144\180A\160\176\001\003\240!o@@\151\176\148.caml_set_oo_id\160\151\176\148,caml_obj_dup\160\144\004\r@\176\192<stdlib-406/camlinternalOO.ml`\001\005G\001\005Z\192\004\002`\001\005G\001\005p@@\176\192\004\004a\001\005u\001\005w\192\004\005a\001\005u\001\005\127@\176%stats\144\160\160A@@@\176%widen\144\160\160A@@@\176&narrow\144\160\160D@@@\176(inherits\144\160\160F@@@\176*get_method\144\160\160B@@@\176*init_class\144\160\160A@@@\176*make_class\144\160\160B@@@\176*new_method\144\160\160A@@@\176*set_method\144\160\160C@@@\176+set_methods\144\160\160B@@@\176,create_table\144\160\160A@@@\176,get_variable\144\160\160B@@\144\180B\160\176\001\006e%table@\160\176\001\006f$name@@\147\192\151\176\161b\146&getExn\160\145\[email protected]_MapStringA@\176\192&_none_A@\000\255\004\002A\160\151\176\161F\161$varsA\160\144\004\027@\176\192\004a\001\001d\001(\150\001(\166\192\004b\001\001d\001(\150\001(\176@\160\144\004\029@\176\192\004f\001\001d\001(\150\001(\154\192\004g\001\001d\001(\150\001(\181@A\176,new_variable\144\160\160B@@@\176-create_object\144\160\160A@@@\176-get_variables\144\160\160B@@@\176-lookup_tables\144\160\160B@@@\176/add_initializer\144\160\160B@@@\1760get_method_label\144\160\160B@@@\1760make_class_store\144\160\160C@@@\1760run_initializers\144\160\160B@@@\1761create_object_opt\144\160\160B@@@\1761get_method_labels\144\160\160B@@@\1763public_method_label\144\160\160A@@@\1764run_initializers_opt\144\160\160C@@@\1765new_methods_variables\144\160\160C@@@\176\t\"create_object_and_run_initializers\144\160\160B@@@A",
243243
(* Js_typed_array *)"\132\149\166\190\000\000\000\003\000\000\000\001\000\000\000\003\000\000\000\003\160\128A",
244244
(* Belt_HashMapInt *)"\132\149\166\190\000\000\0025\000\000\000\156\000\000\002\007\000\000\001\230\160\b\000\000X\000\176#get\144\160\160B@@@\176#has\144\160\160B@@@\176#set\144\160\160C@@@\176$copy\144\160\160A@@@\176$make\144\160\160A@@\144\180A\160\176\001\004\241(hintSize@@\147\192\151\176\161A\146$make\160\145\176@8Belt_internalBucketsTypeA@\176\192&_none_A@\000\255\004\002A\160\146A\160\146A\160\144\004\022@\176\1926others/hashmap.cppo.ml\001\000\181\001\021;\001\021P\192\004\002\001\000\181\001\021;\001\021p@A\176$size\144\160\160A@@\144\180A\160\176\001\004\244!h@@\151\176\161@\161$sizeA\160\144\004\t@\176\192\004\021\001\000\183\001\021\133\001\021\146\192\004\022\001\000\183\001\021\133\001\021\154@\176%clear\144\160\160A@@@\176&reduce\144\160\160C@@@\176&remove\144\160\160B@@@\176'forEach\144\160\160B@@@\176'isEmpty\144\160\160A@@@\176'reduceU\144\160\160C@@@\176'toArray\144\160\160A@@@\176(forEachU\144\160\160B@@@\176(logStats\144\160\160A@@@\176)fromArray\144\160\160A@@@\176)mergeMany\144\160\160B@@@\176+keysToArray\144\160\160A@@@\176-valuesToArray\144\160\160A@@@\176.keepMapInPlace\144\160\160B@@@\176/keepMapInPlaceU\144\160\160B@@@\1762getBucketHistogram\144\160\160A@@@A",
245245
(* Belt_HashSetInt *)"\132\149\166\190\000\000\001\208\000\000\000\131\000\000\001\177\000\000\001\151\160\b\000\000D\000\176#add\144\160\160B@@@\176#has\144\160\160B@@@\176$copy\144\160\160A@@@\176$make\144\160\160A@@\144\180A\160\176\001\004\227(hintSize@@\147\192\151\176\161A\146$make\160\145\176@8Belt_internalBucketsTypeA@\176\192&_none_A@\000\255\004\002A\160\146A\160\146A\160\144\004\022@\176\1926others/hashset.cppo.ml\001\000\137\001\014=\001\014R\192\004\002\001\000\137\001\014=\001\014r@A\176$size\144\160\160A@@\144\180A\160\176\001\004\230!h@@\151\176\161@\161$sizeA\160\144\004\t@\176\192\004\021\001\000\140\001\014\136\001\014\149\192\004\022\001\000\140\001\014\136\001\014\157@\176%clear\144\160\160A@@@\176&reduce\144\160\160C@@@\176&remove\144\160\160B@@@\176'forEach\144\160\160B@@@\176'isEmpty\144\160\160A@@@\176'reduceU\144\160\160C@@@\176'toArray\144\160\160A@@@\176(forEachU\144\160\160B@@@\176(logStats\144\160\160A@@@\176)fromArray\144\160\160A@@@\176)mergeMany\144\160\160B@@@\1762getBucketHistogram\144\160\160A@@@A",

0 commit comments

Comments
 (0)