@tellahq/rescript 10.1.4-republish-2 → 10.1.4-republish-3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (616) hide show
  1. package/darwin/bsb_helper.exe +0 -0
  2. package/darwin/bsc.exe +0 -0
  3. package/darwin/ninja.exe +0 -0
  4. package/darwin/rescript.exe +0 -0
  5. package/darwinarm64/bsb_helper.exe +0 -0
  6. package/darwinarm64/bsc.exe +0 -0
  7. package/darwinarm64/ninja.exe +0 -0
  8. package/darwinarm64/rescript.exe +0 -0
  9. package/lib/ocaml/arg.cmi +0 -0
  10. package/lib/ocaml/arg.cmt +0 -0
  11. package/lib/ocaml/arg.cmti +0 -0
  12. package/lib/ocaml/arg.ml +359 -0
  13. package/lib/ocaml/arg.mli +185 -0
  14. package/lib/ocaml/array.cmi +0 -0
  15. package/lib/ocaml/array.cmt +0 -0
  16. package/lib/ocaml/array.cmti +0 -0
  17. package/lib/ocaml/array.ml +307 -0
  18. package/lib/ocaml/array.mli +275 -0
  19. package/lib/ocaml/arrayLabels.cmi +0 -0
  20. package/lib/ocaml/arrayLabels.cmt +0 -0
  21. package/lib/ocaml/arrayLabels.cmti +0 -0
  22. package/lib/ocaml/arrayLabels.ml +307 -0
  23. package/lib/ocaml/arrayLabels.mli +276 -0
  24. package/lib/ocaml/belt.cmi +0 -0
  25. package/lib/ocaml/belt.cmt +0 -0
  26. package/lib/ocaml/belt.ml +352 -0
  27. package/lib/ocaml/belt_Array.cmi +0 -0
  28. package/lib/ocaml/belt_Array.cmt +0 -0
  29. package/lib/ocaml/belt_Array.cmti +0 -0
  30. package/lib/ocaml/belt_Array.ml +525 -0
  31. package/lib/ocaml/belt_Array.mli +707 -0
  32. package/lib/ocaml/belt_Float.cmi +0 -0
  33. package/lib/ocaml/belt_Float.cmt +0 -0
  34. package/lib/ocaml/belt_Float.cmti +0 -0
  35. package/lib/ocaml/belt_Float.ml +50 -0
  36. package/lib/ocaml/belt_Float.mli +106 -0
  37. package/lib/ocaml/belt_HashMap.cmi +0 -0
  38. package/lib/ocaml/belt_HashMap.cmt +0 -0
  39. package/lib/ocaml/belt_HashMap.cmti +0 -0
  40. package/lib/ocaml/belt_HashMap.ml +226 -0
  41. package/lib/ocaml/belt_HashMap.mli +436 -0
  42. package/lib/ocaml/belt_HashMapInt.cmi +0 -0
  43. package/lib/ocaml/belt_HashMapInt.cmt +0 -0
  44. package/lib/ocaml/belt_HashMapInt.cmti +0 -0
  45. package/lib/ocaml/belt_HashMapInt.ml +206 -0
  46. package/lib/ocaml/belt_HashMapInt.mli +50 -0
  47. package/lib/ocaml/belt_HashMapString.cmi +0 -0
  48. package/lib/ocaml/belt_HashMapString.cmt +0 -0
  49. package/lib/ocaml/belt_HashMapString.cmti +0 -0
  50. package/lib/ocaml/belt_HashMapString.ml +206 -0
  51. package/lib/ocaml/belt_HashMapString.mli +50 -0
  52. package/lib/ocaml/belt_HashSet.cmi +0 -0
  53. package/lib/ocaml/belt_HashSet.cmt +0 -0
  54. package/lib/ocaml/belt_HashSet.cmti +0 -0
  55. package/lib/ocaml/belt_HashSet.ml +196 -0
  56. package/lib/ocaml/belt_HashSet.mli +125 -0
  57. package/lib/ocaml/belt_HashSetInt.cmi +0 -0
  58. package/lib/ocaml/belt_HashSetInt.cmt +0 -0
  59. package/lib/ocaml/belt_HashSetInt.cmti +0 -0
  60. package/lib/ocaml/belt_HashSetInt.ml +155 -0
  61. package/lib/ocaml/belt_HashSetInt.mli +74 -0
  62. package/lib/ocaml/belt_HashSetString.cmi +0 -0
  63. package/lib/ocaml/belt_HashSetString.cmt +0 -0
  64. package/lib/ocaml/belt_HashSetString.cmti +0 -0
  65. package/lib/ocaml/belt_HashSetString.ml +156 -0
  66. package/lib/ocaml/belt_HashSetString.mli +74 -0
  67. package/lib/ocaml/belt_Id.cmi +0 -0
  68. package/lib/ocaml/belt_Id.cmt +0 -0
  69. package/lib/ocaml/belt_Id.cmti +0 -0
  70. package/lib/ocaml/belt_Id.ml +133 -0
  71. package/lib/ocaml/belt_Id.mli +171 -0
  72. package/lib/ocaml/belt_Int.cmi +0 -0
  73. package/lib/ocaml/belt_Int.cmt +0 -0
  74. package/lib/ocaml/belt_Int.cmti +0 -0
  75. package/lib/ocaml/belt_Int.ml +50 -0
  76. package/lib/ocaml/belt_Int.mli +103 -0
  77. package/lib/ocaml/belt_List.cmi +0 -0
  78. package/lib/ocaml/belt_List.cmt +0 -0
  79. package/lib/ocaml/belt_List.cmti +0 -0
  80. package/lib/ocaml/belt_List.ml +803 -0
  81. package/lib/ocaml/belt_List.mli +844 -0
  82. package/lib/ocaml/belt_Map.cmi +0 -0
  83. package/lib/ocaml/belt_Map.cmt +0 -0
  84. package/lib/ocaml/belt_Map.cmti +0 -0
  85. package/lib/ocaml/belt_Map.ml +170 -0
  86. package/lib/ocaml/belt_Map.mli +496 -0
  87. package/lib/ocaml/belt_MapDict.cmi +0 -0
  88. package/lib/ocaml/belt_MapDict.cmt +0 -0
  89. package/lib/ocaml/belt_MapDict.cmti +0 -0
  90. package/lib/ocaml/belt_MapDict.ml +278 -0
  91. package/lib/ocaml/belt_MapDict.mli +268 -0
  92. package/lib/ocaml/belt_MapInt.cmi +0 -0
  93. package/lib/ocaml/belt_MapInt.cmt +0 -0
  94. package/lib/ocaml/belt_MapInt.cmti +0 -0
  95. package/lib/ocaml/belt_MapInt.ml +169 -0
  96. package/lib/ocaml/belt_MapInt.mli +187 -0
  97. package/lib/ocaml/belt_MapString.cmi +0 -0
  98. package/lib/ocaml/belt_MapString.cmt +0 -0
  99. package/lib/ocaml/belt_MapString.cmti +0 -0
  100. package/lib/ocaml/belt_MapString.ml +169 -0
  101. package/lib/ocaml/belt_MapString.mli +187 -0
  102. package/lib/ocaml/belt_MutableMap.cmi +0 -0
  103. package/lib/ocaml/belt_MutableMap.cmt +0 -0
  104. package/lib/ocaml/belt_MutableMap.cmti +0 -0
  105. package/lib/ocaml/belt_MutableMap.ml +241 -0
  106. package/lib/ocaml/belt_MutableMap.mli +145 -0
  107. package/lib/ocaml/belt_MutableMapInt.cmi +0 -0
  108. package/lib/ocaml/belt_MutableMapInt.cmt +0 -0
  109. package/lib/ocaml/belt_MutableMapInt.cmti +0 -0
  110. package/lib/ocaml/belt_MutableMapInt.ml +172 -0
  111. package/lib/ocaml/belt_MutableMapInt.mli +135 -0
  112. package/lib/ocaml/belt_MutableMapString.cmi +0 -0
  113. package/lib/ocaml/belt_MutableMapString.cmt +0 -0
  114. package/lib/ocaml/belt_MutableMapString.cmti +0 -0
  115. package/lib/ocaml/belt_MutableMapString.ml +172 -0
  116. package/lib/ocaml/belt_MutableMapString.mli +135 -0
  117. package/lib/ocaml/belt_MutableQueue.cmi +0 -0
  118. package/lib/ocaml/belt_MutableQueue.cmt +0 -0
  119. package/lib/ocaml/belt_MutableQueue.cmti +0 -0
  120. package/lib/ocaml/belt_MutableQueue.ml +222 -0
  121. package/lib/ocaml/belt_MutableQueue.mli +116 -0
  122. package/lib/ocaml/belt_MutableSet.cmi +0 -0
  123. package/lib/ocaml/belt_MutableSet.cmt +0 -0
  124. package/lib/ocaml/belt_MutableSet.cmti +0 -0
  125. package/lib/ocaml/belt_MutableSet.ml +371 -0
  126. package/lib/ocaml/belt_MutableSet.mli +617 -0
  127. package/lib/ocaml/belt_MutableSetInt.cmi +0 -0
  128. package/lib/ocaml/belt_MutableSetInt.cmt +0 -0
  129. package/lib/ocaml/belt_MutableSetInt.cmti +0 -0
  130. package/lib/ocaml/belt_MutableSetInt.ml +342 -0
  131. package/lib/ocaml/belt_MutableSetInt.mli +124 -0
  132. package/lib/ocaml/belt_MutableSetString.cmi +0 -0
  133. package/lib/ocaml/belt_MutableSetString.cmt +0 -0
  134. package/lib/ocaml/belt_MutableSetString.cmti +0 -0
  135. package/lib/ocaml/belt_MutableSetString.ml +342 -0
  136. package/lib/ocaml/belt_MutableSetString.mli +124 -0
  137. package/lib/ocaml/belt_MutableStack.cmi +0 -0
  138. package/lib/ocaml/belt_MutableStack.cmt +0 -0
  139. package/lib/ocaml/belt_MutableStack.cmti +0 -0
  140. package/lib/ocaml/belt_MutableStack.ml +106 -0
  141. package/lib/ocaml/belt_MutableStack.mli +63 -0
  142. package/lib/ocaml/belt_Option.cmi +0 -0
  143. package/lib/ocaml/belt_Option.cmt +0 -0
  144. package/lib/ocaml/belt_Option.cmti +0 -0
  145. package/lib/ocaml/belt_Option.ml +93 -0
  146. package/lib/ocaml/belt_Option.mli +270 -0
  147. package/lib/ocaml/belt_Range.cmi +0 -0
  148. package/lib/ocaml/belt_Range.cmt +0 -0
  149. package/lib/ocaml/belt_Range.cmti +0 -0
  150. package/lib/ocaml/belt_Range.ml +76 -0
  151. package/lib/ocaml/belt_Range.mli +114 -0
  152. package/lib/ocaml/belt_Result.cmi +0 -0
  153. package/lib/ocaml/belt_Result.cmt +0 -0
  154. package/lib/ocaml/belt_Result.cmti +0 -0
  155. package/lib/ocaml/belt_Result.ml +75 -0
  156. package/lib/ocaml/belt_Result.mli +205 -0
  157. package/lib/ocaml/belt_Set.cmi +0 -0
  158. package/lib/ocaml/belt_Set.cmt +0 -0
  159. package/lib/ocaml/belt_Set.cmti +0 -0
  160. package/lib/ocaml/belt_Set.cppo.ml +205 -0
  161. package/lib/ocaml/belt_Set.cppo.mli +153 -0
  162. package/lib/ocaml/belt_Set.ml +164 -0
  163. package/lib/ocaml/belt_Set.mli +523 -0
  164. package/lib/ocaml/belt_SetDict.cmi +0 -0
  165. package/lib/ocaml/belt_SetDict.cmt +0 -0
  166. package/lib/ocaml/belt_SetDict.cmti +0 -0
  167. package/lib/ocaml/belt_SetDict.ml +237 -0
  168. package/lib/ocaml/belt_SetDict.mli +567 -0
  169. package/lib/ocaml/belt_SetInt.cmi +0 -0
  170. package/lib/ocaml/belt_SetInt.cmt +0 -0
  171. package/lib/ocaml/belt_SetInt.cmti +0 -0
  172. package/lib/ocaml/belt_SetInt.ml +201 -0
  173. package/lib/ocaml/belt_SetInt.mli +151 -0
  174. package/lib/ocaml/belt_SetString.cmi +0 -0
  175. package/lib/ocaml/belt_SetString.cmt +0 -0
  176. package/lib/ocaml/belt_SetString.cmti +0 -0
  177. package/lib/ocaml/belt_SetString.ml +201 -0
  178. package/lib/ocaml/belt_SetString.mli +151 -0
  179. package/lib/ocaml/belt_SortArray.cmi +0 -0
  180. package/lib/ocaml/belt_SortArray.cmt +0 -0
  181. package/lib/ocaml/belt_SortArray.cmti +0 -0
  182. package/lib/ocaml/belt_SortArray.ml +322 -0
  183. package/lib/ocaml/belt_SortArray.mli +146 -0
  184. package/lib/ocaml/belt_SortArrayInt.cmi +0 -0
  185. package/lib/ocaml/belt_SortArrayInt.cmt +0 -0
  186. package/lib/ocaml/belt_SortArrayInt.cmti +0 -0
  187. package/lib/ocaml/belt_SortArrayInt.ml +263 -0
  188. package/lib/ocaml/belt_SortArrayInt.mli +93 -0
  189. package/lib/ocaml/belt_SortArrayString.cmi +0 -0
  190. package/lib/ocaml/belt_SortArrayString.cmt +0 -0
  191. package/lib/ocaml/belt_SortArrayString.cmti +0 -0
  192. package/lib/ocaml/belt_SortArrayString.ml +263 -0
  193. package/lib/ocaml/belt_SortArrayString.mli +93 -0
  194. package/lib/ocaml/belt_internalAVLset.cmt +0 -0
  195. package/lib/ocaml/belt_internalAVLset.cmti +0 -0
  196. package/lib/ocaml/belt_internalAVLset.ml +665 -0
  197. package/lib/ocaml/belt_internalAVLset.mli +124 -0
  198. package/lib/ocaml/belt_internalAVLtree.cmt +0 -0
  199. package/lib/ocaml/belt_internalAVLtree.cmti +0 -0
  200. package/lib/ocaml/belt_internalAVLtree.ml +762 -0
  201. package/lib/ocaml/belt_internalAVLtree.mli +215 -0
  202. package/lib/ocaml/belt_internalBuckets.cmt +0 -0
  203. package/lib/ocaml/belt_internalBuckets.cmti +0 -0
  204. package/lib/ocaml/belt_internalBuckets.ml +218 -0
  205. package/lib/ocaml/belt_internalBuckets.mli +57 -0
  206. package/lib/ocaml/belt_internalBucketsType.cmt +0 -0
  207. package/lib/ocaml/belt_internalBucketsType.cmti +0 -0
  208. package/lib/ocaml/belt_internalBucketsType.ml +59 -0
  209. package/lib/ocaml/belt_internalBucketsType.mli +46 -0
  210. package/lib/ocaml/belt_internalMapInt.cmt +0 -0
  211. package/lib/ocaml/belt_internalMapInt.ml +227 -0
  212. package/lib/ocaml/belt_internalMapString.cmt +0 -0
  213. package/lib/ocaml/belt_internalMapString.ml +227 -0
  214. package/lib/ocaml/belt_internalSetBuckets.cmt +0 -0
  215. package/lib/ocaml/belt_internalSetBuckets.cmti +0 -0
  216. package/lib/ocaml/belt_internalSetBuckets.ml +157 -0
  217. package/lib/ocaml/belt_internalSetBuckets.mli +47 -0
  218. package/lib/ocaml/belt_internalSetInt.cmt +0 -0
  219. package/lib/ocaml/belt_internalSetInt.ml +129 -0
  220. package/lib/ocaml/belt_internalSetString.cmt +0 -0
  221. package/lib/ocaml/belt_internalSetString.ml +129 -0
  222. package/lib/ocaml/belt_internals.cmti +0 -0
  223. package/lib/ocaml/belt_internals.mli +79 -0
  224. package/lib/ocaml/buffer.cmi +0 -0
  225. package/lib/ocaml/buffer.cmt +0 -0
  226. package/lib/ocaml/buffer.cmti +0 -0
  227. package/lib/ocaml/buffer.ml +250 -0
  228. package/lib/ocaml/buffer.mli +149 -0
  229. package/lib/ocaml/bytes.cmi +0 -0
  230. package/lib/ocaml/bytes.cmt +0 -0
  231. package/lib/ocaml/bytes.cmti +0 -0
  232. package/lib/ocaml/bytes.ml +431 -0
  233. package/lib/ocaml/bytes.mli +430 -0
  234. package/lib/ocaml/bytesLabels.cmi +0 -0
  235. package/lib/ocaml/bytesLabels.cmt +0 -0
  236. package/lib/ocaml/bytesLabels.cmti +0 -0
  237. package/lib/ocaml/bytesLabels.ml +428 -0
  238. package/lib/ocaml/bytesLabels.mli +276 -0
  239. package/lib/ocaml/callback.cmi +0 -0
  240. package/lib/ocaml/callback.cmt +0 -0
  241. package/lib/ocaml/callback.cmti +0 -0
  242. package/lib/ocaml/callback.ml +20 -0
  243. package/lib/ocaml/callback.mli +34 -0
  244. package/lib/ocaml/camlinternalLazy.cmi +0 -0
  245. package/lib/ocaml/camlinternalLazy.cmt +0 -0
  246. package/lib/ocaml/camlinternalLazy.cmti +0 -0
  247. package/lib/ocaml/camlinternalLazy.ml +89 -0
  248. package/lib/ocaml/camlinternalLazy.mli +27 -0
  249. package/lib/ocaml/camlinternalMod.cmi +0 -0
  250. package/lib/ocaml/camlinternalMod.cmt +0 -0
  251. package/lib/ocaml/camlinternalMod.cmti +0 -0
  252. package/lib/ocaml/camlinternalMod.ml +21 -0
  253. package/lib/ocaml/camlinternalMod.mli +25 -0
  254. package/lib/ocaml/char.cmi +0 -0
  255. package/lib/ocaml/char.cmt +0 -0
  256. package/lib/ocaml/char.cmti +0 -0
  257. package/lib/ocaml/char.ml +76 -0
  258. package/lib/ocaml/char.mli +72 -0
  259. package/lib/ocaml/complex.cmi +0 -0
  260. package/lib/ocaml/complex.cmt +0 -0
  261. package/lib/ocaml/complex.cmti +0 -0
  262. package/lib/ocaml/complex.ml +87 -0
  263. package/lib/ocaml/complex.mli +86 -0
  264. package/lib/ocaml/digest.cmi +0 -0
  265. package/lib/ocaml/digest.cmt +0 -0
  266. package/lib/ocaml/digest.cmti +0 -0
  267. package/lib/ocaml/digest.ml +66 -0
  268. package/lib/ocaml/digest.mli +68 -0
  269. package/lib/ocaml/dom.cmi +0 -0
  270. package/lib/ocaml/dom.cmt +0 -0
  271. package/lib/ocaml/dom.ml +296 -0
  272. package/lib/ocaml/dom_storage.cmi +0 -0
  273. package/lib/ocaml/dom_storage.cmt +0 -0
  274. package/lib/ocaml/dom_storage.ml +22 -0
  275. package/lib/ocaml/dom_storage2.cmi +0 -0
  276. package/lib/ocaml/dom_storage2.cmt +0 -0
  277. package/lib/ocaml/dom_storage2.ml +11 -0
  278. package/lib/ocaml/filename.cmi +0 -0
  279. package/lib/ocaml/filename.cmt +0 -0
  280. package/lib/ocaml/filename.cmti +0 -0
  281. package/lib/ocaml/filename.ml +233 -0
  282. package/lib/ocaml/filename.mli +134 -0
  283. package/lib/ocaml/genlex.cmi +0 -0
  284. package/lib/ocaml/genlex.cmt +0 -0
  285. package/lib/ocaml/genlex.cmti +0 -0
  286. package/lib/ocaml/genlex.ml +201 -0
  287. package/lib/ocaml/genlex.mli +73 -0
  288. package/lib/ocaml/hashmap.cppo.ml +214 -0
  289. package/lib/ocaml/hashmap.cppo.mli +54 -0
  290. package/lib/ocaml/hashset.cppo.ml +165 -0
  291. package/lib/ocaml/hashset.cppo.mli +77 -0
  292. package/lib/ocaml/hashtbl.cmi +0 -0
  293. package/lib/ocaml/hashtbl.cmt +0 -0
  294. package/lib/ocaml/hashtbl.cmti +0 -0
  295. package/lib/ocaml/hashtbl.ml +541 -0
  296. package/lib/ocaml/hashtbl.mli +411 -0
  297. package/lib/ocaml/hashtblLabels.cmi +0 -0
  298. package/lib/ocaml/hashtblLabels.cmt +0 -0
  299. package/lib/ocaml/hashtblLabels.ml +130 -0
  300. package/lib/ocaml/int32.cmi +0 -0
  301. package/lib/ocaml/int32.cmt +0 -0
  302. package/lib/ocaml/int32.cmti +0 -0
  303. package/lib/ocaml/int32.ml +64 -0
  304. package/lib/ocaml/int32.mli +186 -0
  305. package/lib/ocaml/int64.cmi +0 -0
  306. package/lib/ocaml/int64.cmt +0 -0
  307. package/lib/ocaml/int64.cmti +0 -0
  308. package/lib/ocaml/int64.ml +72 -0
  309. package/lib/ocaml/int64.mli +197 -0
  310. package/lib/ocaml/internal_map.cppo.ml +230 -0
  311. package/lib/ocaml/internal_set.cppo.ml +134 -0
  312. package/lib/ocaml/js.cmi +0 -0
  313. package/lib/ocaml/js.cmt +0 -0
  314. package/lib/ocaml/js.ml +316 -0
  315. package/lib/ocaml/js_OO.cmi +0 -0
  316. package/lib/ocaml/js_OO.cmt +0 -0
  317. package/lib/ocaml/js_OO.ml +180 -0
  318. package/lib/ocaml/js_array.cmi +0 -0
  319. package/lib/ocaml/js_array.cmt +0 -0
  320. package/lib/ocaml/js_array.ml +970 -0
  321. package/lib/ocaml/js_array2.cmi +0 -0
  322. package/lib/ocaml/js_array2.cmt +0 -0
  323. package/lib/ocaml/js_array2.ml +1065 -0
  324. package/lib/ocaml/js_bigint.cmi +0 -0
  325. package/lib/ocaml/js_bigint.cmt +0 -0
  326. package/lib/ocaml/js_bigint.ml +3 -0
  327. package/lib/ocaml/js_cast.cmi +0 -0
  328. package/lib/ocaml/js_cast.cmt +0 -0
  329. package/lib/ocaml/js_cast.cmti +0 -0
  330. package/lib/ocaml/js_cast.ml +29 -0
  331. package/lib/ocaml/js_cast.mli +45 -0
  332. package/lib/ocaml/js_console.cmi +0 -0
  333. package/lib/ocaml/js_console.cmt +0 -0
  334. package/lib/ocaml/js_console.ml +51 -0
  335. package/lib/ocaml/js_date.cmi +0 -0
  336. package/lib/ocaml/js_date.cmt +0 -0
  337. package/lib/ocaml/js_date.ml +1263 -0
  338. package/lib/ocaml/js_dict.cmi +0 -0
  339. package/lib/ocaml/js_dict.cmt +0 -0
  340. package/lib/ocaml/js_dict.cmti +0 -0
  341. package/lib/ocaml/js_dict.ml +114 -0
  342. package/lib/ocaml/js_dict.mli +152 -0
  343. package/lib/ocaml/js_exn.cmi +0 -0
  344. package/lib/ocaml/js_exn.cmt +0 -0
  345. package/lib/ocaml/js_exn.cmti +0 -0
  346. package/lib/ocaml/js_exn.ml +102 -0
  347. package/lib/ocaml/js_exn.mli +79 -0
  348. package/lib/ocaml/js_float.cmi +0 -0
  349. package/lib/ocaml/js_float.cmt +0 -0
  350. package/lib/ocaml/js_float.ml +294 -0
  351. package/lib/ocaml/js_global.cmi +0 -0
  352. package/lib/ocaml/js_global.cmt +0 -0
  353. package/lib/ocaml/js_global.ml +185 -0
  354. package/lib/ocaml/js_int.cmi +0 -0
  355. package/lib/ocaml/js_int.cmt +0 -0
  356. package/lib/ocaml/js_int.ml +158 -0
  357. package/lib/ocaml/js_json.cmi +0 -0
  358. package/lib/ocaml/js_json.cmt +0 -0
  359. package/lib/ocaml/js_json.cmti +0 -0
  360. package/lib/ocaml/js_json.ml +195 -0
  361. package/lib/ocaml/js_json.mli +244 -0
  362. package/lib/ocaml/js_list.cmi +0 -0
  363. package/lib/ocaml/js_list.cmt +0 -0
  364. package/lib/ocaml/js_list.cmti +0 -0
  365. package/lib/ocaml/js_list.ml +174 -0
  366. package/lib/ocaml/js_list.mli +72 -0
  367. package/lib/ocaml/js_map.cmi +0 -0
  368. package/lib/ocaml/js_map.cmt +0 -0
  369. package/lib/ocaml/js_map.ml +3 -0
  370. package/lib/ocaml/js_mapperRt.cmi +0 -0
  371. package/lib/ocaml/js_mapperRt.cmt +0 -0
  372. package/lib/ocaml/js_mapperRt.cmti +0 -0
  373. package/lib/ocaml/js_mapperRt.ml +50 -0
  374. package/lib/ocaml/js_mapperRt.mli +44 -0
  375. package/lib/ocaml/js_math.cmi +0 -0
  376. package/lib/ocaml/js_math.cmt +0 -0
  377. package/lib/ocaml/js_math.ml +626 -0
  378. package/lib/ocaml/js_null.cmi +0 -0
  379. package/lib/ocaml/js_null.cmt +0 -0
  380. package/lib/ocaml/js_null.cmti +0 -0
  381. package/lib/ocaml/js_null.ml +57 -0
  382. package/lib/ocaml/js_null.mli +87 -0
  383. package/lib/ocaml/js_null_undefined.cmi +0 -0
  384. package/lib/ocaml/js_null_undefined.cmt +0 -0
  385. package/lib/ocaml/js_null_undefined.cmti +0 -0
  386. package/lib/ocaml/js_null_undefined.ml +50 -0
  387. package/lib/ocaml/js_null_undefined.mli +85 -0
  388. package/lib/ocaml/js_obj.cmi +0 -0
  389. package/lib/ocaml/js_obj.cmt +0 -0
  390. package/lib/ocaml/js_obj.ml +100 -0
  391. package/lib/ocaml/js_option.cmi +0 -0
  392. package/lib/ocaml/js_option.cmt +0 -0
  393. package/lib/ocaml/js_option.cmti +0 -0
  394. package/lib/ocaml/js_option.ml +203 -0
  395. package/lib/ocaml/js_option.mli +52 -0
  396. package/lib/ocaml/js_promise.cmi +0 -0
  397. package/lib/ocaml/js_promise.cmt +0 -0
  398. package/lib/ocaml/js_promise.ml +100 -0
  399. package/lib/ocaml/js_promise2.cmi +0 -0
  400. package/lib/ocaml/js_promise2.cmt +0 -0
  401. package/lib/ocaml/js_promise2.res +58 -0
  402. package/lib/ocaml/js_re.cmi +0 -0
  403. package/lib/ocaml/js_re.cmt +0 -0
  404. package/lib/ocaml/js_re.ml +184 -0
  405. package/lib/ocaml/js_result.cmi +0 -0
  406. package/lib/ocaml/js_result.cmt +0 -0
  407. package/lib/ocaml/js_result.cmti +0 -0
  408. package/lib/ocaml/js_result.ml +28 -0
  409. package/lib/ocaml/js_result.mli +28 -0
  410. package/lib/ocaml/js_set.cmi +0 -0
  411. package/lib/ocaml/js_set.cmt +0 -0
  412. package/lib/ocaml/js_set.ml +3 -0
  413. package/lib/ocaml/js_string.cmi +0 -0
  414. package/lib/ocaml/js_string.cmt +0 -0
  415. package/lib/ocaml/js_string.ml +914 -0
  416. package/lib/ocaml/js_string2.cmi +0 -0
  417. package/lib/ocaml/js_string2.cmt +0 -0
  418. package/lib/ocaml/js_string2.ml +912 -0
  419. package/lib/ocaml/js_typed_array.cmi +0 -0
  420. package/lib/ocaml/js_typed_array.cmt +0 -0
  421. package/lib/ocaml/js_typed_array.cppo.ml +429 -0
  422. package/lib/ocaml/js_typed_array.ml +1405 -0
  423. package/lib/ocaml/js_typed_array2.cmi +0 -0
  424. package/lib/ocaml/js_typed_array2.cmt +0 -0
  425. package/lib/ocaml/js_typed_array2.cppo.ml +296 -0
  426. package/lib/ocaml/js_typed_array2.ml +1269 -0
  427. package/lib/ocaml/js_types.cmi +0 -0
  428. package/lib/ocaml/js_types.cmt +0 -0
  429. package/lib/ocaml/js_types.cmti +0 -0
  430. package/lib/ocaml/js_types.ml +118 -0
  431. package/lib/ocaml/js_types.mli +78 -0
  432. package/lib/ocaml/js_undefined.cmi +0 -0
  433. package/lib/ocaml/js_undefined.cmt +0 -0
  434. package/lib/ocaml/js_undefined.cmti +0 -0
  435. package/lib/ocaml/js_undefined.ml +59 -0
  436. package/lib/ocaml/js_undefined.mli +92 -0
  437. package/lib/ocaml/js_vector.cmi +0 -0
  438. package/lib/ocaml/js_vector.cmt +0 -0
  439. package/lib/ocaml/js_vector.cmti +0 -0
  440. package/lib/ocaml/js_vector.ml +143 -0
  441. package/lib/ocaml/js_vector.mli +92 -0
  442. package/lib/ocaml/js_weakmap.cmi +0 -0
  443. package/lib/ocaml/js_weakmap.cmt +0 -0
  444. package/lib/ocaml/js_weakmap.ml +3 -0
  445. package/lib/ocaml/js_weakset.cmi +0 -0
  446. package/lib/ocaml/js_weakset.cmt +0 -0
  447. package/lib/ocaml/js_weakset.ml +3 -0
  448. package/lib/ocaml/jsx.cmi +0 -0
  449. package/lib/ocaml/jsx.cmt +0 -0
  450. package/lib/ocaml/jsx.res +40 -0
  451. package/lib/ocaml/jsxDOM.cmi +0 -0
  452. package/lib/ocaml/jsxDOM.cmt +0 -0
  453. package/lib/ocaml/jsxDOM.res +620 -0
  454. package/lib/ocaml/jsxDOMStyle.cmi +0 -0
  455. package/lib/ocaml/jsxDOMStyle.cmt +0 -0
  456. package/lib/ocaml/jsxDOMStyle.ml +781 -0
  457. package/lib/ocaml/jsxEvent.cmi +0 -0
  458. package/lib/ocaml/jsxEvent.cmt +0 -0
  459. package/lib/ocaml/jsxEvent.ml +358 -0
  460. package/lib/ocaml/jsxPPXReactSupport.cmi +0 -0
  461. package/lib/ocaml/jsxPPXReactSupport.cmt +0 -0
  462. package/lib/ocaml/jsxPPXReactSupport.res +48 -0
  463. package/lib/ocaml/lazy.cmi +0 -0
  464. package/lib/ocaml/lazy.cmt +0 -0
  465. package/lib/ocaml/lazy.cmti +0 -0
  466. package/lib/ocaml/lazy.ml +70 -0
  467. package/lib/ocaml/lazy.mli +95 -0
  468. package/lib/ocaml/lexing.cmi +0 -0
  469. package/lib/ocaml/lexing.cmt +0 -0
  470. package/lib/ocaml/lexing.cmti +0 -0
  471. package/lib/ocaml/lexing.ml +230 -0
  472. package/lib/ocaml/lexing.mli +172 -0
  473. package/lib/ocaml/list.cmi +0 -0
  474. package/lib/ocaml/list.cmt +0 -0
  475. package/lib/ocaml/list.cmti +0 -0
  476. package/lib/ocaml/list.ml +485 -0
  477. package/lib/ocaml/list.mli +347 -0
  478. package/lib/ocaml/listLabels.cmi +0 -0
  479. package/lib/ocaml/listLabels.cmt +0 -0
  480. package/lib/ocaml/listLabels.cmti +0 -0
  481. package/lib/ocaml/listLabels.ml +485 -0
  482. package/lib/ocaml/listLabels.mli +353 -0
  483. package/lib/ocaml/map.cmi +0 -0
  484. package/lib/ocaml/map.cmt +0 -0
  485. package/lib/ocaml/map.cmti +0 -0
  486. package/lib/ocaml/map.cppo.ml +174 -0
  487. package/lib/ocaml/map.cppo.mli +191 -0
  488. package/lib/ocaml/map.ml +480 -0
  489. package/lib/ocaml/map.mli +315 -0
  490. package/lib/ocaml/mapLabels.cmi +0 -0
  491. package/lib/ocaml/mapLabels.cmt +0 -0
  492. package/lib/ocaml/mapLabels.ml +480 -0
  493. package/lib/ocaml/mapm.cppo.ml +177 -0
  494. package/lib/ocaml/mapm.cppo.mli +138 -0
  495. package/lib/ocaml/moreLabels.cmi +0 -0
  496. package/lib/ocaml/moreLabels.cmt +0 -0
  497. package/lib/ocaml/moreLabels.cmti +0 -0
  498. package/lib/ocaml/moreLabels.ml +22 -0
  499. package/lib/ocaml/moreLabels.mli +198 -0
  500. package/lib/ocaml/node.cmi +0 -0
  501. package/lib/ocaml/node.cmt +0 -0
  502. package/lib/ocaml/node.ml +84 -0
  503. package/lib/ocaml/node_buffer.cmi +0 -0
  504. package/lib/ocaml/node_buffer.cmt +0 -0
  505. package/lib/ocaml/node_buffer.ml +47 -0
  506. package/lib/ocaml/node_child_process.cmi +0 -0
  507. package/lib/ocaml/node_child_process.cmt +0 -0
  508. package/lib/ocaml/node_child_process.ml +50 -0
  509. package/lib/ocaml/node_fs.cmi +0 -0
  510. package/lib/ocaml/node_fs.cmt +0 -0
  511. package/lib/ocaml/node_fs.ml +153 -0
  512. package/lib/ocaml/node_module.cmi +0 -0
  513. package/lib/ocaml/node_module.cmt +0 -0
  514. package/lib/ocaml/node_module.ml +29 -0
  515. package/lib/ocaml/node_path.cmi +0 -0
  516. package/lib/ocaml/node_path.cmt +0 -0
  517. package/lib/ocaml/node_path.ml +71 -0
  518. package/lib/ocaml/node_process.cmi +0 -0
  519. package/lib/ocaml/node_process.cmt +0 -0
  520. package/lib/ocaml/node_process.cmti +0 -0
  521. package/lib/ocaml/node_process.ml +59 -0
  522. package/lib/ocaml/node_process.mli +48 -0
  523. package/lib/ocaml/obj.cmi +0 -0
  524. package/lib/ocaml/obj.cmt +0 -0
  525. package/lib/ocaml/obj.cmti +0 -0
  526. package/lib/ocaml/obj.ml +29 -0
  527. package/lib/ocaml/obj.mli +62 -0
  528. package/lib/ocaml/parsing.cmi +0 -0
  529. package/lib/ocaml/parsing.cmt +0 -0
  530. package/lib/ocaml/parsing.cmti +0 -0
  531. package/lib/ocaml/parsing.ml +212 -0
  532. package/lib/ocaml/parsing.mli +105 -0
  533. package/lib/ocaml/pervasives.cmi +0 -0
  534. package/lib/ocaml/pervasives.cmt +0 -0
  535. package/lib/ocaml/pervasives.cmti +0 -0
  536. package/lib/ocaml/pervasives.ml +297 -0
  537. package/lib/ocaml/pervasives.mli +771 -0
  538. package/lib/ocaml/printexc.cmi +0 -0
  539. package/lib/ocaml/printexc.cmt +0 -0
  540. package/lib/ocaml/printexc.cmti +0 -0
  541. package/lib/ocaml/printexc.ml +75 -0
  542. package/lib/ocaml/printexc.mli +57 -0
  543. package/lib/ocaml/queue.cmi +0 -0
  544. package/lib/ocaml/queue.cmt +0 -0
  545. package/lib/ocaml/queue.cmti +0 -0
  546. package/lib/ocaml/queue.ml +132 -0
  547. package/lib/ocaml/queue.mli +82 -0
  548. package/lib/ocaml/random.cmi +0 -0
  549. package/lib/ocaml/random.cmt +0 -0
  550. package/lib/ocaml/random.cmti +0 -0
  551. package/lib/ocaml/random.ml +273 -0
  552. package/lib/ocaml/random.mli +102 -0
  553. package/lib/ocaml/set.cmi +0 -0
  554. package/lib/ocaml/set.cmt +0 -0
  555. package/lib/ocaml/set.cmti +0 -0
  556. package/lib/ocaml/set.ml +526 -0
  557. package/lib/ocaml/set.mli +266 -0
  558. package/lib/ocaml/setLabels.cmi +0 -0
  559. package/lib/ocaml/setLabels.cmt +0 -0
  560. package/lib/ocaml/setLabels.ml +526 -0
  561. package/lib/ocaml/setm.cppo.ml +346 -0
  562. package/lib/ocaml/setm.cppo.mli +126 -0
  563. package/lib/ocaml/sort.cmi +0 -0
  564. package/lib/ocaml/sort.cmt +0 -0
  565. package/lib/ocaml/sort.cmti +0 -0
  566. package/lib/ocaml/sort.cppo.ml +267 -0
  567. package/lib/ocaml/sort.cppo.mli +96 -0
  568. package/lib/ocaml/sort.ml +99 -0
  569. package/lib/ocaml/sort.mli +44 -0
  570. package/lib/ocaml/stack.cmi +0 -0
  571. package/lib/ocaml/stack.cmt +0 -0
  572. package/lib/ocaml/stack.cmti +0 -0
  573. package/lib/ocaml/stack.ml +44 -0
  574. package/lib/ocaml/stack.mli +63 -0
  575. package/lib/ocaml/stdLabels.cmi +0 -0
  576. package/lib/ocaml/stdLabels.cmt +0 -0
  577. package/lib/ocaml/stdLabels.cmti +0 -0
  578. package/lib/ocaml/stdLabels.ml +24 -0
  579. package/lib/ocaml/stdLabels.mli +29 -0
  580. package/lib/ocaml/stream.cmi +0 -0
  581. package/lib/ocaml/stream.cmt +0 -0
  582. package/lib/ocaml/stream.cmti +0 -0
  583. package/lib/ocaml/stream.ml +213 -0
  584. package/lib/ocaml/stream.mli +108 -0
  585. package/lib/ocaml/string.cmi +0 -0
  586. package/lib/ocaml/string.cmt +0 -0
  587. package/lib/ocaml/string.cmti +0 -0
  588. package/lib/ocaml/string.ml +190 -0
  589. package/lib/ocaml/string.mli +286 -0
  590. package/lib/ocaml/stringLabels.cmi +0 -0
  591. package/lib/ocaml/stringLabels.cmt +0 -0
  592. package/lib/ocaml/stringLabels.cmti +0 -0
  593. package/lib/ocaml/stringLabels.ml +190 -0
  594. package/lib/ocaml/stringLabels.mli +241 -0
  595. package/lib/ocaml/sys.cmi +0 -0
  596. package/lib/ocaml/sys.cmt +0 -0
  597. package/lib/ocaml/sys.cmti +0 -0
  598. package/lib/ocaml/sys.ml +135 -0
  599. package/lib/ocaml/sys.mli +333 -0
  600. package/lib/ocaml/uchar.cmi +0 -0
  601. package/lib/ocaml/uchar.cmt +0 -0
  602. package/lib/ocaml/uchar.cmti +0 -0
  603. package/lib/ocaml/uchar.ml +58 -0
  604. package/lib/ocaml/uchar.mli +98 -0
  605. package/linux/bsb_helper.exe +0 -0
  606. package/linux/bsc.exe +0 -0
  607. package/linux/ninja.exe +0 -0
  608. package/linux/rescript.exe +0 -0
  609. package/ninja.COPYING +202 -0
  610. package/package.json +1 -1
  611. package/vendor/ninja.tar.gz +0 -0
  612. package/win32/bsb_helper.exe +0 -0
  613. package/win32/bsc.exe +0 -0
  614. package/win32/ninja.exe +0 -0
  615. package/win32/refmt.exe +0 -0
  616. package/win32/rescript.exe +0 -0
Binary file
Binary file
Binary file
@@ -0,0 +1,75 @@
1
+ (**************************************************************************)
2
+ (* *)
3
+ (* OCaml *)
4
+ (* *)
5
+ (* Xavier Leroy, projet Cristal, INRIA Rocquencourt *)
6
+ (* *)
7
+ (* Copyright 1996 Institut National de Recherche en Informatique et *)
8
+ (* en Automatique. *)
9
+ (* *)
10
+ (* All rights reserved. This file is distributed under the terms of *)
11
+ (* the GNU Lesser General Public License version 2.1, with the *)
12
+ (* special exception on linking described in the file LICENSE. *)
13
+ (* *)
14
+ (**************************************************************************)
15
+ [@@@bs.config { flags = [| "-bs-no-cross-module-opt" |] }]
16
+
17
+ let printers = ref []
18
+
19
+ let locfmt s (linum : int) (start : int) (finish : int) msg =
20
+ (((((((("File \"" ^ s) ^ "\", line ") ^ __unsafe_cast linum) ^ ", characters ")
21
+ ^ __unsafe_cast start)
22
+ ^ "-")
23
+ ^ __unsafe_cast finish)
24
+ ^ ": ")
25
+ ^ msg
26
+
27
+ let fields : exn -> string =
28
+ [%raw
29
+ {|function(x){
30
+ var s = ""
31
+ var index = 1
32
+ while ("_"+index in x){
33
+ s += x ["_" + index];
34
+ ++ index
35
+ }
36
+ if(index === 1){
37
+ return s
38
+ }
39
+ return "(" + s + ")"
40
+ }
41
+ |}]
42
+
43
+ external exn_slot_name : exn -> string = "?exn_slot_name"
44
+
45
+ let to_string x =
46
+ let rec conv = function
47
+ | hd :: tl -> (
48
+ match try hd x with _ -> None with Some s -> s | None -> conv tl)
49
+ | [] -> (
50
+ match x with
51
+ | Match_failure (file, line, char) ->
52
+ locfmt file line char (char + 5) "Pattern matching failed"
53
+ | Assert_failure (file, line, char) ->
54
+ locfmt file line char (char + 6) "Assertion failed"
55
+ | Undefined_recursive_module (file, line, char) ->
56
+ locfmt file line char (char + 6) "Undefined recursive module"
57
+ | _ ->
58
+ let constructor = exn_slot_name x in
59
+ constructor ^ fields x)
60
+ in
61
+ conv !printers
62
+
63
+ let print fct arg =
64
+ try fct arg
65
+ with x ->
66
+ Js.log ("Uncaught exception: " ^ to_string x);
67
+ raise x
68
+
69
+ let catch fct arg =
70
+ try fct arg
71
+ with x ->
72
+ Js.log ("Uncaught exception: " ^ to_string x);
73
+ exit 2
74
+
75
+ let register_printer fn = printers := fn :: !printers
@@ -0,0 +1,57 @@
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
+ [@@@ocaml.deprecated "This module is deprecated"]
16
+ (** Facilities for printing exceptions and inspecting current call stack. *)
17
+
18
+ val to_string: exn -> string
19
+ (** [Printexc.to_string e] returns a string representation of
20
+ the exception [e]. *)
21
+
22
+ val print: ('a -> 'b) -> 'a -> 'b
23
+ (** [Printexc.print fn x] applies [fn] to [x] and returns the result.
24
+ If the evaluation of [fn x] raises any exception, the
25
+ name of the exception is printed on standard error output,
26
+ and the exception is raised again.
27
+ The typical use is to catch and report exceptions that
28
+ escape a function application. *)
29
+
30
+ val catch: ('a -> 'b) -> 'a -> 'b
31
+ (** [Printexc.catch fn x] is similar to {!Printexc.print}, but
32
+ aborts the program with exit code 2 after printing the
33
+ uncaught exception. This function is deprecated: the runtime
34
+ system is now able to print uncaught exceptions as precisely
35
+ as [Printexc.catch] does. Moreover, calling [Printexc.catch]
36
+ makes it harder to track the location of the exception
37
+ using the debugger or the stack backtrace facility.
38
+ So, do not use [Printexc.catch] in new code. *)
39
+
40
+ val register_printer: (exn -> string option) -> unit
41
+ (** [Printexc.register_printer fn] registers [fn] as an exception
42
+ printer. The printer should return [None] or raise an exception
43
+ if it does not know how to convert the passed exception, and [Some
44
+ s] with [s] the resulting string if it can convert the passed
45
+ exception. Exceptions raised by the printer are ignored.
46
+
47
+ When converting an exception into a string, the printers will be invoked
48
+ in the reverse order of their registrations, until a printer returns
49
+ a [Some s] value (if no such printer exists, the runtime will use a
50
+ generic printer).
51
+
52
+ When using this mechanism, one should be aware that an exception backtrace
53
+ is attached to the thread that saw it raised, rather than to the exception
54
+ itself. Practically, it means that the code related to [fn] should not use
55
+ the backtrace if it has itself raised an exception before.
56
+ @since 3.11.2
57
+ *)
Binary file
Binary file
Binary file
@@ -0,0 +1,132 @@
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
+
17
+ exception Empty
18
+
19
+ type 'a cell =
20
+ | Nil
21
+ | Cons of { content: 'a; mutable next: 'a cell }
22
+
23
+ type 'a t = {
24
+ mutable length: int;
25
+ mutable first: 'a cell;
26
+ mutable last: 'a cell
27
+ }
28
+
29
+ let create () = {
30
+ length = 0;
31
+ first = Nil;
32
+ last = Nil
33
+ }
34
+
35
+ let clear q =
36
+ q.length <- 0;
37
+ q.first <- Nil;
38
+ q.last <- Nil
39
+
40
+ let add x q =
41
+ let cell = Cons {
42
+ content = x;
43
+ next = Nil
44
+ } in
45
+ match q.last with
46
+ | Nil ->
47
+ q.length <- 1;
48
+ q.first <- cell;
49
+ q.last <- cell
50
+ | Cons last ->
51
+ q.length <- q.length + 1;
52
+ last.next <- cell;
53
+ q.last <- cell
54
+
55
+ let push =
56
+ add
57
+
58
+ let peek q =
59
+ match q.first with
60
+ | Nil -> raise Empty
61
+ | Cons { content } -> content
62
+
63
+ let top =
64
+ peek
65
+
66
+ let take q =
67
+ match q.first with
68
+ | Nil -> raise Empty
69
+ | Cons { content; next = Nil } ->
70
+ clear q;
71
+ content
72
+ | Cons { content; next } ->
73
+ q.length <- q.length - 1;
74
+ q.first <- next;
75
+ content
76
+
77
+ let pop =
78
+ take
79
+
80
+ let copy =
81
+ let rec copy q_res prev cell =
82
+ match cell with
83
+ | Nil -> q_res.last <- prev; q_res
84
+ | Cons { content; next } ->
85
+ let res = Cons { content; next = Nil } in
86
+ begin match prev with
87
+ | Nil -> q_res.first <- res
88
+ | Cons p -> p.next <- res
89
+ end;
90
+ copy q_res res next
91
+ in
92
+ fun q -> copy { length = q.length; first = Nil; last = Nil } Nil q.first
93
+
94
+ let is_empty q =
95
+ q.length = 0
96
+
97
+ let length q =
98
+ q.length
99
+
100
+ let iter =
101
+ let rec iter f cell =
102
+ match cell with
103
+ | Nil -> ()
104
+ | Cons { content; next } ->
105
+ f content;
106
+ iter f next
107
+ in
108
+ fun f q -> iter f q.first
109
+
110
+ let fold =
111
+ let rec fold f accu cell =
112
+ match cell with
113
+ | Nil -> accu
114
+ | Cons { content; next } ->
115
+ let accu = f accu content in
116
+ fold f accu next
117
+ in
118
+ fun f accu q -> fold f accu q.first
119
+
120
+ let transfer q1 q2 =
121
+ if q1.length > 0 then
122
+ match q2.last with
123
+ | Nil ->
124
+ q2.length <- q1.length;
125
+ q2.first <- q1.first;
126
+ q2.last <- q1.last;
127
+ clear q1
128
+ | Cons last ->
129
+ q2.length <- q2.length + q1.length;
130
+ last.next <- q1.first;
131
+ q2.last <- q1.last;
132
+ clear q1
@@ -0,0 +1,82 @@
1
+ (**************************************************************************)
2
+ (* *)
3
+ (* OCaml *)
4
+ (* *)
5
+ (* Xavier Leroy, projet Cristal, INRIA Rocquencourt *)
6
+ (* *)
7
+ (* Copyright 1996 Institut National de Recherche en Informatique et *)
8
+ (* en Automatique. *)
9
+ (* *)
10
+ (* All rights reserved. This file is distributed under the terms of *)
11
+ (* the GNU Lesser General Public License version 2.1, with the *)
12
+ (* special exception on linking described in the file LICENSE. *)
13
+ (* *)
14
+ (**************************************************************************)
15
+
16
+ (** First-in first-out queues.
17
+
18
+ This module implements queues (FIFOs), with in-place modification.
19
+
20
+ {b Warning} This module is not thread-safe: each {!Queue.t} value
21
+ must be protected from concurrent access (e.g. with a [Mutex.t]).
22
+ Failure to do so can lead to a crash.
23
+ *)
24
+
25
+ type 'a t
26
+ (** The type of queues containing elements of type ['a]. *)
27
+
28
+
29
+ exception Empty
30
+ (** Raised when {!Queue.take} or {!Queue.peek} is applied to an empty queue. *)
31
+
32
+
33
+ val create : unit -> 'a t
34
+ (** Return a new queue, initially empty. *)
35
+
36
+ val add : 'a -> 'a t -> unit
37
+ (** [add x q] adds the element [x] at the end of the queue [q]. *)
38
+
39
+ val push : 'a -> 'a t -> unit
40
+ (** [push] is a synonym for [add]. *)
41
+
42
+ val take : 'a t -> 'a
43
+ (** [take q] removes and returns the first element in queue [q],
44
+ or raises {!Empty} if the queue is empty. *)
45
+
46
+ val pop : 'a t -> 'a
47
+ (** [pop] is a synonym for [take]. *)
48
+
49
+ val peek : 'a t -> 'a
50
+ (** [peek q] returns the first element in queue [q], without removing
51
+ it from the queue, or raises {!Empty} if the queue is empty. *)
52
+
53
+ val top : 'a t -> 'a
54
+ (** [top] is a synonym for [peek]. *)
55
+
56
+ val clear : 'a t -> unit
57
+ (** Discard all elements from a queue. *)
58
+
59
+ val copy : 'a t -> 'a t
60
+ (** Return a copy of the given queue. *)
61
+
62
+ val is_empty : 'a t -> bool
63
+ (** Return [true] if the given queue is empty, [false] otherwise. *)
64
+
65
+ val length : 'a t -> int
66
+ (** Return the number of elements in a queue. *)
67
+
68
+ val iter : ('a -> unit) -> 'a t -> unit
69
+ (** [iter f q] applies [f] in turn to all elements of [q],
70
+ from the least recently entered to the most recently entered.
71
+ The queue itself is unchanged. *)
72
+
73
+ val fold : ('b -> 'a -> 'b) -> 'b -> 'a t -> 'b
74
+ (** [fold f accu q] is equivalent to [List.fold_left f accu l],
75
+ where [l] is the list of [q]'s elements. The queue remains
76
+ unchanged. *)
77
+
78
+ val transfer : 'a t -> 'a t -> unit
79
+ (** [transfer q1 q2] adds all of [q1]'s elements at the end of
80
+ the queue [q2], then clears [q1]. It is equivalent to the
81
+ sequence [iter (fun x -> add x q2) q1; clear q1], but runs
82
+ in constant time. *)
Binary file
Binary file
Binary file
@@ -0,0 +1,273 @@
1
+ (**************************************************************************)
2
+ (* *)
3
+ (* OCaml *)
4
+ (* *)
5
+ (* Damien Doligez, projet Para, INRIA Rocquencourt *)
6
+ (* *)
7
+ (* Copyright 1996 Institut National de Recherche en Informatique et *)
8
+ (* en Automatique. *)
9
+ (* *)
10
+ (* All rights reserved. This file is distributed under the terms of *)
11
+ (* the GNU Lesser General Public License version 2.1, with the *)
12
+ (* special exception on linking described in the file LICENSE. *)
13
+ (* *)
14
+ (**************************************************************************)
15
+
16
+ (* Pseudo-random number generator
17
+ This is a lagged-Fibonacci F(55, 24, +) with a modified addition
18
+ function to enhance the mixing of bits.
19
+ If we use normal addition, the low-order bit fails tests 1 and 7
20
+ of the Diehard test suite, and bits 1 and 2 also fail test 7.
21
+ If we use multiplication as suggested by Marsaglia, it doesn't fare
22
+ much better.
23
+ By mixing the bits of one of the numbers before addition (XOR the
24
+ 5 high-order bits into the low-order bits), we get a generator that
25
+ passes all the Diehard tests.
26
+ *)
27
+
28
+ let random_seed: unit -> int array = fun _ ->
29
+ let seed :int = [%raw "Math.floor(Math.random()*0x7fffffff)"] in
30
+ [|seed|]
31
+
32
+ module State = struct
33
+
34
+ type t = { st : int array; mutable idx : int }
35
+
36
+ let new_state () = { st = Array.make 55 0; idx = 0 }
37
+ let assign st1 st2 =
38
+ Array.blit st2.st 0 st1.st 0 55;
39
+ st1.idx <- st2.idx
40
+
41
+
42
+ let full_init s seed =
43
+ let combine accu x = Digest.string (accu ^ string_of_int x) in
44
+ let extract d =
45
+ Char.code d.[0] + (Char.code d.[1] lsl 8) + (Char.code d.[2] lsl 16)
46
+ + (Char.code d.[3] lsl 24)
47
+ in
48
+ let seed = if Array.length seed = 0 then [| 0 |] else seed in
49
+ let l = Array.length seed in
50
+ for i = 0 to 54 do
51
+ s.st.(i) <- i;
52
+ done;
53
+ let accu = ref "x" in
54
+ for i = 0 to 54 + max 55 l do
55
+ let j = i mod 55 in
56
+ let k = i mod l in
57
+ accu := combine !accu seed.(k);
58
+ s.st.(j) <- (s.st.(j) lxor extract !accu) land 0x3FFFFFFF; (* PR#5575 *)
59
+ done;
60
+ s.idx <- 0
61
+
62
+
63
+ let make seed =
64
+ let result = new_state () in
65
+ full_init result seed;
66
+ result
67
+
68
+
69
+ let make_self_init () = make (random_seed ())
70
+
71
+ let copy s =
72
+ let result = new_state () in
73
+ assign result s;
74
+ result
75
+
76
+
77
+ (* Returns 30 random bits as an integer 0 <= x < 1073741824 *)
78
+ let bits s =
79
+ s.idx <- (s.idx + 1) mod 55;
80
+ let curval = s.st.(s.idx) in
81
+ let newval = s.st.((s.idx + 24) mod 55)
82
+ + (curval lxor ((curval lsr 25) land 0x1F)) in
83
+ let newval30 = newval land 0x3FFFFFFF in (* PR#5575 *)
84
+ s.st.(s.idx) <- newval30;
85
+ newval30
86
+
87
+
88
+ let rec intaux s n =
89
+ let r = bits s in
90
+ let v = r mod n in
91
+ if r - v > 0x3FFFFFFF - n + 1 then intaux s n else v
92
+
93
+ let int s bound =
94
+ if bound > 0x3FFFFFFF || bound <= 0
95
+ then invalid_arg "Random.int"
96
+ else intaux s bound
97
+
98
+
99
+ let rec int32aux s n =
100
+ let b1 = Int32.of_int (bits s) in
101
+ let b2 = Int32.shift_left (Int32.of_int (bits s land 1)) 30 in
102
+ let r = Int32.logor b1 b2 in
103
+ let v = Int32.rem r n in
104
+ if Int32.sub r v > Int32.add (Int32.sub Int32.max_int n) 1l
105
+ then int32aux s n
106
+ else v
107
+
108
+ let int32 s bound =
109
+ if bound <= 0l
110
+ then invalid_arg "Random.int32"
111
+ else int32aux s bound
112
+
113
+
114
+ let rec int64aux s n =
115
+ let b1 = Int64.of_int (bits s) in
116
+ let b2 = Int64.shift_left (Int64.of_int (bits s)) 30 in
117
+ let b3 = Int64.shift_left (Int64.of_int (bits s land 7)) 60 in
118
+ let r = Int64.logor b1 (Int64.logor b2 b3) in
119
+ let v = Int64.rem r n in
120
+ if Int64.sub r v > Int64.add (Int64.sub Int64.max_int n) 1L
121
+ then int64aux s n
122
+ else v
123
+
124
+ let int64 s bound =
125
+ if bound <= 0L
126
+ then invalid_arg "Random.int64"
127
+ else int64aux s bound
128
+
129
+
130
+ (* Returns a float 0 <= x <= 1 with at most 60 bits of precision. *)
131
+ let rawfloat s =
132
+ let scale = 1073741824.0 (* 2^30 *)
133
+ and r1 = Pervasives.float (bits s)
134
+ and r2 = Pervasives.float (bits s)
135
+ in (r1 /. scale +. r2) /. scale
136
+
137
+
138
+ let float s bound = rawfloat s *. bound
139
+
140
+ let bool s = (bits s land 1 = 0)
141
+
142
+ end
143
+
144
+ (* This is the state you get with [init 27182818] and then applying
145
+ the "land 0x3FFFFFFF" filter to them. See #5575, #5793, #5977. *)
146
+ let default = {
147
+ State.st = [|
148
+ 0x3ae2522b; 0x1d8d4634; 0x15b4fad0; 0x18b14ace; 0x12f8a3c4; 0x3b086c47;
149
+ 0x16d467d6; 0x101d91c7; 0x321df177; 0x0176c193; 0x1ff72bf1; 0x1e889109;
150
+ 0x0b464b18; 0x2b86b97c; 0x0891da48; 0x03137463; 0x085ac5a1; 0x15d61f2f;
151
+ 0x3bced359; 0x29c1c132; 0x3a86766e; 0x366d8c86; 0x1f5b6222; 0x3ce1b59f;
152
+ 0x2ebf78e1; 0x27cd1b86; 0x258f3dc3; 0x389a8194; 0x02e4c44c; 0x18c43f7d;
153
+ 0x0f6e534f; 0x1e7df359; 0x055d0b7e; 0x10e84e7e; 0x126198e4; 0x0e7722cb;
154
+ 0x1cbede28; 0x3391b964; 0x3d40e92a; 0x0c59933d; 0x0b8cd0b7; 0x24efff1c;
155
+ 0x2803fdaa; 0x08ebc72e; 0x0f522e32; 0x05398edc; 0x2144a04c; 0x0aef3cbd;
156
+ 0x01ad4719; 0x35b93cd6; 0x2a559d4f; 0x1e6fd768; 0x26e27f36; 0x186f18c3;
157
+ 0x2fbf967a;
158
+ |];
159
+ State.idx = 0;
160
+ }
161
+
162
+ let bits () = State.bits default
163
+ let int bound = State.int default bound
164
+ let int32 bound = State.int32 default bound
165
+
166
+ let int64 bound = State.int64 default bound
167
+ let float scale = State.float default scale
168
+ let bool () = State.bool default
169
+
170
+ let full_init seed = State.full_init default seed
171
+ let init seed = State.full_init default [| seed |]
172
+ let self_init () = full_init (random_seed())
173
+
174
+ (* Manipulating the current state. *)
175
+
176
+ let get_state () = State.copy default
177
+ let set_state s = State.assign default s
178
+
179
+ (********************
180
+
181
+ (* Test functions. Not included in the library.
182
+ The [chisquare] function should be called with n > 10r.
183
+ It returns a triple (low, actual, high).
184
+ If low <= actual <= high, the [g] function passed the test,
185
+ otherwise it failed.
186
+
187
+ Some results:
188
+
189
+ init 27182818; chisquare int 100000 1000
190
+ init 27182818; chisquare int 100000 100
191
+ init 27182818; chisquare int 100000 5000
192
+ init 27182818; chisquare int 1000000 1000
193
+ init 27182818; chisquare int 100000 1024
194
+ init 299792643; chisquare int 100000 1024
195
+ init 14142136; chisquare int 100000 1024
196
+ init 27182818; init_diff 1024; chisquare diff 100000 1024
197
+ init 27182818; init_diff 100; chisquare diff 100000 100
198
+ init 27182818; init_diff2 1024; chisquare diff2 100000 1024
199
+ init 27182818; init_diff2 100; chisquare diff2 100000 100
200
+ init 14142136; init_diff2 100; chisquare diff2 100000 100
201
+ init 299792643; init_diff2 100; chisquare diff2 100000 100
202
+ - : float * float * float = (936.754446796632465, 997.5, 1063.24555320336754)
203
+ # - : float * float * float = (80., 89.7400000000052387, 120.)
204
+ # - : float * float * float = (4858.57864376269, 5045.5, 5141.42135623731)
205
+ # - : float * float * float =
206
+ (936.754446796632465, 944.805999999982305, 1063.24555320336754)
207
+ # - : float * float * float = (960., 1019.19744000000355, 1088.)
208
+ # - : float * float * float = (960., 1059.31776000000536, 1088.)
209
+ # - : float * float * float = (960., 1039.98463999999512, 1088.)
210
+ # - : float * float * float = (960., 1054.38207999999577, 1088.)
211
+ # - : float * float * float = (80., 90.096000000005, 120.)
212
+ # - : float * float * float = (960., 1076.78720000000612, 1088.)
213
+ # - : float * float * float = (80., 85.1760000000067521, 120.)
214
+ # - : float * float * float = (80., 85.2160000000003492, 120.)
215
+ # - : float * float * float = (80., 80.6220000000030268, 120.)
216
+
217
+ *)
218
+
219
+ (* Return the sum of the squares of v[i0,i1[ *)
220
+ let rec sumsq v i0 i1 =
221
+ if i0 >= i1 then 0.0
222
+ else if i1 = i0 + 1 then Pervasives.float v.(i0) *. Pervasives.float v.(i0)
223
+ else sumsq v i0 ((i0+i1)/2) +. sumsq v ((i0+i1)/2) i1
224
+
225
+
226
+ let chisquare g n r =
227
+ if n <= 10 * r then invalid_arg "chisquare";
228
+ let f = Array.make r 0 in
229
+ for i = 1 to n do
230
+ let t = g r in
231
+ f.(t) <- f.(t) + 1
232
+ done;
233
+ let t = sumsq f 0 r
234
+ and r = Pervasives.float r
235
+ and n = Pervasives.float n in
236
+ let sr = 2.0 *. sqrt r in
237
+ (r -. sr, (r *. t /. n) -. n, r +. sr)
238
+
239
+
240
+ (* This is to test for linear dependencies between successive random numbers.
241
+ *)
242
+ let st = ref 0
243
+ let init_diff r = st := int r
244
+ let diff r =
245
+ let x1 = !st
246
+ and x2 = int r
247
+ in
248
+ st := x2;
249
+ if x1 >= x2 then
250
+ x1 - x2
251
+ else
252
+ r + x1 - x2
253
+
254
+
255
+ let st1 = ref 0
256
+ and st2 = ref 0
257
+
258
+
259
+ (* This is to test for quadratic dependencies between successive random
260
+ numbers.
261
+ *)
262
+ let init_diff2 r = st1 := int r; st2 := int r
263
+ let diff2 r =
264
+ let x1 = !st1
265
+ and x2 = !st2
266
+ and x3 = int r
267
+ in
268
+ st1 := x2;
269
+ st2 := x3;
270
+ (x3 - x2 - x2 + x1 + 2*r) mod r
271
+
272
+
273
+ ********************)