@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.
Files changed (668) hide show
  1. package/CHANGELOG.md +204 -2
  2. package/README.md +1 -1
  3. package/darwinarm64/bsb_helper.exe +0 -0
  4. package/darwinarm64/bsc.exe +0 -0
  5. package/darwinarm64/ninja.exe +0 -0
  6. package/darwinarm64/rescript.exe +0 -0
  7. package/docs/docson/build-schema.json +497 -516
  8. package/lib/4.06.1/bsb_helper.ml +6 -1
  9. package/lib/4.06.1/rescript.ml +1414 -1191
  10. package/lib/4.06.1/whole_compiler.ml +69844 -69069
  11. package/lib/es6/belt_internalBuckets.js +13 -13
  12. package/lib/es6/caml_float.js +5 -5
  13. package/lib/es6/caml_format.js +1 -1
  14. package/lib/es6/caml_int64.js +1 -1
  15. package/lib/es6/caml_obj.js +26 -6
  16. package/lib/es6/complex.js +4 -4
  17. package/lib/es6/js.js +3 -0
  18. package/lib/es6/js_promise2.js +16 -0
  19. package/lib/es6/jsxPPXReactSupport.js +26 -0
  20. package/lib/js/belt_internalBuckets.js +13 -13
  21. package/lib/js/caml_float.js +5 -5
  22. package/lib/js/caml_format.js +1 -1
  23. package/lib/js/caml_int64.js +1 -1
  24. package/lib/js/caml_obj.js +26 -6
  25. package/lib/js/complex.js +4 -4
  26. package/lib/js/js.js +3 -0
  27. package/lib/js/js_promise2.js +14 -0
  28. package/lib/js/jsxPPXReactSupport.js +24 -0
  29. package/package.json +2 -1
  30. package/scripts/buildNinjaBinary.js +29 -0
  31. package/scripts/install.js +7 -3
  32. package/scripts/installUtils.js +9 -1
  33. package/scripts/rescript_arg.js +2 -4
  34. package/scripts/rescript_format.js +73 -39
  35. package/win32/refmt.exe +0 -0
  36. package/darwin/bsb_helper.exe +0 -0
  37. package/darwin/bsc.exe +0 -0
  38. package/darwin/ninja.COPYING +0 -202
  39. package/darwin/ninja.exe +0 -0
  40. package/darwin/rescript.exe +0 -0
  41. package/darwinarm64/ninja.COPYING +0 -202
  42. package/freebsd/ninja.COPYING +0 -202
  43. package/lib/ocaml/arg.cmi +0 -0
  44. package/lib/ocaml/arg.cmt +0 -0
  45. package/lib/ocaml/arg.cmti +0 -0
  46. package/lib/ocaml/arg.ml +0 -359
  47. package/lib/ocaml/arg.mli +0 -185
  48. package/lib/ocaml/array.cmi +0 -0
  49. package/lib/ocaml/array.cmt +0 -0
  50. package/lib/ocaml/array.cmti +0 -0
  51. package/lib/ocaml/array.ml +0 -307
  52. package/lib/ocaml/array.mli +0 -275
  53. package/lib/ocaml/arrayLabels.cmi +0 -0
  54. package/lib/ocaml/arrayLabels.cmt +0 -0
  55. package/lib/ocaml/arrayLabels.cmti +0 -0
  56. package/lib/ocaml/arrayLabels.ml +0 -307
  57. package/lib/ocaml/arrayLabels.mli +0 -276
  58. package/lib/ocaml/belt.cmi +0 -0
  59. package/lib/ocaml/belt.cmt +0 -0
  60. package/lib/ocaml/belt.ml +0 -352
  61. package/lib/ocaml/belt_Array.cmi +0 -0
  62. package/lib/ocaml/belt_Array.cmt +0 -0
  63. package/lib/ocaml/belt_Array.cmti +0 -0
  64. package/lib/ocaml/belt_Array.ml +0 -525
  65. package/lib/ocaml/belt_Array.mli +0 -707
  66. package/lib/ocaml/belt_Float.cmi +0 -0
  67. package/lib/ocaml/belt_Float.cmt +0 -0
  68. package/lib/ocaml/belt_Float.cmti +0 -0
  69. package/lib/ocaml/belt_Float.ml +0 -50
  70. package/lib/ocaml/belt_Float.mli +0 -106
  71. package/lib/ocaml/belt_HashMap.cmi +0 -0
  72. package/lib/ocaml/belt_HashMap.cmt +0 -0
  73. package/lib/ocaml/belt_HashMap.cmti +0 -0
  74. package/lib/ocaml/belt_HashMap.ml +0 -226
  75. package/lib/ocaml/belt_HashMap.mli +0 -436
  76. package/lib/ocaml/belt_HashMapInt.cmi +0 -0
  77. package/lib/ocaml/belt_HashMapInt.cmt +0 -0
  78. package/lib/ocaml/belt_HashMapInt.cmti +0 -0
  79. package/lib/ocaml/belt_HashMapInt.ml +0 -206
  80. package/lib/ocaml/belt_HashMapInt.mli +0 -50
  81. package/lib/ocaml/belt_HashMapString.cmi +0 -0
  82. package/lib/ocaml/belt_HashMapString.cmt +0 -0
  83. package/lib/ocaml/belt_HashMapString.cmti +0 -0
  84. package/lib/ocaml/belt_HashMapString.ml +0 -206
  85. package/lib/ocaml/belt_HashMapString.mli +0 -50
  86. package/lib/ocaml/belt_HashSet.cmi +0 -0
  87. package/lib/ocaml/belt_HashSet.cmt +0 -0
  88. package/lib/ocaml/belt_HashSet.cmti +0 -0
  89. package/lib/ocaml/belt_HashSet.ml +0 -196
  90. package/lib/ocaml/belt_HashSet.mli +0 -125
  91. package/lib/ocaml/belt_HashSetInt.cmi +0 -0
  92. package/lib/ocaml/belt_HashSetInt.cmt +0 -0
  93. package/lib/ocaml/belt_HashSetInt.cmti +0 -0
  94. package/lib/ocaml/belt_HashSetInt.ml +0 -155
  95. package/lib/ocaml/belt_HashSetInt.mli +0 -74
  96. package/lib/ocaml/belt_HashSetString.cmi +0 -0
  97. package/lib/ocaml/belt_HashSetString.cmt +0 -0
  98. package/lib/ocaml/belt_HashSetString.cmti +0 -0
  99. package/lib/ocaml/belt_HashSetString.ml +0 -156
  100. package/lib/ocaml/belt_HashSetString.mli +0 -74
  101. package/lib/ocaml/belt_Id.cmi +0 -0
  102. package/lib/ocaml/belt_Id.cmt +0 -0
  103. package/lib/ocaml/belt_Id.cmti +0 -0
  104. package/lib/ocaml/belt_Id.ml +0 -133
  105. package/lib/ocaml/belt_Id.mli +0 -171
  106. package/lib/ocaml/belt_Int.cmi +0 -0
  107. package/lib/ocaml/belt_Int.cmt +0 -0
  108. package/lib/ocaml/belt_Int.cmti +0 -0
  109. package/lib/ocaml/belt_Int.ml +0 -50
  110. package/lib/ocaml/belt_Int.mli +0 -103
  111. package/lib/ocaml/belt_List.cmi +0 -0
  112. package/lib/ocaml/belt_List.cmt +0 -0
  113. package/lib/ocaml/belt_List.cmti +0 -0
  114. package/lib/ocaml/belt_List.ml +0 -803
  115. package/lib/ocaml/belt_List.mli +0 -844
  116. package/lib/ocaml/belt_Map.cmi +0 -0
  117. package/lib/ocaml/belt_Map.cmt +0 -0
  118. package/lib/ocaml/belt_Map.cmti +0 -0
  119. package/lib/ocaml/belt_Map.ml +0 -170
  120. package/lib/ocaml/belt_Map.mli +0 -496
  121. package/lib/ocaml/belt_MapDict.cmi +0 -0
  122. package/lib/ocaml/belt_MapDict.cmt +0 -0
  123. package/lib/ocaml/belt_MapDict.cmti +0 -0
  124. package/lib/ocaml/belt_MapDict.ml +0 -278
  125. package/lib/ocaml/belt_MapDict.mli +0 -268
  126. package/lib/ocaml/belt_MapInt.cmi +0 -0
  127. package/lib/ocaml/belt_MapInt.cmt +0 -0
  128. package/lib/ocaml/belt_MapInt.cmti +0 -0
  129. package/lib/ocaml/belt_MapInt.ml +0 -169
  130. package/lib/ocaml/belt_MapInt.mli +0 -187
  131. package/lib/ocaml/belt_MapString.cmi +0 -0
  132. package/lib/ocaml/belt_MapString.cmt +0 -0
  133. package/lib/ocaml/belt_MapString.cmti +0 -0
  134. package/lib/ocaml/belt_MapString.ml +0 -169
  135. package/lib/ocaml/belt_MapString.mli +0 -187
  136. package/lib/ocaml/belt_MutableMap.cmi +0 -0
  137. package/lib/ocaml/belt_MutableMap.cmt +0 -0
  138. package/lib/ocaml/belt_MutableMap.cmti +0 -0
  139. package/lib/ocaml/belt_MutableMap.ml +0 -241
  140. package/lib/ocaml/belt_MutableMap.mli +0 -145
  141. package/lib/ocaml/belt_MutableMapInt.cmi +0 -0
  142. package/lib/ocaml/belt_MutableMapInt.cmt +0 -0
  143. package/lib/ocaml/belt_MutableMapInt.cmti +0 -0
  144. package/lib/ocaml/belt_MutableMapInt.ml +0 -172
  145. package/lib/ocaml/belt_MutableMapInt.mli +0 -135
  146. package/lib/ocaml/belt_MutableMapString.cmi +0 -0
  147. package/lib/ocaml/belt_MutableMapString.cmt +0 -0
  148. package/lib/ocaml/belt_MutableMapString.cmti +0 -0
  149. package/lib/ocaml/belt_MutableMapString.ml +0 -172
  150. package/lib/ocaml/belt_MutableMapString.mli +0 -135
  151. package/lib/ocaml/belt_MutableQueue.cmi +0 -0
  152. package/lib/ocaml/belt_MutableQueue.cmt +0 -0
  153. package/lib/ocaml/belt_MutableQueue.cmti +0 -0
  154. package/lib/ocaml/belt_MutableQueue.ml +0 -222
  155. package/lib/ocaml/belt_MutableQueue.mli +0 -116
  156. package/lib/ocaml/belt_MutableSet.cmi +0 -0
  157. package/lib/ocaml/belt_MutableSet.cmt +0 -0
  158. package/lib/ocaml/belt_MutableSet.cmti +0 -0
  159. package/lib/ocaml/belt_MutableSet.ml +0 -371
  160. package/lib/ocaml/belt_MutableSet.mli +0 -617
  161. package/lib/ocaml/belt_MutableSetInt.cmi +0 -0
  162. package/lib/ocaml/belt_MutableSetInt.cmt +0 -0
  163. package/lib/ocaml/belt_MutableSetInt.cmti +0 -0
  164. package/lib/ocaml/belt_MutableSetInt.ml +0 -342
  165. package/lib/ocaml/belt_MutableSetInt.mli +0 -124
  166. package/lib/ocaml/belt_MutableSetString.cmi +0 -0
  167. package/lib/ocaml/belt_MutableSetString.cmt +0 -0
  168. package/lib/ocaml/belt_MutableSetString.cmti +0 -0
  169. package/lib/ocaml/belt_MutableSetString.ml +0 -342
  170. package/lib/ocaml/belt_MutableSetString.mli +0 -124
  171. package/lib/ocaml/belt_MutableStack.cmi +0 -0
  172. package/lib/ocaml/belt_MutableStack.cmt +0 -0
  173. package/lib/ocaml/belt_MutableStack.cmti +0 -0
  174. package/lib/ocaml/belt_MutableStack.ml +0 -106
  175. package/lib/ocaml/belt_MutableStack.mli +0 -63
  176. package/lib/ocaml/belt_Option.cmi +0 -0
  177. package/lib/ocaml/belt_Option.cmt +0 -0
  178. package/lib/ocaml/belt_Option.cmti +0 -0
  179. package/lib/ocaml/belt_Option.ml +0 -93
  180. package/lib/ocaml/belt_Option.mli +0 -270
  181. package/lib/ocaml/belt_Range.cmi +0 -0
  182. package/lib/ocaml/belt_Range.cmt +0 -0
  183. package/lib/ocaml/belt_Range.cmti +0 -0
  184. package/lib/ocaml/belt_Range.ml +0 -76
  185. package/lib/ocaml/belt_Range.mli +0 -114
  186. package/lib/ocaml/belt_Result.cmi +0 -0
  187. package/lib/ocaml/belt_Result.cmt +0 -0
  188. package/lib/ocaml/belt_Result.cmti +0 -0
  189. package/lib/ocaml/belt_Result.ml +0 -75
  190. package/lib/ocaml/belt_Result.mli +0 -205
  191. package/lib/ocaml/belt_Set.cmi +0 -0
  192. package/lib/ocaml/belt_Set.cmt +0 -0
  193. package/lib/ocaml/belt_Set.cmti +0 -0
  194. package/lib/ocaml/belt_Set.cppo.ml +0 -205
  195. package/lib/ocaml/belt_Set.cppo.mli +0 -153
  196. package/lib/ocaml/belt_Set.ml +0 -164
  197. package/lib/ocaml/belt_Set.mli +0 -523
  198. package/lib/ocaml/belt_SetDict.cmi +0 -0
  199. package/lib/ocaml/belt_SetDict.cmt +0 -0
  200. package/lib/ocaml/belt_SetDict.cmti +0 -0
  201. package/lib/ocaml/belt_SetDict.ml +0 -237
  202. package/lib/ocaml/belt_SetDict.mli +0 -567
  203. package/lib/ocaml/belt_SetInt.cmi +0 -0
  204. package/lib/ocaml/belt_SetInt.cmt +0 -0
  205. package/lib/ocaml/belt_SetInt.cmti +0 -0
  206. package/lib/ocaml/belt_SetInt.ml +0 -201
  207. package/lib/ocaml/belt_SetInt.mli +0 -151
  208. package/lib/ocaml/belt_SetString.cmi +0 -0
  209. package/lib/ocaml/belt_SetString.cmt +0 -0
  210. package/lib/ocaml/belt_SetString.cmti +0 -0
  211. package/lib/ocaml/belt_SetString.ml +0 -201
  212. package/lib/ocaml/belt_SetString.mli +0 -151
  213. package/lib/ocaml/belt_SortArray.cmi +0 -0
  214. package/lib/ocaml/belt_SortArray.cmt +0 -0
  215. package/lib/ocaml/belt_SortArray.cmti +0 -0
  216. package/lib/ocaml/belt_SortArray.ml +0 -322
  217. package/lib/ocaml/belt_SortArray.mli +0 -146
  218. package/lib/ocaml/belt_SortArrayInt.cmi +0 -0
  219. package/lib/ocaml/belt_SortArrayInt.cmt +0 -0
  220. package/lib/ocaml/belt_SortArrayInt.cmti +0 -0
  221. package/lib/ocaml/belt_SortArrayInt.ml +0 -263
  222. package/lib/ocaml/belt_SortArrayInt.mli +0 -93
  223. package/lib/ocaml/belt_SortArrayString.cmi +0 -0
  224. package/lib/ocaml/belt_SortArrayString.cmt +0 -0
  225. package/lib/ocaml/belt_SortArrayString.cmti +0 -0
  226. package/lib/ocaml/belt_SortArrayString.ml +0 -263
  227. package/lib/ocaml/belt_SortArrayString.mli +0 -93
  228. package/lib/ocaml/belt_internalAVLset.cmt +0 -0
  229. package/lib/ocaml/belt_internalAVLset.cmti +0 -0
  230. package/lib/ocaml/belt_internalAVLset.ml +0 -665
  231. package/lib/ocaml/belt_internalAVLset.mli +0 -124
  232. package/lib/ocaml/belt_internalAVLtree.cmt +0 -0
  233. package/lib/ocaml/belt_internalAVLtree.cmti +0 -0
  234. package/lib/ocaml/belt_internalAVLtree.ml +0 -762
  235. package/lib/ocaml/belt_internalAVLtree.mli +0 -215
  236. package/lib/ocaml/belt_internalBuckets.cmt +0 -0
  237. package/lib/ocaml/belt_internalBuckets.cmti +0 -0
  238. package/lib/ocaml/belt_internalBuckets.ml +0 -218
  239. package/lib/ocaml/belt_internalBuckets.mli +0 -57
  240. package/lib/ocaml/belt_internalBucketsType.cmt +0 -0
  241. package/lib/ocaml/belt_internalBucketsType.cmti +0 -0
  242. package/lib/ocaml/belt_internalBucketsType.ml +0 -59
  243. package/lib/ocaml/belt_internalBucketsType.mli +0 -46
  244. package/lib/ocaml/belt_internalMapInt.cmt +0 -0
  245. package/lib/ocaml/belt_internalMapInt.ml +0 -227
  246. package/lib/ocaml/belt_internalMapString.cmt +0 -0
  247. package/lib/ocaml/belt_internalMapString.ml +0 -227
  248. package/lib/ocaml/belt_internalSetBuckets.cmt +0 -0
  249. package/lib/ocaml/belt_internalSetBuckets.cmti +0 -0
  250. package/lib/ocaml/belt_internalSetBuckets.ml +0 -157
  251. package/lib/ocaml/belt_internalSetBuckets.mli +0 -47
  252. package/lib/ocaml/belt_internalSetInt.cmt +0 -0
  253. package/lib/ocaml/belt_internalSetInt.ml +0 -129
  254. package/lib/ocaml/belt_internalSetString.cmt +0 -0
  255. package/lib/ocaml/belt_internalSetString.ml +0 -129
  256. package/lib/ocaml/belt_internals.cmti +0 -0
  257. package/lib/ocaml/belt_internals.mli +0 -79
  258. package/lib/ocaml/buffer.cmi +0 -0
  259. package/lib/ocaml/buffer.cmt +0 -0
  260. package/lib/ocaml/buffer.cmti +0 -0
  261. package/lib/ocaml/buffer.ml +0 -250
  262. package/lib/ocaml/buffer.mli +0 -149
  263. package/lib/ocaml/bytes.cmi +0 -0
  264. package/lib/ocaml/bytes.cmt +0 -0
  265. package/lib/ocaml/bytes.cmti +0 -0
  266. package/lib/ocaml/bytes.ml +0 -431
  267. package/lib/ocaml/bytes.mli +0 -430
  268. package/lib/ocaml/bytesLabels.cmi +0 -0
  269. package/lib/ocaml/bytesLabels.cmt +0 -0
  270. package/lib/ocaml/bytesLabels.cmti +0 -0
  271. package/lib/ocaml/bytesLabels.ml +0 -428
  272. package/lib/ocaml/bytesLabels.mli +0 -276
  273. package/lib/ocaml/callback.cmi +0 -0
  274. package/lib/ocaml/callback.cmt +0 -0
  275. package/lib/ocaml/callback.cmti +0 -0
  276. package/lib/ocaml/callback.ml +0 -20
  277. package/lib/ocaml/callback.mli +0 -34
  278. package/lib/ocaml/camlinternalLazy.cmi +0 -0
  279. package/lib/ocaml/camlinternalLazy.cmt +0 -0
  280. package/lib/ocaml/camlinternalLazy.cmti +0 -0
  281. package/lib/ocaml/camlinternalLazy.ml +0 -89
  282. package/lib/ocaml/camlinternalLazy.mli +0 -27
  283. package/lib/ocaml/camlinternalMod.cmi +0 -0
  284. package/lib/ocaml/camlinternalMod.cmt +0 -0
  285. package/lib/ocaml/camlinternalMod.cmti +0 -0
  286. package/lib/ocaml/camlinternalMod.ml +0 -21
  287. package/lib/ocaml/camlinternalMod.mli +0 -25
  288. package/lib/ocaml/char.cmi +0 -0
  289. package/lib/ocaml/char.cmt +0 -0
  290. package/lib/ocaml/char.cmti +0 -0
  291. package/lib/ocaml/char.ml +0 -76
  292. package/lib/ocaml/char.mli +0 -72
  293. package/lib/ocaml/complex.cmi +0 -0
  294. package/lib/ocaml/complex.cmt +0 -0
  295. package/lib/ocaml/complex.cmti +0 -0
  296. package/lib/ocaml/complex.ml +0 -87
  297. package/lib/ocaml/complex.mli +0 -86
  298. package/lib/ocaml/digest.cmi +0 -0
  299. package/lib/ocaml/digest.cmt +0 -0
  300. package/lib/ocaml/digest.cmti +0 -0
  301. package/lib/ocaml/digest.ml +0 -66
  302. package/lib/ocaml/digest.mli +0 -68
  303. package/lib/ocaml/dom.cmi +0 -0
  304. package/lib/ocaml/dom.cmt +0 -0
  305. package/lib/ocaml/dom.ml +0 -296
  306. package/lib/ocaml/dom_storage.cmi +0 -0
  307. package/lib/ocaml/dom_storage.cmt +0 -0
  308. package/lib/ocaml/dom_storage.ml +0 -22
  309. package/lib/ocaml/dom_storage2.cmi +0 -0
  310. package/lib/ocaml/dom_storage2.cmt +0 -0
  311. package/lib/ocaml/dom_storage2.ml +0 -11
  312. package/lib/ocaml/filename.cmi +0 -0
  313. package/lib/ocaml/filename.cmt +0 -0
  314. package/lib/ocaml/filename.cmti +0 -0
  315. package/lib/ocaml/filename.ml +0 -233
  316. package/lib/ocaml/filename.mli +0 -134
  317. package/lib/ocaml/genlex.cmi +0 -0
  318. package/lib/ocaml/genlex.cmt +0 -0
  319. package/lib/ocaml/genlex.cmti +0 -0
  320. package/lib/ocaml/genlex.ml +0 -201
  321. package/lib/ocaml/genlex.mli +0 -73
  322. package/lib/ocaml/hashmap.cppo.ml +0 -214
  323. package/lib/ocaml/hashmap.cppo.mli +0 -54
  324. package/lib/ocaml/hashset.cppo.ml +0 -165
  325. package/lib/ocaml/hashset.cppo.mli +0 -77
  326. package/lib/ocaml/hashtbl.cmi +0 -0
  327. package/lib/ocaml/hashtbl.cmt +0 -0
  328. package/lib/ocaml/hashtbl.cmti +0 -0
  329. package/lib/ocaml/hashtbl.ml +0 -541
  330. package/lib/ocaml/hashtbl.mli +0 -411
  331. package/lib/ocaml/hashtblLabels.cmi +0 -0
  332. package/lib/ocaml/hashtblLabels.cmt +0 -0
  333. package/lib/ocaml/hashtblLabels.ml +0 -130
  334. package/lib/ocaml/int32.cmi +0 -0
  335. package/lib/ocaml/int32.cmt +0 -0
  336. package/lib/ocaml/int32.cmti +0 -0
  337. package/lib/ocaml/int32.ml +0 -64
  338. package/lib/ocaml/int32.mli +0 -186
  339. package/lib/ocaml/int64.cmi +0 -0
  340. package/lib/ocaml/int64.cmt +0 -0
  341. package/lib/ocaml/int64.cmti +0 -0
  342. package/lib/ocaml/int64.ml +0 -72
  343. package/lib/ocaml/int64.mli +0 -197
  344. package/lib/ocaml/internal_map.cppo.ml +0 -230
  345. package/lib/ocaml/internal_set.cppo.ml +0 -134
  346. package/lib/ocaml/js.cmi +0 -0
  347. package/lib/ocaml/js.cmt +0 -0
  348. package/lib/ocaml/js.ml +0 -313
  349. package/lib/ocaml/js_OO.cmi +0 -0
  350. package/lib/ocaml/js_OO.cmt +0 -0
  351. package/lib/ocaml/js_OO.ml +0 -180
  352. package/lib/ocaml/js_array.cmi +0 -0
  353. package/lib/ocaml/js_array.cmt +0 -0
  354. package/lib/ocaml/js_array.ml +0 -970
  355. package/lib/ocaml/js_array2.cmi +0 -0
  356. package/lib/ocaml/js_array2.cmt +0 -0
  357. package/lib/ocaml/js_array2.ml +0 -1065
  358. package/lib/ocaml/js_bigint.cmi +0 -0
  359. package/lib/ocaml/js_bigint.cmt +0 -0
  360. package/lib/ocaml/js_bigint.ml +0 -3
  361. package/lib/ocaml/js_cast.cmi +0 -0
  362. package/lib/ocaml/js_cast.cmt +0 -0
  363. package/lib/ocaml/js_cast.cmti +0 -0
  364. package/lib/ocaml/js_cast.ml +0 -29
  365. package/lib/ocaml/js_cast.mli +0 -45
  366. package/lib/ocaml/js_console.cmi +0 -0
  367. package/lib/ocaml/js_console.cmt +0 -0
  368. package/lib/ocaml/js_console.ml +0 -51
  369. package/lib/ocaml/js_date.cmi +0 -0
  370. package/lib/ocaml/js_date.cmt +0 -0
  371. package/lib/ocaml/js_date.ml +0 -1263
  372. package/lib/ocaml/js_dict.cmi +0 -0
  373. package/lib/ocaml/js_dict.cmt +0 -0
  374. package/lib/ocaml/js_dict.cmti +0 -0
  375. package/lib/ocaml/js_dict.ml +0 -114
  376. package/lib/ocaml/js_dict.mli +0 -152
  377. package/lib/ocaml/js_exn.cmi +0 -0
  378. package/lib/ocaml/js_exn.cmt +0 -0
  379. package/lib/ocaml/js_exn.cmti +0 -0
  380. package/lib/ocaml/js_exn.ml +0 -102
  381. package/lib/ocaml/js_exn.mli +0 -79
  382. package/lib/ocaml/js_float.cmi +0 -0
  383. package/lib/ocaml/js_float.cmt +0 -0
  384. package/lib/ocaml/js_float.ml +0 -294
  385. package/lib/ocaml/js_global.cmi +0 -0
  386. package/lib/ocaml/js_global.cmt +0 -0
  387. package/lib/ocaml/js_global.ml +0 -185
  388. package/lib/ocaml/js_int.cmi +0 -0
  389. package/lib/ocaml/js_int.cmt +0 -0
  390. package/lib/ocaml/js_int.ml +0 -158
  391. package/lib/ocaml/js_json.cmi +0 -0
  392. package/lib/ocaml/js_json.cmt +0 -0
  393. package/lib/ocaml/js_json.cmti +0 -0
  394. package/lib/ocaml/js_json.ml +0 -195
  395. package/lib/ocaml/js_json.mli +0 -244
  396. package/lib/ocaml/js_list.cmi +0 -0
  397. package/lib/ocaml/js_list.cmt +0 -0
  398. package/lib/ocaml/js_list.cmti +0 -0
  399. package/lib/ocaml/js_list.ml +0 -174
  400. package/lib/ocaml/js_list.mli +0 -72
  401. package/lib/ocaml/js_map.cmi +0 -0
  402. package/lib/ocaml/js_map.cmt +0 -0
  403. package/lib/ocaml/js_map.ml +0 -3
  404. package/lib/ocaml/js_mapperRt.cmi +0 -0
  405. package/lib/ocaml/js_mapperRt.cmt +0 -0
  406. package/lib/ocaml/js_mapperRt.cmti +0 -0
  407. package/lib/ocaml/js_mapperRt.ml +0 -50
  408. package/lib/ocaml/js_mapperRt.mli +0 -44
  409. package/lib/ocaml/js_math.cmi +0 -0
  410. package/lib/ocaml/js_math.cmt +0 -0
  411. package/lib/ocaml/js_math.ml +0 -626
  412. package/lib/ocaml/js_null.cmi +0 -0
  413. package/lib/ocaml/js_null.cmt +0 -0
  414. package/lib/ocaml/js_null.cmti +0 -0
  415. package/lib/ocaml/js_null.ml +0 -57
  416. package/lib/ocaml/js_null.mli +0 -87
  417. package/lib/ocaml/js_null_undefined.cmi +0 -0
  418. package/lib/ocaml/js_null_undefined.cmt +0 -0
  419. package/lib/ocaml/js_null_undefined.cmti +0 -0
  420. package/lib/ocaml/js_null_undefined.ml +0 -50
  421. package/lib/ocaml/js_null_undefined.mli +0 -85
  422. package/lib/ocaml/js_obj.cmi +0 -0
  423. package/lib/ocaml/js_obj.cmt +0 -0
  424. package/lib/ocaml/js_obj.ml +0 -100
  425. package/lib/ocaml/js_option.cmi +0 -0
  426. package/lib/ocaml/js_option.cmt +0 -0
  427. package/lib/ocaml/js_option.cmti +0 -0
  428. package/lib/ocaml/js_option.ml +0 -203
  429. package/lib/ocaml/js_option.mli +0 -52
  430. package/lib/ocaml/js_promise.cmi +0 -0
  431. package/lib/ocaml/js_promise.cmt +0 -0
  432. package/lib/ocaml/js_promise.ml +0 -100
  433. package/lib/ocaml/js_re.cmi +0 -0
  434. package/lib/ocaml/js_re.cmt +0 -0
  435. package/lib/ocaml/js_re.ml +0 -184
  436. package/lib/ocaml/js_result.cmi +0 -0
  437. package/lib/ocaml/js_result.cmt +0 -0
  438. package/lib/ocaml/js_result.cmti +0 -0
  439. package/lib/ocaml/js_result.ml +0 -28
  440. package/lib/ocaml/js_result.mli +0 -28
  441. package/lib/ocaml/js_set.cmi +0 -0
  442. package/lib/ocaml/js_set.cmt +0 -0
  443. package/lib/ocaml/js_set.ml +0 -3
  444. package/lib/ocaml/js_string.cmi +0 -0
  445. package/lib/ocaml/js_string.cmt +0 -0
  446. package/lib/ocaml/js_string.ml +0 -914
  447. package/lib/ocaml/js_string2.cmi +0 -0
  448. package/lib/ocaml/js_string2.cmt +0 -0
  449. package/lib/ocaml/js_string2.ml +0 -912
  450. package/lib/ocaml/js_typed_array.cmi +0 -0
  451. package/lib/ocaml/js_typed_array.cmt +0 -0
  452. package/lib/ocaml/js_typed_array.cppo.ml +0 -429
  453. package/lib/ocaml/js_typed_array.ml +0 -1405
  454. package/lib/ocaml/js_typed_array2.cmi +0 -0
  455. package/lib/ocaml/js_typed_array2.cmt +0 -0
  456. package/lib/ocaml/js_typed_array2.cppo.ml +0 -296
  457. package/lib/ocaml/js_typed_array2.ml +0 -1269
  458. package/lib/ocaml/js_types.cmi +0 -0
  459. package/lib/ocaml/js_types.cmt +0 -0
  460. package/lib/ocaml/js_types.cmti +0 -0
  461. package/lib/ocaml/js_types.ml +0 -118
  462. package/lib/ocaml/js_types.mli +0 -78
  463. package/lib/ocaml/js_undefined.cmi +0 -0
  464. package/lib/ocaml/js_undefined.cmt +0 -0
  465. package/lib/ocaml/js_undefined.cmti +0 -0
  466. package/lib/ocaml/js_undefined.ml +0 -59
  467. package/lib/ocaml/js_undefined.mli +0 -92
  468. package/lib/ocaml/js_vector.cmi +0 -0
  469. package/lib/ocaml/js_vector.cmt +0 -0
  470. package/lib/ocaml/js_vector.cmti +0 -0
  471. package/lib/ocaml/js_vector.ml +0 -143
  472. package/lib/ocaml/js_vector.mli +0 -92
  473. package/lib/ocaml/js_weakmap.cmi +0 -0
  474. package/lib/ocaml/js_weakmap.cmt +0 -0
  475. package/lib/ocaml/js_weakmap.ml +0 -3
  476. package/lib/ocaml/js_weakset.cmi +0 -0
  477. package/lib/ocaml/js_weakset.cmt +0 -0
  478. package/lib/ocaml/js_weakset.ml +0 -3
  479. package/lib/ocaml/jsx.cmi +0 -0
  480. package/lib/ocaml/jsx.cmt +0 -0
  481. package/lib/ocaml/jsx.ml +0 -39
  482. package/lib/ocaml/jsxDOM.cmi +0 -0
  483. package/lib/ocaml/jsxDOM.cmt +0 -0
  484. package/lib/ocaml/jsxDOM.ml +0 -2087
  485. package/lib/ocaml/jsxDOMStyle.cmi +0 -0
  486. package/lib/ocaml/jsxDOMStyle.cmt +0 -0
  487. package/lib/ocaml/jsxDOMStyle.ml +0 -777
  488. package/lib/ocaml/jsxEvent.cmi +0 -0
  489. package/lib/ocaml/jsxEvent.cmt +0 -0
  490. package/lib/ocaml/jsxEvent.ml +0 -358
  491. package/lib/ocaml/lazy.cmi +0 -0
  492. package/lib/ocaml/lazy.cmt +0 -0
  493. package/lib/ocaml/lazy.cmti +0 -0
  494. package/lib/ocaml/lazy.ml +0 -70
  495. package/lib/ocaml/lazy.mli +0 -95
  496. package/lib/ocaml/lexing.cmi +0 -0
  497. package/lib/ocaml/lexing.cmt +0 -0
  498. package/lib/ocaml/lexing.cmti +0 -0
  499. package/lib/ocaml/lexing.ml +0 -230
  500. package/lib/ocaml/lexing.mli +0 -172
  501. package/lib/ocaml/list.cmi +0 -0
  502. package/lib/ocaml/list.cmt +0 -0
  503. package/lib/ocaml/list.cmti +0 -0
  504. package/lib/ocaml/list.ml +0 -485
  505. package/lib/ocaml/list.mli +0 -347
  506. package/lib/ocaml/listLabels.cmi +0 -0
  507. package/lib/ocaml/listLabels.cmt +0 -0
  508. package/lib/ocaml/listLabels.cmti +0 -0
  509. package/lib/ocaml/listLabels.ml +0 -485
  510. package/lib/ocaml/listLabels.mli +0 -353
  511. package/lib/ocaml/map.cmi +0 -0
  512. package/lib/ocaml/map.cmt +0 -0
  513. package/lib/ocaml/map.cmti +0 -0
  514. package/lib/ocaml/map.cppo.ml +0 -174
  515. package/lib/ocaml/map.cppo.mli +0 -191
  516. package/lib/ocaml/map.ml +0 -480
  517. package/lib/ocaml/map.mli +0 -315
  518. package/lib/ocaml/mapLabels.cmi +0 -0
  519. package/lib/ocaml/mapLabels.cmt +0 -0
  520. package/lib/ocaml/mapLabels.ml +0 -480
  521. package/lib/ocaml/mapm.cppo.ml +0 -177
  522. package/lib/ocaml/mapm.cppo.mli +0 -138
  523. package/lib/ocaml/moreLabels.cmi +0 -0
  524. package/lib/ocaml/moreLabels.cmt +0 -0
  525. package/lib/ocaml/moreLabels.cmti +0 -0
  526. package/lib/ocaml/moreLabels.ml +0 -22
  527. package/lib/ocaml/moreLabels.mli +0 -198
  528. package/lib/ocaml/node.cmi +0 -0
  529. package/lib/ocaml/node.cmt +0 -0
  530. package/lib/ocaml/node.ml +0 -84
  531. package/lib/ocaml/node_buffer.cmi +0 -0
  532. package/lib/ocaml/node_buffer.cmt +0 -0
  533. package/lib/ocaml/node_buffer.ml +0 -47
  534. package/lib/ocaml/node_child_process.cmi +0 -0
  535. package/lib/ocaml/node_child_process.cmt +0 -0
  536. package/lib/ocaml/node_child_process.ml +0 -50
  537. package/lib/ocaml/node_fs.cmi +0 -0
  538. package/lib/ocaml/node_fs.cmt +0 -0
  539. package/lib/ocaml/node_fs.ml +0 -153
  540. package/lib/ocaml/node_module.cmi +0 -0
  541. package/lib/ocaml/node_module.cmt +0 -0
  542. package/lib/ocaml/node_module.ml +0 -29
  543. package/lib/ocaml/node_path.cmi +0 -0
  544. package/lib/ocaml/node_path.cmt +0 -0
  545. package/lib/ocaml/node_path.ml +0 -71
  546. package/lib/ocaml/node_process.cmi +0 -0
  547. package/lib/ocaml/node_process.cmt +0 -0
  548. package/lib/ocaml/node_process.cmti +0 -0
  549. package/lib/ocaml/node_process.ml +0 -59
  550. package/lib/ocaml/node_process.mli +0 -48
  551. package/lib/ocaml/obj.cmi +0 -0
  552. package/lib/ocaml/obj.cmt +0 -0
  553. package/lib/ocaml/obj.cmti +0 -0
  554. package/lib/ocaml/obj.ml +0 -29
  555. package/lib/ocaml/obj.mli +0 -62
  556. package/lib/ocaml/parsing.cmi +0 -0
  557. package/lib/ocaml/parsing.cmt +0 -0
  558. package/lib/ocaml/parsing.cmti +0 -0
  559. package/lib/ocaml/parsing.ml +0 -212
  560. package/lib/ocaml/parsing.mli +0 -105
  561. package/lib/ocaml/pervasives.cmi +0 -0
  562. package/lib/ocaml/pervasives.cmt +0 -0
  563. package/lib/ocaml/pervasives.cmti +0 -0
  564. package/lib/ocaml/pervasives.ml +0 -297
  565. package/lib/ocaml/pervasives.mli +0 -771
  566. package/lib/ocaml/printexc.cmi +0 -0
  567. package/lib/ocaml/printexc.cmt +0 -0
  568. package/lib/ocaml/printexc.cmti +0 -0
  569. package/lib/ocaml/printexc.ml +0 -79
  570. package/lib/ocaml/printexc.mli +0 -57
  571. package/lib/ocaml/queue.cmi +0 -0
  572. package/lib/ocaml/queue.cmt +0 -0
  573. package/lib/ocaml/queue.cmti +0 -0
  574. package/lib/ocaml/queue.ml +0 -132
  575. package/lib/ocaml/queue.mli +0 -82
  576. package/lib/ocaml/random.cmi +0 -0
  577. package/lib/ocaml/random.cmt +0 -0
  578. package/lib/ocaml/random.cmti +0 -0
  579. package/lib/ocaml/random.ml +0 -273
  580. package/lib/ocaml/random.mli +0 -102
  581. package/lib/ocaml/set.cmi +0 -0
  582. package/lib/ocaml/set.cmt +0 -0
  583. package/lib/ocaml/set.cmti +0 -0
  584. package/lib/ocaml/set.ml +0 -526
  585. package/lib/ocaml/set.mli +0 -266
  586. package/lib/ocaml/setLabels.cmi +0 -0
  587. package/lib/ocaml/setLabels.cmt +0 -0
  588. package/lib/ocaml/setLabels.ml +0 -526
  589. package/lib/ocaml/setm.cppo.ml +0 -346
  590. package/lib/ocaml/setm.cppo.mli +0 -126
  591. package/lib/ocaml/sort.cmi +0 -0
  592. package/lib/ocaml/sort.cmt +0 -0
  593. package/lib/ocaml/sort.cmti +0 -0
  594. package/lib/ocaml/sort.cppo.ml +0 -267
  595. package/lib/ocaml/sort.cppo.mli +0 -96
  596. package/lib/ocaml/sort.ml +0 -99
  597. package/lib/ocaml/sort.mli +0 -44
  598. package/lib/ocaml/stack.cmi +0 -0
  599. package/lib/ocaml/stack.cmt +0 -0
  600. package/lib/ocaml/stack.cmti +0 -0
  601. package/lib/ocaml/stack.ml +0 -44
  602. package/lib/ocaml/stack.mli +0 -63
  603. package/lib/ocaml/stdLabels.cmi +0 -0
  604. package/lib/ocaml/stdLabels.cmt +0 -0
  605. package/lib/ocaml/stdLabels.cmti +0 -0
  606. package/lib/ocaml/stdLabels.ml +0 -24
  607. package/lib/ocaml/stdLabels.mli +0 -29
  608. package/lib/ocaml/stream.cmi +0 -0
  609. package/lib/ocaml/stream.cmt +0 -0
  610. package/lib/ocaml/stream.cmti +0 -0
  611. package/lib/ocaml/stream.ml +0 -213
  612. package/lib/ocaml/stream.mli +0 -108
  613. package/lib/ocaml/string.cmi +0 -0
  614. package/lib/ocaml/string.cmt +0 -0
  615. package/lib/ocaml/string.cmti +0 -0
  616. package/lib/ocaml/string.ml +0 -190
  617. package/lib/ocaml/string.mli +0 -286
  618. package/lib/ocaml/stringLabels.cmi +0 -0
  619. package/lib/ocaml/stringLabels.cmt +0 -0
  620. package/lib/ocaml/stringLabels.cmti +0 -0
  621. package/lib/ocaml/stringLabels.ml +0 -190
  622. package/lib/ocaml/stringLabels.mli +0 -241
  623. package/lib/ocaml/sys.cmi +0 -0
  624. package/lib/ocaml/sys.cmt +0 -0
  625. package/lib/ocaml/sys.cmti +0 -0
  626. package/lib/ocaml/sys.ml +0 -135
  627. package/lib/ocaml/sys.mli +0 -333
  628. package/lib/ocaml/uchar.cmi +0 -0
  629. package/lib/ocaml/uchar.cmt +0 -0
  630. package/lib/ocaml/uchar.cmti +0 -0
  631. package/lib/ocaml/uchar.ml +0 -58
  632. package/lib/ocaml/uchar.mli +0 -98
  633. package/linux/bsb_helper.exe +0 -0
  634. package/linux/bsc.exe +0 -0
  635. package/linux/ninja.COPYING +0 -202
  636. package/linux/ninja.exe +0 -0
  637. package/linux/rescript.exe +0 -0
  638. package/openbsd/.keep +0 -0
  639. package/scripts/LICENSE.ml +0 -27
  640. package/scripts/buckle_lto.js +0 -55
  641. package/scripts/build_sorted.ml +0 -233
  642. package/scripts/caml_oo_curry_gen.ml +0 -71
  643. package/scripts/checkUnused.js +0 -63
  644. package/scripts/ciTest.js +0 -172
  645. package/scripts/cover.sh +0 -3
  646. package/scripts/curry_gen.ml +0 -167
  647. package/scripts/dbg +0 -13
  648. package/scripts/dedupe.js +0 -44
  649. package/scripts/doc_gen.js +0 -117
  650. package/scripts/js_internal_gen.js +0 -135
  651. package/scripts/jsconfig.json +0 -12
  652. package/scripts/littlecase.js +0 -21
  653. package/scripts/ninja.js +0 -1980
  654. package/scripts/pack.js +0 -107
  655. package/scripts/prebuilt.js +0 -99
  656. package/scripts/release.js +0 -41
  657. package/scripts/repl.js +0 -151
  658. package/scripts/shake.js +0 -138
  659. package/scripts/tasks.js +0 -149
  660. package/scripts/test.sh +0 -3
  661. package/scripts/tmp.js +0 -98
  662. package/scripts/validate.js +0 -41
  663. package/vendor/ninja.tar.gz +0 -0
  664. package/win32/bsb_helper.exe +0 -0
  665. package/win32/bsc.exe +0 -0
  666. package/win32/ninja.COPYING +0 -202
  667. package/win32/ninja.exe +0 -0
  668. package/win32/rescript.exe +0 -0
@@ -1,267 +0,0 @@
1
- #ifdef TYPE_INT
2
- type element = int
3
- #elif defined TYPE_STRING
4
- type element = string
5
- #else
6
- [%error "unknown type"]
7
- #endif
8
-
9
- module A = Belt_Array
10
-
11
- let rec sortedLengthAuxMore (xs : element array) prec acc len =
12
- if acc >= len then acc
13
- else
14
- let v = A.getUnsafe xs acc in
15
- if prec > v then
16
- sortedLengthAuxMore xs v (acc + 1) len
17
- else acc
18
-
19
- let rec sortedLengthAuxLess (xs : element array) prec acc len =
20
- if acc >= len then acc
21
- else
22
- let v = A.getUnsafe xs acc in
23
- if prec < v then
24
- sortedLengthAuxLess xs v (acc + 1) len
25
- else acc
26
-
27
- let strictlySortedLength (xs : element array) =
28
- let len = A.length xs in
29
- match len with
30
- | 0 | 1 -> len
31
- | _ ->
32
- let x0, x1 = A.getUnsafe xs 0, A.getUnsafe xs 1 in
33
- (* let c = cmp x0 x1 [@bs] in *)
34
- if x0 < x1 then
35
- sortedLengthAuxLess xs x1 2 len
36
- else if x0 > x1 then
37
- - (sortedLengthAuxMore xs x1 2 len)
38
- else 1
39
-
40
- let rec isSortedAux (a : element array) i last_bound =
41
- (* when `i = len - 1`, it reaches the last element*)
42
- if i = last_bound then true
43
- else
44
- if A.getUnsafe a i <= A.getUnsafe a (i+1) then
45
- isSortedAux a (i + 1) last_bound
46
- else false
47
-
48
-
49
- let isSorted a =
50
- let len = A.length a in
51
- if len = 0 then true
52
- else isSortedAux a 0 (len - 1)
53
-
54
-
55
- let cutoff = 5
56
-
57
- let merge (src : element array) src1ofs src1len src2 src2ofs src2len dst dstofs =
58
- let src1r = src1ofs + src1len and src2r = src2ofs + src2len in
59
- let rec loop i1 s1 i2 s2 d =
60
- if s1 <= s2 then begin
61
- A.setUnsafe dst d s1;
62
- let i1 = i1 + 1 in
63
- if i1 < src1r then
64
- loop i1 (A.getUnsafe src i1) i2 s2 (d + 1)
65
- else
66
- A.blitUnsafe ~src:src2 ~srcOffset:i2 ~dst ~dstOffset:(d + 1) ~len:(src2r - i2)
67
- end else begin
68
- A.setUnsafe dst d s2;
69
- let i2 = i2 + 1 in
70
- if i2 < src2r then
71
- loop i1 s1 i2 (A.getUnsafe src2 i2) (d + 1)
72
- else
73
- A.blitUnsafe ~src ~srcOffset:i1 ~dst ~dstOffset:(d + 1) ~len:(src1r - i1)
74
- end
75
- in
76
- loop src1ofs (A.getUnsafe src src1ofs) src2ofs (A.getUnsafe src2 src2ofs) dstofs
77
-
78
-
79
-
80
- let union (src : element array) src1ofs src1len src2 src2ofs src2len dst dstofs =
81
- let src1r = src1ofs + src1len in
82
- let src2r = src2ofs + src2len in
83
- let rec loop i1 s1 i2 s2 d =
84
- (* let c = cmp s1 s2 [@bs] in *)
85
- if s1 < s2 then begin
86
- (* `s1` is larger than all elements in `d` *)
87
- A.setUnsafe dst d s1;
88
- let i1 = i1 + 1 in
89
- let d = d + 1 in
90
- if i1 < src1r then
91
- loop i1 (A.getUnsafe src i1) i2 s2 d
92
- else
93
- begin
94
- A.blitUnsafe ~src:src2 ~srcOffset:i2 ~dst ~dstOffset:d ~len:(src2r - i2);
95
- d + src2r - i2
96
- end
97
- end
98
- else if s1 = s2 then begin
99
- A.setUnsafe dst d s1;
100
- let i1 = i1 + 1 in
101
- let i2 = i2 + 1 in
102
- let d = d + 1 in
103
- if i1 < src1r && i2 < src2r then
104
- loop i1 (A.getUnsafe src i1) i2 (A.getUnsafe src2 i2) d
105
- else if i1 = src1r then
106
- (A.blitUnsafe ~src:src2 ~srcOffset:i2 ~dst ~dstOffset:d ~len:(src2r - i2);
107
- d + src2r - i2)
108
- else
109
- (A.blitUnsafe ~src ~srcOffset:i1 ~dst ~dstOffset:d ~len:(src1r - i1);
110
- d + src1r - i1)
111
- end
112
- else begin
113
- A.setUnsafe dst d s2;
114
- let i2 = i2 + 1 in
115
- let d = d + 1 in
116
- if i2 < src2r then
117
- loop i1 s1 i2 (A.getUnsafe src2 i2) d
118
- else
119
- (A.blitUnsafe ~src ~srcOffset:i1 ~dst ~dstOffset:d ~len:(src1r - i1);
120
- d + src1r - i1
121
- )
122
- end
123
- in
124
- loop src1ofs
125
- (A.getUnsafe src src1ofs)
126
- src2ofs
127
- (A.getUnsafe src2 src2ofs) dstofs
128
-
129
- let intersect (src : element array) src1ofs src1len src2 src2ofs src2len dst dstofs =
130
- let src1r = src1ofs + src1len in
131
- let src2r = src2ofs + src2len in
132
- let rec loop i1 s1 i2 s2 d =
133
- (* let c = cmp s1 s2 [@bs] in *)
134
- if s1 < s2 then begin
135
- (* A.setUnsafe dst d s1; *)
136
- let i1 = i1 + 1 in
137
- if i1 < src1r then
138
- loop i1 (A.getUnsafe src i1) i2 s2 d
139
- else
140
- d
141
- end
142
- else if s1 = s2 then begin
143
- A.setUnsafe dst d s1;
144
- let i1 = i1 + 1 in
145
- let i2 = i2 + 1 in
146
- let d = d + 1 in
147
- if i1 < src1r && i2 < src2r then
148
- loop i1 (A.getUnsafe src i1) i2 (A.getUnsafe src2 i2) d
149
- else d
150
- end
151
- else begin
152
- (* A.setUnsafe dst d s2; *)
153
- let i2 = i2 + 1 in
154
- if i2 < src2r then
155
- loop i1 s1 i2 (A.getUnsafe src2 i2) d
156
- else
157
- d
158
- end
159
- in
160
- loop src1ofs
161
- (A.getUnsafe src src1ofs)
162
- src2ofs
163
- (A.getUnsafe src2 src2ofs) dstofs
164
-
165
- let diff (src : element array) src1ofs src1len src2 src2ofs src2len dst dstofs =
166
- let src1r = src1ofs + src1len in
167
- let src2r = src2ofs + src2len in
168
- let rec loop i1 s1 i2 s2 d =
169
- (* let c = cmp s1 s2 [@bs] in *)
170
- if s1 < s2 then begin
171
- A.setUnsafe dst d s1;
172
- let d = d + 1 in
173
- let i1 = i1 + 1 in
174
- if i1 < src1r then
175
- loop i1 (A.getUnsafe src i1) i2 s2 d
176
- else
177
- d
178
- end
179
- else if s1 = s2 then begin
180
- let i1 = i1 + 1 in
181
- let i2 = i2 + 1 in
182
- if i1 < src1r && i2 < src2r then
183
- loop i1 (A.getUnsafe src i1) i2 (A.getUnsafe src2 i2) d
184
- else if i1 = src1r then
185
- d
186
- else
187
- (A.blitUnsafe ~src ~srcOffset:i1 ~dst ~dstOffset:d ~len:(src1r - i1);
188
- d + src1r - i1)
189
- end
190
- else begin
191
- let i2 = i2 + 1 in
192
- if i2 < src2r then
193
- loop i1 s1 i2 (A.getUnsafe src2 i2) d
194
- else
195
- (A.blitUnsafe ~src ~srcOffset:i1 ~dst ~dstOffset:d ~len:(src1r - i1);
196
- d + src1r - i1)
197
- end
198
- in
199
- loop src1ofs
200
- (A.getUnsafe src src1ofs)
201
- src2ofs
202
- (A.getUnsafe src2 src2ofs) dstofs
203
-
204
- let insertionSort (src : element array) srcofs dst dstofs len =
205
- for i = 0 to len - 1 do
206
- let e = (A.getUnsafe src (srcofs + i)) in
207
- let j = ref (dstofs + i - 1) in
208
- while j.contents >= dstofs && A.getUnsafe dst j.contents > e do
209
- A.setUnsafe dst (j.contents + 1) (A.getUnsafe dst j.contents);
210
- j.contents <- j.contents - 1;
211
- done;
212
- A.setUnsafe dst (j.contents + 1) e;
213
- done
214
-
215
- let rec sortTo (src : element array) srcofs dst dstofs len =
216
- if len <= cutoff then insertionSort src srcofs dst dstofs len
217
- else begin
218
- let l1 = len / 2 in
219
- let l2 = len - l1 in
220
- sortTo src (srcofs + l1) dst (dstofs + l1) l2 ;
221
- sortTo src srcofs src (srcofs + l2) l1 ;
222
- merge src (srcofs + l2) l1 dst (dstofs + l1) l2 dst dstofs ;
223
- end
224
-
225
- let stableSortInPlace (a : element array) =
226
- let l = A.length a in
227
- if l <= cutoff then insertionSort a 0 a 0 l
228
- else begin
229
- let l1 = l / 2 in
230
- let l2 = l - l1 in
231
- let t = Belt_Array.makeUninitializedUnsafe l2 in
232
- sortTo a l1 t 0 l2 ;
233
- sortTo a 0 a l2 l1 ;
234
- merge a l2 l1 t 0 l2 a 0 ;
235
- end
236
-
237
- let stableSort a = let b = A.copy a in stableSortInPlace b; b
238
-
239
- let rec binarySearchAux (arr : element array) lo hi key =
240
-
241
- let mid = (lo + hi)/2 in
242
- let midVal = A.getUnsafe arr mid in
243
- (* let c = cmp key midVal [@bs] in *)
244
- if key = midVal then mid
245
- else if key < midVal then (* a[lo] =< key < a[mid] <= a[hi] *)
246
- if hi = mid then
247
- if (A.getUnsafe arr lo) = key then lo
248
- else - (hi + 1)
249
- else binarySearchAux arr lo mid key
250
- else (* a[lo] =< a[mid] < key <= a[hi] *)
251
- if lo = mid then
252
- if (A.getUnsafe arr hi) = key then hi
253
- else - (hi + 1)
254
- else binarySearchAux arr mid hi key
255
-
256
- let binarySearch (sorted : element array) key : int =
257
- let len = A.length sorted in
258
- if len = 0 then -1
259
- else
260
- let lo = A.getUnsafe sorted 0 in
261
- (* let c = cmp key lo [@bs] in *)
262
- if key < lo then -1
263
- else
264
- let hi = A.getUnsafe sorted (len - 1) in
265
- (* let c2 = cmp key hi [@bs]in *)
266
- if key > hi then - (len + 1)
267
- else binarySearchAux sorted 0 (len - 1) key
@@ -1,96 +0,0 @@
1
-
2
- (* Copyright (C) 2017 Authors of ReScript
3
- *
4
- * This program is free software: you can redistribute it and/or modify
5
- * it under the terms of the GNU Lesser General Public License as published by
6
- * the Free Software Foundation, either version 3 of the License, or
7
- * (at your option) any later version.
8
- *
9
- * In addition to the permissions granted to you by the LGPL, you may combine
10
- * or link a "work that uses the Library" with a publicly distributed version
11
- * of this file to produce a combined library or application, then distribute
12
- * that combined work under the terms of your choosing, with no requirement
13
- * to comply with the obligations normally placed on you by section 4 of the
14
- * LGPL version 3 (or the corresponding section of a later version of the LGPL
15
- * should you choose to use a later version).
16
- *
17
- * This program is distributed in the hope that it will be useful,
18
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
19
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20
- * GNU Lesser General Public License for more details.
21
- *
22
- * You should have received a copy of the GNU Lesser General Public License
23
- * along with this program; if not, write to the Free Software
24
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *)
25
-
26
-
27
- (** This is a specialized module for [`Belt_SortArray`](), the docs in that module also
28
- applies here, except the comparator is fixed and inlined
29
- *)
30
-
31
- #ifdef TYPE_INT
32
- type element = int
33
- #elif defined TYPE_STRING
34
- type element = string
35
- #else
36
- [%error "unknown type"]
37
- #endif
38
-
39
- val strictlySortedLength: element array -> int
40
- (**
41
- The same as [`Belt_SortArray.strictlySortedLength`]() except the comparator is fixed
42
-
43
- **return** `+n` means increasing order `-n` means negative order
44
- *)
45
-
46
-
47
- val isSorted: element array -> bool
48
- (** `sorted xs` return true if `xs` is in non strict increasing order *)
49
-
50
- val stableSortInPlace: element array -> unit
51
- (**
52
- The same as [`Belt_SortArray.stableSortInPlaceBy`]() except the comparator is fixed
53
- *)
54
-
55
- val stableSort: element array -> element array
56
- (** The same as [`Belt_SortArray.stableSortBy`]() except the comparator is fixed *)
57
-
58
- val binarySearch: element array -> element -> int
59
- (**
60
- If value is not found and value is less than one or more elements in array,
61
- the negative number returned is the bitwise complement of the index of the first element
62
- that is larger than value.
63
-
64
- If value is not found and value is greater than all elements in array,
65
- the negative number returned is the bitwise complement of
66
- (the index of the last element plus 1)
67
-
68
- for example, if `key` is smaller than all elements return `-1` since `lnot (-1) = 0`
69
- if `key` is larger than all elements return `- (len + 1)` since `lnot (-(len+1)) = len`
70
- *)
71
-
72
- (**/**)
73
- val union:
74
- element array -> int -> int ->
75
- element array -> int -> int ->
76
- element array -> int
77
- -> int
78
- (**
79
- `union src src1ofs src1len src2 src2ofs src2len dst dstofs cmp`
80
- assume `src` and `src2` is strictly sorted.
81
- for equivalent elements, it is picked from `src`
82
- also assume that `dst` is large enough to store all elements
83
- *)
84
-
85
- val intersect:
86
- element array -> int -> int ->
87
- element array -> int -> int ->
88
- element array -> int
89
- -> int
90
-
91
- val diff:
92
- element array -> int -> int ->
93
- element array -> int -> int ->
94
- element array -> int
95
- -> int
96
- (**/**)
package/lib/ocaml/sort.ml DELETED
@@ -1,99 +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
- (* Merging and sorting *)
17
-
18
- open Array
19
-
20
- let rec merge order l1 l2 =
21
- match l1 with
22
- [] -> l2
23
- | h1 :: t1 ->
24
- match l2 with
25
- [] -> l1
26
- | h2 :: t2 ->
27
- if order h1 h2
28
- then h1 :: merge order t1 l2
29
- else h2 :: merge order l1 t2
30
-
31
- let list order l =
32
- let rec initlist = function
33
- [] -> []
34
- | [e] -> [[e]]
35
- | e1::e2::rest ->
36
- (if order e1 e2 then [e1;e2] else [e2;e1]) :: initlist rest in
37
- let rec merge2 = function
38
- l1::l2::rest -> merge order l1 l2 :: merge2 rest
39
- | x -> x in
40
- let rec mergeall = function
41
- [] -> []
42
- | [l] -> l
43
- | llist -> mergeall (merge2 llist) in
44
- mergeall(initlist l)
45
-
46
- let swap arr i j =
47
- let tmp = unsafe_get arr i in
48
- unsafe_set arr i (unsafe_get arr j);
49
- unsafe_set arr j tmp
50
-
51
- (* There is a known performance bug in the code below. If you find
52
- it, don't bother reporting it. You're not supposed to use this
53
- module anyway. *)
54
- let array cmp arr =
55
- let rec qsort lo hi =
56
- if hi - lo >= 6 then begin
57
- let mid = (lo + hi) lsr 1 in
58
- (* Select median value from among LO, MID, and HI. Rearrange
59
- LO and HI so the three values are sorted. This lowers the
60
- probability of picking a pathological pivot. It also
61
- avoids extra comparisons on i and j in the two tight "while"
62
- loops below. *)
63
- if cmp (unsafe_get arr mid) (unsafe_get arr lo) then swap arr mid lo;
64
- if cmp (unsafe_get arr hi) (unsafe_get arr mid) then begin
65
- swap arr mid hi;
66
- if cmp (unsafe_get arr mid) (unsafe_get arr lo) then swap arr mid lo
67
- end;
68
- let pivot = unsafe_get arr mid in
69
- let i = ref (lo + 1) and j = ref (hi - 1) in
70
- if not (cmp pivot (unsafe_get arr hi))
71
- || not (cmp (unsafe_get arr lo) pivot)
72
- then raise (Invalid_argument "Sort.array");
73
- while !i < !j do
74
- while not (cmp pivot (unsafe_get arr !i)) do incr i done;
75
- while not (cmp (unsafe_get arr !j) pivot) do decr j done;
76
- if !i < !j then swap arr !i !j;
77
- incr i; decr j
78
- done;
79
- (* Recursion on smaller half, tail-call on larger half *)
80
- if !j - lo <= hi - !i then begin
81
- qsort lo !j; qsort !i hi
82
- end else begin
83
- qsort !i hi; qsort lo !j
84
- end
85
- end in
86
- qsort 0 (Array.length arr - 1);
87
- (* Finish sorting by insertion sort *)
88
- for i = 1 to Array.length arr - 1 do
89
- let val_i = (unsafe_get arr i) in
90
- if not (cmp (unsafe_get arr (i - 1)) val_i) then begin
91
- unsafe_set arr i (unsafe_get arr (i - 1));
92
- let j = ref (i - 1) in
93
- while !j >= 1 && not (cmp (unsafe_get arr (!j - 1)) val_i) do
94
- unsafe_set arr !j (unsafe_get arr (!j - 1));
95
- decr j
96
- done;
97
- unsafe_set arr !j val_i
98
- end
99
- done
@@ -1,44 +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
- (** Sorting and merging lists.
17
-
18
- @deprecated This module is obsolete and exists only for backward
19
- compatibility.
20
- The sorting functions in {!Array} and {!List} should be used instead.
21
- The new functions are faster and use less memory.
22
- *)
23
-
24
- val list : ('a -> 'a -> bool) -> 'a list -> 'a list
25
- [@@ocaml.deprecated "Use List.sort instead."]
26
- (** Sort a list in increasing order according to an ordering predicate.
27
- The predicate should return [true] if its first argument is
28
- less than or equal to its second argument. *)
29
-
30
- val array : ('a -> 'a -> bool) -> 'a array -> unit
31
- [@@ocaml.deprecated "Use Array.sort instead."]
32
- (** Sort an array in increasing order according to an
33
- ordering predicate.
34
- The predicate should return [true] if its first argument is
35
- less than or equal to its second argument.
36
- The array is sorted in place. *)
37
-
38
- val merge : ('a -> 'a -> bool) -> 'a list -> 'a list -> 'a list
39
- [@@ocaml.deprecated "Use List.merge instead."]
40
- (** Merge two lists according to the given predicate.
41
- Assuming the two argument lists are sorted according to the
42
- predicate, [merge] returns a sorted list containing the elements
43
- from the two lists. The behavior is undefined if the two
44
- argument lists were not sorted. *)
Binary file
Binary file
Binary file
@@ -1,44 +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
- type 'a t = { mutable c : 'a list; mutable len : int; }
17
-
18
- exception Empty
19
-
20
- let create () = { c = []; len = 0; }
21
-
22
- let clear s = s.c <- []; s.len <- 0
23
-
24
- let copy s = { c = s.c; len = s.len; }
25
-
26
- let push x s = s.c <- x :: s.c; s.len <- s.len + 1
27
-
28
- let pop s =
29
- match s.c with
30
- | hd::tl -> s.c <- tl; s.len <- s.len - 1; hd
31
- | [] -> raise Empty
32
-
33
- let top s =
34
- match s.c with
35
- | hd::_ -> hd
36
- | [] -> raise Empty
37
-
38
- let is_empty s = (s.c = [])
39
-
40
- let length s = s.len
41
-
42
- let iter f s = List.iter f s.c
43
-
44
- let fold f acc s = List.fold_left f acc s.c
@@ -1,63 +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
- (** Last-in first-out stacks.
17
-
18
- This module implements stacks (LIFOs), with in-place modification.
19
- *)
20
-
21
- type 'a t
22
- (** The type of stacks containing elements of type ['a]. *)
23
-
24
- exception Empty
25
- (** Raised when {!Stack.pop} or {!Stack.top} is applied to an empty stack. *)
26
-
27
-
28
- val create : unit -> 'a t
29
- (** Return a new stack, initially empty. *)
30
-
31
- val push : 'a -> 'a t -> unit
32
- (** [push x s] adds the element [x] at the top of stack [s]. *)
33
-
34
- val pop : 'a t -> 'a
35
- (** [pop s] removes and returns the topmost element in stack [s],
36
- or raises {!Empty} if the stack is empty. *)
37
-
38
- val top : 'a t -> 'a
39
- (** [top s] returns the topmost element in stack [s],
40
- or raises {!Empty} if the stack is empty. *)
41
-
42
- val clear : 'a t -> unit
43
- (** Discard all elements from a stack. *)
44
-
45
- val copy : 'a t -> 'a t
46
- (** Return a copy of the given stack. *)
47
-
48
- val is_empty : 'a t -> bool
49
- (** Return [true] if the given stack is empty, [false] otherwise. *)
50
-
51
- val length : 'a t -> int
52
- (** Return the number of elements in a stack. Time complexity O(1) *)
53
-
54
- val iter : ('a -> unit) -> 'a t -> unit
55
- (** [iter f s] applies [f] in turn to all elements of [s],
56
- from the element at the top of the stack to the element at the
57
- bottom of the stack. The stack itself is unchanged. *)
58
-
59
- val fold : ('b -> 'a -> 'b) -> 'b -> 'a t -> 'b
60
- (** [fold f accu s] is [(f (... (f (f accu x1) x2) ...) xn)]
61
- where [x1] is the top of the stack, [x2] the second element,
62
- and [xn] the bottom element. The stack is unchanged.
63
- @since 4.03 *)
Binary file
Binary file
Binary file
@@ -1,24 +0,0 @@
1
- (**************************************************************************)
2
- (* *)
3
- (* OCaml *)
4
- (* *)
5
- (* Jacques Garrigue, Kyoto University RIMS *)
6
- (* *)
7
- (* Copyright 2001 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
- (* Module [StdLabels]: meta-module for labelled libraries *)
17
-
18
- module Array = ArrayLabels
19
-
20
- module List = ListLabels
21
-
22
- module String = StringLabels
23
-
24
- module Bytes = BytesLabels
@@ -1,29 +0,0 @@
1
- (**************************************************************************)
2
- (* *)
3
- (* OCaml *)
4
- (* *)
5
- (* Jacques Garrigue, Kyoto University RIMS *)
6
- (* *)
7
- (* Copyright 2001 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
- (** Standard labeled libraries.
17
-
18
- This meta-module provides labelized version of the {!Array},
19
- {!Bytes}, {!List} and {!String} modules.
20
-
21
- They only differ by their labels. Detailed interfaces can be found
22
- in [arrayLabels.mli], [bytesLabels.mli], [listLabels.mli]
23
- and [stringLabels.mli].
24
- *)
25
-
26
- module Array = ArrayLabels
27
- module Bytes = BytesLabels
28
- module List = ListLabels
29
- module String = StringLabels
Binary file
Binary file
Binary file