@tellahq/rescript 10.1.4-republish-2 → 10.1.4-republish-3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/darwin/bsb_helper.exe +0 -0
- package/darwin/bsc.exe +0 -0
- package/darwin/ninja.exe +0 -0
- package/darwin/rescript.exe +0 -0
- package/darwinarm64/bsb_helper.exe +0 -0
- package/darwinarm64/bsc.exe +0 -0
- package/darwinarm64/ninja.exe +0 -0
- package/darwinarm64/rescript.exe +0 -0
- package/lib/ocaml/arg.cmi +0 -0
- package/lib/ocaml/arg.cmt +0 -0
- package/lib/ocaml/arg.cmti +0 -0
- package/lib/ocaml/arg.ml +359 -0
- package/lib/ocaml/arg.mli +185 -0
- package/lib/ocaml/array.cmi +0 -0
- package/lib/ocaml/array.cmt +0 -0
- package/lib/ocaml/array.cmti +0 -0
- package/lib/ocaml/array.ml +307 -0
- package/lib/ocaml/array.mli +275 -0
- package/lib/ocaml/arrayLabels.cmi +0 -0
- package/lib/ocaml/arrayLabels.cmt +0 -0
- package/lib/ocaml/arrayLabels.cmti +0 -0
- package/lib/ocaml/arrayLabels.ml +307 -0
- package/lib/ocaml/arrayLabels.mli +276 -0
- package/lib/ocaml/belt.cmi +0 -0
- package/lib/ocaml/belt.cmt +0 -0
- package/lib/ocaml/belt.ml +352 -0
- package/lib/ocaml/belt_Array.cmi +0 -0
- package/lib/ocaml/belt_Array.cmt +0 -0
- package/lib/ocaml/belt_Array.cmti +0 -0
- package/lib/ocaml/belt_Array.ml +525 -0
- package/lib/ocaml/belt_Array.mli +707 -0
- package/lib/ocaml/belt_Float.cmi +0 -0
- package/lib/ocaml/belt_Float.cmt +0 -0
- package/lib/ocaml/belt_Float.cmti +0 -0
- package/lib/ocaml/belt_Float.ml +50 -0
- package/lib/ocaml/belt_Float.mli +106 -0
- package/lib/ocaml/belt_HashMap.cmi +0 -0
- package/lib/ocaml/belt_HashMap.cmt +0 -0
- package/lib/ocaml/belt_HashMap.cmti +0 -0
- package/lib/ocaml/belt_HashMap.ml +226 -0
- package/lib/ocaml/belt_HashMap.mli +436 -0
- package/lib/ocaml/belt_HashMapInt.cmi +0 -0
- package/lib/ocaml/belt_HashMapInt.cmt +0 -0
- package/lib/ocaml/belt_HashMapInt.cmti +0 -0
- package/lib/ocaml/belt_HashMapInt.ml +206 -0
- package/lib/ocaml/belt_HashMapInt.mli +50 -0
- package/lib/ocaml/belt_HashMapString.cmi +0 -0
- package/lib/ocaml/belt_HashMapString.cmt +0 -0
- package/lib/ocaml/belt_HashMapString.cmti +0 -0
- package/lib/ocaml/belt_HashMapString.ml +206 -0
- package/lib/ocaml/belt_HashMapString.mli +50 -0
- package/lib/ocaml/belt_HashSet.cmi +0 -0
- package/lib/ocaml/belt_HashSet.cmt +0 -0
- package/lib/ocaml/belt_HashSet.cmti +0 -0
- package/lib/ocaml/belt_HashSet.ml +196 -0
- package/lib/ocaml/belt_HashSet.mli +125 -0
- package/lib/ocaml/belt_HashSetInt.cmi +0 -0
- package/lib/ocaml/belt_HashSetInt.cmt +0 -0
- package/lib/ocaml/belt_HashSetInt.cmti +0 -0
- package/lib/ocaml/belt_HashSetInt.ml +155 -0
- package/lib/ocaml/belt_HashSetInt.mli +74 -0
- package/lib/ocaml/belt_HashSetString.cmi +0 -0
- package/lib/ocaml/belt_HashSetString.cmt +0 -0
- package/lib/ocaml/belt_HashSetString.cmti +0 -0
- package/lib/ocaml/belt_HashSetString.ml +156 -0
- package/lib/ocaml/belt_HashSetString.mli +74 -0
- package/lib/ocaml/belt_Id.cmi +0 -0
- package/lib/ocaml/belt_Id.cmt +0 -0
- package/lib/ocaml/belt_Id.cmti +0 -0
- package/lib/ocaml/belt_Id.ml +133 -0
- package/lib/ocaml/belt_Id.mli +171 -0
- package/lib/ocaml/belt_Int.cmi +0 -0
- package/lib/ocaml/belt_Int.cmt +0 -0
- package/lib/ocaml/belt_Int.cmti +0 -0
- package/lib/ocaml/belt_Int.ml +50 -0
- package/lib/ocaml/belt_Int.mli +103 -0
- package/lib/ocaml/belt_List.cmi +0 -0
- package/lib/ocaml/belt_List.cmt +0 -0
- package/lib/ocaml/belt_List.cmti +0 -0
- package/lib/ocaml/belt_List.ml +803 -0
- package/lib/ocaml/belt_List.mli +844 -0
- package/lib/ocaml/belt_Map.cmi +0 -0
- package/lib/ocaml/belt_Map.cmt +0 -0
- package/lib/ocaml/belt_Map.cmti +0 -0
- package/lib/ocaml/belt_Map.ml +170 -0
- package/lib/ocaml/belt_Map.mli +496 -0
- package/lib/ocaml/belt_MapDict.cmi +0 -0
- package/lib/ocaml/belt_MapDict.cmt +0 -0
- package/lib/ocaml/belt_MapDict.cmti +0 -0
- package/lib/ocaml/belt_MapDict.ml +278 -0
- package/lib/ocaml/belt_MapDict.mli +268 -0
- package/lib/ocaml/belt_MapInt.cmi +0 -0
- package/lib/ocaml/belt_MapInt.cmt +0 -0
- package/lib/ocaml/belt_MapInt.cmti +0 -0
- package/lib/ocaml/belt_MapInt.ml +169 -0
- package/lib/ocaml/belt_MapInt.mli +187 -0
- package/lib/ocaml/belt_MapString.cmi +0 -0
- package/lib/ocaml/belt_MapString.cmt +0 -0
- package/lib/ocaml/belt_MapString.cmti +0 -0
- package/lib/ocaml/belt_MapString.ml +169 -0
- package/lib/ocaml/belt_MapString.mli +187 -0
- package/lib/ocaml/belt_MutableMap.cmi +0 -0
- package/lib/ocaml/belt_MutableMap.cmt +0 -0
- package/lib/ocaml/belt_MutableMap.cmti +0 -0
- package/lib/ocaml/belt_MutableMap.ml +241 -0
- package/lib/ocaml/belt_MutableMap.mli +145 -0
- package/lib/ocaml/belt_MutableMapInt.cmi +0 -0
- package/lib/ocaml/belt_MutableMapInt.cmt +0 -0
- package/lib/ocaml/belt_MutableMapInt.cmti +0 -0
- package/lib/ocaml/belt_MutableMapInt.ml +172 -0
- package/lib/ocaml/belt_MutableMapInt.mli +135 -0
- package/lib/ocaml/belt_MutableMapString.cmi +0 -0
- package/lib/ocaml/belt_MutableMapString.cmt +0 -0
- package/lib/ocaml/belt_MutableMapString.cmti +0 -0
- package/lib/ocaml/belt_MutableMapString.ml +172 -0
- package/lib/ocaml/belt_MutableMapString.mli +135 -0
- package/lib/ocaml/belt_MutableQueue.cmi +0 -0
- package/lib/ocaml/belt_MutableQueue.cmt +0 -0
- package/lib/ocaml/belt_MutableQueue.cmti +0 -0
- package/lib/ocaml/belt_MutableQueue.ml +222 -0
- package/lib/ocaml/belt_MutableQueue.mli +116 -0
- package/lib/ocaml/belt_MutableSet.cmi +0 -0
- package/lib/ocaml/belt_MutableSet.cmt +0 -0
- package/lib/ocaml/belt_MutableSet.cmti +0 -0
- package/lib/ocaml/belt_MutableSet.ml +371 -0
- package/lib/ocaml/belt_MutableSet.mli +617 -0
- package/lib/ocaml/belt_MutableSetInt.cmi +0 -0
- package/lib/ocaml/belt_MutableSetInt.cmt +0 -0
- package/lib/ocaml/belt_MutableSetInt.cmti +0 -0
- package/lib/ocaml/belt_MutableSetInt.ml +342 -0
- package/lib/ocaml/belt_MutableSetInt.mli +124 -0
- package/lib/ocaml/belt_MutableSetString.cmi +0 -0
- package/lib/ocaml/belt_MutableSetString.cmt +0 -0
- package/lib/ocaml/belt_MutableSetString.cmti +0 -0
- package/lib/ocaml/belt_MutableSetString.ml +342 -0
- package/lib/ocaml/belt_MutableSetString.mli +124 -0
- package/lib/ocaml/belt_MutableStack.cmi +0 -0
- package/lib/ocaml/belt_MutableStack.cmt +0 -0
- package/lib/ocaml/belt_MutableStack.cmti +0 -0
- package/lib/ocaml/belt_MutableStack.ml +106 -0
- package/lib/ocaml/belt_MutableStack.mli +63 -0
- package/lib/ocaml/belt_Option.cmi +0 -0
- package/lib/ocaml/belt_Option.cmt +0 -0
- package/lib/ocaml/belt_Option.cmti +0 -0
- package/lib/ocaml/belt_Option.ml +93 -0
- package/lib/ocaml/belt_Option.mli +270 -0
- package/lib/ocaml/belt_Range.cmi +0 -0
- package/lib/ocaml/belt_Range.cmt +0 -0
- package/lib/ocaml/belt_Range.cmti +0 -0
- package/lib/ocaml/belt_Range.ml +76 -0
- package/lib/ocaml/belt_Range.mli +114 -0
- package/lib/ocaml/belt_Result.cmi +0 -0
- package/lib/ocaml/belt_Result.cmt +0 -0
- package/lib/ocaml/belt_Result.cmti +0 -0
- package/lib/ocaml/belt_Result.ml +75 -0
- package/lib/ocaml/belt_Result.mli +205 -0
- package/lib/ocaml/belt_Set.cmi +0 -0
- package/lib/ocaml/belt_Set.cmt +0 -0
- package/lib/ocaml/belt_Set.cmti +0 -0
- package/lib/ocaml/belt_Set.cppo.ml +205 -0
- package/lib/ocaml/belt_Set.cppo.mli +153 -0
- package/lib/ocaml/belt_Set.ml +164 -0
- package/lib/ocaml/belt_Set.mli +523 -0
- package/lib/ocaml/belt_SetDict.cmi +0 -0
- package/lib/ocaml/belt_SetDict.cmt +0 -0
- package/lib/ocaml/belt_SetDict.cmti +0 -0
- package/lib/ocaml/belt_SetDict.ml +237 -0
- package/lib/ocaml/belt_SetDict.mli +567 -0
- package/lib/ocaml/belt_SetInt.cmi +0 -0
- package/lib/ocaml/belt_SetInt.cmt +0 -0
- package/lib/ocaml/belt_SetInt.cmti +0 -0
- package/lib/ocaml/belt_SetInt.ml +201 -0
- package/lib/ocaml/belt_SetInt.mli +151 -0
- package/lib/ocaml/belt_SetString.cmi +0 -0
- package/lib/ocaml/belt_SetString.cmt +0 -0
- package/lib/ocaml/belt_SetString.cmti +0 -0
- package/lib/ocaml/belt_SetString.ml +201 -0
- package/lib/ocaml/belt_SetString.mli +151 -0
- package/lib/ocaml/belt_SortArray.cmi +0 -0
- package/lib/ocaml/belt_SortArray.cmt +0 -0
- package/lib/ocaml/belt_SortArray.cmti +0 -0
- package/lib/ocaml/belt_SortArray.ml +322 -0
- package/lib/ocaml/belt_SortArray.mli +146 -0
- package/lib/ocaml/belt_SortArrayInt.cmi +0 -0
- package/lib/ocaml/belt_SortArrayInt.cmt +0 -0
- package/lib/ocaml/belt_SortArrayInt.cmti +0 -0
- package/lib/ocaml/belt_SortArrayInt.ml +263 -0
- package/lib/ocaml/belt_SortArrayInt.mli +93 -0
- package/lib/ocaml/belt_SortArrayString.cmi +0 -0
- package/lib/ocaml/belt_SortArrayString.cmt +0 -0
- package/lib/ocaml/belt_SortArrayString.cmti +0 -0
- package/lib/ocaml/belt_SortArrayString.ml +263 -0
- package/lib/ocaml/belt_SortArrayString.mli +93 -0
- package/lib/ocaml/belt_internalAVLset.cmt +0 -0
- package/lib/ocaml/belt_internalAVLset.cmti +0 -0
- package/lib/ocaml/belt_internalAVLset.ml +665 -0
- package/lib/ocaml/belt_internalAVLset.mli +124 -0
- package/lib/ocaml/belt_internalAVLtree.cmt +0 -0
- package/lib/ocaml/belt_internalAVLtree.cmti +0 -0
- package/lib/ocaml/belt_internalAVLtree.ml +762 -0
- package/lib/ocaml/belt_internalAVLtree.mli +215 -0
- package/lib/ocaml/belt_internalBuckets.cmt +0 -0
- package/lib/ocaml/belt_internalBuckets.cmti +0 -0
- package/lib/ocaml/belt_internalBuckets.ml +218 -0
- package/lib/ocaml/belt_internalBuckets.mli +57 -0
- package/lib/ocaml/belt_internalBucketsType.cmt +0 -0
- package/lib/ocaml/belt_internalBucketsType.cmti +0 -0
- package/lib/ocaml/belt_internalBucketsType.ml +59 -0
- package/lib/ocaml/belt_internalBucketsType.mli +46 -0
- package/lib/ocaml/belt_internalMapInt.cmt +0 -0
- package/lib/ocaml/belt_internalMapInt.ml +227 -0
- package/lib/ocaml/belt_internalMapString.cmt +0 -0
- package/lib/ocaml/belt_internalMapString.ml +227 -0
- package/lib/ocaml/belt_internalSetBuckets.cmt +0 -0
- package/lib/ocaml/belt_internalSetBuckets.cmti +0 -0
- package/lib/ocaml/belt_internalSetBuckets.ml +157 -0
- package/lib/ocaml/belt_internalSetBuckets.mli +47 -0
- package/lib/ocaml/belt_internalSetInt.cmt +0 -0
- package/lib/ocaml/belt_internalSetInt.ml +129 -0
- package/lib/ocaml/belt_internalSetString.cmt +0 -0
- package/lib/ocaml/belt_internalSetString.ml +129 -0
- package/lib/ocaml/belt_internals.cmti +0 -0
- package/lib/ocaml/belt_internals.mli +79 -0
- package/lib/ocaml/buffer.cmi +0 -0
- package/lib/ocaml/buffer.cmt +0 -0
- package/lib/ocaml/buffer.cmti +0 -0
- package/lib/ocaml/buffer.ml +250 -0
- package/lib/ocaml/buffer.mli +149 -0
- package/lib/ocaml/bytes.cmi +0 -0
- package/lib/ocaml/bytes.cmt +0 -0
- package/lib/ocaml/bytes.cmti +0 -0
- package/lib/ocaml/bytes.ml +431 -0
- package/lib/ocaml/bytes.mli +430 -0
- package/lib/ocaml/bytesLabels.cmi +0 -0
- package/lib/ocaml/bytesLabels.cmt +0 -0
- package/lib/ocaml/bytesLabels.cmti +0 -0
- package/lib/ocaml/bytesLabels.ml +428 -0
- package/lib/ocaml/bytesLabels.mli +276 -0
- package/lib/ocaml/callback.cmi +0 -0
- package/lib/ocaml/callback.cmt +0 -0
- package/lib/ocaml/callback.cmti +0 -0
- package/lib/ocaml/callback.ml +20 -0
- package/lib/ocaml/callback.mli +34 -0
- package/lib/ocaml/camlinternalLazy.cmi +0 -0
- package/lib/ocaml/camlinternalLazy.cmt +0 -0
- package/lib/ocaml/camlinternalLazy.cmti +0 -0
- package/lib/ocaml/camlinternalLazy.ml +89 -0
- package/lib/ocaml/camlinternalLazy.mli +27 -0
- package/lib/ocaml/camlinternalMod.cmi +0 -0
- package/lib/ocaml/camlinternalMod.cmt +0 -0
- package/lib/ocaml/camlinternalMod.cmti +0 -0
- package/lib/ocaml/camlinternalMod.ml +21 -0
- package/lib/ocaml/camlinternalMod.mli +25 -0
- package/lib/ocaml/char.cmi +0 -0
- package/lib/ocaml/char.cmt +0 -0
- package/lib/ocaml/char.cmti +0 -0
- package/lib/ocaml/char.ml +76 -0
- package/lib/ocaml/char.mli +72 -0
- package/lib/ocaml/complex.cmi +0 -0
- package/lib/ocaml/complex.cmt +0 -0
- package/lib/ocaml/complex.cmti +0 -0
- package/lib/ocaml/complex.ml +87 -0
- package/lib/ocaml/complex.mli +86 -0
- package/lib/ocaml/digest.cmi +0 -0
- package/lib/ocaml/digest.cmt +0 -0
- package/lib/ocaml/digest.cmti +0 -0
- package/lib/ocaml/digest.ml +66 -0
- package/lib/ocaml/digest.mli +68 -0
- package/lib/ocaml/dom.cmi +0 -0
- package/lib/ocaml/dom.cmt +0 -0
- package/lib/ocaml/dom.ml +296 -0
- package/lib/ocaml/dom_storage.cmi +0 -0
- package/lib/ocaml/dom_storage.cmt +0 -0
- package/lib/ocaml/dom_storage.ml +22 -0
- package/lib/ocaml/dom_storage2.cmi +0 -0
- package/lib/ocaml/dom_storage2.cmt +0 -0
- package/lib/ocaml/dom_storage2.ml +11 -0
- package/lib/ocaml/filename.cmi +0 -0
- package/lib/ocaml/filename.cmt +0 -0
- package/lib/ocaml/filename.cmti +0 -0
- package/lib/ocaml/filename.ml +233 -0
- package/lib/ocaml/filename.mli +134 -0
- package/lib/ocaml/genlex.cmi +0 -0
- package/lib/ocaml/genlex.cmt +0 -0
- package/lib/ocaml/genlex.cmti +0 -0
- package/lib/ocaml/genlex.ml +201 -0
- package/lib/ocaml/genlex.mli +73 -0
- package/lib/ocaml/hashmap.cppo.ml +214 -0
- package/lib/ocaml/hashmap.cppo.mli +54 -0
- package/lib/ocaml/hashset.cppo.ml +165 -0
- package/lib/ocaml/hashset.cppo.mli +77 -0
- package/lib/ocaml/hashtbl.cmi +0 -0
- package/lib/ocaml/hashtbl.cmt +0 -0
- package/lib/ocaml/hashtbl.cmti +0 -0
- package/lib/ocaml/hashtbl.ml +541 -0
- package/lib/ocaml/hashtbl.mli +411 -0
- package/lib/ocaml/hashtblLabels.cmi +0 -0
- package/lib/ocaml/hashtblLabels.cmt +0 -0
- package/lib/ocaml/hashtblLabels.ml +130 -0
- package/lib/ocaml/int32.cmi +0 -0
- package/lib/ocaml/int32.cmt +0 -0
- package/lib/ocaml/int32.cmti +0 -0
- package/lib/ocaml/int32.ml +64 -0
- package/lib/ocaml/int32.mli +186 -0
- package/lib/ocaml/int64.cmi +0 -0
- package/lib/ocaml/int64.cmt +0 -0
- package/lib/ocaml/int64.cmti +0 -0
- package/lib/ocaml/int64.ml +72 -0
- package/lib/ocaml/int64.mli +197 -0
- package/lib/ocaml/internal_map.cppo.ml +230 -0
- package/lib/ocaml/internal_set.cppo.ml +134 -0
- package/lib/ocaml/js.cmi +0 -0
- package/lib/ocaml/js.cmt +0 -0
- package/lib/ocaml/js.ml +316 -0
- package/lib/ocaml/js_OO.cmi +0 -0
- package/lib/ocaml/js_OO.cmt +0 -0
- package/lib/ocaml/js_OO.ml +180 -0
- package/lib/ocaml/js_array.cmi +0 -0
- package/lib/ocaml/js_array.cmt +0 -0
- package/lib/ocaml/js_array.ml +970 -0
- package/lib/ocaml/js_array2.cmi +0 -0
- package/lib/ocaml/js_array2.cmt +0 -0
- package/lib/ocaml/js_array2.ml +1065 -0
- package/lib/ocaml/js_bigint.cmi +0 -0
- package/lib/ocaml/js_bigint.cmt +0 -0
- package/lib/ocaml/js_bigint.ml +3 -0
- package/lib/ocaml/js_cast.cmi +0 -0
- package/lib/ocaml/js_cast.cmt +0 -0
- package/lib/ocaml/js_cast.cmti +0 -0
- package/lib/ocaml/js_cast.ml +29 -0
- package/lib/ocaml/js_cast.mli +45 -0
- package/lib/ocaml/js_console.cmi +0 -0
- package/lib/ocaml/js_console.cmt +0 -0
- package/lib/ocaml/js_console.ml +51 -0
- package/lib/ocaml/js_date.cmi +0 -0
- package/lib/ocaml/js_date.cmt +0 -0
- package/lib/ocaml/js_date.ml +1263 -0
- package/lib/ocaml/js_dict.cmi +0 -0
- package/lib/ocaml/js_dict.cmt +0 -0
- package/lib/ocaml/js_dict.cmti +0 -0
- package/lib/ocaml/js_dict.ml +114 -0
- package/lib/ocaml/js_dict.mli +152 -0
- package/lib/ocaml/js_exn.cmi +0 -0
- package/lib/ocaml/js_exn.cmt +0 -0
- package/lib/ocaml/js_exn.cmti +0 -0
- package/lib/ocaml/js_exn.ml +102 -0
- package/lib/ocaml/js_exn.mli +79 -0
- package/lib/ocaml/js_float.cmi +0 -0
- package/lib/ocaml/js_float.cmt +0 -0
- package/lib/ocaml/js_float.ml +294 -0
- package/lib/ocaml/js_global.cmi +0 -0
- package/lib/ocaml/js_global.cmt +0 -0
- package/lib/ocaml/js_global.ml +185 -0
- package/lib/ocaml/js_int.cmi +0 -0
- package/lib/ocaml/js_int.cmt +0 -0
- package/lib/ocaml/js_int.ml +158 -0
- package/lib/ocaml/js_json.cmi +0 -0
- package/lib/ocaml/js_json.cmt +0 -0
- package/lib/ocaml/js_json.cmti +0 -0
- package/lib/ocaml/js_json.ml +195 -0
- package/lib/ocaml/js_json.mli +244 -0
- package/lib/ocaml/js_list.cmi +0 -0
- package/lib/ocaml/js_list.cmt +0 -0
- package/lib/ocaml/js_list.cmti +0 -0
- package/lib/ocaml/js_list.ml +174 -0
- package/lib/ocaml/js_list.mli +72 -0
- package/lib/ocaml/js_map.cmi +0 -0
- package/lib/ocaml/js_map.cmt +0 -0
- package/lib/ocaml/js_map.ml +3 -0
- package/lib/ocaml/js_mapperRt.cmi +0 -0
- package/lib/ocaml/js_mapperRt.cmt +0 -0
- package/lib/ocaml/js_mapperRt.cmti +0 -0
- package/lib/ocaml/js_mapperRt.ml +50 -0
- package/lib/ocaml/js_mapperRt.mli +44 -0
- package/lib/ocaml/js_math.cmi +0 -0
- package/lib/ocaml/js_math.cmt +0 -0
- package/lib/ocaml/js_math.ml +626 -0
- package/lib/ocaml/js_null.cmi +0 -0
- package/lib/ocaml/js_null.cmt +0 -0
- package/lib/ocaml/js_null.cmti +0 -0
- package/lib/ocaml/js_null.ml +57 -0
- package/lib/ocaml/js_null.mli +87 -0
- package/lib/ocaml/js_null_undefined.cmi +0 -0
- package/lib/ocaml/js_null_undefined.cmt +0 -0
- package/lib/ocaml/js_null_undefined.cmti +0 -0
- package/lib/ocaml/js_null_undefined.ml +50 -0
- package/lib/ocaml/js_null_undefined.mli +85 -0
- package/lib/ocaml/js_obj.cmi +0 -0
- package/lib/ocaml/js_obj.cmt +0 -0
- package/lib/ocaml/js_obj.ml +100 -0
- package/lib/ocaml/js_option.cmi +0 -0
- package/lib/ocaml/js_option.cmt +0 -0
- package/lib/ocaml/js_option.cmti +0 -0
- package/lib/ocaml/js_option.ml +203 -0
- package/lib/ocaml/js_option.mli +52 -0
- package/lib/ocaml/js_promise.cmi +0 -0
- package/lib/ocaml/js_promise.cmt +0 -0
- package/lib/ocaml/js_promise.ml +100 -0
- package/lib/ocaml/js_promise2.cmi +0 -0
- package/lib/ocaml/js_promise2.cmt +0 -0
- package/lib/ocaml/js_promise2.res +58 -0
- package/lib/ocaml/js_re.cmi +0 -0
- package/lib/ocaml/js_re.cmt +0 -0
- package/lib/ocaml/js_re.ml +184 -0
- package/lib/ocaml/js_result.cmi +0 -0
- package/lib/ocaml/js_result.cmt +0 -0
- package/lib/ocaml/js_result.cmti +0 -0
- package/lib/ocaml/js_result.ml +28 -0
- package/lib/ocaml/js_result.mli +28 -0
- package/lib/ocaml/js_set.cmi +0 -0
- package/lib/ocaml/js_set.cmt +0 -0
- package/lib/ocaml/js_set.ml +3 -0
- package/lib/ocaml/js_string.cmi +0 -0
- package/lib/ocaml/js_string.cmt +0 -0
- package/lib/ocaml/js_string.ml +914 -0
- package/lib/ocaml/js_string2.cmi +0 -0
- package/lib/ocaml/js_string2.cmt +0 -0
- package/lib/ocaml/js_string2.ml +912 -0
- package/lib/ocaml/js_typed_array.cmi +0 -0
- package/lib/ocaml/js_typed_array.cmt +0 -0
- package/lib/ocaml/js_typed_array.cppo.ml +429 -0
- package/lib/ocaml/js_typed_array.ml +1405 -0
- package/lib/ocaml/js_typed_array2.cmi +0 -0
- package/lib/ocaml/js_typed_array2.cmt +0 -0
- package/lib/ocaml/js_typed_array2.cppo.ml +296 -0
- package/lib/ocaml/js_typed_array2.ml +1269 -0
- package/lib/ocaml/js_types.cmi +0 -0
- package/lib/ocaml/js_types.cmt +0 -0
- package/lib/ocaml/js_types.cmti +0 -0
- package/lib/ocaml/js_types.ml +118 -0
- package/lib/ocaml/js_types.mli +78 -0
- package/lib/ocaml/js_undefined.cmi +0 -0
- package/lib/ocaml/js_undefined.cmt +0 -0
- package/lib/ocaml/js_undefined.cmti +0 -0
- package/lib/ocaml/js_undefined.ml +59 -0
- package/lib/ocaml/js_undefined.mli +92 -0
- package/lib/ocaml/js_vector.cmi +0 -0
- package/lib/ocaml/js_vector.cmt +0 -0
- package/lib/ocaml/js_vector.cmti +0 -0
- package/lib/ocaml/js_vector.ml +143 -0
- package/lib/ocaml/js_vector.mli +92 -0
- package/lib/ocaml/js_weakmap.cmi +0 -0
- package/lib/ocaml/js_weakmap.cmt +0 -0
- package/lib/ocaml/js_weakmap.ml +3 -0
- package/lib/ocaml/js_weakset.cmi +0 -0
- package/lib/ocaml/js_weakset.cmt +0 -0
- package/lib/ocaml/js_weakset.ml +3 -0
- package/lib/ocaml/jsx.cmi +0 -0
- package/lib/ocaml/jsx.cmt +0 -0
- package/lib/ocaml/jsx.res +40 -0
- package/lib/ocaml/jsxDOM.cmi +0 -0
- package/lib/ocaml/jsxDOM.cmt +0 -0
- package/lib/ocaml/jsxDOM.res +620 -0
- package/lib/ocaml/jsxDOMStyle.cmi +0 -0
- package/lib/ocaml/jsxDOMStyle.cmt +0 -0
- package/lib/ocaml/jsxDOMStyle.ml +781 -0
- package/lib/ocaml/jsxEvent.cmi +0 -0
- package/lib/ocaml/jsxEvent.cmt +0 -0
- package/lib/ocaml/jsxEvent.ml +358 -0
- package/lib/ocaml/jsxPPXReactSupport.cmi +0 -0
- package/lib/ocaml/jsxPPXReactSupport.cmt +0 -0
- package/lib/ocaml/jsxPPXReactSupport.res +48 -0
- package/lib/ocaml/lazy.cmi +0 -0
- package/lib/ocaml/lazy.cmt +0 -0
- package/lib/ocaml/lazy.cmti +0 -0
- package/lib/ocaml/lazy.ml +70 -0
- package/lib/ocaml/lazy.mli +95 -0
- package/lib/ocaml/lexing.cmi +0 -0
- package/lib/ocaml/lexing.cmt +0 -0
- package/lib/ocaml/lexing.cmti +0 -0
- package/lib/ocaml/lexing.ml +230 -0
- package/lib/ocaml/lexing.mli +172 -0
- package/lib/ocaml/list.cmi +0 -0
- package/lib/ocaml/list.cmt +0 -0
- package/lib/ocaml/list.cmti +0 -0
- package/lib/ocaml/list.ml +485 -0
- package/lib/ocaml/list.mli +347 -0
- package/lib/ocaml/listLabels.cmi +0 -0
- package/lib/ocaml/listLabels.cmt +0 -0
- package/lib/ocaml/listLabels.cmti +0 -0
- package/lib/ocaml/listLabels.ml +485 -0
- package/lib/ocaml/listLabels.mli +353 -0
- package/lib/ocaml/map.cmi +0 -0
- package/lib/ocaml/map.cmt +0 -0
- package/lib/ocaml/map.cmti +0 -0
- package/lib/ocaml/map.cppo.ml +174 -0
- package/lib/ocaml/map.cppo.mli +191 -0
- package/lib/ocaml/map.ml +480 -0
- package/lib/ocaml/map.mli +315 -0
- package/lib/ocaml/mapLabels.cmi +0 -0
- package/lib/ocaml/mapLabels.cmt +0 -0
- package/lib/ocaml/mapLabels.ml +480 -0
- package/lib/ocaml/mapm.cppo.ml +177 -0
- package/lib/ocaml/mapm.cppo.mli +138 -0
- package/lib/ocaml/moreLabels.cmi +0 -0
- package/lib/ocaml/moreLabels.cmt +0 -0
- package/lib/ocaml/moreLabels.cmti +0 -0
- package/lib/ocaml/moreLabels.ml +22 -0
- package/lib/ocaml/moreLabels.mli +198 -0
- package/lib/ocaml/node.cmi +0 -0
- package/lib/ocaml/node.cmt +0 -0
- package/lib/ocaml/node.ml +84 -0
- package/lib/ocaml/node_buffer.cmi +0 -0
- package/lib/ocaml/node_buffer.cmt +0 -0
- package/lib/ocaml/node_buffer.ml +47 -0
- package/lib/ocaml/node_child_process.cmi +0 -0
- package/lib/ocaml/node_child_process.cmt +0 -0
- package/lib/ocaml/node_child_process.ml +50 -0
- package/lib/ocaml/node_fs.cmi +0 -0
- package/lib/ocaml/node_fs.cmt +0 -0
- package/lib/ocaml/node_fs.ml +153 -0
- package/lib/ocaml/node_module.cmi +0 -0
- package/lib/ocaml/node_module.cmt +0 -0
- package/lib/ocaml/node_module.ml +29 -0
- package/lib/ocaml/node_path.cmi +0 -0
- package/lib/ocaml/node_path.cmt +0 -0
- package/lib/ocaml/node_path.ml +71 -0
- package/lib/ocaml/node_process.cmi +0 -0
- package/lib/ocaml/node_process.cmt +0 -0
- package/lib/ocaml/node_process.cmti +0 -0
- package/lib/ocaml/node_process.ml +59 -0
- package/lib/ocaml/node_process.mli +48 -0
- package/lib/ocaml/obj.cmi +0 -0
- package/lib/ocaml/obj.cmt +0 -0
- package/lib/ocaml/obj.cmti +0 -0
- package/lib/ocaml/obj.ml +29 -0
- package/lib/ocaml/obj.mli +62 -0
- package/lib/ocaml/parsing.cmi +0 -0
- package/lib/ocaml/parsing.cmt +0 -0
- package/lib/ocaml/parsing.cmti +0 -0
- package/lib/ocaml/parsing.ml +212 -0
- package/lib/ocaml/parsing.mli +105 -0
- package/lib/ocaml/pervasives.cmi +0 -0
- package/lib/ocaml/pervasives.cmt +0 -0
- package/lib/ocaml/pervasives.cmti +0 -0
- package/lib/ocaml/pervasives.ml +297 -0
- package/lib/ocaml/pervasives.mli +771 -0
- package/lib/ocaml/printexc.cmi +0 -0
- package/lib/ocaml/printexc.cmt +0 -0
- package/lib/ocaml/printexc.cmti +0 -0
- package/lib/ocaml/printexc.ml +75 -0
- package/lib/ocaml/printexc.mli +57 -0
- package/lib/ocaml/queue.cmi +0 -0
- package/lib/ocaml/queue.cmt +0 -0
- package/lib/ocaml/queue.cmti +0 -0
- package/lib/ocaml/queue.ml +132 -0
- package/lib/ocaml/queue.mli +82 -0
- package/lib/ocaml/random.cmi +0 -0
- package/lib/ocaml/random.cmt +0 -0
- package/lib/ocaml/random.cmti +0 -0
- package/lib/ocaml/random.ml +273 -0
- package/lib/ocaml/random.mli +102 -0
- package/lib/ocaml/set.cmi +0 -0
- package/lib/ocaml/set.cmt +0 -0
- package/lib/ocaml/set.cmti +0 -0
- package/lib/ocaml/set.ml +526 -0
- package/lib/ocaml/set.mli +266 -0
- package/lib/ocaml/setLabels.cmi +0 -0
- package/lib/ocaml/setLabels.cmt +0 -0
- package/lib/ocaml/setLabels.ml +526 -0
- package/lib/ocaml/setm.cppo.ml +346 -0
- package/lib/ocaml/setm.cppo.mli +126 -0
- package/lib/ocaml/sort.cmi +0 -0
- package/lib/ocaml/sort.cmt +0 -0
- package/lib/ocaml/sort.cmti +0 -0
- package/lib/ocaml/sort.cppo.ml +267 -0
- package/lib/ocaml/sort.cppo.mli +96 -0
- package/lib/ocaml/sort.ml +99 -0
- package/lib/ocaml/sort.mli +44 -0
- package/lib/ocaml/stack.cmi +0 -0
- package/lib/ocaml/stack.cmt +0 -0
- package/lib/ocaml/stack.cmti +0 -0
- package/lib/ocaml/stack.ml +44 -0
- package/lib/ocaml/stack.mli +63 -0
- package/lib/ocaml/stdLabels.cmi +0 -0
- package/lib/ocaml/stdLabels.cmt +0 -0
- package/lib/ocaml/stdLabels.cmti +0 -0
- package/lib/ocaml/stdLabels.ml +24 -0
- package/lib/ocaml/stdLabels.mli +29 -0
- package/lib/ocaml/stream.cmi +0 -0
- package/lib/ocaml/stream.cmt +0 -0
- package/lib/ocaml/stream.cmti +0 -0
- package/lib/ocaml/stream.ml +213 -0
- package/lib/ocaml/stream.mli +108 -0
- package/lib/ocaml/string.cmi +0 -0
- package/lib/ocaml/string.cmt +0 -0
- package/lib/ocaml/string.cmti +0 -0
- package/lib/ocaml/string.ml +190 -0
- package/lib/ocaml/string.mli +286 -0
- package/lib/ocaml/stringLabels.cmi +0 -0
- package/lib/ocaml/stringLabels.cmt +0 -0
- package/lib/ocaml/stringLabels.cmti +0 -0
- package/lib/ocaml/stringLabels.ml +190 -0
- package/lib/ocaml/stringLabels.mli +241 -0
- package/lib/ocaml/sys.cmi +0 -0
- package/lib/ocaml/sys.cmt +0 -0
- package/lib/ocaml/sys.cmti +0 -0
- package/lib/ocaml/sys.ml +135 -0
- package/lib/ocaml/sys.mli +333 -0
- package/lib/ocaml/uchar.cmi +0 -0
- package/lib/ocaml/uchar.cmt +0 -0
- package/lib/ocaml/uchar.cmti +0 -0
- package/lib/ocaml/uchar.ml +58 -0
- package/lib/ocaml/uchar.mli +98 -0
- package/linux/bsb_helper.exe +0 -0
- package/linux/bsc.exe +0 -0
- package/linux/ninja.exe +0 -0
- package/linux/rescript.exe +0 -0
- package/ninja.COPYING +202 -0
- package/package.json +1 -1
- package/vendor/ninja.tar.gz +0 -0
- package/win32/bsb_helper.exe +0 -0
- package/win32/bsc.exe +0 -0
- package/win32/ninja.exe +0 -0
- package/win32/refmt.exe +0 -0
- package/win32/rescript.exe +0 -0
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
# 1 "others/internal_map.cppo.ml"
|
|
2
|
+
[@@@bs.config {flags = [| "-bs-noassertfalse" |]}]
|
|
3
|
+
# 5 "others/internal_map.cppo.ml"
|
|
4
|
+
type key = int
|
|
5
|
+
|
|
6
|
+
# 10 "others/internal_map.cppo.ml"
|
|
7
|
+
module N = Belt_internalAVLtree
|
|
8
|
+
module A = Belt_Array
|
|
9
|
+
module S = Belt_SortArray
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
type 'a t = (key,'a) N.t
|
|
14
|
+
|
|
15
|
+
let rec add t (x : key) (data : _) =
|
|
16
|
+
match t with
|
|
17
|
+
| None ->
|
|
18
|
+
N.singleton x data
|
|
19
|
+
| Some n ->
|
|
20
|
+
let k = n.N.key in
|
|
21
|
+
if x = k then
|
|
22
|
+
Some (N.updateValue n data)
|
|
23
|
+
else
|
|
24
|
+
let v = n.N.value in
|
|
25
|
+
if x < k then
|
|
26
|
+
N.bal (add n.N.left x data ) k v n.N.right
|
|
27
|
+
else
|
|
28
|
+
N.bal n.N.left k v (add n.N.right x data )
|
|
29
|
+
|
|
30
|
+
let rec get n (x : key) =
|
|
31
|
+
match n with
|
|
32
|
+
None -> None
|
|
33
|
+
| Some n ->
|
|
34
|
+
let v = n.N.key in
|
|
35
|
+
if x = v then Some n.N.value
|
|
36
|
+
else get (if x < v then n.N.left else n.N.right) x
|
|
37
|
+
|
|
38
|
+
let rec getUndefined n (x : key) =
|
|
39
|
+
match n with
|
|
40
|
+
| None ->
|
|
41
|
+
Js.undefined
|
|
42
|
+
| Some n ->
|
|
43
|
+
let v = n.N.key in
|
|
44
|
+
if x = v then Js.Undefined.return n.N.value
|
|
45
|
+
else getUndefined (if x < v then n.N.left else n.N.right) x
|
|
46
|
+
|
|
47
|
+
let rec getExn n (x : key) =
|
|
48
|
+
match n with
|
|
49
|
+
| None -> raise Not_found
|
|
50
|
+
| Some n ->
|
|
51
|
+
let v = n.N.key in
|
|
52
|
+
if x = v then n.N.value
|
|
53
|
+
else getExn (if x < v then n.N.left else n.N.right) x
|
|
54
|
+
|
|
55
|
+
let rec getWithDefault n (x : key) def =
|
|
56
|
+
match n with
|
|
57
|
+
| None -> def
|
|
58
|
+
| Some n ->
|
|
59
|
+
let v = n.N.key in
|
|
60
|
+
if x = v then n.N.value
|
|
61
|
+
else getWithDefault (if x < v then n.N.left else n.N.right) x def
|
|
62
|
+
|
|
63
|
+
let rec has n (x : key)=
|
|
64
|
+
match n with
|
|
65
|
+
None -> false
|
|
66
|
+
| Some n (* Node(l, v, d, r, _) *) ->
|
|
67
|
+
let v = n.N.key in
|
|
68
|
+
x = v || has (if x < v then n.N.left else n.N.right) x
|
|
69
|
+
|
|
70
|
+
let rec remove n (x : key) =
|
|
71
|
+
match n with
|
|
72
|
+
| None -> n
|
|
73
|
+
| Some n ->
|
|
74
|
+
let {N.left = l; key = v; right = r} = n in
|
|
75
|
+
if x = v then
|
|
76
|
+
match l, r with
|
|
77
|
+
| None, _ -> r
|
|
78
|
+
| _, None -> l
|
|
79
|
+
| _, Some rn ->
|
|
80
|
+
let kr, vr = ref rn.key, ref rn.value in
|
|
81
|
+
let r = N.removeMinAuxWithRef rn kr vr in
|
|
82
|
+
N.bal l kr.contents vr.contents r
|
|
83
|
+
else if x < v then
|
|
84
|
+
N.(bal (remove l x ) v n.value r)
|
|
85
|
+
else
|
|
86
|
+
N.(bal l v n.value (remove r x ))
|
|
87
|
+
|
|
88
|
+
let rec splitAux (x : key) (n : _ N.node) : _ t * _ option * _ t =
|
|
89
|
+
let {N.left = l; key = v; value = d; right = r} = n in
|
|
90
|
+
if x = v then (l, Some d, r)
|
|
91
|
+
else
|
|
92
|
+
if x < v then
|
|
93
|
+
match l with
|
|
94
|
+
| None ->
|
|
95
|
+
None, None, Some n
|
|
96
|
+
| Some l ->
|
|
97
|
+
let (ll, pres, rl) = splitAux x l in (ll, pres, N.join rl v d r)
|
|
98
|
+
else
|
|
99
|
+
match r with
|
|
100
|
+
| None ->
|
|
101
|
+
Some n, None, None
|
|
102
|
+
| Some r ->
|
|
103
|
+
let (lr, pres, rr) = splitAux x r in (N.join l v d lr, pres, rr)
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
let split (x : key) n =
|
|
107
|
+
match n with
|
|
108
|
+
None ->
|
|
109
|
+
None, None, None
|
|
110
|
+
| Some n ->
|
|
111
|
+
splitAux x n
|
|
112
|
+
|
|
113
|
+
let rec mergeU s1 s2 f =
|
|
114
|
+
match s1, s2 with
|
|
115
|
+
(None, None) -> None
|
|
116
|
+
| Some n (* (Node (l1, v1, d1, r1, h1), _)*), _
|
|
117
|
+
when (n.N.height >= (match s2 with None -> 0 | Some n -> n.N.height)) ->
|
|
118
|
+
let {N.left = l1; key = v1; value = d1; right = r1} = n in
|
|
119
|
+
let (l2, d2, r2) = split v1 s2 in
|
|
120
|
+
N.concatOrJoin (mergeU l1 l2 f) v1 (f v1 (Some d1) d2 [@bs]) (mergeU r1 r2 f)
|
|
121
|
+
| (_, Some n) (* Node (l2, v2, d2, r2, h2) *) ->
|
|
122
|
+
let {N.left = l2; key = v2; value = d2; right = r2} = n in
|
|
123
|
+
let (l1, d1, r1) = split v2 s1 in
|
|
124
|
+
N.concatOrJoin (mergeU l1 l2 f) v2 (f v2 d1 (Some d2) [@bs]) (mergeU r1 r2 f)
|
|
125
|
+
| _ ->
|
|
126
|
+
assert false
|
|
127
|
+
|
|
128
|
+
let merge s1 s2 f = mergeU s1 s2 (fun [@bs] a b c -> f a b c)
|
|
129
|
+
|
|
130
|
+
let rec compareAux e1 e2 vcmp =
|
|
131
|
+
match e1,e2 with
|
|
132
|
+
| h1::t1, h2::t2 ->
|
|
133
|
+
let c = Pervasives.compare (h1.N.key : key) h2.N.key in
|
|
134
|
+
if c = 0 then
|
|
135
|
+
let cx = vcmp h1.N.value h2.N.value [@bs] in
|
|
136
|
+
if cx = 0 then
|
|
137
|
+
compareAux
|
|
138
|
+
(N.stackAllLeft h1.N.right t1 )
|
|
139
|
+
(N.stackAllLeft h2.N.right t2)
|
|
140
|
+
vcmp
|
|
141
|
+
else cx
|
|
142
|
+
else c
|
|
143
|
+
| _, _ -> 0
|
|
144
|
+
|
|
145
|
+
let cmpU s1 s2 cmp =
|
|
146
|
+
let len1, len2 = N.size s1, N.size s2 in
|
|
147
|
+
if len1 = len2 then
|
|
148
|
+
compareAux
|
|
149
|
+
(N.stackAllLeft s1 [])
|
|
150
|
+
(N.stackAllLeft s2 [])
|
|
151
|
+
cmp
|
|
152
|
+
else if len1 < len2 then -1
|
|
153
|
+
else 1
|
|
154
|
+
|
|
155
|
+
let cmp s1 s2 f = cmpU s1 s2 (fun[@bs] a b -> f a b)
|
|
156
|
+
|
|
157
|
+
let rec eqAux e1 e2 eq =
|
|
158
|
+
match e1,e2 with
|
|
159
|
+
| h1::t1, h2::t2 ->
|
|
160
|
+
if (h1.N.key : key) = h2.N.key &&
|
|
161
|
+
eq h1.N.value h2.N.value [@bs] then
|
|
162
|
+
eqAux (
|
|
163
|
+
N.stackAllLeft h1.N.right t1 )
|
|
164
|
+
(N.stackAllLeft h2.N.right t2)
|
|
165
|
+
eq
|
|
166
|
+
else false
|
|
167
|
+
| _, _ -> true (*end *)
|
|
168
|
+
|
|
169
|
+
let eqU s1 s2 eq =
|
|
170
|
+
let len1,len2 = N.size s1, N.size s2 in
|
|
171
|
+
if len1 = len2 then
|
|
172
|
+
eqAux
|
|
173
|
+
(N.stackAllLeft s1 [])
|
|
174
|
+
(N.stackAllLeft s2 []) eq
|
|
175
|
+
else false
|
|
176
|
+
|
|
177
|
+
let eq s1 s2 f = eqU s1 s2 (fun[@bs] a b -> f a b)
|
|
178
|
+
|
|
179
|
+
let rec addMutate (t : _ t) x data : _ t =
|
|
180
|
+
match t with
|
|
181
|
+
| None -> N.singleton x data
|
|
182
|
+
| Some nt ->
|
|
183
|
+
let k = nt.N.key in
|
|
184
|
+
(* let c = (Belt_Cmp.getCmpInternal cmp) x k [@bs] in *)
|
|
185
|
+
if x = k then begin
|
|
186
|
+
nt.N.key <- x;
|
|
187
|
+
nt.value <- data;
|
|
188
|
+
Some nt
|
|
189
|
+
end
|
|
190
|
+
else
|
|
191
|
+
let l, r = (nt.N.left, nt.N.right) in
|
|
192
|
+
(if x < k then
|
|
193
|
+
let ll = addMutate l x data in
|
|
194
|
+
nt.left <- ll
|
|
195
|
+
else
|
|
196
|
+
nt.right <- (addMutate r x data);
|
|
197
|
+
);
|
|
198
|
+
Some (N.balMutate nt)
|
|
199
|
+
|
|
200
|
+
let fromArray (xs : (key * _) array) =
|
|
201
|
+
let len = A.length xs in
|
|
202
|
+
if len = 0 then None
|
|
203
|
+
else
|
|
204
|
+
let next =
|
|
205
|
+
ref (S.strictlySortedLengthU xs
|
|
206
|
+
(fun[@bs] (x0,_) (y0,_) ->
|
|
207
|
+
x0 < y0
|
|
208
|
+
))
|
|
209
|
+
in
|
|
210
|
+
let result = ref (
|
|
211
|
+
if next.contents >= 0 then
|
|
212
|
+
N.fromSortedArrayAux xs 0 next.contents
|
|
213
|
+
else begin
|
|
214
|
+
next .contents<- - next.contents;
|
|
215
|
+
N.fromSortedArrayRevAux xs (next.contents - 1) (next.contents)
|
|
216
|
+
end
|
|
217
|
+
) in
|
|
218
|
+
for i = next.contents to len - 1 do
|
|
219
|
+
let k, v = (A.getUnsafe xs i) in
|
|
220
|
+
result .contents<- addMutate result.contents k v
|
|
221
|
+
done ;
|
|
222
|
+
result.contents
|
|
223
|
+
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
|
|
Binary file
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
# 1 "others/internal_map.cppo.ml"
|
|
2
|
+
[@@@bs.config {flags = [| "-bs-noassertfalse" |]}]
|
|
3
|
+
# 3 "others/internal_map.cppo.ml"
|
|
4
|
+
type key = string
|
|
5
|
+
|
|
6
|
+
# 10 "others/internal_map.cppo.ml"
|
|
7
|
+
module N = Belt_internalAVLtree
|
|
8
|
+
module A = Belt_Array
|
|
9
|
+
module S = Belt_SortArray
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
type 'a t = (key,'a) N.t
|
|
14
|
+
|
|
15
|
+
let rec add t (x : key) (data : _) =
|
|
16
|
+
match t with
|
|
17
|
+
| None ->
|
|
18
|
+
N.singleton x data
|
|
19
|
+
| Some n ->
|
|
20
|
+
let k = n.N.key in
|
|
21
|
+
if x = k then
|
|
22
|
+
Some (N.updateValue n data)
|
|
23
|
+
else
|
|
24
|
+
let v = n.N.value in
|
|
25
|
+
if x < k then
|
|
26
|
+
N.bal (add n.N.left x data ) k v n.N.right
|
|
27
|
+
else
|
|
28
|
+
N.bal n.N.left k v (add n.N.right x data )
|
|
29
|
+
|
|
30
|
+
let rec get n (x : key) =
|
|
31
|
+
match n with
|
|
32
|
+
None -> None
|
|
33
|
+
| Some n ->
|
|
34
|
+
let v = n.N.key in
|
|
35
|
+
if x = v then Some n.N.value
|
|
36
|
+
else get (if x < v then n.N.left else n.N.right) x
|
|
37
|
+
|
|
38
|
+
let rec getUndefined n (x : key) =
|
|
39
|
+
match n with
|
|
40
|
+
| None ->
|
|
41
|
+
Js.undefined
|
|
42
|
+
| Some n ->
|
|
43
|
+
let v = n.N.key in
|
|
44
|
+
if x = v then Js.Undefined.return n.N.value
|
|
45
|
+
else getUndefined (if x < v then n.N.left else n.N.right) x
|
|
46
|
+
|
|
47
|
+
let rec getExn n (x : key) =
|
|
48
|
+
match n with
|
|
49
|
+
| None -> raise Not_found
|
|
50
|
+
| Some n ->
|
|
51
|
+
let v = n.N.key in
|
|
52
|
+
if x = v then n.N.value
|
|
53
|
+
else getExn (if x < v then n.N.left else n.N.right) x
|
|
54
|
+
|
|
55
|
+
let rec getWithDefault n (x : key) def =
|
|
56
|
+
match n with
|
|
57
|
+
| None -> def
|
|
58
|
+
| Some n ->
|
|
59
|
+
let v = n.N.key in
|
|
60
|
+
if x = v then n.N.value
|
|
61
|
+
else getWithDefault (if x < v then n.N.left else n.N.right) x def
|
|
62
|
+
|
|
63
|
+
let rec has n (x : key)=
|
|
64
|
+
match n with
|
|
65
|
+
None -> false
|
|
66
|
+
| Some n (* Node(l, v, d, r, _) *) ->
|
|
67
|
+
let v = n.N.key in
|
|
68
|
+
x = v || has (if x < v then n.N.left else n.N.right) x
|
|
69
|
+
|
|
70
|
+
let rec remove n (x : key) =
|
|
71
|
+
match n with
|
|
72
|
+
| None -> n
|
|
73
|
+
| Some n ->
|
|
74
|
+
let {N.left = l; key = v; right = r} = n in
|
|
75
|
+
if x = v then
|
|
76
|
+
match l, r with
|
|
77
|
+
| None, _ -> r
|
|
78
|
+
| _, None -> l
|
|
79
|
+
| _, Some rn ->
|
|
80
|
+
let kr, vr = ref rn.key, ref rn.value in
|
|
81
|
+
let r = N.removeMinAuxWithRef rn kr vr in
|
|
82
|
+
N.bal l kr.contents vr.contents r
|
|
83
|
+
else if x < v then
|
|
84
|
+
N.(bal (remove l x ) v n.value r)
|
|
85
|
+
else
|
|
86
|
+
N.(bal l v n.value (remove r x ))
|
|
87
|
+
|
|
88
|
+
let rec splitAux (x : key) (n : _ N.node) : _ t * _ option * _ t =
|
|
89
|
+
let {N.left = l; key = v; value = d; right = r} = n in
|
|
90
|
+
if x = v then (l, Some d, r)
|
|
91
|
+
else
|
|
92
|
+
if x < v then
|
|
93
|
+
match l with
|
|
94
|
+
| None ->
|
|
95
|
+
None, None, Some n
|
|
96
|
+
| Some l ->
|
|
97
|
+
let (ll, pres, rl) = splitAux x l in (ll, pres, N.join rl v d r)
|
|
98
|
+
else
|
|
99
|
+
match r with
|
|
100
|
+
| None ->
|
|
101
|
+
Some n, None, None
|
|
102
|
+
| Some r ->
|
|
103
|
+
let (lr, pres, rr) = splitAux x r in (N.join l v d lr, pres, rr)
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
let split (x : key) n =
|
|
107
|
+
match n with
|
|
108
|
+
None ->
|
|
109
|
+
None, None, None
|
|
110
|
+
| Some n ->
|
|
111
|
+
splitAux x n
|
|
112
|
+
|
|
113
|
+
let rec mergeU s1 s2 f =
|
|
114
|
+
match s1, s2 with
|
|
115
|
+
(None, None) -> None
|
|
116
|
+
| Some n (* (Node (l1, v1, d1, r1, h1), _)*), _
|
|
117
|
+
when (n.N.height >= (match s2 with None -> 0 | Some n -> n.N.height)) ->
|
|
118
|
+
let {N.left = l1; key = v1; value = d1; right = r1} = n in
|
|
119
|
+
let (l2, d2, r2) = split v1 s2 in
|
|
120
|
+
N.concatOrJoin (mergeU l1 l2 f) v1 (f v1 (Some d1) d2 [@bs]) (mergeU r1 r2 f)
|
|
121
|
+
| (_, Some n) (* Node (l2, v2, d2, r2, h2) *) ->
|
|
122
|
+
let {N.left = l2; key = v2; value = d2; right = r2} = n in
|
|
123
|
+
let (l1, d1, r1) = split v2 s1 in
|
|
124
|
+
N.concatOrJoin (mergeU l1 l2 f) v2 (f v2 d1 (Some d2) [@bs]) (mergeU r1 r2 f)
|
|
125
|
+
| _ ->
|
|
126
|
+
assert false
|
|
127
|
+
|
|
128
|
+
let merge s1 s2 f = mergeU s1 s2 (fun [@bs] a b c -> f a b c)
|
|
129
|
+
|
|
130
|
+
let rec compareAux e1 e2 vcmp =
|
|
131
|
+
match e1,e2 with
|
|
132
|
+
| h1::t1, h2::t2 ->
|
|
133
|
+
let c = Pervasives.compare (h1.N.key : key) h2.N.key in
|
|
134
|
+
if c = 0 then
|
|
135
|
+
let cx = vcmp h1.N.value h2.N.value [@bs] in
|
|
136
|
+
if cx = 0 then
|
|
137
|
+
compareAux
|
|
138
|
+
(N.stackAllLeft h1.N.right t1 )
|
|
139
|
+
(N.stackAllLeft h2.N.right t2)
|
|
140
|
+
vcmp
|
|
141
|
+
else cx
|
|
142
|
+
else c
|
|
143
|
+
| _, _ -> 0
|
|
144
|
+
|
|
145
|
+
let cmpU s1 s2 cmp =
|
|
146
|
+
let len1, len2 = N.size s1, N.size s2 in
|
|
147
|
+
if len1 = len2 then
|
|
148
|
+
compareAux
|
|
149
|
+
(N.stackAllLeft s1 [])
|
|
150
|
+
(N.stackAllLeft s2 [])
|
|
151
|
+
cmp
|
|
152
|
+
else if len1 < len2 then -1
|
|
153
|
+
else 1
|
|
154
|
+
|
|
155
|
+
let cmp s1 s2 f = cmpU s1 s2 (fun[@bs] a b -> f a b)
|
|
156
|
+
|
|
157
|
+
let rec eqAux e1 e2 eq =
|
|
158
|
+
match e1,e2 with
|
|
159
|
+
| h1::t1, h2::t2 ->
|
|
160
|
+
if (h1.N.key : key) = h2.N.key &&
|
|
161
|
+
eq h1.N.value h2.N.value [@bs] then
|
|
162
|
+
eqAux (
|
|
163
|
+
N.stackAllLeft h1.N.right t1 )
|
|
164
|
+
(N.stackAllLeft h2.N.right t2)
|
|
165
|
+
eq
|
|
166
|
+
else false
|
|
167
|
+
| _, _ -> true (*end *)
|
|
168
|
+
|
|
169
|
+
let eqU s1 s2 eq =
|
|
170
|
+
let len1,len2 = N.size s1, N.size s2 in
|
|
171
|
+
if len1 = len2 then
|
|
172
|
+
eqAux
|
|
173
|
+
(N.stackAllLeft s1 [])
|
|
174
|
+
(N.stackAllLeft s2 []) eq
|
|
175
|
+
else false
|
|
176
|
+
|
|
177
|
+
let eq s1 s2 f = eqU s1 s2 (fun[@bs] a b -> f a b)
|
|
178
|
+
|
|
179
|
+
let rec addMutate (t : _ t) x data : _ t =
|
|
180
|
+
match t with
|
|
181
|
+
| None -> N.singleton x data
|
|
182
|
+
| Some nt ->
|
|
183
|
+
let k = nt.N.key in
|
|
184
|
+
(* let c = (Belt_Cmp.getCmpInternal cmp) x k [@bs] in *)
|
|
185
|
+
if x = k then begin
|
|
186
|
+
nt.N.key <- x;
|
|
187
|
+
nt.value <- data;
|
|
188
|
+
Some nt
|
|
189
|
+
end
|
|
190
|
+
else
|
|
191
|
+
let l, r = (nt.N.left, nt.N.right) in
|
|
192
|
+
(if x < k then
|
|
193
|
+
let ll = addMutate l x data in
|
|
194
|
+
nt.left <- ll
|
|
195
|
+
else
|
|
196
|
+
nt.right <- (addMutate r x data);
|
|
197
|
+
);
|
|
198
|
+
Some (N.balMutate nt)
|
|
199
|
+
|
|
200
|
+
let fromArray (xs : (key * _) array) =
|
|
201
|
+
let len = A.length xs in
|
|
202
|
+
if len = 0 then None
|
|
203
|
+
else
|
|
204
|
+
let next =
|
|
205
|
+
ref (S.strictlySortedLengthU xs
|
|
206
|
+
(fun[@bs] (x0,_) (y0,_) ->
|
|
207
|
+
x0 < y0
|
|
208
|
+
))
|
|
209
|
+
in
|
|
210
|
+
let result = ref (
|
|
211
|
+
if next.contents >= 0 then
|
|
212
|
+
N.fromSortedArrayAux xs 0 next.contents
|
|
213
|
+
else begin
|
|
214
|
+
next .contents<- - next.contents;
|
|
215
|
+
N.fromSortedArrayRevAux xs (next.contents - 1) (next.contents)
|
|
216
|
+
end
|
|
217
|
+
) in
|
|
218
|
+
for i = next.contents to len - 1 do
|
|
219
|
+
let k, v = (A.getUnsafe xs i) in
|
|
220
|
+
result .contents<- addMutate result.contents k v
|
|
221
|
+
done ;
|
|
222
|
+
result.contents
|
|
223
|
+
|
|
224
|
+
|
|
225
|
+
|
|
226
|
+
|
|
227
|
+
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
(* Copyright (C) 2017 Hongbo Zhang, Authors of ReScript
|
|
2
|
+
*
|
|
3
|
+
* This program is free software: you can redistribute it and/or modify
|
|
4
|
+
* it under the terms of the GNU Lesser General Public License as published by
|
|
5
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
6
|
+
* (at your option) any later version.
|
|
7
|
+
*
|
|
8
|
+
* In addition to the permissions granted to you by the LGPL, you may combine
|
|
9
|
+
* or link a "work that uses the Library" with a publicly distributed version
|
|
10
|
+
* of this file to produce a combined library or application, then distribute
|
|
11
|
+
* that combined work under the terms of your choosing, with no requirement
|
|
12
|
+
* to comply with the obligations normally placed on you by section 4 of the
|
|
13
|
+
* LGPL version 3 (or the corresponding section of a later version of the LGPL
|
|
14
|
+
* should you choose to use a later version).
|
|
15
|
+
*
|
|
16
|
+
* This program is distributed in the hope that it will be useful,
|
|
17
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
18
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
19
|
+
* GNU Lesser General Public License for more details.
|
|
20
|
+
*
|
|
21
|
+
* You should have received a copy of the GNU Lesser General Public License
|
|
22
|
+
* along with this program; if not, write to the Free Software
|
|
23
|
+
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *)
|
|
24
|
+
|
|
25
|
+
(* We do dynamic hashing, and resize the table and rehash the elements
|
|
26
|
+
when buckets become too long. *)
|
|
27
|
+
module C = Belt_internalBucketsType
|
|
28
|
+
(* TODO:
|
|
29
|
+
the current implementation relies on the fact that bucket
|
|
30
|
+
empty value is `undefined` in both places,
|
|
31
|
+
in theory, it can be different
|
|
32
|
+
|
|
33
|
+
*)
|
|
34
|
+
type 'a bucket = {
|
|
35
|
+
mutable key : 'a;
|
|
36
|
+
mutable next : 'a bucket C.opt
|
|
37
|
+
}
|
|
38
|
+
and ('hash, 'eq, 'a) t = ('hash, 'eq, 'a bucket) C.container
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
module A = Belt_Array
|
|
42
|
+
|
|
43
|
+
let rec copy ( x : _ t) : _ t=
|
|
44
|
+
{ hash = x.hash;
|
|
45
|
+
eq = x.eq;
|
|
46
|
+
size = x.size;
|
|
47
|
+
buckets = copyBuckets x.buckets
|
|
48
|
+
}
|
|
49
|
+
and copyBuckets ( buckets : _ bucket C.opt array) =
|
|
50
|
+
let len = A.length buckets in
|
|
51
|
+
let newBuckets = A.makeUninitializedUnsafe len in
|
|
52
|
+
for i = 0 to len - 1 do
|
|
53
|
+
A.setUnsafe newBuckets i
|
|
54
|
+
(copyBucket (A.getUnsafe buckets i))
|
|
55
|
+
done ;
|
|
56
|
+
newBuckets
|
|
57
|
+
and copyBucket c =
|
|
58
|
+
match C.toOpt c with
|
|
59
|
+
| None -> c
|
|
60
|
+
| Some c ->
|
|
61
|
+
let head = { key = c.key ;
|
|
62
|
+
next = C.emptyOpt } in
|
|
63
|
+
copyAuxCont c.next head;
|
|
64
|
+
C.return head
|
|
65
|
+
and copyAuxCont c prec =
|
|
66
|
+
match C.toOpt c with
|
|
67
|
+
| None -> ()
|
|
68
|
+
| Some nc ->
|
|
69
|
+
let ncopy = { key = nc.key; next = C.emptyOpt} in
|
|
70
|
+
prec.next <- (C.return ncopy) ;
|
|
71
|
+
copyAuxCont nc.next ncopy
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
let rec bucketLength accu buckets =
|
|
75
|
+
match C.toOpt buckets with
|
|
76
|
+
| None -> accu
|
|
77
|
+
| Some cell -> bucketLength (accu + 1) cell.next
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
let rec doBucketIter ~f buckets =
|
|
82
|
+
match C.toOpt buckets with
|
|
83
|
+
| None ->
|
|
84
|
+
()
|
|
85
|
+
| Some cell ->
|
|
86
|
+
f cell.key [@bs]; doBucketIter ~f cell.next
|
|
87
|
+
|
|
88
|
+
let forEachU h f =
|
|
89
|
+
let d = h.C.buckets in
|
|
90
|
+
for i = 0 to A.length d - 1 do
|
|
91
|
+
doBucketIter ~f (A.getUnsafe d i)
|
|
92
|
+
done
|
|
93
|
+
|
|
94
|
+
let forEach h f = forEachU h (fun[@bs] a -> f a )
|
|
95
|
+
|
|
96
|
+
let rec fillArray i arr cell =
|
|
97
|
+
A.setUnsafe arr i cell.key;
|
|
98
|
+
match C.toOpt cell.next with
|
|
99
|
+
| None -> i + 1
|
|
100
|
+
| Some v -> fillArray (i + 1) arr v
|
|
101
|
+
|
|
102
|
+
let toArray h =
|
|
103
|
+
let d = h.C.buckets in
|
|
104
|
+
let current = ref 0 in
|
|
105
|
+
let arr = A.makeUninitializedUnsafe h.C.size in
|
|
106
|
+
for i = 0 to A.length d - 1 do
|
|
107
|
+
let cell = A.getUnsafe d i in
|
|
108
|
+
match C.toOpt cell with
|
|
109
|
+
| None -> ()
|
|
110
|
+
| Some cell ->
|
|
111
|
+
current .contents<- fillArray current.contents arr cell
|
|
112
|
+
done;
|
|
113
|
+
arr
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
let rec doBucketFold ~f b accu =
|
|
118
|
+
match C.toOpt b with
|
|
119
|
+
| None ->
|
|
120
|
+
accu
|
|
121
|
+
| Some cell ->
|
|
122
|
+
doBucketFold ~f cell.next (f accu cell.key [@bs])
|
|
123
|
+
|
|
124
|
+
let reduceU h init f =
|
|
125
|
+
let d = h.C.buckets in
|
|
126
|
+
let accu = ref init in
|
|
127
|
+
for i = 0 to A.length d - 1 do
|
|
128
|
+
accu.contents<- doBucketFold ~f (A.getUnsafe d i) accu.contents
|
|
129
|
+
done;
|
|
130
|
+
accu.contents
|
|
131
|
+
|
|
132
|
+
let reduce h init f = reduceU h init (fun [@bs] a b -> f a b)
|
|
133
|
+
|
|
134
|
+
let getMaxBucketLength h =
|
|
135
|
+
A.reduceU (h.C.buckets ) 0
|
|
136
|
+
(fun[@bs] m b ->
|
|
137
|
+
let len = bucketLength 0 b in
|
|
138
|
+
Pervasives.max m len)
|
|
139
|
+
|
|
140
|
+
let getBucketHistogram h =
|
|
141
|
+
let mbl = getMaxBucketLength h in
|
|
142
|
+
let histo = A.makeByU (mbl + 1) (fun[@bs] _ -> 0) in
|
|
143
|
+
A.forEachU (h.C.buckets )
|
|
144
|
+
(fun[@bs] b ->
|
|
145
|
+
let l = bucketLength 0 b in
|
|
146
|
+
A.setUnsafe histo l (A.getUnsafe histo l + 1)
|
|
147
|
+
);
|
|
148
|
+
histo
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
let logStats h =
|
|
152
|
+
let histogram = getBucketHistogram h in
|
|
153
|
+
Js.log [%obj{ bindings = h.C.size ;
|
|
154
|
+
buckets = A.length (h.C.buckets );
|
|
155
|
+
histogram }]
|
|
156
|
+
|
|
157
|
+
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
(* Copyright (C) 2018 Authors of ReScript
|
|
2
|
+
*
|
|
3
|
+
* This program is free software: you can redistribute it and/or modify
|
|
4
|
+
* it under the terms of the GNU Lesser General Public License as published by
|
|
5
|
+
* the Free Software Foundation, either version 3 of the License, or
|
|
6
|
+
* (at your option) any later version.
|
|
7
|
+
*
|
|
8
|
+
* In addition to the permissions granted to you by the LGPL, you may combine
|
|
9
|
+
* or link a "work that uses the Library" with a publicly distributed version
|
|
10
|
+
* of this file to produce a combined library or application, then distribute
|
|
11
|
+
* that combined work under the terms of your choosing, with no requirement
|
|
12
|
+
* to comply with the obligations normally placed on you by section 4 of the
|
|
13
|
+
* LGPL version 3 (or the corresponding section of a later version of the LGPL
|
|
14
|
+
* should you choose to use a later version).
|
|
15
|
+
*
|
|
16
|
+
* This program is distributed in the hope that it will be useful,
|
|
17
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
18
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
19
|
+
* GNU Lesser General Public License for more details.
|
|
20
|
+
*
|
|
21
|
+
* You should have received a copy of the GNU Lesser General Public License
|
|
22
|
+
* along with this program; if not, write to the Free Software
|
|
23
|
+
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *)
|
|
24
|
+
|
|
25
|
+
module C = Belt_internalBucketsType
|
|
26
|
+
|
|
27
|
+
type 'a bucket = {
|
|
28
|
+
mutable key : 'a;
|
|
29
|
+
mutable next : 'a bucket C.opt
|
|
30
|
+
}
|
|
31
|
+
and ('hash, 'eq, 'a) t = ('hash, 'eq, 'a bucket) C.container
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
val copy: ('hash, 'eq, 'a) t -> ('hash, 'eq, 'a) t
|
|
35
|
+
|
|
36
|
+
val forEachU: ('hash, 'eq, 'a) t -> ('a -> unit [@bs]) -> unit
|
|
37
|
+
val forEach: ('hash, 'eq, 'a) t -> ('a -> unit) -> unit
|
|
38
|
+
val fillArray: int -> 'a array -> 'a bucket -> int
|
|
39
|
+
|
|
40
|
+
val toArray: (_,_,'a) t -> 'a array
|
|
41
|
+
|
|
42
|
+
val reduceU: (_,_,'a) t -> 'b -> ('b -> 'a -> 'b [@bs]) -> 'b
|
|
43
|
+
val reduce: (_,_,'a) t -> 'b -> ('b -> 'a -> 'b) -> 'b
|
|
44
|
+
|
|
45
|
+
val logStats: _ t -> unit
|
|
46
|
+
|
|
47
|
+
val getBucketHistogram: _ t -> int array
|
|
Binary file
|