@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,222 +0,0 @@
1
- (**************************************************************************)
2
- (* *)
3
- (* OCaml *)
4
- (* *)
5
- (* Francois Pottier, projet Cristal, INRIA Rocquencourt *)
6
- (* Jeremie Dimino, Jane Street Europe *)
7
- (* *)
8
- (* Copyright 2002 Institut National de Recherche en Informatique et *)
9
- (* en Automatique. *)
10
- (* *)
11
- (* All rights reserved. This file is distributed under the terms of *)
12
- (* the GNU Lesser General Public License version 2.1, with the *)
13
- (* special exception on linking described in the file LICENSE. *)
14
- (* *)
15
- (**************************************************************************)
16
- (* Adapted significantly by ReScript Authors *)
17
- module A = Belt_Array
18
-
19
- type 'a node = {
20
- content: 'a;
21
- mutable next: 'a cell
22
- }
23
- and 'a cell = 'a node option
24
- and 'a t = {
25
- mutable length: int;
26
- mutable first: 'a cell;
27
- mutable last: 'a cell
28
- }
29
-
30
-
31
-
32
-
33
- let make () =
34
- {
35
- length = 0;
36
- first = None;
37
- last = None }
38
-
39
-
40
- let clear q =
41
- q.length <- 0;
42
- q.first <- None;
43
- q.last <- None
44
-
45
- let add q x =
46
- let cell = Some {
47
- content = x;
48
- next = None } in
49
- match q.last with
50
- | None -> (* TODO: better names for intermediate var *)
51
- q.length <- 1;
52
- q.first <- cell;
53
- q.last <- cell
54
- | Some last ->
55
- q.length <- q.length + 1;
56
- last.next <- cell;
57
- q.last <- cell
58
-
59
-
60
-
61
- let peek q =
62
- match q.first with (* same here could be v *)
63
- | None -> None
64
- | Some v -> Some v.content
65
-
66
- let peekUndefined q =
67
- match q.first with
68
- | None -> Js.undefined
69
- | Some v -> Js.Undefined.return v.content
70
-
71
-
72
- let peekExn q =
73
- match q.first with
74
- | None -> raise Not_found
75
- | Some v -> v.content
76
-
77
- let pop q =
78
- match q.first with
79
- | None -> None
80
- | Some x ->
81
- let next = x.next in
82
- if next = None then
83
- begin (* only one element*)
84
- clear q;
85
- Some x.content
86
- end
87
- else begin
88
- q.length <- q.length - 1;
89
- q.first <- next;
90
- Some x.content
91
- end
92
-
93
- let popExn q = (* TO fix *)
94
- match q.first with
95
- | None -> raise Not_found
96
- | Some x ->
97
- let next = x.next in
98
- if next = None then
99
- begin (* only one element*)
100
- clear q;
101
- x.content
102
- end
103
- else begin
104
- q.length <- q.length - 1;
105
- q.first <- next;
106
- x.content
107
- end
108
-
109
- let popUndefined q =
110
- match q.first with
111
- | None -> Js.undefined
112
- | Some x ->
113
- let next = x.next in
114
- if next = None then
115
- begin (* only one element*)
116
- clear q;
117
- Js.Undefined.return x.content
118
- end
119
- else begin
120
- q.length <- q.length - 1;
121
- q.first <- next;
122
- Js.Undefined.return x.content
123
- end
124
-
125
- let rec copyAux qRes prev cell =
126
- match cell with
127
- | None -> qRes.last <- prev; qRes
128
- | Some x ->
129
- let content = x.content in
130
- let res = Some {content ; next = None} in
131
- begin match prev with
132
- | None -> qRes.first <- res
133
- | Some p -> p.next <- res
134
- end;
135
- copyAux qRes res (x.next)
136
-
137
- let copy q =
138
- copyAux {length = q.length; first = None; last = None} None q.first
139
-
140
-
141
-
142
- let rec copyMapAux qRes prev cell f =
143
- match cell with
144
- | None -> qRes.last <- prev; qRes
145
- | Some x ->
146
- let content = f x.content [@bs] in
147
- let res = Some {content; next = None} in
148
- begin match prev with (*TODO: optimize to remove such check*)
149
- | None -> qRes.first <- res
150
- | Some p -> p.next <- res
151
- end;
152
- copyMapAux qRes res x.next f
153
-
154
- let mapU q f =
155
- copyMapAux {length = q.length; first = None; last = None} None q.first f
156
-
157
- let map q f = mapU q (fun [@bs] a -> f a)
158
-
159
- let isEmpty q =
160
- q.length = 0
161
-
162
- let size q =
163
- q.length
164
-
165
- let rec iterAux cell f =
166
- match cell with
167
- | None -> ()
168
- | Some x ->
169
- f x.content [@bs];
170
- iterAux (x.next) f
171
-
172
- let forEachU q f =
173
- iterAux q.first f
174
-
175
- let forEach q f = forEachU q (fun[@bs] a -> f a)
176
-
177
- let rec foldAux f accu cell =
178
- match cell with
179
- | None -> accu
180
- | Some x ->
181
- let accu = f accu x.content [@bs] in
182
- foldAux f accu (x.next)
183
-
184
- let reduceU q accu f =
185
- foldAux f accu q.first
186
-
187
- let reduce q accu f = reduceU q accu (fun[@bs] a b -> f a b)
188
-
189
- let transfer q1 q2 =
190
- if q1.length > 0 then
191
- match q2.last with
192
- | None ->
193
- q2.length <- q1.length;
194
- q2.first <- q1.first;
195
- q2.last <- q1.last;
196
- clear q1
197
- | Some l ->
198
- q2.length <- (q2.length + q1.length);
199
- l.next <- q1.first;
200
- q2.last <- q1.last;
201
- clear q1
202
-
203
- let rec fillAux i arr cell =
204
- match cell with
205
- | None -> ()
206
- | Some x ->
207
- A.setUnsafe arr i x.content;
208
- fillAux (i + 1) arr (x.next)
209
-
210
- let toArray x =
211
- let v = A.makeUninitializedUnsafe x.length in
212
- fillAux 0 v x.first;
213
- v
214
-
215
- (*TODO: optimize *)
216
- let fromArray arr =
217
- let q = make () in
218
- for i = 0 to A.length arr - 1 do
219
- add q (A.getUnsafe arr i)
220
- done ;
221
- q
222
-
@@ -1,116 +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
- (* Adapted significantly by ReScript Authors *)
16
-
17
- (**
18
- A FIFO (first in first out) queue data structure.
19
- *)
20
-
21
- type 'a t
22
- (**
23
- The type of queues containing elements of `type('a)`.
24
- *)
25
-
26
- val make : unit -> 'a t
27
- (**
28
- Returns a new queue, initially empty.
29
- *)
30
-
31
- val clear : 'a t -> unit
32
- (**
33
- Discard all elements from the queue.
34
- *)
35
-
36
- val isEmpty : 'a t -> bool
37
- (**
38
- Returns `true` if the given queue is empty, `false` otherwise.
39
- *)
40
-
41
- val fromArray : 'a array -> 'a t
42
- (**
43
- `fromArray` a is equivalent to `Array.forEach(a, add(q, a));`
44
- *)
45
-
46
- val add : 'a t -> 'a -> unit
47
- (**
48
- `add(q, x)` adds the element `x` at the end of the queue `q`.
49
- *)
50
-
51
- val peek : 'a t -> 'a option
52
- (**
53
- `peekOpt(q)` returns the first element in queue `q`, without removing it from the queue.
54
- *)
55
-
56
- val peekUndefined : 'a t -> 'a Js.undefined
57
- (**
58
- `peekUndefined(q)` returns `undefined` if not found.
59
- *)
60
-
61
- val peekExn : 'a t -> 'a
62
- (**
63
- raise an exception if `q` is empty
64
- *)
65
-
66
- val pop : 'a t -> 'a option
67
- (**
68
- `pop(q)` removes and returns the first element in queue `q`.
69
- *)
70
-
71
- val popUndefined : 'a t -> 'a Js.undefined
72
- (**
73
- `popUndefined(q)` removes and returns the first element in queue `q`. it will return `undefined` if it is already empty.
74
- *)
75
-
76
- val popExn : 'a t -> 'a
77
- (**
78
- `popExn(q)` raise an exception if q is empty.
79
- *)
80
-
81
- val copy : 'a t -> 'a t
82
- (**
83
- `copy(q)` returns a fresh queue.
84
- *)
85
-
86
- val size : 'a t -> int
87
- (**
88
- Returns the number of elements in a queue.
89
- *)
90
-
91
- val mapU : 'a t -> (('a -> 'b)[@bs]) -> 'b t
92
- val map : 'a t -> ('a -> 'b) -> 'b t
93
- val forEachU : 'a t -> (('a -> unit)[@bs]) -> unit
94
-
95
- val forEach : 'a t -> ('a -> unit) -> unit
96
- (**
97
- `forEach(q, f) applies`f`in turn to all elements of`q`, from the least
98
- recently entered to the most recently entered. The queue itself is unchanged.
99
- *)
100
-
101
- val reduceU : 'a t -> 'b -> (('b -> 'a -> 'b)[@bs]) -> 'b
102
-
103
- val reduce : 'a t -> 'b -> ('b -> 'a -> 'b) -> 'b
104
- (**
105
- `reduce(q, accu, f)` is equivalent to `List.reduce(l, accu, f)`, where `l` is the list of `q`'s elements. The queue remains unchanged.
106
- *)
107
-
108
- val transfer : 'a t -> 'a t -> unit
109
- (**
110
- `transfer(q1, q2)` adds all of `q1`'s elements at the end of the queue `q2`, then clears `q1`. It is equivalent to the sequence `forEach((x) => add(x, q2), q1);`; clear `q1`, but runs in constant time.
111
- *)
112
-
113
- val toArray : 'a t -> 'a array
114
- (**
115
- First added will be in the beginning of the array.
116
- *)
Binary file
Binary file
Binary file
@@ -1,371 +0,0 @@
1
-
2
- (* Copyright (C) 2017 Hongbo Zhang, 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
- module Int = Belt_MutableSetInt
27
- module String = Belt_MutableSetString
28
-
29
- module N = Belt_internalAVLset
30
- module A = Belt_Array
31
- module Sort = Belt_SortArray
32
-
33
-
34
- type ('k, 'id) id = ('k, 'id) Belt_Id.comparable
35
- type ('key, 'id ) cmp = ('key, 'id) Belt_Id.cmp
36
-
37
-
38
- type ('value,'id) t =
39
- {
40
- cmp: ('value, 'id) cmp;
41
- mutable data: 'value N.t
42
- }
43
-
44
-
45
-
46
- let rec remove0 nt x ~cmp =
47
- let k = nt.N.value in
48
- let c = cmp x k [@bs] in
49
- if c = 0 then
50
- let {N.left = l; right = r} = nt in
51
- match l, r with
52
- | None, _ -> r
53
- | _, None -> l
54
- | Some _, Some nr ->
55
- nt.right <- (N.removeMinAuxWithRootMutate nt nr);
56
- Some (N.balMutate nt)
57
- else
58
- begin
59
- if c < 0 then
60
- match nt.left with
61
- | None -> Some nt
62
- | Some l ->
63
- nt.left <- (remove0 ~cmp l x );
64
- Some (N.balMutate nt)
65
- else
66
- match nt.right with
67
- | None -> Some nt
68
- | Some r ->
69
- nt.right <- (remove0 ~cmp r x);
70
- Some (N.balMutate nt)
71
- end
72
-
73
- let remove d v =
74
- let oldRoot = d.data in
75
- match oldRoot with
76
- | None -> ()
77
- | Some oldRoot2 ->
78
- let newRoot = remove0 ~cmp:(Belt_Id.getCmpInternal d.cmp) oldRoot2 v in
79
- if newRoot != oldRoot then
80
- d.data <- newRoot
81
-
82
-
83
- let rec removeMany0 t xs i len ~cmp =
84
- if i < len then
85
- let ele = A.getUnsafe xs i in
86
- let u = remove0 t ele ~cmp in
87
- match u with
88
- | None -> None
89
- | Some t -> removeMany0 t xs (i+1) len ~cmp
90
- else Some t
91
-
92
- let removeMany d xs =
93
- let oldRoot = d.data in
94
- match oldRoot with
95
- | None -> ()
96
- | Some nt ->
97
- let len = A.length xs in
98
- d.data <-
99
- (removeMany0 nt xs 0 len
100
- ~cmp:(Belt_Id.getCmpInternal d.cmp))
101
-
102
-
103
- let rec removeCheck0 nt x removed ~cmp=
104
- let k = nt.N.value in
105
- let c = (Belt_Id.getCmpInternal cmp) x k [@bs] in
106
- if c = 0 then
107
- let () = removed .contents<- true in
108
- let {N.left = l; right = r} = nt in
109
- match l, r with
110
- | None, _ -> r
111
- | _, None -> l
112
- | Some _, Some nr ->
113
- nt.right <- (N.removeMinAuxWithRootMutate nt nr);
114
- Some (N.balMutate nt)
115
- else
116
- begin
117
- if c < 0 then
118
- match nt.left with
119
- | None -> Some nt
120
- | Some l ->
121
- nt.left <- (removeCheck0 ~cmp l x removed);
122
- Some (N.balMutate nt)
123
- else
124
- match nt.right with
125
- | None -> Some nt
126
- | Some r ->
127
- nt.right <- (removeCheck0 ~cmp r x removed);
128
- Some (N.balMutate nt)
129
- end
130
-
131
-
132
-
133
- let removeCheck d v =
134
- let oldRoot = d.data in
135
- match oldRoot with
136
- | None -> false
137
- | Some oldRoot2 ->
138
- let removed = ref false in
139
- let newRoot = removeCheck0 ~cmp:d.cmp oldRoot2 v removed in
140
- if newRoot != oldRoot then
141
- d.data <- newRoot ;
142
- removed.contents
143
-
144
-
145
-
146
- let rec addCheck0 t x added ~cmp =
147
- match t with
148
- | None ->
149
- added .contents<- true;
150
- N.singleton x
151
- | Some nt ->
152
- let k = nt.N.value in
153
- let c = cmp x k [@bs] in
154
- if c = 0 then t
155
- else
156
- let {N.left = l; right = r} = nt in
157
- (if c < 0 then
158
- let ll = addCheck0 ~cmp l x added in
159
- nt.left <- ll
160
- else
161
- nt.right <- (addCheck0 ~cmp r x added );
162
- );
163
- Some (N.balMutate nt)
164
-
165
- let addCheck m e =
166
- let oldRoot = m.data in
167
- let added = ref false in
168
- let newRoot = addCheck0 ~cmp:(Belt_Id.getCmpInternal m.cmp) oldRoot e added in
169
- if newRoot != oldRoot then
170
- m.data <- newRoot;
171
- added.contents
172
-
173
- let add m e =
174
- let oldRoot = m.data in
175
- let newRoot = N.addMutate ~cmp:m.cmp oldRoot e in
176
- if newRoot != oldRoot then
177
- m.data <- newRoot
178
-
179
- let addArrayMutate t xs ~cmp =
180
- let v = ref t in
181
- for i = 0 to A.length xs - 1 do
182
- v .contents<- N.addMutate v.contents (A.getUnsafe xs i) ~cmp
183
- done;
184
- v.contents
185
-
186
- let mergeMany d xs =
187
- d.data <- (addArrayMutate (d.data) xs ~cmp:d.cmp)
188
-
189
-
190
- let make (type value) (type identity) ~(id : (value, identity) id) =
191
- let module M = (val id) in
192
- {cmp = M.cmp ; data = None}
193
-
194
- let isEmpty d =
195
- N.isEmpty (d.data)
196
-
197
- let minimum d =
198
- N.minimum (d.data)
199
- let minUndefined d =
200
- N.minUndefined (d.data)
201
- let maximum d =
202
- N.maximum (d.data)
203
- let maxUndefined d =
204
- N.maxUndefined (d.data)
205
-
206
- let forEachU d f = N.forEachU (d.data) f
207
- let forEach d f = forEachU d (fun[@bs] a -> f a)
208
- let reduceU d acc cb = N.reduceU (d.data) acc cb
209
- let reduce d acc cb = reduceU d acc (fun[@bs] a b -> cb a b)
210
- let everyU d p = N.everyU (d.data) p
211
- let every d p = everyU d (fun[@bs] a -> p a)
212
- let someU d p = N.someU (d.data) p
213
- let some d p = someU d (fun[@bs] a -> p a)
214
- let size d =
215
- N.size (d.data)
216
- let toList d =
217
- N.toList (d.data)
218
- let toArray d =
219
- N.toArray (d.data)
220
-
221
- let fromSortedArrayUnsafe (type value) (type identity) xs ~(id : (value,identity) id) : _ t =
222
- let module M = (val id) in
223
- {data = (N.fromSortedArrayUnsafe xs); cmp = M.cmp}
224
-
225
- let checkInvariantInternal d =
226
- N.checkInvariantInternal (d.data)
227
-
228
-
229
- let fromArray (type value) (type identity) data ~(id : (value,identity) id) =
230
- let module M = (val id) in
231
- let cmp = M.cmp in
232
- {cmp; data = (N.fromArray ~cmp data)}
233
-
234
-
235
- let cmp d0 d1 =
236
- N.cmp ~cmp:(d0.cmp) (d0.data) (d1.data)
237
-
238
- let eq d0 d1 =
239
- N.eq ~cmp:(d0.cmp) (d0.data) (d1.data)
240
-
241
- let get d x =
242
- N.get ~cmp:d.cmp d.data x
243
-
244
- let getUndefined d x =
245
- N.getUndefined ~cmp:d.cmp d.data x
246
-
247
- let getExn d x =
248
- N.getExn ~cmp:d.cmp d.data x
249
-
250
-
251
- let split d key =
252
- let arr = N.toArray d.data in
253
- let cmp = d.cmp in
254
- let i = Sort.binarySearchByU arr key (Belt_Id.getCmpInternal cmp) in
255
- let len = A.length arr in
256
- if i < 0 then
257
- let next = - i -1 in
258
- ({
259
- data = (N.fromSortedArrayAux arr 0 next);
260
- cmp}
261
- ,
262
- {data = (N.fromSortedArrayAux arr next (len - next));
263
- cmp}
264
- ), false
265
- else
266
- (
267
- {data = (N.fromSortedArrayAux arr 0 i);
268
- cmp},
269
- { data = (N.fromSortedArrayAux arr (i+1) (len - i - 1));
270
- cmp}
271
- ), true
272
-
273
- let keepU d p =
274
- {data = (N.keepCopyU d.data p ); cmp = d.cmp}
275
-
276
- let keep d p = keepU d (fun[@bs] a -> p a)
277
-
278
- let partitionU d p =
279
- let cmp = d.cmp in
280
- let a, b = N.partitionCopyU d.data p in
281
- {data = a ; cmp}, { data = b; cmp}
282
-
283
- let partition d p = partitionU d (fun[@bs] a -> p a)
284
-
285
- let subset a b =
286
- N.subset ~cmp:a.cmp a.data b.data
287
-
288
- let intersect a b : _ t =
289
- let cmp = a.cmp in
290
- match a.data, b.data with
291
- | None, _ -> { cmp; data = None}
292
- | _, None -> { cmp; data = None}
293
- | Some dataa0, Some datab0 ->
294
- let sizea, sizeb =
295
- N.lengthNode dataa0, N.lengthNode datab0 in
296
- let totalSize = sizea + sizeb in
297
- let tmp = A.makeUninitializedUnsafe totalSize in
298
- ignore (N.fillArray dataa0 0 tmp) ;
299
- ignore (N.fillArray datab0 sizea tmp);
300
- let p = Belt_Id.getCmpInternal cmp in
301
- if (p (A.getUnsafe tmp (sizea - 1))
302
- (A.getUnsafe tmp sizea) [@bs] < 0)
303
- ||
304
- (p
305
- (A.getUnsafe tmp (totalSize - 1))
306
- (A.getUnsafe tmp 0) [@bs] < 0
307
- )
308
- then {cmp; data = None}
309
- else
310
- let tmp2 = A.makeUninitializedUnsafe (Pervasives.min sizea sizeb) in
311
- let k = Sort.intersectU tmp 0 sizea tmp sizea sizeb tmp2 0 p in
312
- {data = (N.fromSortedArrayAux tmp2 0 k);
313
- cmp}
314
-
315
- let diff a b : _ t =
316
- let cmp = a.cmp in
317
- let dataa = a.data in
318
- match dataa, b.data with
319
- | None, _ -> {cmp; data = None}
320
- | _, None ->
321
- {data = (N.copy dataa); cmp}
322
- | Some dataa0, Some datab0
323
- ->
324
- let sizea, sizeb = N.lengthNode dataa0, N.lengthNode datab0 in
325
- let totalSize = sizea + sizeb in
326
- let tmp = A.makeUninitializedUnsafe totalSize in
327
- ignore ( N.fillArray dataa0 0 tmp) ;
328
- ignore (N.fillArray datab0 sizea tmp);
329
- let p = Belt_Id.getCmpInternal cmp in
330
- if (p (A.getUnsafe tmp (sizea - 1))
331
- (A.getUnsafe tmp sizea) [@bs] < 0)
332
- ||
333
- (p
334
- (A.getUnsafe tmp (totalSize - 1))
335
- (A.getUnsafe tmp 0) [@bs] < 0
336
- )
337
- then {data = (N.copy dataa); cmp}
338
- else
339
- let tmp2 = A.makeUninitializedUnsafe sizea in
340
- let k = Sort.diffU tmp 0 sizea tmp sizea sizeb tmp2 0 p in
341
- {data = (N.fromSortedArrayAux tmp2 0 k); cmp}
342
-
343
- let union a b =
344
- let cmp = a.cmp in
345
- let dataa, datab = a.data, b.data in
346
- match dataa, datab with
347
- | None, _ -> {data = (N.copy datab); cmp}
348
- | _, None -> {data = (N.copy dataa); cmp}
349
- | Some dataa0, Some datab0
350
- ->
351
- let sizea, sizeb = N.lengthNode dataa0, N.lengthNode datab0 in
352
- let totalSize = sizea + sizeb in
353
- let tmp = A.makeUninitializedUnsafe totalSize in
354
- ignore (N.fillArray dataa0 0 tmp );
355
- ignore (N.fillArray datab0 sizea tmp);
356
- let p = (Belt_Id.getCmpInternal cmp) in
357
- if p
358
- (A.getUnsafe tmp (sizea - 1))
359
- (A.getUnsafe tmp sizea) [@bs] < 0 then
360
- { data = (N.fromSortedArrayAux tmp 0 totalSize); cmp}
361
- else
362
- let tmp2 = A.makeUninitializedUnsafe totalSize in
363
- let k = Sort.unionU tmp 0 sizea tmp sizea sizeb tmp2 0 p in
364
- {data = (N.fromSortedArrayAux tmp2 0 k); cmp}
365
-
366
- let has d x =
367
- N.has ~cmp:d.cmp d.data x
368
-
369
- let copy d = {data = (N.copy d.data); cmp = d.cmp}
370
-
371
-