@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,428 +0,0 @@
1
- (**************************************************************************)
2
- (* *)
3
- (* OCaml *)
4
- (* *)
5
- (* Xavier Leroy, projet Cristal, INRIA Rocquencourt *)
6
- (* *)
7
- (* Copyright 1996 Institut National de Recherche en Informatique et *)
8
- (* en Automatique. *)
9
- (* *)
10
- (* All rights reserved. This file is distributed under the terms of *)
11
- (* the GNU Lesser General Public License version 2.1, with the *)
12
- (* special exception on linking described in the file LICENSE. *)
13
- (* *)
14
- (**************************************************************************)
15
-
16
- (* Byte sequence operations *)
17
-
18
- (* WARNING: Some functions in this file are duplicated in string.ml for
19
- efficiency reasons. When you modify the one in this file you need to
20
- modify its duplicate in string.ml.
21
- These functions have a "duplicated" comment above their definition.
22
- *)
23
- external (.!()) : string -> int -> char = "%string_unsafe_get"
24
- external of_small_int_array :
25
- (_ [@bs.as {json|null|json}] ) ->
26
- int array -> string =
27
- "String.fromCharCode.apply"
28
- [@@bs.val]
29
-
30
- external length : bytes -> int = "%bytes_length"
31
- external%private string_length : string -> int = "%string_length"
32
- external get : bytes -> int -> char = "%bytes_safe_get"
33
- external set : bytes -> int -> char -> unit = "%bytes_safe_set"
34
- external create : int -> bytes = "?create_bytes"
35
-
36
- external unsafe_get : bytes -> int -> char = "%bytes_unsafe_get"
37
- external unsafe_set : bytes -> int -> char -> unit = "%bytes_unsafe_set"
38
- external (.![]) : bytes -> int -> char = "%bytes_unsafe_get"
39
- external (.![]<-) : bytes -> int -> char -> unit = "%bytes_unsafe_set"
40
- external new_uninitialized : int -> bytes = "Array" [@@bs.new]
41
- external to_int_array : bytes -> int array = "%identity"
42
-
43
- let unsafe_fill : bytes -> int -> int -> char -> unit
44
- = fun (s : bytes) i l (c : char) ->
45
- if l > 0 then
46
- for k = i to l + i - 1 do
47
- s.![k] <- c
48
- done
49
-
50
-
51
-
52
-
53
- (** Same as {!Array.prototype.copyWithin} *)
54
- let copyWithin (s1 : bytes) i1 i2 len =
55
- if i1 < i2 then (* nop for i1 = i2 *)
56
- let range_a = length s1 - i2 - 1 in
57
- let range_b = len - 1 in
58
- let range = if range_a > range_b then range_b else range_a in
59
- for j = range downto 0 do
60
- s1.![i2 + j] <- s1.![i1 + j]
61
- done
62
- else if i1 > i2 then
63
- let range_a = length s1 - i1 - 1 in
64
- let range_b = len - 1 in
65
- let range = if range_a > range_b then range_b else range_a in
66
- for k = 0 to range do
67
- s1.![i2 + k] <- s1.![i1 + k]
68
- done
69
-
70
- (* TODO: when the compiler could optimize small function calls,
71
- use high order functions instead
72
- *)
73
- let unsafe_blit (s1:bytes) i1 (s2:bytes) i2 len =
74
- if len > 0 then
75
- if s1 == s2 then
76
- copyWithin s1 i1 i2 len
77
- else
78
- let off1 = length s1 - i1 in
79
- if len <= off1 then
80
- for i = 0 to len - 1 do
81
- s2.![i2 + i] <- s1.![i1 + i]
82
- done
83
- else
84
- begin
85
- for i = 0 to off1 - 1 do
86
- s2.![i2 + i] <- s1.![i1 + i]
87
- done;
88
- for i = off1 to len - 1 do
89
- s2.![i2 + i] <- '\000'
90
- done
91
- end
92
-
93
- let unsafe_blit_string (s1 : string) i1 (s2 : bytes) i2 (len : int ) =
94
- if len > 0 then
95
- let off1 = string_length s1 - i1 in
96
- if len <= off1 then
97
- for i = 0 to len - 1 do
98
- s2.![i2 + i] <- s1.!(i1 + i)
99
- done
100
- else
101
- begin
102
- for i = 0 to off1 - 1 do
103
- s2.![i2 + i] <- s1.!(i1 + i)
104
- done;
105
- for i = off1 to len - 1 do
106
- s2.![i2 + i] <- '\000'
107
- done
108
- end
109
- let string_of_large_bytes (bytes : bytes) i len =
110
- let s = ref "" in
111
- let s_len = ref len in
112
- let seg = 1024 in
113
- if i = 0 && len <= 4 * seg && len = length bytes then
114
- of_small_int_array (to_int_array bytes)
115
- else
116
- begin
117
- let offset = ref 0 in
118
- while s_len.contents > 0 do
119
- let next = if s_len.contents < 1024 then s_len.contents else seg in
120
- let tmp_bytes = new_uninitialized next in
121
- for k = 0 to next - 1 do
122
- tmp_bytes.![k] <- bytes.![k + offset.contents]
123
- done;
124
- s.contents <- s.contents ^ of_small_int_array (to_int_array tmp_bytes);
125
- s_len.contents <- s_len.contents - next ;
126
- offset.contents <- offset.contents + next;
127
- done;
128
- s.contents
129
- end
130
-
131
-
132
- let make n c =
133
- let s = create n in
134
- unsafe_fill s 0 n c;
135
- s
136
-
137
- let init n ~f =
138
- let s = create n in
139
- for i = 0 to n - 1 do
140
- unsafe_set s i (f i)
141
- done;
142
- s
143
-
144
- let empty = create 0
145
-
146
- let copy s =
147
- let len = length s in
148
- let r = create len in
149
- unsafe_blit s 0 r 0 len;
150
- r
151
-
152
- let to_string (a : bytes) : string =
153
- string_of_large_bytes a 0 (length a)
154
-
155
- let unsafe_to_string = to_string
156
-
157
- (** checkout [Bytes.empty] -- to be inlined? *)
158
- let of_string (s : string) =
159
- let len = string_length s in
160
- let res = new_uninitialized len in
161
- for i = 0 to len - 1 do
162
- res.![i] <- s.!(i)
163
- (* Note that when get a char and convert it to int immedately, should be optimized
164
- should be [s.charCodeAt[i]]
165
- *)
166
- done;
167
- res
168
-
169
- let unsafe_of_string = of_string
170
-
171
- let sub s ~pos:ofs ~len =
172
- if ofs < 0 || len < 0 || ofs > length s - len
173
- then invalid_arg "String.sub / Bytes.sub"
174
- else begin
175
- let r = create len in
176
- unsafe_blit s ofs r 0 len;
177
- r
178
- end
179
-
180
- let sub_string b ~pos:ofs ~len = unsafe_to_string (sub b ~pos:ofs ~len)
181
-
182
- (* addition with an overflow check *)
183
- let (++) a b =
184
- let c = a + b in
185
- match a < 0, b < 0, c < 0 with
186
- | true , true , false
187
- | false, false, true -> invalid_arg "Bytes.extend" (* overflow *)
188
- | _ -> c
189
-
190
- let extend s ~left ~right =
191
- let len = length s ++ left ++ right in
192
- let r = create len in
193
- let (srcoff, dstoff) = if left < 0 then -left, 0 else 0, left in
194
- let cpylen = min (length s - srcoff) (len - dstoff) in
195
- if cpylen > 0 then unsafe_blit s srcoff r dstoff cpylen;
196
- r
197
-
198
- let fill s ~pos:ofs ~len c =
199
- if ofs < 0 || len < 0 || ofs > length s - len
200
- then invalid_arg "String.fill / Bytes.fill"
201
- else unsafe_fill s ofs len c
202
-
203
- let blit ~src:s1 ~src_pos:ofs1 ~dst:s2 ~dst_pos:ofs2 ~len =
204
- if len < 0 || ofs1 < 0 || ofs1 > length s1 - len
205
- || ofs2 < 0 || ofs2 > length s2 - len
206
- then invalid_arg "Bytes.blit"
207
- else unsafe_blit s1 ofs1 s2 ofs2 len
208
-
209
- let blit_string ~src:s1 ~src_pos:ofs1 ~dst:s2 ~dst_pos:ofs2 ~len =
210
- if len < 0 || ofs1 < 0 || ofs1 > string_length s1 - len
211
- || ofs2 < 0 || ofs2 > length s2 - len
212
- then invalid_arg "String.blit / Bytes.blit_string"
213
- else unsafe_blit_string s1 ofs1 s2 ofs2 len
214
-
215
- (* duplicated in string.ml *)
216
- let iter ~f a =
217
- for i = 0 to length a - 1 do f(unsafe_get a i) done
218
-
219
- (* duplicated in string.ml *)
220
- let iteri ~f a =
221
- for i = 0 to length a - 1 do f i (unsafe_get a i) done
222
-
223
- let ensure_ge (x:int) y = if x >= y then x else invalid_arg "Bytes.concat"
224
-
225
- let rec sum_lengths acc seplen = function
226
- | [] -> acc
227
- | hd :: [] -> length hd + acc
228
- | hd :: tl -> sum_lengths (ensure_ge (length hd + seplen + acc) acc) seplen tl
229
-
230
- let rec unsafe_blits dst pos sep seplen = function
231
- [] -> dst
232
- | hd :: [] ->
233
- unsafe_blit hd 0 dst pos (length hd); dst
234
- | hd :: tl ->
235
- unsafe_blit hd 0 dst pos (length hd);
236
- unsafe_blit sep 0 dst (pos + length hd) seplen;
237
- unsafe_blits dst (pos + length hd + seplen) sep seplen tl
238
-
239
- let concat ~sep = function
240
- [] -> empty
241
- | l -> let seplen = length sep in
242
- unsafe_blits
243
- (create (sum_lengths 0 seplen l))
244
- 0 sep seplen l
245
-
246
- let cat s1 s2 =
247
- let l1 = length s1 in
248
- let l2 = length s2 in
249
- let r = create (l1 + l2) in
250
- unsafe_blit s1 0 r 0 l1;
251
- unsafe_blit s2 0 r l1 l2;
252
- r
253
-
254
-
255
- external char_chr: int -> char = "%identity"
256
-
257
- let is_space = function
258
- | ' ' | '\012' | '\n' | '\r' | '\t' -> true
259
- | _ -> false
260
-
261
- let trim s =
262
- let len = length s in
263
- let i = ref 0 in
264
- while !i < len && is_space (unsafe_get s !i) do
265
- incr i
266
- done;
267
- let j = ref (len - 1) in
268
- while !j >= !i && is_space (unsafe_get s !j) do
269
- decr j
270
- done;
271
- if !j >= !i then
272
- sub s ~pos:!i ~len:(!j - !i + 1)
273
- else
274
- empty
275
-
276
- let escaped s =
277
- let n = ref 0 in
278
- for i = 0 to length s - 1 do
279
- n := !n +
280
- (match unsafe_get s i with
281
- | '\"' | '\\' | '\n' | '\t' | '\r' | '\b' -> 2
282
- | ' ' .. '~' -> 1
283
- | _ -> 4)
284
- done;
285
- if !n = length s then copy s else begin
286
- let s' = create !n in
287
- n := 0;
288
- for i = 0 to length s - 1 do
289
- begin match unsafe_get s i with
290
- | ('\"' | '\\') as c ->
291
- unsafe_set s' !n '\\'; incr n; unsafe_set s' !n c
292
- | '\n' ->
293
- unsafe_set s' !n '\\'; incr n; unsafe_set s' !n 'n'
294
- | '\t' ->
295
- unsafe_set s' !n '\\'; incr n; unsafe_set s' !n 't'
296
- | '\r' ->
297
- unsafe_set s' !n '\\'; incr n; unsafe_set s' !n 'r'
298
- | '\b' ->
299
- unsafe_set s' !n '\\'; incr n; unsafe_set s' !n 'b'
300
- | (' ' .. '~') as c -> unsafe_set s' !n c
301
- | c ->
302
- let a = (c :> int) in
303
- unsafe_set s' !n '\\';
304
- incr n;
305
- unsafe_set s' !n (char_chr (48 + a / 100));
306
- incr n;
307
- unsafe_set s' !n (char_chr (48 + (a / 10) mod 10));
308
- incr n;
309
- unsafe_set s' !n (char_chr (48 + a mod 10));
310
- end;
311
- incr n
312
- done;
313
- s'
314
- end
315
-
316
- let map ~f s =
317
- let l = length s in
318
- if l = 0 then s else begin
319
- let r = create l in
320
- for i = 0 to l - 1 do unsafe_set r i (f (unsafe_get s i)) done;
321
- r
322
- end
323
-
324
- let mapi ~f s =
325
- let l = length s in
326
- if l = 0 then s else begin
327
- let r = create l in
328
- for i = 0 to l - 1 do unsafe_set r i (f i (unsafe_get s i)) done;
329
- r
330
- end
331
-
332
- let uppercase_ascii s = map ~f:Char.uppercase_ascii s
333
- let lowercase_ascii s = map ~f:Char.lowercase_ascii s
334
-
335
- let apply1 f s =
336
- if length s = 0 then s else begin
337
- let r = copy s in
338
- unsafe_set r 0 (f(unsafe_get s 0));
339
- r
340
- end
341
-
342
- let capitalize_ascii s = apply1 Char.uppercase_ascii s
343
- let uncapitalize_ascii s = apply1 Char.lowercase_ascii s
344
-
345
- (* duplicated in string.ml *)
346
- let rec index_rec s lim i c =
347
- if i >= lim then raise Not_found else
348
- if unsafe_get s i = c then i else index_rec s lim (i + 1) c
349
-
350
- (* duplicated in string.ml *)
351
- let index s c = index_rec s (length s) 0 c
352
-
353
- (* duplicated in string.ml *)
354
- let rec index_rec_opt s lim i c =
355
- if i >= lim then None else
356
- if unsafe_get s i = c then Some i else index_rec_opt s lim (i + 1) c
357
-
358
- (* duplicated in string.ml *)
359
- let index_opt s c = index_rec_opt s (length s) 0 c
360
-
361
- (* duplicated in string.ml *)
362
- let index_from s i c =
363
- let l = length s in
364
- if i < 0 || i > l then invalid_arg "String.index_from / Bytes.index_from" else
365
- index_rec s l i c
366
-
367
- (* duplicated in string.ml *)
368
- let index_from_opt s i c =
369
- let l = length s in
370
- if i < 0 || i > l then invalid_arg "String.index_from_opt / Bytes.index_from_opt" else
371
- index_rec_opt s l i c
372
-
373
- (* duplicated in string.ml *)
374
- let rec rindex_rec s i c =
375
- if i < 0 then raise Not_found else
376
- if unsafe_get s i = c then i else rindex_rec s (i - 1) c
377
-
378
- (* duplicated in string.ml *)
379
- let rindex s c = rindex_rec s (length s - 1) c
380
-
381
- (* duplicated in string.ml *)
382
- let rindex_from s i c =
383
- if i < -1 || i >= length s then
384
- invalid_arg "String.rindex_from / Bytes.rindex_from"
385
- else
386
- rindex_rec s i c
387
-
388
- (* duplicated in string.ml *)
389
- let rec rindex_rec_opt s i c =
390
- if i < 0 then None else
391
- if unsafe_get s i = c then Some i else rindex_rec_opt s (i - 1) c
392
-
393
- (* duplicated in string.ml *)
394
- let rindex_opt s c = rindex_rec_opt s (length s - 1) c
395
-
396
- (* duplicated in string.ml *)
397
- let rindex_from_opt s i c =
398
- if i < -1 || i >= length s then
399
- invalid_arg "String.rindex_from_opt / Bytes.rindex_from_opt"
400
- else
401
- rindex_rec_opt s i c
402
-
403
-
404
- (* duplicated in string.ml *)
405
- let contains_from s i c =
406
- let l = length s in
407
- if i < 0 || i > l then
408
- invalid_arg "String.contains_from / Bytes.contains_from"
409
- else
410
- try ignore (index_rec s l i c); true with Not_found -> false
411
-
412
-
413
- (* duplicated in string.ml *)
414
- let contains s c = contains_from s 0 c
415
-
416
- (* duplicated in string.ml *)
417
- let rcontains_from s i c =
418
- if i < 0 || i >= length s then
419
- invalid_arg "String.rcontains_from / Bytes.rcontains_from"
420
- else
421
- try ignore (rindex_rec s i c); true with Not_found -> false
422
-
423
-
424
- type t = bytes
425
-
426
- let compare (x: t) (y: t) = Pervasives.compare x y
427
- let equal (x : t) (y : t) = x = y
428
-
@@ -1,276 +0,0 @@
1
- (**************************************************************************)
2
- (* *)
3
- (* OCaml *)
4
- (* *)
5
- (* Xavier Leroy, projet Cristal, INRIA Rocquencourt *)
6
- (* *)
7
- (* Copyright 1996 Institut National de Recherche en Informatique et *)
8
- (* en Automatique. *)
9
- (* *)
10
- (* All rights reserved. This file is distributed under the terms of *)
11
- (* the GNU Lesser General Public License version 2.1, with the *)
12
- (* special exception on linking described in the file LICENSE. *)
13
- (* *)
14
- (**************************************************************************)
15
-
16
- (** Byte sequence operations.
17
- @since 4.02.0
18
- *)
19
-
20
- external length : bytes -> int = "%bytes_length"
21
- (** Return the length (number of bytes) of the argument. *)
22
-
23
- external get : bytes -> int -> char = "%bytes_safe_get"
24
- (** [get s n] returns the byte at index [n] in argument [s].
25
-
26
- Raise [Invalid_argument] if [n] is not a valid index in [s]. *)
27
-
28
-
29
- external set : bytes -> int -> char -> unit = "%bytes_safe_set"
30
- (** [set s n c] modifies [s] in place, replacing the byte at index [n]
31
- with [c].
32
-
33
- Raise [Invalid_argument] if [n] is not a valid index in [s]. *)
34
-
35
- external create : int -> bytes = "?create_bytes"
36
- (** [create n] returns a new byte sequence of length [n]. The
37
- sequence is uninitialized and contains arbitrary bytes.
38
-
39
- Raise [Invalid_argument] if [n < 0] or [n > ]{!Sys.max_string_length}. *)
40
-
41
- val make : int -> char -> bytes
42
- (** [make n c] returns a new byte sequence of length [n], filled with
43
- the byte [c].
44
-
45
- Raise [Invalid_argument] if [n < 0] or [n > ]{!Sys.max_string_length}. *)
46
-
47
- val init : int -> f:(int -> char) -> bytes
48
- (** [init n f] returns a fresh byte sequence of length [n],
49
- with character [i] initialized to the result of [f i].
50
-
51
- Raise [Invalid_argument] if [n < 0] or [n > ]{!Sys.max_string_length}. *)
52
-
53
- val empty : bytes
54
- (** A byte sequence of size 0. *)
55
-
56
- val copy : bytes -> bytes
57
- (** Return a new byte sequence that contains the same bytes as the
58
- argument. *)
59
-
60
- val of_string : string -> bytes
61
- (** Return a new byte sequence that contains the same bytes as the
62
- given string. *)
63
-
64
- val to_string : bytes -> string
65
- (** Return a new string that contains the same bytes as the given byte
66
- sequence. *)
67
-
68
- val sub : bytes -> pos:int -> len:int -> bytes
69
- (** [sub s start len] returns a new byte sequence of length [len],
70
- containing the subsequence of [s] that starts at position [start]
71
- and has length [len].
72
-
73
- Raise [Invalid_argument] if [start] and [len] do not designate a
74
- valid range of [s]. *)
75
-
76
- val sub_string : bytes -> pos:int -> len:int -> string
77
- (** Same as [sub] but return a string instead of a byte sequence. *)
78
-
79
- val extend : bytes -> left:int -> right:int -> bytes
80
- (** [extend s left right] returns a new byte sequence that contains
81
- the bytes of [s], with [left] uninitialized bytes prepended and
82
- [right] uninitialized bytes appended to it. If [left] or [right]
83
- is negative, then bytes are removed (instead of appended) from
84
- the corresponding side of [s].
85
-
86
- Raise [Invalid_argument] if the result length is negative or
87
- longer than {!Sys.max_string_length} bytes.
88
- @since 4.05.0 *)
89
-
90
- val fill : bytes -> pos:int -> len:int -> char -> unit
91
- (** [fill s start len c] modifies [s] in place, replacing [len]
92
- characters with [c], starting at [start].
93
-
94
- Raise [Invalid_argument] if [start] and [len] do not designate a
95
- valid range of [s]. *)
96
-
97
- val blit :
98
- src:bytes -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int
99
- -> unit
100
- (** [blit src srcoff dst dstoff len] copies [len] bytes from sequence
101
- [src], starting at index [srcoff], to sequence [dst], starting at
102
- index [dstoff]. It works correctly even if [src] and [dst] are the
103
- same byte sequence, and the source and destination intervals
104
- overlap.
105
-
106
- Raise [Invalid_argument] if [srcoff] and [len] do not
107
- designate a valid range of [src], or if [dstoff] and [len]
108
- do not designate a valid range of [dst]. *)
109
-
110
- val blit_string :
111
- src:string -> src_pos:int -> dst:bytes -> dst_pos:int -> len:int
112
- -> unit
113
- (** [blit src srcoff dst dstoff len] copies [len] bytes from string
114
- [src], starting at index [srcoff], to byte sequence [dst],
115
- starting at index [dstoff].
116
-
117
- Raise [Invalid_argument] if [srcoff] and [len] do not
118
- designate a valid range of [src], or if [dstoff] and [len]
119
- do not designate a valid range of [dst].
120
- @since 4.05.0 *)
121
-
122
- val concat : sep:bytes -> bytes list -> bytes
123
- (** [concat sep sl] concatenates the list of byte sequences [sl],
124
- inserting the separator byte sequence [sep] between each, and
125
- returns the result as a new byte sequence. *)
126
-
127
- val cat : bytes -> bytes -> bytes
128
- (** [cat s1 s2] concatenates [s1] and [s2] and returns the result
129
- as new byte sequence.
130
-
131
- Raise [Invalid_argument] if the result is longer than
132
- {!Sys.max_string_length} bytes.
133
- @since 4.05.0 *)
134
-
135
- val iter : f:(char -> unit) -> bytes -> unit
136
- (** [iter f s] applies function [f] in turn to all the bytes of [s].
137
- It is equivalent to [f (get s 0); f (get s 1); ...; f (get s
138
- (length s - 1)); ()]. *)
139
-
140
- val iteri : f:(int -> char -> unit) -> bytes -> unit
141
- (** Same as {!Bytes.iter}, but the function is applied to the index of
142
- the byte as first argument and the byte itself as second
143
- argument. *)
144
-
145
- val map : f:(char -> char) -> bytes -> bytes
146
- (** [map f s] applies function [f] in turn to all the bytes of [s] and
147
- stores the resulting bytes in a new sequence that is returned as
148
- the result. *)
149
-
150
- val mapi : f:(int -> char -> char) -> bytes -> bytes
151
- (** [mapi f s] calls [f] with each character of [s] and its
152
- index (in increasing index order) and stores the resulting bytes
153
- in a new sequence that is returned as the result. *)
154
-
155
- val trim : bytes -> bytes
156
- (** Return a copy of the argument, without leading and trailing
157
- whitespace. The bytes regarded as whitespace are the ASCII
158
- characters [' '], ['\012'], ['\n'], ['\r'], and ['\t']. *)
159
-
160
- val escaped : bytes -> bytes
161
- (** Return a copy of the argument, with special characters represented
162
- by escape sequences, following the lexical conventions of OCaml. *)
163
-
164
- val index : bytes -> char -> int
165
- (** [index s c] returns the index of the first occurrence of byte [c]
166
- in [s].
167
-
168
- Raise [Not_found] if [c] does not occur in [s]. *)
169
-
170
- val index_opt: bytes -> char -> int option
171
- (** [index_opt s c] returns the index of the first occurrence of byte [c]
172
- in [s] or [None] if [c] does not occur in [s].
173
- @since 4.05 *)
174
-
175
- val rindex : bytes -> char -> int
176
- (** [rindex s c] returns the index of the last occurrence of byte [c]
177
- in [s].
178
-
179
- Raise [Not_found] if [c] does not occur in [s]. *)
180
-
181
- val rindex_opt: bytes -> char -> int option
182
- (** [rindex_opt s c] returns the index of the last occurrence of byte [c]
183
- in [s] or [None] if [c] does not occur in [s].
184
- @since 4.05 *)
185
-
186
- val index_from : bytes -> int -> char -> int
187
- (** [index_from s i c] returns the index of the first occurrence of
188
- byte [c] in [s] after position [i]. [Bytes.index s c] is
189
- equivalent to [Bytes.index_from s 0 c].
190
-
191
- Raise [Invalid_argument] if [i] is not a valid position in [s].
192
- Raise [Not_found] if [c] does not occur in [s] after position [i]. *)
193
-
194
- val index_from_opt: bytes -> int -> char -> int option
195
- (** [index_from _opts i c] returns the index of the first occurrence of
196
- byte [c] in [s] after position [i] or [None] if [c] does not occur in [s] after position [i].
197
- [Bytes.index_opt s c] is equivalent to [Bytes.index_from_opt s 0 c].
198
-
199
- Raise [Invalid_argument] if [i] is not a valid position in [s].
200
- @since 4.05 *)
201
-
202
- val rindex_from : bytes -> int -> char -> int
203
- (** [rindex_from s i c] returns the index of the last occurrence of
204
- byte [c] in [s] before position [i+1]. [rindex s c] is equivalent
205
- to [rindex_from s (Bytes.length s - 1) c].
206
-
207
- Raise [Invalid_argument] if [i+1] is not a valid position in [s].
208
- Raise [Not_found] if [c] does not occur in [s] before position [i+1]. *)
209
-
210
- val rindex_from_opt: bytes -> int -> char -> int option
211
- (** [rindex_from_opt s i c] returns the index of the last occurrence
212
- of byte [c] in [s] before position [i+1] or [None] if [c] does not
213
- occur in [s] before position [i+1]. [rindex_opt s c] is equivalent to
214
- [rindex_from s (Bytes.length s - 1) c].
215
-
216
- Raise [Invalid_argument] if [i+1] is not a valid position in [s].
217
- @since 4.05 *)
218
-
219
- val contains : bytes -> char -> bool
220
- (** [contains s c] tests if byte [c] appears in [s]. *)
221
-
222
- val contains_from : bytes -> int -> char -> bool
223
- (** [contains_from s start c] tests if byte [c] appears in [s] after
224
- position [start]. [contains s c] is equivalent to [contains_from
225
- s 0 c].
226
-
227
- Raise [Invalid_argument] if [start] is not a valid position in [s]. *)
228
-
229
- val rcontains_from : bytes -> int -> char -> bool
230
- (** [rcontains_from s stop c] tests if byte [c] appears in [s] before
231
- position [stop+1].
232
-
233
- Raise [Invalid_argument] if [stop < 0] or [stop+1] is not a valid
234
- position in [s]. *)
235
-
236
- val uppercase_ascii : bytes -> bytes
237
- (** Return a copy of the argument, with all lowercase letters
238
- translated to uppercase, using the US-ASCII character set.
239
- @since 4.05.0 *)
240
-
241
- val lowercase_ascii : bytes -> bytes
242
- (** Return a copy of the argument, with all uppercase letters
243
- translated to lowercase, using the US-ASCII character set.
244
- @since 4.05.0 *)
245
-
246
- val capitalize_ascii : bytes -> bytes
247
- (** Return a copy of the argument, with the first character set to uppercase,
248
- using the US-ASCII character set.
249
- @since 4.05.0 *)
250
-
251
- val uncapitalize_ascii : bytes -> bytes
252
- (** Return a copy of the argument, with the first character set to lowercase,
253
- using the US-ASCII character set.
254
- @since 4.05.0 *)
255
-
256
- type t = bytes
257
- (** An alias for the type of byte sequences. *)
258
-
259
- val compare: t -> t -> int
260
- (** The comparison function for byte sequences, with the same
261
- specification as {!Pervasives.compare}. Along with the type [t],
262
- this function [compare] allows the module [Bytes] to be passed as
263
- argument to the functors {!Set.Make} and {!Map.Make}. *)
264
-
265
- val equal: t -> t -> bool
266
- (** The equality function for byte sequences.
267
- @since 4.05.0 *)
268
-
269
- (**/**)
270
-
271
- (* The following is for system use only. Do not call directly. *)
272
-
273
- external unsafe_get : bytes -> int -> char = "%bytes_unsafe_get"
274
- external unsafe_set : bytes -> int -> char -> unit = "%bytes_unsafe_set"
275
- val unsafe_to_string : bytes -> string
276
- val unsafe_of_string : string -> bytes
Binary file
Binary file
Binary file