@tellahq/rescript 10.1.0-alpha.2 → 10.1.4-republish-2
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/CHANGELOG.md +204 -2
- package/README.md +1 -1
- 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/docs/docson/build-schema.json +497 -516
- package/lib/4.06.1/bsb_helper.ml +6 -1
- package/lib/4.06.1/rescript.ml +1414 -1191
- package/lib/4.06.1/whole_compiler.ml +69844 -69069
- package/lib/es6/belt_internalBuckets.js +13 -13
- package/lib/es6/caml_float.js +5 -5
- package/lib/es6/caml_format.js +1 -1
- package/lib/es6/caml_int64.js +1 -1
- package/lib/es6/caml_obj.js +26 -6
- package/lib/es6/complex.js +4 -4
- package/lib/es6/js.js +3 -0
- package/lib/es6/js_promise2.js +16 -0
- package/lib/es6/jsxPPXReactSupport.js +26 -0
- package/lib/js/belt_internalBuckets.js +13 -13
- package/lib/js/caml_float.js +5 -5
- package/lib/js/caml_format.js +1 -1
- package/lib/js/caml_int64.js +1 -1
- package/lib/js/caml_obj.js +26 -6
- package/lib/js/complex.js +4 -4
- package/lib/js/js.js +3 -0
- package/lib/js/js_promise2.js +14 -0
- package/lib/js/jsxPPXReactSupport.js +24 -0
- package/package.json +2 -1
- package/scripts/buildNinjaBinary.js +29 -0
- package/scripts/install.js +7 -3
- package/scripts/installUtils.js +9 -1
- package/scripts/rescript_arg.js +2 -4
- package/scripts/rescript_format.js +73 -39
- package/win32/refmt.exe +0 -0
- package/darwin/bsb_helper.exe +0 -0
- package/darwin/bsc.exe +0 -0
- package/darwin/ninja.COPYING +0 -202
- package/darwin/ninja.exe +0 -0
- package/darwin/rescript.exe +0 -0
- package/darwinarm64/ninja.COPYING +0 -202
- package/freebsd/ninja.COPYING +0 -202
- 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 +0 -359
- package/lib/ocaml/arg.mli +0 -185
- 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 +0 -307
- package/lib/ocaml/array.mli +0 -275
- 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 +0 -307
- package/lib/ocaml/arrayLabels.mli +0 -276
- package/lib/ocaml/belt.cmi +0 -0
- package/lib/ocaml/belt.cmt +0 -0
- package/lib/ocaml/belt.ml +0 -352
- 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 +0 -525
- package/lib/ocaml/belt_Array.mli +0 -707
- 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 +0 -50
- package/lib/ocaml/belt_Float.mli +0 -106
- 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 +0 -226
- package/lib/ocaml/belt_HashMap.mli +0 -436
- 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 +0 -206
- package/lib/ocaml/belt_HashMapInt.mli +0 -50
- 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 +0 -206
- package/lib/ocaml/belt_HashMapString.mli +0 -50
- 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 +0 -196
- package/lib/ocaml/belt_HashSet.mli +0 -125
- 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 +0 -155
- package/lib/ocaml/belt_HashSetInt.mli +0 -74
- 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 +0 -156
- package/lib/ocaml/belt_HashSetString.mli +0 -74
- 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 +0 -133
- package/lib/ocaml/belt_Id.mli +0 -171
- 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 +0 -50
- package/lib/ocaml/belt_Int.mli +0 -103
- 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 +0 -803
- package/lib/ocaml/belt_List.mli +0 -844
- 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 +0 -170
- package/lib/ocaml/belt_Map.mli +0 -496
- 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 +0 -278
- package/lib/ocaml/belt_MapDict.mli +0 -268
- 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 +0 -169
- package/lib/ocaml/belt_MapInt.mli +0 -187
- 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 +0 -169
- package/lib/ocaml/belt_MapString.mli +0 -187
- 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 +0 -241
- package/lib/ocaml/belt_MutableMap.mli +0 -145
- 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 +0 -172
- package/lib/ocaml/belt_MutableMapInt.mli +0 -135
- 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 +0 -172
- package/lib/ocaml/belt_MutableMapString.mli +0 -135
- 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 +0 -222
- package/lib/ocaml/belt_MutableQueue.mli +0 -116
- 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 +0 -371
- package/lib/ocaml/belt_MutableSet.mli +0 -617
- 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 +0 -342
- package/lib/ocaml/belt_MutableSetInt.mli +0 -124
- 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 +0 -342
- package/lib/ocaml/belt_MutableSetString.mli +0 -124
- 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 +0 -106
- package/lib/ocaml/belt_MutableStack.mli +0 -63
- 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 +0 -93
- package/lib/ocaml/belt_Option.mli +0 -270
- 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 +0 -76
- package/lib/ocaml/belt_Range.mli +0 -114
- 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 +0 -75
- package/lib/ocaml/belt_Result.mli +0 -205
- 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 +0 -205
- package/lib/ocaml/belt_Set.cppo.mli +0 -153
- package/lib/ocaml/belt_Set.ml +0 -164
- package/lib/ocaml/belt_Set.mli +0 -523
- 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 +0 -237
- package/lib/ocaml/belt_SetDict.mli +0 -567
- 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 +0 -201
- package/lib/ocaml/belt_SetInt.mli +0 -151
- 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 +0 -201
- package/lib/ocaml/belt_SetString.mli +0 -151
- 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 +0 -322
- package/lib/ocaml/belt_SortArray.mli +0 -146
- 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 +0 -263
- package/lib/ocaml/belt_SortArrayInt.mli +0 -93
- 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 +0 -263
- package/lib/ocaml/belt_SortArrayString.mli +0 -93
- package/lib/ocaml/belt_internalAVLset.cmt +0 -0
- package/lib/ocaml/belt_internalAVLset.cmti +0 -0
- package/lib/ocaml/belt_internalAVLset.ml +0 -665
- package/lib/ocaml/belt_internalAVLset.mli +0 -124
- package/lib/ocaml/belt_internalAVLtree.cmt +0 -0
- package/lib/ocaml/belt_internalAVLtree.cmti +0 -0
- package/lib/ocaml/belt_internalAVLtree.ml +0 -762
- package/lib/ocaml/belt_internalAVLtree.mli +0 -215
- package/lib/ocaml/belt_internalBuckets.cmt +0 -0
- package/lib/ocaml/belt_internalBuckets.cmti +0 -0
- package/lib/ocaml/belt_internalBuckets.ml +0 -218
- package/lib/ocaml/belt_internalBuckets.mli +0 -57
- package/lib/ocaml/belt_internalBucketsType.cmt +0 -0
- package/lib/ocaml/belt_internalBucketsType.cmti +0 -0
- package/lib/ocaml/belt_internalBucketsType.ml +0 -59
- package/lib/ocaml/belt_internalBucketsType.mli +0 -46
- package/lib/ocaml/belt_internalMapInt.cmt +0 -0
- package/lib/ocaml/belt_internalMapInt.ml +0 -227
- package/lib/ocaml/belt_internalMapString.cmt +0 -0
- package/lib/ocaml/belt_internalMapString.ml +0 -227
- package/lib/ocaml/belt_internalSetBuckets.cmt +0 -0
- package/lib/ocaml/belt_internalSetBuckets.cmti +0 -0
- package/lib/ocaml/belt_internalSetBuckets.ml +0 -157
- package/lib/ocaml/belt_internalSetBuckets.mli +0 -47
- package/lib/ocaml/belt_internalSetInt.cmt +0 -0
- package/lib/ocaml/belt_internalSetInt.ml +0 -129
- package/lib/ocaml/belt_internalSetString.cmt +0 -0
- package/lib/ocaml/belt_internalSetString.ml +0 -129
- package/lib/ocaml/belt_internals.cmti +0 -0
- package/lib/ocaml/belt_internals.mli +0 -79
- 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 +0 -250
- package/lib/ocaml/buffer.mli +0 -149
- 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 +0 -431
- package/lib/ocaml/bytes.mli +0 -430
- 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 +0 -428
- package/lib/ocaml/bytesLabels.mli +0 -276
- 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 +0 -20
- package/lib/ocaml/callback.mli +0 -34
- 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 +0 -89
- package/lib/ocaml/camlinternalLazy.mli +0 -27
- 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 +0 -21
- package/lib/ocaml/camlinternalMod.mli +0 -25
- 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 +0 -76
- package/lib/ocaml/char.mli +0 -72
- 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 +0 -87
- package/lib/ocaml/complex.mli +0 -86
- 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 +0 -66
- package/lib/ocaml/digest.mli +0 -68
- package/lib/ocaml/dom.cmi +0 -0
- package/lib/ocaml/dom.cmt +0 -0
- package/lib/ocaml/dom.ml +0 -296
- package/lib/ocaml/dom_storage.cmi +0 -0
- package/lib/ocaml/dom_storage.cmt +0 -0
- package/lib/ocaml/dom_storage.ml +0 -22
- package/lib/ocaml/dom_storage2.cmi +0 -0
- package/lib/ocaml/dom_storage2.cmt +0 -0
- package/lib/ocaml/dom_storage2.ml +0 -11
- 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 +0 -233
- package/lib/ocaml/filename.mli +0 -134
- 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 +0 -201
- package/lib/ocaml/genlex.mli +0 -73
- package/lib/ocaml/hashmap.cppo.ml +0 -214
- package/lib/ocaml/hashmap.cppo.mli +0 -54
- package/lib/ocaml/hashset.cppo.ml +0 -165
- package/lib/ocaml/hashset.cppo.mli +0 -77
- 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 +0 -541
- package/lib/ocaml/hashtbl.mli +0 -411
- package/lib/ocaml/hashtblLabels.cmi +0 -0
- package/lib/ocaml/hashtblLabels.cmt +0 -0
- package/lib/ocaml/hashtblLabels.ml +0 -130
- 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 +0 -64
- package/lib/ocaml/int32.mli +0 -186
- 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 +0 -72
- package/lib/ocaml/int64.mli +0 -197
- package/lib/ocaml/internal_map.cppo.ml +0 -230
- package/lib/ocaml/internal_set.cppo.ml +0 -134
- package/lib/ocaml/js.cmi +0 -0
- package/lib/ocaml/js.cmt +0 -0
- package/lib/ocaml/js.ml +0 -313
- package/lib/ocaml/js_OO.cmi +0 -0
- package/lib/ocaml/js_OO.cmt +0 -0
- package/lib/ocaml/js_OO.ml +0 -180
- package/lib/ocaml/js_array.cmi +0 -0
- package/lib/ocaml/js_array.cmt +0 -0
- package/lib/ocaml/js_array.ml +0 -970
- package/lib/ocaml/js_array2.cmi +0 -0
- package/lib/ocaml/js_array2.cmt +0 -0
- package/lib/ocaml/js_array2.ml +0 -1065
- package/lib/ocaml/js_bigint.cmi +0 -0
- package/lib/ocaml/js_bigint.cmt +0 -0
- package/lib/ocaml/js_bigint.ml +0 -3
- 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 +0 -29
- package/lib/ocaml/js_cast.mli +0 -45
- package/lib/ocaml/js_console.cmi +0 -0
- package/lib/ocaml/js_console.cmt +0 -0
- package/lib/ocaml/js_console.ml +0 -51
- package/lib/ocaml/js_date.cmi +0 -0
- package/lib/ocaml/js_date.cmt +0 -0
- package/lib/ocaml/js_date.ml +0 -1263
- 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 +0 -114
- package/lib/ocaml/js_dict.mli +0 -152
- 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 +0 -102
- package/lib/ocaml/js_exn.mli +0 -79
- package/lib/ocaml/js_float.cmi +0 -0
- package/lib/ocaml/js_float.cmt +0 -0
- package/lib/ocaml/js_float.ml +0 -294
- package/lib/ocaml/js_global.cmi +0 -0
- package/lib/ocaml/js_global.cmt +0 -0
- package/lib/ocaml/js_global.ml +0 -185
- package/lib/ocaml/js_int.cmi +0 -0
- package/lib/ocaml/js_int.cmt +0 -0
- package/lib/ocaml/js_int.ml +0 -158
- 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 +0 -195
- package/lib/ocaml/js_json.mli +0 -244
- 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 +0 -174
- package/lib/ocaml/js_list.mli +0 -72
- package/lib/ocaml/js_map.cmi +0 -0
- package/lib/ocaml/js_map.cmt +0 -0
- package/lib/ocaml/js_map.ml +0 -3
- 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 +0 -50
- package/lib/ocaml/js_mapperRt.mli +0 -44
- package/lib/ocaml/js_math.cmi +0 -0
- package/lib/ocaml/js_math.cmt +0 -0
- package/lib/ocaml/js_math.ml +0 -626
- 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 +0 -57
- package/lib/ocaml/js_null.mli +0 -87
- 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 +0 -50
- package/lib/ocaml/js_null_undefined.mli +0 -85
- package/lib/ocaml/js_obj.cmi +0 -0
- package/lib/ocaml/js_obj.cmt +0 -0
- package/lib/ocaml/js_obj.ml +0 -100
- 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 +0 -203
- package/lib/ocaml/js_option.mli +0 -52
- package/lib/ocaml/js_promise.cmi +0 -0
- package/lib/ocaml/js_promise.cmt +0 -0
- package/lib/ocaml/js_promise.ml +0 -100
- package/lib/ocaml/js_re.cmi +0 -0
- package/lib/ocaml/js_re.cmt +0 -0
- package/lib/ocaml/js_re.ml +0 -184
- 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 +0 -28
- package/lib/ocaml/js_result.mli +0 -28
- package/lib/ocaml/js_set.cmi +0 -0
- package/lib/ocaml/js_set.cmt +0 -0
- package/lib/ocaml/js_set.ml +0 -3
- package/lib/ocaml/js_string.cmi +0 -0
- package/lib/ocaml/js_string.cmt +0 -0
- package/lib/ocaml/js_string.ml +0 -914
- package/lib/ocaml/js_string2.cmi +0 -0
- package/lib/ocaml/js_string2.cmt +0 -0
- package/lib/ocaml/js_string2.ml +0 -912
- 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 +0 -429
- package/lib/ocaml/js_typed_array.ml +0 -1405
- 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 +0 -296
- package/lib/ocaml/js_typed_array2.ml +0 -1269
- 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 +0 -118
- package/lib/ocaml/js_types.mli +0 -78
- 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 +0 -59
- package/lib/ocaml/js_undefined.mli +0 -92
- 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 +0 -143
- package/lib/ocaml/js_vector.mli +0 -92
- package/lib/ocaml/js_weakmap.cmi +0 -0
- package/lib/ocaml/js_weakmap.cmt +0 -0
- package/lib/ocaml/js_weakmap.ml +0 -3
- package/lib/ocaml/js_weakset.cmi +0 -0
- package/lib/ocaml/js_weakset.cmt +0 -0
- package/lib/ocaml/js_weakset.ml +0 -3
- package/lib/ocaml/jsx.cmi +0 -0
- package/lib/ocaml/jsx.cmt +0 -0
- package/lib/ocaml/jsx.ml +0 -39
- package/lib/ocaml/jsxDOM.cmi +0 -0
- package/lib/ocaml/jsxDOM.cmt +0 -0
- package/lib/ocaml/jsxDOM.ml +0 -2087
- package/lib/ocaml/jsxDOMStyle.cmi +0 -0
- package/lib/ocaml/jsxDOMStyle.cmt +0 -0
- package/lib/ocaml/jsxDOMStyle.ml +0 -777
- package/lib/ocaml/jsxEvent.cmi +0 -0
- package/lib/ocaml/jsxEvent.cmt +0 -0
- package/lib/ocaml/jsxEvent.ml +0 -358
- 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 +0 -70
- package/lib/ocaml/lazy.mli +0 -95
- 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 +0 -230
- package/lib/ocaml/lexing.mli +0 -172
- 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 +0 -485
- package/lib/ocaml/list.mli +0 -347
- 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 +0 -485
- package/lib/ocaml/listLabels.mli +0 -353
- 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 +0 -174
- package/lib/ocaml/map.cppo.mli +0 -191
- package/lib/ocaml/map.ml +0 -480
- package/lib/ocaml/map.mli +0 -315
- package/lib/ocaml/mapLabels.cmi +0 -0
- package/lib/ocaml/mapLabels.cmt +0 -0
- package/lib/ocaml/mapLabels.ml +0 -480
- package/lib/ocaml/mapm.cppo.ml +0 -177
- package/lib/ocaml/mapm.cppo.mli +0 -138
- 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 +0 -22
- package/lib/ocaml/moreLabels.mli +0 -198
- package/lib/ocaml/node.cmi +0 -0
- package/lib/ocaml/node.cmt +0 -0
- package/lib/ocaml/node.ml +0 -84
- package/lib/ocaml/node_buffer.cmi +0 -0
- package/lib/ocaml/node_buffer.cmt +0 -0
- package/lib/ocaml/node_buffer.ml +0 -47
- 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 +0 -50
- package/lib/ocaml/node_fs.cmi +0 -0
- package/lib/ocaml/node_fs.cmt +0 -0
- package/lib/ocaml/node_fs.ml +0 -153
- package/lib/ocaml/node_module.cmi +0 -0
- package/lib/ocaml/node_module.cmt +0 -0
- package/lib/ocaml/node_module.ml +0 -29
- package/lib/ocaml/node_path.cmi +0 -0
- package/lib/ocaml/node_path.cmt +0 -0
- package/lib/ocaml/node_path.ml +0 -71
- 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 +0 -59
- package/lib/ocaml/node_process.mli +0 -48
- 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 +0 -29
- package/lib/ocaml/obj.mli +0 -62
- 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 +0 -212
- package/lib/ocaml/parsing.mli +0 -105
- 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 +0 -297
- package/lib/ocaml/pervasives.mli +0 -771
- 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 +0 -79
- package/lib/ocaml/printexc.mli +0 -57
- 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 +0 -132
- package/lib/ocaml/queue.mli +0 -82
- 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 +0 -273
- package/lib/ocaml/random.mli +0 -102
- 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 +0 -526
- package/lib/ocaml/set.mli +0 -266
- package/lib/ocaml/setLabels.cmi +0 -0
- package/lib/ocaml/setLabels.cmt +0 -0
- package/lib/ocaml/setLabels.ml +0 -526
- package/lib/ocaml/setm.cppo.ml +0 -346
- package/lib/ocaml/setm.cppo.mli +0 -126
- 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 +0 -267
- package/lib/ocaml/sort.cppo.mli +0 -96
- package/lib/ocaml/sort.ml +0 -99
- package/lib/ocaml/sort.mli +0 -44
- 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 +0 -44
- package/lib/ocaml/stack.mli +0 -63
- 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 +0 -24
- package/lib/ocaml/stdLabels.mli +0 -29
- 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 +0 -213
- package/lib/ocaml/stream.mli +0 -108
- 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 +0 -190
- package/lib/ocaml/string.mli +0 -286
- 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 +0 -190
- package/lib/ocaml/stringLabels.mli +0 -241
- 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 +0 -135
- package/lib/ocaml/sys.mli +0 -333
- 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 +0 -58
- package/lib/ocaml/uchar.mli +0 -98
- package/linux/bsb_helper.exe +0 -0
- package/linux/bsc.exe +0 -0
- package/linux/ninja.COPYING +0 -202
- package/linux/ninja.exe +0 -0
- package/linux/rescript.exe +0 -0
- package/openbsd/.keep +0 -0
- package/scripts/LICENSE.ml +0 -27
- package/scripts/buckle_lto.js +0 -55
- package/scripts/build_sorted.ml +0 -233
- package/scripts/caml_oo_curry_gen.ml +0 -71
- package/scripts/checkUnused.js +0 -63
- package/scripts/ciTest.js +0 -172
- package/scripts/cover.sh +0 -3
- package/scripts/curry_gen.ml +0 -167
- package/scripts/dbg +0 -13
- package/scripts/dedupe.js +0 -44
- package/scripts/doc_gen.js +0 -117
- package/scripts/js_internal_gen.js +0 -135
- package/scripts/jsconfig.json +0 -12
- package/scripts/littlecase.js +0 -21
- package/scripts/ninja.js +0 -1980
- package/scripts/pack.js +0 -107
- package/scripts/prebuilt.js +0 -99
- package/scripts/release.js +0 -41
- package/scripts/repl.js +0 -151
- package/scripts/shake.js +0 -138
- package/scripts/tasks.js +0 -149
- package/scripts/test.sh +0 -3
- package/scripts/tmp.js +0 -98
- package/scripts/validate.js +0 -41
- package/vendor/ninja.tar.gz +0 -0
- package/win32/bsb_helper.exe +0 -0
- package/win32/bsc.exe +0 -0
- package/win32/ninja.COPYING +0 -202
- package/win32/ninja.exe +0 -0
- package/win32/rescript.exe +0 -0
package/lib/ocaml/callback.ml
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
(**************************************************************************)
|
|
2
|
-
(* *)
|
|
3
|
-
(* OCaml *)
|
|
4
|
-
(* *)
|
|
5
|
-
(* Xavier Leroy, projet Cristal, INRIA Rocquencourt *)
|
|
6
|
-
(* *)
|
|
7
|
-
(* Copyright 1996 Institut National de Recherche en Informatique et *)
|
|
8
|
-
(* en Automatique. *)
|
|
9
|
-
(* *)
|
|
10
|
-
(* All rights reserved. This file is distributed under the terms of *)
|
|
11
|
-
(* the GNU Lesser General Public License version 2.1, with the *)
|
|
12
|
-
(* special exception on linking described in the file LICENSE. *)
|
|
13
|
-
(* *)
|
|
14
|
-
(**************************************************************************)
|
|
15
|
-
[@@@bs.config { flags = [|"-bs-no-cross-module-opt" |]}]
|
|
16
|
-
(* Registering OCaml values with the C runtime for later callbacks *)
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
let register _ _ = ()
|
|
20
|
-
let register_exception _ _ = ()
|
package/lib/ocaml/callback.mli
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
(**************************************************************************)
|
|
2
|
-
(* *)
|
|
3
|
-
(* OCaml *)
|
|
4
|
-
(* *)
|
|
5
|
-
(* Xavier Leroy, projet Cristal, INRIA Rocquencourt *)
|
|
6
|
-
(* *)
|
|
7
|
-
(* Copyright 1996 Institut National de Recherche en Informatique et *)
|
|
8
|
-
(* en Automatique. *)
|
|
9
|
-
(* *)
|
|
10
|
-
(* All rights reserved. This file is distributed under the terms of *)
|
|
11
|
-
(* the GNU Lesser General Public License version 2.1, with the *)
|
|
12
|
-
(* special exception on linking described in the file LICENSE. *)
|
|
13
|
-
(* *)
|
|
14
|
-
(**************************************************************************)
|
|
15
|
-
|
|
16
|
-
(** Registering OCaml values with the C runtime.
|
|
17
|
-
|
|
18
|
-
This module allows OCaml values to be registered with the C runtime
|
|
19
|
-
under a symbolic name, so that C code can later call back registered
|
|
20
|
-
OCaml functions, or raise registered OCaml exceptions.
|
|
21
|
-
*)
|
|
22
|
-
|
|
23
|
-
val register : string -> 'a -> unit
|
|
24
|
-
(** [Callback.register n v] registers the value [v] under
|
|
25
|
-
the name [n]. C code can later retrieve a handle to [v]
|
|
26
|
-
by calling [caml_named_value(n)]. *)
|
|
27
|
-
|
|
28
|
-
val register_exception : string -> exn -> unit
|
|
29
|
-
(** [Callback.register_exception n exn] registers the
|
|
30
|
-
exception contained in the exception value [exn]
|
|
31
|
-
under the name [n]. C code can later retrieve a handle to
|
|
32
|
-
the exception by calling [caml_named_value(n)]. The exception
|
|
33
|
-
value thus obtained is suitable for passing as first argument
|
|
34
|
-
to [raise_constant] or [raise_with_arg]. *)
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,89 +0,0 @@
|
|
|
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
|
-
[@@@bs.config { flags = [|"-bs-no-cross-module-opt" |]}]
|
|
26
|
-
|
|
27
|
-
(* Internals of forcing lazy values. *)
|
|
28
|
-
type 'a t = {
|
|
29
|
-
mutable tag : bool [@bs.as "LAZY_DONE"] ;
|
|
30
|
-
(* Invariant: name *)
|
|
31
|
-
mutable value : 'a [@bs.as "VAL"]
|
|
32
|
-
(* its type is ['a] or [unit -> 'a ] *)
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
external%private fnToVal : (unit -> 'a [@bs]) -> 'a = "%identity"
|
|
37
|
-
external%private valToFn : 'a -> (unit -> 'a [@bs]) = "%identity"
|
|
38
|
-
external%private castToConcrete : 'a lazy_t -> 'a t = "%identity"
|
|
39
|
-
|
|
40
|
-
let is_val (type a ) (l : a lazy_t) : bool =
|
|
41
|
-
(castToConcrete l ).tag
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
exception Undefined
|
|
46
|
-
|
|
47
|
-
let%private forward_with_closure (type a ) (blk : a t) (closure : unit -> a [@bs]) : a =
|
|
48
|
-
let result = closure () [@bs] in
|
|
49
|
-
(* do set_field BEFORE set_tag *)
|
|
50
|
-
blk.value <- result;
|
|
51
|
-
blk.tag<- true;
|
|
52
|
-
result
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
let%private raise_undefined = (fun [@bs] () -> raise Undefined)
|
|
56
|
-
|
|
57
|
-
(* Assume [blk] is a block with tag lazy *)
|
|
58
|
-
let%private force_lazy_block (type a ) (blk : a t) : a =
|
|
59
|
-
let closure = valToFn blk.value in
|
|
60
|
-
blk.value <- fnToVal raise_undefined;
|
|
61
|
-
try
|
|
62
|
-
forward_with_closure blk closure
|
|
63
|
-
with e ->
|
|
64
|
-
blk.value <- fnToVal (fun [@bs] () -> raise e);
|
|
65
|
-
raise e
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
(* Assume [blk] is a block with tag lazy *)
|
|
69
|
-
let%private force_val_lazy_block (type a ) (blk : a t) : a =
|
|
70
|
-
let closure = valToFn blk.value in
|
|
71
|
-
blk.value <- fnToVal raise_undefined;
|
|
72
|
-
forward_with_closure blk closure
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
let force (type a ) (lzv : a lazy_t) : a =
|
|
77
|
-
let lzv = (castToConcrete lzv : _ t) in
|
|
78
|
-
if lzv.tag then lzv.value else
|
|
79
|
-
force_lazy_block lzv
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
let force_val (type a) (lzv : a lazy_t) : a =
|
|
85
|
-
let lzv : _ t = castToConcrete lzv in
|
|
86
|
-
if lzv.tag then lzv.value else
|
|
87
|
-
force_val_lazy_block lzv
|
|
88
|
-
|
|
89
|
-
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
(**************************************************************************)
|
|
2
|
-
(* *)
|
|
3
|
-
(* OCaml *)
|
|
4
|
-
(* *)
|
|
5
|
-
(* Damien Doligez, projet Para, INRIA Rocquencourt *)
|
|
6
|
-
(* *)
|
|
7
|
-
(* Copyright 1997 Institut National de Recherche en Informatique et *)
|
|
8
|
-
(* en Automatique. *)
|
|
9
|
-
(* *)
|
|
10
|
-
(* All rights reserved. This file is distributed under the terms of *)
|
|
11
|
-
(* the GNU Lesser General Public License version 2.1, with the *)
|
|
12
|
-
(* special exception on linking described in the file LICENSE. *)
|
|
13
|
-
(* *)
|
|
14
|
-
(**************************************************************************)
|
|
15
|
-
|
|
16
|
-
(** Run-time support for lazy values.
|
|
17
|
-
All functions in this module are for system use only, not for the
|
|
18
|
-
casual user. *)
|
|
19
|
-
|
|
20
|
-
exception Undefined
|
|
21
|
-
|
|
22
|
-
val force : 'a lazy_t -> 'a
|
|
23
|
-
(* instrumented by {!Matching} *)
|
|
24
|
-
|
|
25
|
-
val force_val : 'a lazy_t -> 'a
|
|
26
|
-
|
|
27
|
-
val is_val : 'a lazy_t -> bool
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
(**************************************************************************)
|
|
2
|
-
(* *)
|
|
3
|
-
(* OCaml *)
|
|
4
|
-
(* *)
|
|
5
|
-
(* Xavier Leroy, projet Cristal, INRIA Rocquencourt *)
|
|
6
|
-
(* *)
|
|
7
|
-
(* Copyright 2004 Institut National de Recherche en Informatique et *)
|
|
8
|
-
(* en Automatique. *)
|
|
9
|
-
(* *)
|
|
10
|
-
(* All rights reserved. This file is distributed under the terms of *)
|
|
11
|
-
(* the GNU Lesser General Public License version 2.1, with the *)
|
|
12
|
-
(* special exception on linking described in the file LICENSE. *)
|
|
13
|
-
(* *)
|
|
14
|
-
(**************************************************************************)
|
|
15
|
-
|
|
16
|
-
type shape =
|
|
17
|
-
| Function
|
|
18
|
-
| Lazy
|
|
19
|
-
| Class
|
|
20
|
-
| Module of shape array
|
|
21
|
-
| Value of Obj.t
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
(**************************************************************************)
|
|
2
|
-
(* *)
|
|
3
|
-
(* OCaml *)
|
|
4
|
-
(* *)
|
|
5
|
-
(* Xavier Leroy, projet Cristal, INRIA Rocquencourt *)
|
|
6
|
-
(* *)
|
|
7
|
-
(* Copyright 2004 Institut National de Recherche en Informatique et *)
|
|
8
|
-
(* en Automatique. *)
|
|
9
|
-
(* *)
|
|
10
|
-
(* All rights reserved. This file is distributed under the terms of *)
|
|
11
|
-
(* the GNU Lesser General Public License version 2.1, with the *)
|
|
12
|
-
(* special exception on linking described in the file LICENSE. *)
|
|
13
|
-
(* *)
|
|
14
|
-
(**************************************************************************)
|
|
15
|
-
|
|
16
|
-
(** Run-time support for recursive modules.
|
|
17
|
-
All functions in this module are for system use only, not for the
|
|
18
|
-
casual user. *)
|
|
19
|
-
|
|
20
|
-
type shape =
|
|
21
|
-
| Function
|
|
22
|
-
| Lazy
|
|
23
|
-
| Class
|
|
24
|
-
| Module of shape array
|
|
25
|
-
| Value of Obj.t
|
package/lib/ocaml/char.cmi
DELETED
|
Binary file
|
package/lib/ocaml/char.cmt
DELETED
|
Binary file
|
package/lib/ocaml/char.cmti
DELETED
|
Binary file
|
package/lib/ocaml/char.ml
DELETED
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
(**************************************************************************)
|
|
2
|
-
(* *)
|
|
3
|
-
(* OCaml *)
|
|
4
|
-
(* *)
|
|
5
|
-
(* Xavier Leroy, projet Cristal, INRIA Rocquencourt *)
|
|
6
|
-
(* *)
|
|
7
|
-
(* Copyright 1996 Institut National de Recherche en Informatique et *)
|
|
8
|
-
(* en Automatique. *)
|
|
9
|
-
(* *)
|
|
10
|
-
(* All rights reserved. This file is distributed under the terms of *)
|
|
11
|
-
(* the GNU Lesser General Public License version 2.1, with the *)
|
|
12
|
-
(* special exception on linking described in the file LICENSE. *)
|
|
13
|
-
(* *)
|
|
14
|
-
(**************************************************************************)
|
|
15
|
-
|
|
16
|
-
(* Character operations *)
|
|
17
|
-
|
|
18
|
-
external code: char -> int = "%identity"
|
|
19
|
-
external unsafe_chr: int -> char = "%identity"
|
|
20
|
-
|
|
21
|
-
let chr n =
|
|
22
|
-
if n < 0 || n > 255 then invalid_arg "Char.chr" else unsafe_chr n
|
|
23
|
-
|
|
24
|
-
external bytes_create: int -> bytes = "?create_bytes"
|
|
25
|
-
external bytes_unsafe_set : bytes -> int -> char -> unit
|
|
26
|
-
= "%bytes_unsafe_set"
|
|
27
|
-
external unsafe_to_string : bytes -> string = "%bytes_to_string"
|
|
28
|
-
|
|
29
|
-
let escaped = function
|
|
30
|
-
| '\'' -> "\\'"
|
|
31
|
-
| '\\' -> "\\\\"
|
|
32
|
-
| '\n' -> "\\n"
|
|
33
|
-
| '\t' -> "\\t"
|
|
34
|
-
| '\r' -> "\\r"
|
|
35
|
-
| '\b' -> "\\b"
|
|
36
|
-
| ' ' .. '~' as c ->
|
|
37
|
-
let s = bytes_create 1 in
|
|
38
|
-
bytes_unsafe_set s 0 c;
|
|
39
|
-
unsafe_to_string s
|
|
40
|
-
| c ->
|
|
41
|
-
let n = code c in
|
|
42
|
-
let s = bytes_create 4 in
|
|
43
|
-
bytes_unsafe_set s 0 '\\';
|
|
44
|
-
bytes_unsafe_set s 1 (unsafe_chr (48 + n / 100));
|
|
45
|
-
bytes_unsafe_set s 2 (unsafe_chr (48 + (n / 10) mod 10));
|
|
46
|
-
bytes_unsafe_set s 3 (unsafe_chr (48 + n mod 10));
|
|
47
|
-
unsafe_to_string s
|
|
48
|
-
|
|
49
|
-
let lowercase c =
|
|
50
|
-
if (c >= 'A' && c <= 'Z')
|
|
51
|
-
|| (c >= '\192' && c <= '\214')
|
|
52
|
-
|| (c >= '\216' && c <= '\222')
|
|
53
|
-
then unsafe_chr(code c + 32)
|
|
54
|
-
else c
|
|
55
|
-
|
|
56
|
-
let uppercase c =
|
|
57
|
-
if (c >= 'a' && c <= 'z')
|
|
58
|
-
|| (c >= '\224' && c <= '\246')
|
|
59
|
-
|| (c >= '\248' && c <= '\254')
|
|
60
|
-
then unsafe_chr(code c - 32)
|
|
61
|
-
else c
|
|
62
|
-
|
|
63
|
-
let lowercase_ascii c =
|
|
64
|
-
if (c >= 'A' && c <= 'Z')
|
|
65
|
-
then unsafe_chr(code c + 32)
|
|
66
|
-
else c
|
|
67
|
-
|
|
68
|
-
let uppercase_ascii c =
|
|
69
|
-
if (c >= 'a' && c <= 'z')
|
|
70
|
-
then unsafe_chr(code c - 32)
|
|
71
|
-
else c
|
|
72
|
-
|
|
73
|
-
type t = char
|
|
74
|
-
|
|
75
|
-
let compare c1 c2 = code c1 - code c2
|
|
76
|
-
let equal (c1: t) (c2: t) = compare c1 c2 = 0
|
package/lib/ocaml/char.mli
DELETED
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
(**************************************************************************)
|
|
2
|
-
(* *)
|
|
3
|
-
(* OCaml *)
|
|
4
|
-
(* *)
|
|
5
|
-
(* Xavier Leroy, projet Cristal, INRIA Rocquencourt *)
|
|
6
|
-
(* *)
|
|
7
|
-
(* Copyright 1996 Institut National de Recherche en Informatique et *)
|
|
8
|
-
(* en Automatique. *)
|
|
9
|
-
(* *)
|
|
10
|
-
(* All rights reserved. This file is distributed under the terms of *)
|
|
11
|
-
(* the GNU Lesser General Public License version 2.1, with the *)
|
|
12
|
-
(* special exception on linking described in the file LICENSE. *)
|
|
13
|
-
(* *)
|
|
14
|
-
(**************************************************************************)
|
|
15
|
-
|
|
16
|
-
(** Character operations. *)
|
|
17
|
-
|
|
18
|
-
external code : char -> int = "%identity"
|
|
19
|
-
(** Return the ASCII code of the argument. *)
|
|
20
|
-
|
|
21
|
-
val chr : int -> char
|
|
22
|
-
(** Return the character with the given ASCII code.
|
|
23
|
-
Raise [Invalid_argument "Char.chr"] if the argument is
|
|
24
|
-
outside the range 0--255. *)
|
|
25
|
-
|
|
26
|
-
val escaped : char -> string
|
|
27
|
-
(** Return a string representing the given character,
|
|
28
|
-
with special characters escaped following the lexical conventions
|
|
29
|
-
of OCaml.
|
|
30
|
-
All characters outside the ASCII printable range (32..126) are
|
|
31
|
-
escaped, as well as backslash, double-quote, and single-quote. *)
|
|
32
|
-
|
|
33
|
-
val lowercase : char -> char
|
|
34
|
-
[@@ocaml.deprecated "Use Char.lowercase_ascii instead."]
|
|
35
|
-
(** Convert the given character to its equivalent lowercase character,
|
|
36
|
-
using the ISO Latin-1 (8859-1) character set.
|
|
37
|
-
@deprecated Functions operating on Latin-1 character set are deprecated. *)
|
|
38
|
-
|
|
39
|
-
val uppercase : char -> char
|
|
40
|
-
[@@ocaml.deprecated "Use Char.uppercase_ascii instead."]
|
|
41
|
-
(** Convert the given character to its equivalent uppercase character,
|
|
42
|
-
using the ISO Latin-1 (8859-1) character set.
|
|
43
|
-
@deprecated Functions operating on Latin-1 character set are deprecated. *)
|
|
44
|
-
|
|
45
|
-
val lowercase_ascii : char -> char
|
|
46
|
-
(** Convert the given character to its equivalent lowercase character,
|
|
47
|
-
using the US-ASCII character set.
|
|
48
|
-
@since 4.03.0 *)
|
|
49
|
-
|
|
50
|
-
val uppercase_ascii : char -> char
|
|
51
|
-
(** Convert the given character to its equivalent uppercase character,
|
|
52
|
-
using the US-ASCII character set.
|
|
53
|
-
@since 4.03.0 *)
|
|
54
|
-
|
|
55
|
-
type t = char
|
|
56
|
-
(** An alias for the type of characters. *)
|
|
57
|
-
|
|
58
|
-
val compare: t -> t -> int
|
|
59
|
-
(** The comparison function for characters, with the same specification as
|
|
60
|
-
{!Pervasives.compare}. Along with the type [t], this function [compare]
|
|
61
|
-
allows the module [Char] to be passed as argument to the functors
|
|
62
|
-
{!Set.Make} and {!Map.Make}. *)
|
|
63
|
-
|
|
64
|
-
val equal: t -> t -> bool
|
|
65
|
-
(** The equal function for chars.
|
|
66
|
-
@since 4.03.0 *)
|
|
67
|
-
|
|
68
|
-
(**/**)
|
|
69
|
-
|
|
70
|
-
(* The following is for system use only. Do not call directly. *)
|
|
71
|
-
|
|
72
|
-
external unsafe_chr : int -> char = "%identity"
|
package/lib/ocaml/complex.cmi
DELETED
|
Binary file
|
package/lib/ocaml/complex.cmt
DELETED
|
Binary file
|
package/lib/ocaml/complex.cmti
DELETED
|
Binary file
|
package/lib/ocaml/complex.ml
DELETED
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
(**************************************************************************)
|
|
2
|
-
(* *)
|
|
3
|
-
(* OCaml *)
|
|
4
|
-
(* *)
|
|
5
|
-
(* Xavier Leroy, projet Cristal, INRIA Rocquencourt *)
|
|
6
|
-
(* *)
|
|
7
|
-
(* Copyright 2002 Institut National de Recherche en Informatique et *)
|
|
8
|
-
(* en Automatique. *)
|
|
9
|
-
(* *)
|
|
10
|
-
(* All rights reserved. This file is distributed under the terms of *)
|
|
11
|
-
(* the GNU Lesser General Public License version 2.1, with the *)
|
|
12
|
-
(* special exception on linking described in the file LICENSE. *)
|
|
13
|
-
(* *)
|
|
14
|
-
(**************************************************************************)
|
|
15
|
-
|
|
16
|
-
(* Complex numbers *)
|
|
17
|
-
|
|
18
|
-
type t = { re: float; im: float }
|
|
19
|
-
|
|
20
|
-
let zero = { re = 0.0; im = 0.0 }
|
|
21
|
-
let one = { re = 1.0; im = 0.0 }
|
|
22
|
-
let i = { re = 0.0; im = 1.0 }
|
|
23
|
-
|
|
24
|
-
let add x y = { re = x.re +. y.re; im = x.im +. y.im }
|
|
25
|
-
|
|
26
|
-
let sub x y = { re = x.re -. y.re; im = x.im -. y.im }
|
|
27
|
-
|
|
28
|
-
let neg x = { re = -. x.re; im = -. x.im }
|
|
29
|
-
|
|
30
|
-
let conj x = { re = x.re; im = -. x.im }
|
|
31
|
-
|
|
32
|
-
let mul x y = { re = x.re *. y.re -. x.im *. y.im;
|
|
33
|
-
im = x.re *. y.im +. x.im *. y.re }
|
|
34
|
-
|
|
35
|
-
let div x y =
|
|
36
|
-
if abs_float y.re >= abs_float y.im then
|
|
37
|
-
let r = y.im /. y.re in
|
|
38
|
-
let d = y.re +. r *. y.im in
|
|
39
|
-
{ re = (x.re +. r *. x.im) /. d;
|
|
40
|
-
im = (x.im -. r *. x.re) /. d }
|
|
41
|
-
else
|
|
42
|
-
let r = y.re /. y.im in
|
|
43
|
-
let d = y.im +. r *. y.re in
|
|
44
|
-
{ re = (r *. x.re +. x.im) /. d;
|
|
45
|
-
im = (r *. x.im -. x.re) /. d }
|
|
46
|
-
|
|
47
|
-
let inv x = div one x
|
|
48
|
-
|
|
49
|
-
let norm2 x = x.re *. x.re +. x.im *. x.im
|
|
50
|
-
|
|
51
|
-
let norm x =
|
|
52
|
-
(* Watch out for overflow in computing re^2 + im^2 *)
|
|
53
|
-
let r = abs_float x.re and i = abs_float x.im in
|
|
54
|
-
if r = 0.0 then i
|
|
55
|
-
else if i = 0.0 then r
|
|
56
|
-
else if r >= i then
|
|
57
|
-
let q = i /. r in r *. sqrt(1.0 +. q *. q)
|
|
58
|
-
else
|
|
59
|
-
let q = r /. i in i *. sqrt(1.0 +. q *. q)
|
|
60
|
-
|
|
61
|
-
let arg x = atan2 x.im x.re
|
|
62
|
-
|
|
63
|
-
let polar n a = { re = cos a *. n; im = sin a *. n }
|
|
64
|
-
|
|
65
|
-
let sqrt x =
|
|
66
|
-
if x.re = 0.0 && x.im = 0.0 then { re = 0.0; im = 0.0 }
|
|
67
|
-
else begin
|
|
68
|
-
let r = abs_float x.re and i = abs_float x.im in
|
|
69
|
-
let w =
|
|
70
|
-
if r >= i then begin
|
|
71
|
-
let q = i /. r in
|
|
72
|
-
sqrt(r) *. sqrt(0.5 *. (1.0 +. sqrt(1.0 +. q *. q)))
|
|
73
|
-
end else begin
|
|
74
|
-
let q = r /. i in
|
|
75
|
-
sqrt(i) *. sqrt(0.5 *. (q +. sqrt(1.0 +. q *. q)))
|
|
76
|
-
end in
|
|
77
|
-
if x.re >= 0.0
|
|
78
|
-
then { re = w; im = 0.5 *. x.im /. w }
|
|
79
|
-
else { re = 0.5 *. i /. w; im = if x.im >= 0.0 then w else -. w }
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
let exp x =
|
|
83
|
-
let e = exp x.re in { re = e *. cos x.im; im = e *. sin x.im }
|
|
84
|
-
|
|
85
|
-
let log x = { re = log (norm x); im = atan2 x.im x.re }
|
|
86
|
-
|
|
87
|
-
let pow x y = exp (mul y (log x))
|
package/lib/ocaml/complex.mli
DELETED
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
(**************************************************************************)
|
|
2
|
-
(* *)
|
|
3
|
-
(* OCaml *)
|
|
4
|
-
(* *)
|
|
5
|
-
(* Xavier Leroy, projet Cristal, INRIA Rocquencourt *)
|
|
6
|
-
(* *)
|
|
7
|
-
(* Copyright 2002 Institut National de Recherche en Informatique et *)
|
|
8
|
-
(* en Automatique. *)
|
|
9
|
-
(* *)
|
|
10
|
-
(* All rights reserved. This file is distributed under the terms of *)
|
|
11
|
-
(* the GNU Lesser General Public License version 2.1, with the *)
|
|
12
|
-
(* special exception on linking described in the file LICENSE. *)
|
|
13
|
-
(* *)
|
|
14
|
-
(**************************************************************************)
|
|
15
|
-
|
|
16
|
-
(** Complex numbers.
|
|
17
|
-
|
|
18
|
-
This module provides arithmetic operations on complex numbers.
|
|
19
|
-
Complex numbers are represented by their real and imaginary parts
|
|
20
|
-
(cartesian representation). Each part is represented by a
|
|
21
|
-
double-precision floating-point number (type [float]). *)
|
|
22
|
-
|
|
23
|
-
type t = { re: float; im: float }
|
|
24
|
-
(** The type of complex numbers. [re] is the real part and [im] the
|
|
25
|
-
imaginary part. *)
|
|
26
|
-
|
|
27
|
-
val zero: t
|
|
28
|
-
(** The complex number [0]. *)
|
|
29
|
-
|
|
30
|
-
val one: t
|
|
31
|
-
(** The complex number [1]. *)
|
|
32
|
-
|
|
33
|
-
val i: t
|
|
34
|
-
(** The complex number [i]. *)
|
|
35
|
-
|
|
36
|
-
val neg: t -> t
|
|
37
|
-
(** Unary negation. *)
|
|
38
|
-
|
|
39
|
-
val conj: t -> t
|
|
40
|
-
(** Conjugate: given the complex [x + i.y], returns [x - i.y]. *)
|
|
41
|
-
|
|
42
|
-
val add: t -> t -> t
|
|
43
|
-
(** Addition *)
|
|
44
|
-
|
|
45
|
-
val sub: t -> t -> t
|
|
46
|
-
(** Subtraction *)
|
|
47
|
-
|
|
48
|
-
val mul: t -> t -> t
|
|
49
|
-
(** Multiplication *)
|
|
50
|
-
|
|
51
|
-
val inv: t -> t
|
|
52
|
-
(** Multiplicative inverse ([1/z]). *)
|
|
53
|
-
|
|
54
|
-
val div: t -> t -> t
|
|
55
|
-
(** Division *)
|
|
56
|
-
|
|
57
|
-
val sqrt: t -> t
|
|
58
|
-
(** Square root. The result [x + i.y] is such that [x > 0] or
|
|
59
|
-
[x = 0] and [y >= 0].
|
|
60
|
-
This function has a discontinuity along the negative real axis. *)
|
|
61
|
-
|
|
62
|
-
val norm2: t -> float
|
|
63
|
-
(** Norm squared: given [x + i.y], returns [x^2 + y^2]. *)
|
|
64
|
-
|
|
65
|
-
val norm: t -> float
|
|
66
|
-
(** Norm: given [x + i.y], returns [sqrt(x^2 + y^2)]. *)
|
|
67
|
-
|
|
68
|
-
val arg: t -> float
|
|
69
|
-
(** Argument. The argument of a complex number is the angle
|
|
70
|
-
in the complex plane between the positive real axis and a line
|
|
71
|
-
passing through zero and the number. This angle ranges from
|
|
72
|
-
[-pi] to [pi]. This function has a discontinuity along the
|
|
73
|
-
negative real axis. *)
|
|
74
|
-
|
|
75
|
-
val polar: float -> float -> t
|
|
76
|
-
(** [polar norm arg] returns the complex having norm [norm]
|
|
77
|
-
and argument [arg]. *)
|
|
78
|
-
|
|
79
|
-
val exp: t -> t
|
|
80
|
-
(** Exponentiation. [exp z] returns [e] to the [z] power. *)
|
|
81
|
-
|
|
82
|
-
val log: t -> t
|
|
83
|
-
(** Natural logarithm (in base [e]). *)
|
|
84
|
-
|
|
85
|
-
val pow: t -> t -> t
|
|
86
|
-
(** Power function. [pow z1 z2] returns [z1] to the [z2] power. *)
|
package/lib/ocaml/digest.cmi
DELETED
|
Binary file
|
package/lib/ocaml/digest.cmt
DELETED
|
Binary file
|
package/lib/ocaml/digest.cmti
DELETED
|
Binary file
|
package/lib/ocaml/digest.ml
DELETED
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
(**************************************************************************)
|
|
2
|
-
(* *)
|
|
3
|
-
(* OCaml *)
|
|
4
|
-
(* *)
|
|
5
|
-
(* Xavier Leroy, projet Cristal, INRIA Rocquencourt *)
|
|
6
|
-
(* *)
|
|
7
|
-
(* Copyright 1996 Institut National de Recherche en Informatique et *)
|
|
8
|
-
(* en Automatique. *)
|
|
9
|
-
(* *)
|
|
10
|
-
(* All rights reserved. This file is distributed under the terms of *)
|
|
11
|
-
(* the GNU Lesser General Public License version 2.1, with the *)
|
|
12
|
-
(* special exception on linking described in the file LICENSE. *)
|
|
13
|
-
(* *)
|
|
14
|
-
(**************************************************************************)
|
|
15
|
-
|
|
16
|
-
(* Message digest (MD5) *)
|
|
17
|
-
|
|
18
|
-
type t = string
|
|
19
|
-
|
|
20
|
-
let compare = String.compare
|
|
21
|
-
let equal = String.equal
|
|
22
|
-
|
|
23
|
-
external unsafe_string: string -> int -> int -> t = "?md5_string"
|
|
24
|
-
|
|
25
|
-
let string str =
|
|
26
|
-
unsafe_string str 0 (String.length str)
|
|
27
|
-
|
|
28
|
-
let bytes b = string (Bytes.unsafe_to_string b)
|
|
29
|
-
|
|
30
|
-
let substring str ofs len =
|
|
31
|
-
if ofs < 0 || len < 0 || ofs > String.length str - len
|
|
32
|
-
then invalid_arg "Digest.substring"
|
|
33
|
-
else unsafe_string str ofs len
|
|
34
|
-
|
|
35
|
-
let subbytes b ofs len = substring (Bytes.unsafe_to_string b) ofs len
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
let char_hex n =
|
|
40
|
-
Char.unsafe_chr (n + if n < 10 then Char.code '0' else (Char.code 'a' - 10))
|
|
41
|
-
|
|
42
|
-
let to_hex d =
|
|
43
|
-
if String.length d <> 16 then invalid_arg "Digest.to_hex";
|
|
44
|
-
let result = Bytes.create 32 in
|
|
45
|
-
for i = 0 to 15 do
|
|
46
|
-
let x = Char.code d.[i] in
|
|
47
|
-
Bytes.unsafe_set result (i*2) (char_hex (x lsr 4));
|
|
48
|
-
Bytes.unsafe_set result (i*2+1) (char_hex (x land 0x0f));
|
|
49
|
-
done;
|
|
50
|
-
Bytes.unsafe_to_string result
|
|
51
|
-
|
|
52
|
-
let from_hex s =
|
|
53
|
-
if String.length s <> 32 then invalid_arg "Digest.from_hex";
|
|
54
|
-
let digit c =
|
|
55
|
-
match c with
|
|
56
|
-
| '0'..'9' -> Char.code c - Char.code '0'
|
|
57
|
-
| 'A'..'F' -> Char.code c - Char.code 'A' + 10
|
|
58
|
-
| 'a'..'f' -> Char.code c - Char.code 'a' + 10
|
|
59
|
-
| _ -> raise (Invalid_argument "Digest.from_hex")
|
|
60
|
-
in
|
|
61
|
-
let byte i = digit s.[i] lsl 4 + digit s.[i+1] in
|
|
62
|
-
let result = Bytes.create 16 in
|
|
63
|
-
for i = 0 to 15 do
|
|
64
|
-
Bytes.set result i (Char.chr (byte (2 * i)));
|
|
65
|
-
done;
|
|
66
|
-
Bytes.unsafe_to_string result
|