@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,263 +0,0 @@
1
- # 2 "others/sort.cppo.ml"
2
- type element = int
3
-
4
- # 9 "others/sort.cppo.ml"
5
- module A = Belt_Array
6
-
7
- let rec sortedLengthAuxMore (xs : element array) prec acc len =
8
- if acc >= len then acc
9
- else
10
- let v = A.getUnsafe xs acc in
11
- if prec > v then
12
- sortedLengthAuxMore xs v (acc + 1) len
13
- else acc
14
-
15
- let rec sortedLengthAuxLess (xs : element array) prec acc len =
16
- if acc >= len then acc
17
- else
18
- let v = A.getUnsafe xs acc in
19
- if prec < v then
20
- sortedLengthAuxLess xs v (acc + 1) len
21
- else acc
22
-
23
- let strictlySortedLength (xs : element array) =
24
- let len = A.length xs in
25
- match len with
26
- | 0 | 1 -> len
27
- | _ ->
28
- let x0, x1 = A.getUnsafe xs 0, A.getUnsafe xs 1 in
29
- (* let c = cmp x0 x1 [@bs] in *)
30
- if x0 < x1 then
31
- sortedLengthAuxLess xs x1 2 len
32
- else if x0 > x1 then
33
- - (sortedLengthAuxMore xs x1 2 len)
34
- else 1
35
-
36
- let rec isSortedAux (a : element array) i last_bound =
37
- (* when `i = len - 1`, it reaches the last element*)
38
- if i = last_bound then true
39
- else
40
- if A.getUnsafe a i <= A.getUnsafe a (i+1) then
41
- isSortedAux a (i + 1) last_bound
42
- else false
43
-
44
-
45
- let isSorted a =
46
- let len = A.length a in
47
- if len = 0 then true
48
- else isSortedAux a 0 (len - 1)
49
-
50
-
51
- let cutoff = 5
52
-
53
- let merge (src : element array) src1ofs src1len src2 src2ofs src2len dst dstofs =
54
- let src1r = src1ofs + src1len and src2r = src2ofs + src2len in
55
- let rec loop i1 s1 i2 s2 d =
56
- if s1 <= s2 then begin
57
- A.setUnsafe dst d s1;
58
- let i1 = i1 + 1 in
59
- if i1 < src1r then
60
- loop i1 (A.getUnsafe src i1) i2 s2 (d + 1)
61
- else
62
- A.blitUnsafe ~src:src2 ~srcOffset:i2 ~dst ~dstOffset:(d + 1) ~len:(src2r - i2)
63
- end else begin
64
- A.setUnsafe dst d s2;
65
- let i2 = i2 + 1 in
66
- if i2 < src2r then
67
- loop i1 s1 i2 (A.getUnsafe src2 i2) (d + 1)
68
- else
69
- A.blitUnsafe ~src ~srcOffset:i1 ~dst ~dstOffset:(d + 1) ~len:(src1r - i1)
70
- end
71
- in
72
- loop src1ofs (A.getUnsafe src src1ofs) src2ofs (A.getUnsafe src2 src2ofs) dstofs
73
-
74
-
75
-
76
- let union (src : element array) src1ofs src1len src2 src2ofs src2len dst dstofs =
77
- let src1r = src1ofs + src1len in
78
- let src2r = src2ofs + src2len in
79
- let rec loop i1 s1 i2 s2 d =
80
- (* let c = cmp s1 s2 [@bs] in *)
81
- if s1 < s2 then begin
82
- (* `s1` is larger than all elements in `d` *)
83
- A.setUnsafe dst d s1;
84
- let i1 = i1 + 1 in
85
- let d = d + 1 in
86
- if i1 < src1r then
87
- loop i1 (A.getUnsafe src i1) i2 s2 d
88
- else
89
- begin
90
- A.blitUnsafe ~src:src2 ~srcOffset:i2 ~dst ~dstOffset:d ~len:(src2r - i2);
91
- d + src2r - i2
92
- end
93
- end
94
- else if s1 = s2 then begin
95
- A.setUnsafe dst d s1;
96
- let i1 = i1 + 1 in
97
- let i2 = i2 + 1 in
98
- let d = d + 1 in
99
- if i1 < src1r && i2 < src2r then
100
- loop i1 (A.getUnsafe src i1) i2 (A.getUnsafe src2 i2) d
101
- else if i1 = src1r then
102
- (A.blitUnsafe ~src:src2 ~srcOffset:i2 ~dst ~dstOffset:d ~len:(src2r - i2);
103
- d + src2r - i2)
104
- else
105
- (A.blitUnsafe ~src ~srcOffset:i1 ~dst ~dstOffset:d ~len:(src1r - i1);
106
- d + src1r - i1)
107
- end
108
- else begin
109
- A.setUnsafe dst d s2;
110
- let i2 = i2 + 1 in
111
- let d = d + 1 in
112
- if i2 < src2r then
113
- loop i1 s1 i2 (A.getUnsafe src2 i2) d
114
- else
115
- (A.blitUnsafe ~src ~srcOffset:i1 ~dst ~dstOffset:d ~len:(src1r - i1);
116
- d + src1r - i1
117
- )
118
- end
119
- in
120
- loop src1ofs
121
- (A.getUnsafe src src1ofs)
122
- src2ofs
123
- (A.getUnsafe src2 src2ofs) dstofs
124
-
125
- let intersect (src : element array) src1ofs src1len src2 src2ofs src2len dst dstofs =
126
- let src1r = src1ofs + src1len in
127
- let src2r = src2ofs + src2len in
128
- let rec loop i1 s1 i2 s2 d =
129
- (* let c = cmp s1 s2 [@bs] in *)
130
- if s1 < s2 then begin
131
- (* A.setUnsafe dst d s1; *)
132
- let i1 = i1 + 1 in
133
- if i1 < src1r then
134
- loop i1 (A.getUnsafe src i1) i2 s2 d
135
- else
136
- d
137
- end
138
- else if s1 = s2 then begin
139
- A.setUnsafe dst d s1;
140
- let i1 = i1 + 1 in
141
- let i2 = i2 + 1 in
142
- let d = d + 1 in
143
- if i1 < src1r && i2 < src2r then
144
- loop i1 (A.getUnsafe src i1) i2 (A.getUnsafe src2 i2) d
145
- else d
146
- end
147
- else begin
148
- (* A.setUnsafe dst d s2; *)
149
- let i2 = i2 + 1 in
150
- if i2 < src2r then
151
- loop i1 s1 i2 (A.getUnsafe src2 i2) d
152
- else
153
- d
154
- end
155
- in
156
- loop src1ofs
157
- (A.getUnsafe src src1ofs)
158
- src2ofs
159
- (A.getUnsafe src2 src2ofs) dstofs
160
-
161
- let diff (src : element array) src1ofs src1len src2 src2ofs src2len dst dstofs =
162
- let src1r = src1ofs + src1len in
163
- let src2r = src2ofs + src2len in
164
- let rec loop i1 s1 i2 s2 d =
165
- (* let c = cmp s1 s2 [@bs] in *)
166
- if s1 < s2 then begin
167
- A.setUnsafe dst d s1;
168
- let d = d + 1 in
169
- let i1 = i1 + 1 in
170
- if i1 < src1r then
171
- loop i1 (A.getUnsafe src i1) i2 s2 d
172
- else
173
- d
174
- end
175
- else if s1 = s2 then begin
176
- let i1 = i1 + 1 in
177
- let i2 = i2 + 1 in
178
- if i1 < src1r && i2 < src2r then
179
- loop i1 (A.getUnsafe src i1) i2 (A.getUnsafe src2 i2) d
180
- else if i1 = src1r then
181
- d
182
- else
183
- (A.blitUnsafe ~src ~srcOffset:i1 ~dst ~dstOffset:d ~len:(src1r - i1);
184
- d + src1r - i1)
185
- end
186
- else begin
187
- let i2 = i2 + 1 in
188
- if i2 < src2r then
189
- loop i1 s1 i2 (A.getUnsafe src2 i2) d
190
- else
191
- (A.blitUnsafe ~src ~srcOffset:i1 ~dst ~dstOffset:d ~len:(src1r - i1);
192
- d + src1r - i1)
193
- end
194
- in
195
- loop src1ofs
196
- (A.getUnsafe src src1ofs)
197
- src2ofs
198
- (A.getUnsafe src2 src2ofs) dstofs
199
-
200
- let insertionSort (src : element array) srcofs dst dstofs len =
201
- for i = 0 to len - 1 do
202
- let e = (A.getUnsafe src (srcofs + i)) in
203
- let j = ref (dstofs + i - 1) in
204
- while j.contents >= dstofs && A.getUnsafe dst j.contents > e do
205
- A.setUnsafe dst (j.contents + 1) (A.getUnsafe dst j.contents);
206
- j.contents <- j.contents - 1;
207
- done;
208
- A.setUnsafe dst (j.contents + 1) e;
209
- done
210
-
211
- let rec sortTo (src : element array) srcofs dst dstofs len =
212
- if len <= cutoff then insertionSort src srcofs dst dstofs len
213
- else begin
214
- let l1 = len / 2 in
215
- let l2 = len - l1 in
216
- sortTo src (srcofs + l1) dst (dstofs + l1) l2 ;
217
- sortTo src srcofs src (srcofs + l2) l1 ;
218
- merge src (srcofs + l2) l1 dst (dstofs + l1) l2 dst dstofs ;
219
- end
220
-
221
- let stableSortInPlace (a : element array) =
222
- let l = A.length a in
223
- if l <= cutoff then insertionSort a 0 a 0 l
224
- else begin
225
- let l1 = l / 2 in
226
- let l2 = l - l1 in
227
- let t = Belt_Array.makeUninitializedUnsafe l2 in
228
- sortTo a l1 t 0 l2 ;
229
- sortTo a 0 a l2 l1 ;
230
- merge a l2 l1 t 0 l2 a 0 ;
231
- end
232
-
233
- let stableSort a = let b = A.copy a in stableSortInPlace b; b
234
-
235
- let rec binarySearchAux (arr : element array) lo hi key =
236
-
237
- let mid = (lo + hi)/2 in
238
- let midVal = A.getUnsafe arr mid in
239
- (* let c = cmp key midVal [@bs] in *)
240
- if key = midVal then mid
241
- else if key < midVal then (* a[lo] =< key < a[mid] <= a[hi] *)
242
- if hi = mid then
243
- if (A.getUnsafe arr lo) = key then lo
244
- else - (hi + 1)
245
- else binarySearchAux arr lo mid key
246
- else (* a[lo] =< a[mid] < key <= a[hi] *)
247
- if lo = mid then
248
- if (A.getUnsafe arr hi) = key then hi
249
- else - (hi + 1)
250
- else binarySearchAux arr mid hi key
251
-
252
- let binarySearch (sorted : element array) key : int =
253
- let len = A.length sorted in
254
- if len = 0 then -1
255
- else
256
- let lo = A.getUnsafe sorted 0 in
257
- (* let c = cmp key lo [@bs] in *)
258
- if key < lo then -1
259
- else
260
- let hi = A.getUnsafe sorted (len - 1) in
261
- (* let c2 = cmp key hi [@bs]in *)
262
- if key > hi then - (len + 1)
263
- else binarySearchAux sorted 0 (len - 1) key
@@ -1,93 +0,0 @@
1
-
2
- # 2 "others/sort.cppo.mli"
3
- (* Copyright (C) 2017 Authors of ReScript
4
- *
5
- * This program is free software: you can redistribute it and/or modify
6
- * it under the terms of the GNU Lesser General Public License as published by
7
- * the Free Software Foundation, either version 3 of the License, or
8
- * (at your option) any later version.
9
- *
10
- * In addition to the permissions granted to you by the LGPL, you may combine
11
- * or link a "work that uses the Library" with a publicly distributed version
12
- * of this file to produce a combined library or application, then distribute
13
- * that combined work under the terms of your choosing, with no requirement
14
- * to comply with the obligations normally placed on you by section 4 of the
15
- * LGPL version 3 (or the corresponding section of a later version of the LGPL
16
- * should you choose to use a later version).
17
- *
18
- * This program is distributed in the hope that it will be useful,
19
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
20
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21
- * GNU Lesser General Public License for more details.
22
- *
23
- * You should have received a copy of the GNU Lesser General Public License
24
- * along with this program; if not, write to the Free Software
25
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *)
26
-
27
-
28
- (** This is a specialized module for [`Belt_SortArray`](), the docs in that module also
29
- applies here, except the comparator is fixed and inlined
30
- *)
31
-
32
- # 32 "others/sort.cppo.mli"
33
- type element = int
34
-
35
- # 39 "others/sort.cppo.mli"
36
- val strictlySortedLength: element array -> int
37
- (**
38
- The same as [`Belt_SortArray.strictlySortedLength`]() except the comparator is fixed
39
-
40
- **return** `+n` means increasing order `-n` means negative order
41
- *)
42
-
43
-
44
- val isSorted: element array -> bool
45
- (** `sorted xs` return true if `xs` is in non strict increasing order *)
46
-
47
- val stableSortInPlace: element array -> unit
48
- (**
49
- The same as [`Belt_SortArray.stableSortInPlaceBy`]() except the comparator is fixed
50
- *)
51
-
52
- val stableSort: element array -> element array
53
- (** The same as [`Belt_SortArray.stableSortBy`]() except the comparator is fixed *)
54
-
55
- val binarySearch: element array -> element -> int
56
- (**
57
- If value is not found and value is less than one or more elements in array,
58
- the negative number returned is the bitwise complement of the index of the first element
59
- that is larger than value.
60
-
61
- If value is not found and value is greater than all elements in array,
62
- the negative number returned is the bitwise complement of
63
- (the index of the last element plus 1)
64
-
65
- for example, if `key` is smaller than all elements return `-1` since `lnot (-1) = 0`
66
- if `key` is larger than all elements return `- (len + 1)` since `lnot (-(len+1)) = len`
67
- *)
68
-
69
- (**/**)
70
- val union:
71
- element array -> int -> int ->
72
- element array -> int -> int ->
73
- element array -> int
74
- -> int
75
- (**
76
- `union src src1ofs src1len src2 src2ofs src2len dst dstofs cmp`
77
- assume `src` and `src2` is strictly sorted.
78
- for equivalent elements, it is picked from `src`
79
- also assume that `dst` is large enough to store all elements
80
- *)
81
-
82
- val intersect:
83
- element array -> int -> int ->
84
- element array -> int -> int ->
85
- element array -> int
86
- -> int
87
-
88
- val diff:
89
- element array -> int -> int ->
90
- element array -> int -> int ->
91
- element array -> int
92
- -> int
93
- (**/**)
Binary file
Binary file
Binary file
@@ -1,263 +0,0 @@
1
- # 4 "others/sort.cppo.ml"
2
- type element = string
3
-
4
- # 9 "others/sort.cppo.ml"
5
- module A = Belt_Array
6
-
7
- let rec sortedLengthAuxMore (xs : element array) prec acc len =
8
- if acc >= len then acc
9
- else
10
- let v = A.getUnsafe xs acc in
11
- if prec > v then
12
- sortedLengthAuxMore xs v (acc + 1) len
13
- else acc
14
-
15
- let rec sortedLengthAuxLess (xs : element array) prec acc len =
16
- if acc >= len then acc
17
- else
18
- let v = A.getUnsafe xs acc in
19
- if prec < v then
20
- sortedLengthAuxLess xs v (acc + 1) len
21
- else acc
22
-
23
- let strictlySortedLength (xs : element array) =
24
- let len = A.length xs in
25
- match len with
26
- | 0 | 1 -> len
27
- | _ ->
28
- let x0, x1 = A.getUnsafe xs 0, A.getUnsafe xs 1 in
29
- (* let c = cmp x0 x1 [@bs] in *)
30
- if x0 < x1 then
31
- sortedLengthAuxLess xs x1 2 len
32
- else if x0 > x1 then
33
- - (sortedLengthAuxMore xs x1 2 len)
34
- else 1
35
-
36
- let rec isSortedAux (a : element array) i last_bound =
37
- (* when `i = len - 1`, it reaches the last element*)
38
- if i = last_bound then true
39
- else
40
- if A.getUnsafe a i <= A.getUnsafe a (i+1) then
41
- isSortedAux a (i + 1) last_bound
42
- else false
43
-
44
-
45
- let isSorted a =
46
- let len = A.length a in
47
- if len = 0 then true
48
- else isSortedAux a 0 (len - 1)
49
-
50
-
51
- let cutoff = 5
52
-
53
- let merge (src : element array) src1ofs src1len src2 src2ofs src2len dst dstofs =
54
- let src1r = src1ofs + src1len and src2r = src2ofs + src2len in
55
- let rec loop i1 s1 i2 s2 d =
56
- if s1 <= s2 then begin
57
- A.setUnsafe dst d s1;
58
- let i1 = i1 + 1 in
59
- if i1 < src1r then
60
- loop i1 (A.getUnsafe src i1) i2 s2 (d + 1)
61
- else
62
- A.blitUnsafe ~src:src2 ~srcOffset:i2 ~dst ~dstOffset:(d + 1) ~len:(src2r - i2)
63
- end else begin
64
- A.setUnsafe dst d s2;
65
- let i2 = i2 + 1 in
66
- if i2 < src2r then
67
- loop i1 s1 i2 (A.getUnsafe src2 i2) (d + 1)
68
- else
69
- A.blitUnsafe ~src ~srcOffset:i1 ~dst ~dstOffset:(d + 1) ~len:(src1r - i1)
70
- end
71
- in
72
- loop src1ofs (A.getUnsafe src src1ofs) src2ofs (A.getUnsafe src2 src2ofs) dstofs
73
-
74
-
75
-
76
- let union (src : element array) src1ofs src1len src2 src2ofs src2len dst dstofs =
77
- let src1r = src1ofs + src1len in
78
- let src2r = src2ofs + src2len in
79
- let rec loop i1 s1 i2 s2 d =
80
- (* let c = cmp s1 s2 [@bs] in *)
81
- if s1 < s2 then begin
82
- (* `s1` is larger than all elements in `d` *)
83
- A.setUnsafe dst d s1;
84
- let i1 = i1 + 1 in
85
- let d = d + 1 in
86
- if i1 < src1r then
87
- loop i1 (A.getUnsafe src i1) i2 s2 d
88
- else
89
- begin
90
- A.blitUnsafe ~src:src2 ~srcOffset:i2 ~dst ~dstOffset:d ~len:(src2r - i2);
91
- d + src2r - i2
92
- end
93
- end
94
- else if s1 = s2 then begin
95
- A.setUnsafe dst d s1;
96
- let i1 = i1 + 1 in
97
- let i2 = i2 + 1 in
98
- let d = d + 1 in
99
- if i1 < src1r && i2 < src2r then
100
- loop i1 (A.getUnsafe src i1) i2 (A.getUnsafe src2 i2) d
101
- else if i1 = src1r then
102
- (A.blitUnsafe ~src:src2 ~srcOffset:i2 ~dst ~dstOffset:d ~len:(src2r - i2);
103
- d + src2r - i2)
104
- else
105
- (A.blitUnsafe ~src ~srcOffset:i1 ~dst ~dstOffset:d ~len:(src1r - i1);
106
- d + src1r - i1)
107
- end
108
- else begin
109
- A.setUnsafe dst d s2;
110
- let i2 = i2 + 1 in
111
- let d = d + 1 in
112
- if i2 < src2r then
113
- loop i1 s1 i2 (A.getUnsafe src2 i2) d
114
- else
115
- (A.blitUnsafe ~src ~srcOffset:i1 ~dst ~dstOffset:d ~len:(src1r - i1);
116
- d + src1r - i1
117
- )
118
- end
119
- in
120
- loop src1ofs
121
- (A.getUnsafe src src1ofs)
122
- src2ofs
123
- (A.getUnsafe src2 src2ofs) dstofs
124
-
125
- let intersect (src : element array) src1ofs src1len src2 src2ofs src2len dst dstofs =
126
- let src1r = src1ofs + src1len in
127
- let src2r = src2ofs + src2len in
128
- let rec loop i1 s1 i2 s2 d =
129
- (* let c = cmp s1 s2 [@bs] in *)
130
- if s1 < s2 then begin
131
- (* A.setUnsafe dst d s1; *)
132
- let i1 = i1 + 1 in
133
- if i1 < src1r then
134
- loop i1 (A.getUnsafe src i1) i2 s2 d
135
- else
136
- d
137
- end
138
- else if s1 = s2 then begin
139
- A.setUnsafe dst d s1;
140
- let i1 = i1 + 1 in
141
- let i2 = i2 + 1 in
142
- let d = d + 1 in
143
- if i1 < src1r && i2 < src2r then
144
- loop i1 (A.getUnsafe src i1) i2 (A.getUnsafe src2 i2) d
145
- else d
146
- end
147
- else begin
148
- (* A.setUnsafe dst d s2; *)
149
- let i2 = i2 + 1 in
150
- if i2 < src2r then
151
- loop i1 s1 i2 (A.getUnsafe src2 i2) d
152
- else
153
- d
154
- end
155
- in
156
- loop src1ofs
157
- (A.getUnsafe src src1ofs)
158
- src2ofs
159
- (A.getUnsafe src2 src2ofs) dstofs
160
-
161
- let diff (src : element array) src1ofs src1len src2 src2ofs src2len dst dstofs =
162
- let src1r = src1ofs + src1len in
163
- let src2r = src2ofs + src2len in
164
- let rec loop i1 s1 i2 s2 d =
165
- (* let c = cmp s1 s2 [@bs] in *)
166
- if s1 < s2 then begin
167
- A.setUnsafe dst d s1;
168
- let d = d + 1 in
169
- let i1 = i1 + 1 in
170
- if i1 < src1r then
171
- loop i1 (A.getUnsafe src i1) i2 s2 d
172
- else
173
- d
174
- end
175
- else if s1 = s2 then begin
176
- let i1 = i1 + 1 in
177
- let i2 = i2 + 1 in
178
- if i1 < src1r && i2 < src2r then
179
- loop i1 (A.getUnsafe src i1) i2 (A.getUnsafe src2 i2) d
180
- else if i1 = src1r then
181
- d
182
- else
183
- (A.blitUnsafe ~src ~srcOffset:i1 ~dst ~dstOffset:d ~len:(src1r - i1);
184
- d + src1r - i1)
185
- end
186
- else begin
187
- let i2 = i2 + 1 in
188
- if i2 < src2r then
189
- loop i1 s1 i2 (A.getUnsafe src2 i2) d
190
- else
191
- (A.blitUnsafe ~src ~srcOffset:i1 ~dst ~dstOffset:d ~len:(src1r - i1);
192
- d + src1r - i1)
193
- end
194
- in
195
- loop src1ofs
196
- (A.getUnsafe src src1ofs)
197
- src2ofs
198
- (A.getUnsafe src2 src2ofs) dstofs
199
-
200
- let insertionSort (src : element array) srcofs dst dstofs len =
201
- for i = 0 to len - 1 do
202
- let e = (A.getUnsafe src (srcofs + i)) in
203
- let j = ref (dstofs + i - 1) in
204
- while j.contents >= dstofs && A.getUnsafe dst j.contents > e do
205
- A.setUnsafe dst (j.contents + 1) (A.getUnsafe dst j.contents);
206
- j.contents <- j.contents - 1;
207
- done;
208
- A.setUnsafe dst (j.contents + 1) e;
209
- done
210
-
211
- let rec sortTo (src : element array) srcofs dst dstofs len =
212
- if len <= cutoff then insertionSort src srcofs dst dstofs len
213
- else begin
214
- let l1 = len / 2 in
215
- let l2 = len - l1 in
216
- sortTo src (srcofs + l1) dst (dstofs + l1) l2 ;
217
- sortTo src srcofs src (srcofs + l2) l1 ;
218
- merge src (srcofs + l2) l1 dst (dstofs + l1) l2 dst dstofs ;
219
- end
220
-
221
- let stableSortInPlace (a : element array) =
222
- let l = A.length a in
223
- if l <= cutoff then insertionSort a 0 a 0 l
224
- else begin
225
- let l1 = l / 2 in
226
- let l2 = l - l1 in
227
- let t = Belt_Array.makeUninitializedUnsafe l2 in
228
- sortTo a l1 t 0 l2 ;
229
- sortTo a 0 a l2 l1 ;
230
- merge a l2 l1 t 0 l2 a 0 ;
231
- end
232
-
233
- let stableSort a = let b = A.copy a in stableSortInPlace b; b
234
-
235
- let rec binarySearchAux (arr : element array) lo hi key =
236
-
237
- let mid = (lo + hi)/2 in
238
- let midVal = A.getUnsafe arr mid in
239
- (* let c = cmp key midVal [@bs] in *)
240
- if key = midVal then mid
241
- else if key < midVal then (* a[lo] =< key < a[mid] <= a[hi] *)
242
- if hi = mid then
243
- if (A.getUnsafe arr lo) = key then lo
244
- else - (hi + 1)
245
- else binarySearchAux arr lo mid key
246
- else (* a[lo] =< a[mid] < key <= a[hi] *)
247
- if lo = mid then
248
- if (A.getUnsafe arr hi) = key then hi
249
- else - (hi + 1)
250
- else binarySearchAux arr mid hi key
251
-
252
- let binarySearch (sorted : element array) key : int =
253
- let len = A.length sorted in
254
- if len = 0 then -1
255
- else
256
- let lo = A.getUnsafe sorted 0 in
257
- (* let c = cmp key lo [@bs] in *)
258
- if key < lo then -1
259
- else
260
- let hi = A.getUnsafe sorted (len - 1) in
261
- (* let c2 = cmp key hi [@bs]in *)
262
- if key > hi then - (len + 1)
263
- else binarySearchAux sorted 0 (len - 1) key