@tellahq/rescript 10.1.0-alpha.1

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 (997) hide show
  1. package/CHANGELOG.md +1717 -0
  2. package/COPYING +674 -0
  3. package/COPYING.LESSER +165 -0
  4. package/CREDITS.md +59 -0
  5. package/LICENSE +24 -0
  6. package/README.md +114 -0
  7. package/bsc +22 -0
  8. package/bsrefmt +16 -0
  9. package/darwin/bsb_helper.exe +0 -0
  10. package/darwin/bsc.exe +0 -0
  11. package/darwin/ninja.COPYING +202 -0
  12. package/darwin/ninja.exe +0 -0
  13. package/darwin/refmt.exe +0 -0
  14. package/darwin/rescript.exe +0 -0
  15. package/darwinarm64/bsb_helper.exe +0 -0
  16. package/darwinarm64/bsc.exe +0 -0
  17. package/darwinarm64/ninja.COPYING +202 -0
  18. package/darwinarm64/ninja.exe +0 -0
  19. package/darwinarm64/refmt.exe +0 -0
  20. package/darwinarm64/rescript.exe +0 -0
  21. package/docs/docson/build-schema.json +557 -0
  22. package/freebsd/ninja.COPYING +202 -0
  23. package/jscomp/stubs/ext_basic_hash_stubs.c +216 -0
  24. package/lib/4.06.1/bsb_helper.ml +2436 -0
  25. package/lib/4.06.1/bsb_helper.mli +0 -0
  26. package/lib/4.06.1/refmt_main3.ml +115517 -0
  27. package/lib/4.06.1/refmt_main3.mli +1 -0
  28. package/lib/4.06.1/rescript.ml +15500 -0
  29. package/lib/4.06.1/rescript.mli +0 -0
  30. package/lib/4.06.1/whole_compiler.ml +306395 -0
  31. package/lib/4.06.1/whole_compiler.mli +0 -0
  32. package/lib/bstracing +270 -0
  33. package/lib/es6/arg.js +717 -0
  34. package/lib/es6/array.js +511 -0
  35. package/lib/es6/arrayLabels.js +511 -0
  36. package/lib/es6/belt.js +57 -0
  37. package/lib/es6/belt_Array.js +764 -0
  38. package/lib/es6/belt_Float.js +16 -0
  39. package/lib/es6/belt_HashMap.js +280 -0
  40. package/lib/es6/belt_HashMapInt.js +264 -0
  41. package/lib/es6/belt_HashMapString.js +264 -0
  42. package/lib/es6/belt_HashSet.js +222 -0
  43. package/lib/es6/belt_HashSetInt.js +207 -0
  44. package/lib/es6/belt_HashSetString.js +207 -0
  45. package/lib/es6/belt_Id.js +71 -0
  46. package/lib/es6/belt_Int.js +16 -0
  47. package/lib/es6/belt_List.js +1512 -0
  48. package/lib/es6/belt_Map.js +376 -0
  49. package/lib/es6/belt_MapDict.js +417 -0
  50. package/lib/es6/belt_MapInt.js +307 -0
  51. package/lib/es6/belt_MapString.js +307 -0
  52. package/lib/es6/belt_MutableMap.js +395 -0
  53. package/lib/es6/belt_MutableMapInt.js +362 -0
  54. package/lib/es6/belt_MutableMapString.js +362 -0
  55. package/lib/es6/belt_MutableQueue.js +299 -0
  56. package/lib/es6/belt_MutableSet.js +538 -0
  57. package/lib/es6/belt_MutableSetInt.js +501 -0
  58. package/lib/es6/belt_MutableSetString.js +501 -0
  59. package/lib/es6/belt_MutableStack.js +137 -0
  60. package/lib/es6/belt_Option.js +151 -0
  61. package/lib/es6/belt_Range.js +109 -0
  62. package/lib/es6/belt_Result.js +136 -0
  63. package/lib/es6/belt_Set.js +314 -0
  64. package/lib/es6/belt_SetDict.js +362 -0
  65. package/lib/es6/belt_SetInt.js +359 -0
  66. package/lib/es6/belt_SetString.js +359 -0
  67. package/lib/es6/belt_SortArray.js +427 -0
  68. package/lib/es6/belt_SortArrayInt.js +374 -0
  69. package/lib/es6/belt_SortArrayString.js +374 -0
  70. package/lib/es6/belt_internalAVLset.js +940 -0
  71. package/lib/es6/belt_internalAVLtree.js +1146 -0
  72. package/lib/es6/belt_internalBuckets.js +287 -0
  73. package/lib/es6/belt_internalBucketsType.js +49 -0
  74. package/lib/es6/belt_internalMapInt.js +365 -0
  75. package/lib/es6/belt_internalMapString.js +365 -0
  76. package/lib/es6/belt_internalSetBuckets.js +191 -0
  77. package/lib/es6/belt_internalSetInt.js +209 -0
  78. package/lib/es6/belt_internalSetString.js +209 -0
  79. package/lib/es6/buffer.js +477 -0
  80. package/lib/es6/bytes.js +704 -0
  81. package/lib/es6/bytesLabels.js +704 -0
  82. package/lib/es6/callback.js +16 -0
  83. package/lib/es6/caml.js +196 -0
  84. package/lib/es6/caml_array.js +122 -0
  85. package/lib/es6/caml_array_extern.js +1 -0
  86. package/lib/es6/caml_bytes.js +122 -0
  87. package/lib/es6/caml_exceptions.js +31 -0
  88. package/lib/es6/caml_external_polyfill.js +32 -0
  89. package/lib/es6/caml_float.js +129 -0
  90. package/lib/es6/caml_float_extern.js +1 -0
  91. package/lib/es6/caml_format.js +818 -0
  92. package/lib/es6/caml_hash.js +101 -0
  93. package/lib/es6/caml_hash_primitive.js +51 -0
  94. package/lib/es6/caml_int32.js +28 -0
  95. package/lib/es6/caml_int64.js +606 -0
  96. package/lib/es6/caml_int64_extern.js +1 -0
  97. package/lib/es6/caml_js_exceptions.js +31 -0
  98. package/lib/es6/caml_lexer.js +258 -0
  99. package/lib/es6/caml_md5.js +168 -0
  100. package/lib/es6/caml_module.js +117 -0
  101. package/lib/es6/caml_nativeint_extern.js +1 -0
  102. package/lib/es6/caml_obj.js +413 -0
  103. package/lib/es6/caml_option.js +86 -0
  104. package/lib/es6/caml_parser.js +303 -0
  105. package/lib/es6/caml_splice_call.js +52 -0
  106. package/lib/es6/caml_string.js +23 -0
  107. package/lib/es6/caml_string_extern.js +1 -0
  108. package/lib/es6/caml_sys.js +99 -0
  109. package/lib/es6/caml_undefined_extern.js +1 -0
  110. package/lib/es6/camlinternalLazy.js +59 -0
  111. package/lib/es6/camlinternalMod.js +1 -0
  112. package/lib/es6/char.js +126 -0
  113. package/lib/es6/complex.js +176 -0
  114. package/lib/es6/curry.js +526 -0
  115. package/lib/es6/digest.js +118 -0
  116. package/lib/es6/dom.js +12 -0
  117. package/lib/es6/dom_storage.js +27 -0
  118. package/lib/es6/dom_storage2.js +1 -0
  119. package/lib/es6/filename.js +496 -0
  120. package/lib/es6/genlex.js +666 -0
  121. package/lib/es6/hashtbl.js +1115 -0
  122. package/lib/es6/hashtblLabels.js +170 -0
  123. package/lib/es6/int32.js +75 -0
  124. package/lib/es6/int64.js +70 -0
  125. package/lib/es6/js.js +111 -0
  126. package/lib/es6/js_OO.js +15 -0
  127. package/lib/es6/js_array.js +223 -0
  128. package/lib/es6/js_array2.js +1 -0
  129. package/lib/es6/js_bigint.js +1 -0
  130. package/lib/es6/js_cast.js +1 -0
  131. package/lib/es6/js_console.js +1 -0
  132. package/lib/es6/js_date.js +1 -0
  133. package/lib/es6/js_dict.js +85 -0
  134. package/lib/es6/js_exn.js +44 -0
  135. package/lib/es6/js_float.js +1 -0
  136. package/lib/es6/js_global.js +1 -0
  137. package/lib/es6/js_int.js +17 -0
  138. package/lib/es6/js_json.js +172 -0
  139. package/lib/es6/js_list.js +333 -0
  140. package/lib/es6/js_map.js +1 -0
  141. package/lib/es6/js_mapperRt.js +54 -0
  142. package/lib/es6/js_math.js +50 -0
  143. package/lib/es6/js_null.js +49 -0
  144. package/lib/es6/js_null_undefined.js +35 -0
  145. package/lib/es6/js_obj.js +1 -0
  146. package/lib/es6/js_option.js +104 -0
  147. package/lib/es6/js_promise.js +17 -0
  148. package/lib/es6/js_re.js +1 -0
  149. package/lib/es6/js_result.js +1 -0
  150. package/lib/es6/js_set.js +1 -0
  151. package/lib/es6/js_string.js +199 -0
  152. package/lib/es6/js_string2.js +1 -0
  153. package/lib/es6/js_typed_array.js +1733 -0
  154. package/lib/es6/js_typed_array2.js +39 -0
  155. package/lib/es6/js_types.js +77 -0
  156. package/lib/es6/js_undefined.js +52 -0
  157. package/lib/es6/js_vector.js +134 -0
  158. package/lib/es6/js_weakmap.js +1 -0
  159. package/lib/es6/js_weakset.js +1 -0
  160. package/lib/es6/jsx.js +1 -0
  161. package/lib/es6/jsxDOM.js +1 -0
  162. package/lib/es6/jsxDOMStyle.js +1 -0
  163. package/lib/es6/jsxEvent.js +59 -0
  164. package/lib/es6/lazy.js +44 -0
  165. package/lib/es6/lexing.js +217 -0
  166. package/lib/es6/list.js +1713 -0
  167. package/lib/es6/listLabels.js +1713 -0
  168. package/lib/es6/map.js +936 -0
  169. package/lib/es6/mapLabels.js +951 -0
  170. package/lib/es6/moreLabels.js +1931 -0
  171. package/lib/es6/node.js +39 -0
  172. package/lib/es6/node_buffer.js +1 -0
  173. package/lib/es6/node_child_process.js +1 -0
  174. package/lib/es6/node_fs.js +9 -0
  175. package/lib/es6/node_module.js +1 -0
  176. package/lib/es6/node_path.js +1 -0
  177. package/lib/es6/node_process.js +18 -0
  178. package/lib/es6/obj.js +11 -0
  179. package/lib/es6/package.json +1 -0
  180. package/lib/es6/parsing.js +237 -0
  181. package/lib/es6/pervasives.js +250 -0
  182. package/lib/es6/printexc.js +102 -0
  183. package/lib/es6/queue.js +181 -0
  184. package/lib/es6/random.js +280 -0
  185. package/lib/es6/set.js +955 -0
  186. package/lib/es6/setLabels.js +988 -0
  187. package/lib/es6/sort.js +168 -0
  188. package/lib/es6/stack.js +88 -0
  189. package/lib/es6/stdLabels.js +18 -0
  190. package/lib/es6/stream.js +496 -0
  191. package/lib/es6/string.js +337 -0
  192. package/lib/es6/stringLabels.js +337 -0
  193. package/lib/es6/sys.js +182 -0
  194. package/lib/es6/uchar.js +133 -0
  195. package/lib/js/arg.js +715 -0
  196. package/lib/js/array.js +509 -0
  197. package/lib/js/arrayLabels.js +509 -0
  198. package/lib/js/belt.js +55 -0
  199. package/lib/js/belt_Array.js +762 -0
  200. package/lib/js/belt_Float.js +14 -0
  201. package/lib/js/belt_HashMap.js +278 -0
  202. package/lib/js/belt_HashMapInt.js +262 -0
  203. package/lib/js/belt_HashMapString.js +262 -0
  204. package/lib/js/belt_HashSet.js +220 -0
  205. package/lib/js/belt_HashSetInt.js +205 -0
  206. package/lib/js/belt_HashSetString.js +205 -0
  207. package/lib/js/belt_Id.js +69 -0
  208. package/lib/js/belt_Int.js +14 -0
  209. package/lib/js/belt_List.js +1510 -0
  210. package/lib/js/belt_Map.js +374 -0
  211. package/lib/js/belt_MapDict.js +415 -0
  212. package/lib/js/belt_MapInt.js +305 -0
  213. package/lib/js/belt_MapString.js +305 -0
  214. package/lib/js/belt_MutableMap.js +393 -0
  215. package/lib/js/belt_MutableMapInt.js +360 -0
  216. package/lib/js/belt_MutableMapString.js +360 -0
  217. package/lib/js/belt_MutableQueue.js +297 -0
  218. package/lib/js/belt_MutableSet.js +536 -0
  219. package/lib/js/belt_MutableSetInt.js +499 -0
  220. package/lib/js/belt_MutableSetString.js +499 -0
  221. package/lib/js/belt_MutableStack.js +135 -0
  222. package/lib/js/belt_Option.js +149 -0
  223. package/lib/js/belt_Range.js +107 -0
  224. package/lib/js/belt_Result.js +134 -0
  225. package/lib/js/belt_Set.js +312 -0
  226. package/lib/js/belt_SetDict.js +360 -0
  227. package/lib/js/belt_SetInt.js +357 -0
  228. package/lib/js/belt_SetString.js +357 -0
  229. package/lib/js/belt_SortArray.js +425 -0
  230. package/lib/js/belt_SortArrayInt.js +372 -0
  231. package/lib/js/belt_SortArrayString.js +372 -0
  232. package/lib/js/belt_internalAVLset.js +938 -0
  233. package/lib/js/belt_internalAVLtree.js +1144 -0
  234. package/lib/js/belt_internalBuckets.js +285 -0
  235. package/lib/js/belt_internalBucketsType.js +47 -0
  236. package/lib/js/belt_internalMapInt.js +363 -0
  237. package/lib/js/belt_internalMapString.js +363 -0
  238. package/lib/js/belt_internalSetBuckets.js +189 -0
  239. package/lib/js/belt_internalSetInt.js +207 -0
  240. package/lib/js/belt_internalSetString.js +207 -0
  241. package/lib/js/buffer.js +475 -0
  242. package/lib/js/bytes.js +702 -0
  243. package/lib/js/bytesLabels.js +702 -0
  244. package/lib/js/callback.js +14 -0
  245. package/lib/js/caml.js +194 -0
  246. package/lib/js/caml_array.js +120 -0
  247. package/lib/js/caml_array_extern.js +1 -0
  248. package/lib/js/caml_bytes.js +120 -0
  249. package/lib/js/caml_exceptions.js +29 -0
  250. package/lib/js/caml_external_polyfill.js +30 -0
  251. package/lib/js/caml_float.js +127 -0
  252. package/lib/js/caml_float_extern.js +1 -0
  253. package/lib/js/caml_format.js +816 -0
  254. package/lib/js/caml_hash.js +99 -0
  255. package/lib/js/caml_hash_primitive.js +49 -0
  256. package/lib/js/caml_int32.js +26 -0
  257. package/lib/js/caml_int64.js +604 -0
  258. package/lib/js/caml_int64_extern.js +1 -0
  259. package/lib/js/caml_js_exceptions.js +29 -0
  260. package/lib/js/caml_lexer.js +256 -0
  261. package/lib/js/caml_md5.js +166 -0
  262. package/lib/js/caml_module.js +115 -0
  263. package/lib/js/caml_nativeint_extern.js +1 -0
  264. package/lib/js/caml_obj.js +411 -0
  265. package/lib/js/caml_option.js +84 -0
  266. package/lib/js/caml_parser.js +301 -0
  267. package/lib/js/caml_splice_call.js +50 -0
  268. package/lib/js/caml_string.js +21 -0
  269. package/lib/js/caml_string_extern.js +1 -0
  270. package/lib/js/caml_sys.js +97 -0
  271. package/lib/js/caml_undefined_extern.js +1 -0
  272. package/lib/js/camlinternalLazy.js +57 -0
  273. package/lib/js/camlinternalMod.js +1 -0
  274. package/lib/js/char.js +124 -0
  275. package/lib/js/complex.js +174 -0
  276. package/lib/js/curry.js +524 -0
  277. package/lib/js/digest.js +116 -0
  278. package/lib/js/dom.js +10 -0
  279. package/lib/js/dom_storage.js +25 -0
  280. package/lib/js/dom_storage2.js +1 -0
  281. package/lib/js/filename.js +494 -0
  282. package/lib/js/genlex.js +664 -0
  283. package/lib/js/hashtbl.js +1113 -0
  284. package/lib/js/hashtblLabels.js +168 -0
  285. package/lib/js/int32.js +73 -0
  286. package/lib/js/int64.js +68 -0
  287. package/lib/js/js.js +109 -0
  288. package/lib/js/js_OO.js +13 -0
  289. package/lib/js/js_array.js +221 -0
  290. package/lib/js/js_array2.js +1 -0
  291. package/lib/js/js_bigint.js +1 -0
  292. package/lib/js/js_cast.js +1 -0
  293. package/lib/js/js_console.js +1 -0
  294. package/lib/js/js_date.js +1 -0
  295. package/lib/js/js_dict.js +83 -0
  296. package/lib/js/js_exn.js +42 -0
  297. package/lib/js/js_float.js +1 -0
  298. package/lib/js/js_global.js +1 -0
  299. package/lib/js/js_int.js +15 -0
  300. package/lib/js/js_json.js +170 -0
  301. package/lib/js/js_list.js +331 -0
  302. package/lib/js/js_map.js +1 -0
  303. package/lib/js/js_mapperRt.js +52 -0
  304. package/lib/js/js_math.js +48 -0
  305. package/lib/js/js_null.js +47 -0
  306. package/lib/js/js_null_undefined.js +33 -0
  307. package/lib/js/js_obj.js +1 -0
  308. package/lib/js/js_option.js +103 -0
  309. package/lib/js/js_promise.js +15 -0
  310. package/lib/js/js_re.js +1 -0
  311. package/lib/js/js_result.js +1 -0
  312. package/lib/js/js_set.js +1 -0
  313. package/lib/js/js_string.js +197 -0
  314. package/lib/js/js_string2.js +1 -0
  315. package/lib/js/js_typed_array.js +1731 -0
  316. package/lib/js/js_typed_array2.js +37 -0
  317. package/lib/js/js_types.js +75 -0
  318. package/lib/js/js_undefined.js +50 -0
  319. package/lib/js/js_vector.js +132 -0
  320. package/lib/js/js_weakmap.js +1 -0
  321. package/lib/js/js_weakset.js +1 -0
  322. package/lib/js/jsx.js +1 -0
  323. package/lib/js/jsxDOM.js +1 -0
  324. package/lib/js/jsxDOMStyle.js +1 -0
  325. package/lib/js/jsxEvent.js +57 -0
  326. package/lib/js/lazy.js +42 -0
  327. package/lib/js/lexing.js +215 -0
  328. package/lib/js/list.js +1711 -0
  329. package/lib/js/listLabels.js +1711 -0
  330. package/lib/js/map.js +934 -0
  331. package/lib/js/mapLabels.js +949 -0
  332. package/lib/js/moreLabels.js +1929 -0
  333. package/lib/js/node.js +37 -0
  334. package/lib/js/node_buffer.js +1 -0
  335. package/lib/js/node_child_process.js +1 -0
  336. package/lib/js/node_fs.js +7 -0
  337. package/lib/js/node_module.js +1 -0
  338. package/lib/js/node_path.js +1 -0
  339. package/lib/js/node_process.js +16 -0
  340. package/lib/js/obj.js +9 -0
  341. package/lib/js/parsing.js +235 -0
  342. package/lib/js/pervasives.js +248 -0
  343. package/lib/js/printexc.js +100 -0
  344. package/lib/js/queue.js +179 -0
  345. package/lib/js/random.js +278 -0
  346. package/lib/js/set.js +953 -0
  347. package/lib/js/setLabels.js +986 -0
  348. package/lib/js/sort.js +166 -0
  349. package/lib/js/stack.js +86 -0
  350. package/lib/js/stdLabels.js +16 -0
  351. package/lib/js/stream.js +494 -0
  352. package/lib/js/string.js +335 -0
  353. package/lib/js/stringLabels.js +335 -0
  354. package/lib/js/sys.js +180 -0
  355. package/lib/js/uchar.js +131 -0
  356. package/lib/minisocket.js +93 -0
  357. package/lib/ocaml/arg.cmi +0 -0
  358. package/lib/ocaml/arg.cmt +0 -0
  359. package/lib/ocaml/arg.cmti +0 -0
  360. package/lib/ocaml/arg.ml +359 -0
  361. package/lib/ocaml/arg.mli +185 -0
  362. package/lib/ocaml/array.cmi +0 -0
  363. package/lib/ocaml/array.cmt +0 -0
  364. package/lib/ocaml/array.cmti +0 -0
  365. package/lib/ocaml/array.ml +307 -0
  366. package/lib/ocaml/array.mli +275 -0
  367. package/lib/ocaml/arrayLabels.cmi +0 -0
  368. package/lib/ocaml/arrayLabels.cmt +0 -0
  369. package/lib/ocaml/arrayLabels.cmti +0 -0
  370. package/lib/ocaml/arrayLabels.ml +307 -0
  371. package/lib/ocaml/arrayLabels.mli +276 -0
  372. package/lib/ocaml/belt.cmi +0 -0
  373. package/lib/ocaml/belt.cmt +0 -0
  374. package/lib/ocaml/belt.ml +352 -0
  375. package/lib/ocaml/belt_Array.cmi +0 -0
  376. package/lib/ocaml/belt_Array.cmt +0 -0
  377. package/lib/ocaml/belt_Array.cmti +0 -0
  378. package/lib/ocaml/belt_Array.ml +525 -0
  379. package/lib/ocaml/belt_Array.mli +707 -0
  380. package/lib/ocaml/belt_Float.cmi +0 -0
  381. package/lib/ocaml/belt_Float.cmt +0 -0
  382. package/lib/ocaml/belt_Float.cmti +0 -0
  383. package/lib/ocaml/belt_Float.ml +50 -0
  384. package/lib/ocaml/belt_Float.mli +106 -0
  385. package/lib/ocaml/belt_HashMap.cmi +0 -0
  386. package/lib/ocaml/belt_HashMap.cmt +0 -0
  387. package/lib/ocaml/belt_HashMap.cmti +0 -0
  388. package/lib/ocaml/belt_HashMap.ml +226 -0
  389. package/lib/ocaml/belt_HashMap.mli +436 -0
  390. package/lib/ocaml/belt_HashMapInt.cmi +0 -0
  391. package/lib/ocaml/belt_HashMapInt.cmt +0 -0
  392. package/lib/ocaml/belt_HashMapInt.cmti +0 -0
  393. package/lib/ocaml/belt_HashMapInt.ml +206 -0
  394. package/lib/ocaml/belt_HashMapInt.mli +50 -0
  395. package/lib/ocaml/belt_HashMapString.cmi +0 -0
  396. package/lib/ocaml/belt_HashMapString.cmt +0 -0
  397. package/lib/ocaml/belt_HashMapString.cmti +0 -0
  398. package/lib/ocaml/belt_HashMapString.ml +206 -0
  399. package/lib/ocaml/belt_HashMapString.mli +50 -0
  400. package/lib/ocaml/belt_HashSet.cmi +0 -0
  401. package/lib/ocaml/belt_HashSet.cmt +0 -0
  402. package/lib/ocaml/belt_HashSet.cmti +0 -0
  403. package/lib/ocaml/belt_HashSet.ml +196 -0
  404. package/lib/ocaml/belt_HashSet.mli +125 -0
  405. package/lib/ocaml/belt_HashSetInt.cmi +0 -0
  406. package/lib/ocaml/belt_HashSetInt.cmt +0 -0
  407. package/lib/ocaml/belt_HashSetInt.cmti +0 -0
  408. package/lib/ocaml/belt_HashSetInt.ml +155 -0
  409. package/lib/ocaml/belt_HashSetInt.mli +74 -0
  410. package/lib/ocaml/belt_HashSetString.cmi +0 -0
  411. package/lib/ocaml/belt_HashSetString.cmt +0 -0
  412. package/lib/ocaml/belt_HashSetString.cmti +0 -0
  413. package/lib/ocaml/belt_HashSetString.ml +156 -0
  414. package/lib/ocaml/belt_HashSetString.mli +74 -0
  415. package/lib/ocaml/belt_Id.cmi +0 -0
  416. package/lib/ocaml/belt_Id.cmt +0 -0
  417. package/lib/ocaml/belt_Id.cmti +0 -0
  418. package/lib/ocaml/belt_Id.ml +133 -0
  419. package/lib/ocaml/belt_Id.mli +171 -0
  420. package/lib/ocaml/belt_Int.cmi +0 -0
  421. package/lib/ocaml/belt_Int.cmt +0 -0
  422. package/lib/ocaml/belt_Int.cmti +0 -0
  423. package/lib/ocaml/belt_Int.ml +50 -0
  424. package/lib/ocaml/belt_Int.mli +103 -0
  425. package/lib/ocaml/belt_List.cmi +0 -0
  426. package/lib/ocaml/belt_List.cmt +0 -0
  427. package/lib/ocaml/belt_List.cmti +0 -0
  428. package/lib/ocaml/belt_List.ml +803 -0
  429. package/lib/ocaml/belt_List.mli +844 -0
  430. package/lib/ocaml/belt_Map.cmi +0 -0
  431. package/lib/ocaml/belt_Map.cmt +0 -0
  432. package/lib/ocaml/belt_Map.cmti +0 -0
  433. package/lib/ocaml/belt_Map.ml +170 -0
  434. package/lib/ocaml/belt_Map.mli +496 -0
  435. package/lib/ocaml/belt_MapDict.cmi +0 -0
  436. package/lib/ocaml/belt_MapDict.cmt +0 -0
  437. package/lib/ocaml/belt_MapDict.cmti +0 -0
  438. package/lib/ocaml/belt_MapDict.ml +278 -0
  439. package/lib/ocaml/belt_MapDict.mli +268 -0
  440. package/lib/ocaml/belt_MapInt.cmi +0 -0
  441. package/lib/ocaml/belt_MapInt.cmt +0 -0
  442. package/lib/ocaml/belt_MapInt.cmti +0 -0
  443. package/lib/ocaml/belt_MapInt.ml +169 -0
  444. package/lib/ocaml/belt_MapInt.mli +187 -0
  445. package/lib/ocaml/belt_MapString.cmi +0 -0
  446. package/lib/ocaml/belt_MapString.cmt +0 -0
  447. package/lib/ocaml/belt_MapString.cmti +0 -0
  448. package/lib/ocaml/belt_MapString.ml +169 -0
  449. package/lib/ocaml/belt_MapString.mli +187 -0
  450. package/lib/ocaml/belt_MutableMap.cmi +0 -0
  451. package/lib/ocaml/belt_MutableMap.cmt +0 -0
  452. package/lib/ocaml/belt_MutableMap.cmti +0 -0
  453. package/lib/ocaml/belt_MutableMap.ml +241 -0
  454. package/lib/ocaml/belt_MutableMap.mli +145 -0
  455. package/lib/ocaml/belt_MutableMapInt.cmi +0 -0
  456. package/lib/ocaml/belt_MutableMapInt.cmt +0 -0
  457. package/lib/ocaml/belt_MutableMapInt.cmti +0 -0
  458. package/lib/ocaml/belt_MutableMapInt.ml +172 -0
  459. package/lib/ocaml/belt_MutableMapInt.mli +135 -0
  460. package/lib/ocaml/belt_MutableMapString.cmi +0 -0
  461. package/lib/ocaml/belt_MutableMapString.cmt +0 -0
  462. package/lib/ocaml/belt_MutableMapString.cmti +0 -0
  463. package/lib/ocaml/belt_MutableMapString.ml +172 -0
  464. package/lib/ocaml/belt_MutableMapString.mli +135 -0
  465. package/lib/ocaml/belt_MutableQueue.cmi +0 -0
  466. package/lib/ocaml/belt_MutableQueue.cmt +0 -0
  467. package/lib/ocaml/belt_MutableQueue.cmti +0 -0
  468. package/lib/ocaml/belt_MutableQueue.ml +222 -0
  469. package/lib/ocaml/belt_MutableQueue.mli +116 -0
  470. package/lib/ocaml/belt_MutableSet.cmi +0 -0
  471. package/lib/ocaml/belt_MutableSet.cmt +0 -0
  472. package/lib/ocaml/belt_MutableSet.cmti +0 -0
  473. package/lib/ocaml/belt_MutableSet.ml +371 -0
  474. package/lib/ocaml/belt_MutableSet.mli +617 -0
  475. package/lib/ocaml/belt_MutableSetInt.cmi +0 -0
  476. package/lib/ocaml/belt_MutableSetInt.cmt +0 -0
  477. package/lib/ocaml/belt_MutableSetInt.cmti +0 -0
  478. package/lib/ocaml/belt_MutableSetInt.ml +342 -0
  479. package/lib/ocaml/belt_MutableSetInt.mli +124 -0
  480. package/lib/ocaml/belt_MutableSetString.cmi +0 -0
  481. package/lib/ocaml/belt_MutableSetString.cmt +0 -0
  482. package/lib/ocaml/belt_MutableSetString.cmti +0 -0
  483. package/lib/ocaml/belt_MutableSetString.ml +342 -0
  484. package/lib/ocaml/belt_MutableSetString.mli +124 -0
  485. package/lib/ocaml/belt_MutableStack.cmi +0 -0
  486. package/lib/ocaml/belt_MutableStack.cmt +0 -0
  487. package/lib/ocaml/belt_MutableStack.cmti +0 -0
  488. package/lib/ocaml/belt_MutableStack.ml +106 -0
  489. package/lib/ocaml/belt_MutableStack.mli +63 -0
  490. package/lib/ocaml/belt_Option.cmi +0 -0
  491. package/lib/ocaml/belt_Option.cmt +0 -0
  492. package/lib/ocaml/belt_Option.cmti +0 -0
  493. package/lib/ocaml/belt_Option.ml +93 -0
  494. package/lib/ocaml/belt_Option.mli +270 -0
  495. package/lib/ocaml/belt_Range.cmi +0 -0
  496. package/lib/ocaml/belt_Range.cmt +0 -0
  497. package/lib/ocaml/belt_Range.cmti +0 -0
  498. package/lib/ocaml/belt_Range.ml +76 -0
  499. package/lib/ocaml/belt_Range.mli +114 -0
  500. package/lib/ocaml/belt_Result.cmi +0 -0
  501. package/lib/ocaml/belt_Result.cmt +0 -0
  502. package/lib/ocaml/belt_Result.cmti +0 -0
  503. package/lib/ocaml/belt_Result.ml +75 -0
  504. package/lib/ocaml/belt_Result.mli +205 -0
  505. package/lib/ocaml/belt_Set.cmi +0 -0
  506. package/lib/ocaml/belt_Set.cmt +0 -0
  507. package/lib/ocaml/belt_Set.cmti +0 -0
  508. package/lib/ocaml/belt_Set.cppo.ml +205 -0
  509. package/lib/ocaml/belt_Set.cppo.mli +153 -0
  510. package/lib/ocaml/belt_Set.ml +164 -0
  511. package/lib/ocaml/belt_Set.mli +523 -0
  512. package/lib/ocaml/belt_SetDict.cmi +0 -0
  513. package/lib/ocaml/belt_SetDict.cmt +0 -0
  514. package/lib/ocaml/belt_SetDict.cmti +0 -0
  515. package/lib/ocaml/belt_SetDict.ml +237 -0
  516. package/lib/ocaml/belt_SetDict.mli +567 -0
  517. package/lib/ocaml/belt_SetInt.cmi +0 -0
  518. package/lib/ocaml/belt_SetInt.cmt +0 -0
  519. package/lib/ocaml/belt_SetInt.cmti +0 -0
  520. package/lib/ocaml/belt_SetInt.ml +201 -0
  521. package/lib/ocaml/belt_SetInt.mli +151 -0
  522. package/lib/ocaml/belt_SetString.cmi +0 -0
  523. package/lib/ocaml/belt_SetString.cmt +0 -0
  524. package/lib/ocaml/belt_SetString.cmti +0 -0
  525. package/lib/ocaml/belt_SetString.ml +201 -0
  526. package/lib/ocaml/belt_SetString.mli +151 -0
  527. package/lib/ocaml/belt_SortArray.cmi +0 -0
  528. package/lib/ocaml/belt_SortArray.cmt +0 -0
  529. package/lib/ocaml/belt_SortArray.cmti +0 -0
  530. package/lib/ocaml/belt_SortArray.ml +322 -0
  531. package/lib/ocaml/belt_SortArray.mli +146 -0
  532. package/lib/ocaml/belt_SortArrayInt.cmi +0 -0
  533. package/lib/ocaml/belt_SortArrayInt.cmt +0 -0
  534. package/lib/ocaml/belt_SortArrayInt.cmti +0 -0
  535. package/lib/ocaml/belt_SortArrayInt.ml +263 -0
  536. package/lib/ocaml/belt_SortArrayInt.mli +93 -0
  537. package/lib/ocaml/belt_SortArrayString.cmi +0 -0
  538. package/lib/ocaml/belt_SortArrayString.cmt +0 -0
  539. package/lib/ocaml/belt_SortArrayString.cmti +0 -0
  540. package/lib/ocaml/belt_SortArrayString.ml +263 -0
  541. package/lib/ocaml/belt_SortArrayString.mli +93 -0
  542. package/lib/ocaml/belt_internalAVLset.cmt +0 -0
  543. package/lib/ocaml/belt_internalAVLset.cmti +0 -0
  544. package/lib/ocaml/belt_internalAVLset.ml +665 -0
  545. package/lib/ocaml/belt_internalAVLset.mli +124 -0
  546. package/lib/ocaml/belt_internalAVLtree.cmt +0 -0
  547. package/lib/ocaml/belt_internalAVLtree.cmti +0 -0
  548. package/lib/ocaml/belt_internalAVLtree.ml +762 -0
  549. package/lib/ocaml/belt_internalAVLtree.mli +215 -0
  550. package/lib/ocaml/belt_internalBuckets.cmt +0 -0
  551. package/lib/ocaml/belt_internalBuckets.cmti +0 -0
  552. package/lib/ocaml/belt_internalBuckets.ml +218 -0
  553. package/lib/ocaml/belt_internalBuckets.mli +57 -0
  554. package/lib/ocaml/belt_internalBucketsType.cmt +0 -0
  555. package/lib/ocaml/belt_internalBucketsType.cmti +0 -0
  556. package/lib/ocaml/belt_internalBucketsType.ml +59 -0
  557. package/lib/ocaml/belt_internalBucketsType.mli +46 -0
  558. package/lib/ocaml/belt_internalMapInt.cmt +0 -0
  559. package/lib/ocaml/belt_internalMapInt.ml +227 -0
  560. package/lib/ocaml/belt_internalMapString.cmt +0 -0
  561. package/lib/ocaml/belt_internalMapString.ml +227 -0
  562. package/lib/ocaml/belt_internalSetBuckets.cmt +0 -0
  563. package/lib/ocaml/belt_internalSetBuckets.cmti +0 -0
  564. package/lib/ocaml/belt_internalSetBuckets.ml +157 -0
  565. package/lib/ocaml/belt_internalSetBuckets.mli +47 -0
  566. package/lib/ocaml/belt_internalSetInt.cmt +0 -0
  567. package/lib/ocaml/belt_internalSetInt.ml +129 -0
  568. package/lib/ocaml/belt_internalSetString.cmt +0 -0
  569. package/lib/ocaml/belt_internalSetString.ml +129 -0
  570. package/lib/ocaml/belt_internals.cmti +0 -0
  571. package/lib/ocaml/belt_internals.mli +79 -0
  572. package/lib/ocaml/buffer.cmi +0 -0
  573. package/lib/ocaml/buffer.cmt +0 -0
  574. package/lib/ocaml/buffer.cmti +0 -0
  575. package/lib/ocaml/buffer.ml +250 -0
  576. package/lib/ocaml/buffer.mli +149 -0
  577. package/lib/ocaml/bytes.cmi +0 -0
  578. package/lib/ocaml/bytes.cmt +0 -0
  579. package/lib/ocaml/bytes.cmti +0 -0
  580. package/lib/ocaml/bytes.ml +431 -0
  581. package/lib/ocaml/bytes.mli +430 -0
  582. package/lib/ocaml/bytesLabels.cmi +0 -0
  583. package/lib/ocaml/bytesLabels.cmt +0 -0
  584. package/lib/ocaml/bytesLabels.cmti +0 -0
  585. package/lib/ocaml/bytesLabels.ml +428 -0
  586. package/lib/ocaml/bytesLabels.mli +276 -0
  587. package/lib/ocaml/callback.cmi +0 -0
  588. package/lib/ocaml/callback.cmt +0 -0
  589. package/lib/ocaml/callback.cmti +0 -0
  590. package/lib/ocaml/callback.ml +20 -0
  591. package/lib/ocaml/callback.mli +34 -0
  592. package/lib/ocaml/camlinternalLazy.cmi +0 -0
  593. package/lib/ocaml/camlinternalLazy.cmt +0 -0
  594. package/lib/ocaml/camlinternalLazy.cmti +0 -0
  595. package/lib/ocaml/camlinternalLazy.ml +89 -0
  596. package/lib/ocaml/camlinternalLazy.mli +27 -0
  597. package/lib/ocaml/camlinternalMod.cmi +0 -0
  598. package/lib/ocaml/camlinternalMod.cmt +0 -0
  599. package/lib/ocaml/camlinternalMod.cmti +0 -0
  600. package/lib/ocaml/camlinternalMod.ml +21 -0
  601. package/lib/ocaml/camlinternalMod.mli +25 -0
  602. package/lib/ocaml/char.cmi +0 -0
  603. package/lib/ocaml/char.cmt +0 -0
  604. package/lib/ocaml/char.cmti +0 -0
  605. package/lib/ocaml/char.ml +76 -0
  606. package/lib/ocaml/char.mli +72 -0
  607. package/lib/ocaml/complex.cmi +0 -0
  608. package/lib/ocaml/complex.cmt +0 -0
  609. package/lib/ocaml/complex.cmti +0 -0
  610. package/lib/ocaml/complex.ml +87 -0
  611. package/lib/ocaml/complex.mli +86 -0
  612. package/lib/ocaml/digest.cmi +0 -0
  613. package/lib/ocaml/digest.cmt +0 -0
  614. package/lib/ocaml/digest.cmti +0 -0
  615. package/lib/ocaml/digest.ml +66 -0
  616. package/lib/ocaml/digest.mli +68 -0
  617. package/lib/ocaml/dom.cmi +0 -0
  618. package/lib/ocaml/dom.cmt +0 -0
  619. package/lib/ocaml/dom.ml +296 -0
  620. package/lib/ocaml/dom_storage.cmi +0 -0
  621. package/lib/ocaml/dom_storage.cmt +0 -0
  622. package/lib/ocaml/dom_storage.ml +22 -0
  623. package/lib/ocaml/dom_storage2.cmi +0 -0
  624. package/lib/ocaml/dom_storage2.cmt +0 -0
  625. package/lib/ocaml/dom_storage2.ml +11 -0
  626. package/lib/ocaml/filename.cmi +0 -0
  627. package/lib/ocaml/filename.cmt +0 -0
  628. package/lib/ocaml/filename.cmti +0 -0
  629. package/lib/ocaml/filename.ml +233 -0
  630. package/lib/ocaml/filename.mli +134 -0
  631. package/lib/ocaml/genlex.cmi +0 -0
  632. package/lib/ocaml/genlex.cmt +0 -0
  633. package/lib/ocaml/genlex.cmti +0 -0
  634. package/lib/ocaml/genlex.ml +201 -0
  635. package/lib/ocaml/genlex.mli +73 -0
  636. package/lib/ocaml/hashmap.cppo.ml +214 -0
  637. package/lib/ocaml/hashmap.cppo.mli +54 -0
  638. package/lib/ocaml/hashset.cppo.ml +165 -0
  639. package/lib/ocaml/hashset.cppo.mli +77 -0
  640. package/lib/ocaml/hashtbl.cmi +0 -0
  641. package/lib/ocaml/hashtbl.cmt +0 -0
  642. package/lib/ocaml/hashtbl.cmti +0 -0
  643. package/lib/ocaml/hashtbl.ml +541 -0
  644. package/lib/ocaml/hashtbl.mli +411 -0
  645. package/lib/ocaml/hashtblLabels.cmi +0 -0
  646. package/lib/ocaml/hashtblLabels.cmt +0 -0
  647. package/lib/ocaml/hashtblLabels.ml +130 -0
  648. package/lib/ocaml/int32.cmi +0 -0
  649. package/lib/ocaml/int32.cmt +0 -0
  650. package/lib/ocaml/int32.cmti +0 -0
  651. package/lib/ocaml/int32.ml +64 -0
  652. package/lib/ocaml/int32.mli +186 -0
  653. package/lib/ocaml/int64.cmi +0 -0
  654. package/lib/ocaml/int64.cmt +0 -0
  655. package/lib/ocaml/int64.cmti +0 -0
  656. package/lib/ocaml/int64.ml +72 -0
  657. package/lib/ocaml/int64.mli +197 -0
  658. package/lib/ocaml/internal_map.cppo.ml +230 -0
  659. package/lib/ocaml/internal_set.cppo.ml +134 -0
  660. package/lib/ocaml/js.cmi +0 -0
  661. package/lib/ocaml/js.cmt +0 -0
  662. package/lib/ocaml/js.ml +313 -0
  663. package/lib/ocaml/js_OO.cmi +0 -0
  664. package/lib/ocaml/js_OO.cmt +0 -0
  665. package/lib/ocaml/js_OO.ml +180 -0
  666. package/lib/ocaml/js_array.cmi +0 -0
  667. package/lib/ocaml/js_array.cmt +0 -0
  668. package/lib/ocaml/js_array.ml +970 -0
  669. package/lib/ocaml/js_array2.cmi +0 -0
  670. package/lib/ocaml/js_array2.cmt +0 -0
  671. package/lib/ocaml/js_array2.ml +1065 -0
  672. package/lib/ocaml/js_bigint.cmi +0 -0
  673. package/lib/ocaml/js_bigint.cmt +0 -0
  674. package/lib/ocaml/js_bigint.ml +3 -0
  675. package/lib/ocaml/js_cast.cmi +0 -0
  676. package/lib/ocaml/js_cast.cmt +0 -0
  677. package/lib/ocaml/js_cast.cmti +0 -0
  678. package/lib/ocaml/js_cast.ml +29 -0
  679. package/lib/ocaml/js_cast.mli +45 -0
  680. package/lib/ocaml/js_console.cmi +0 -0
  681. package/lib/ocaml/js_console.cmt +0 -0
  682. package/lib/ocaml/js_console.ml +51 -0
  683. package/lib/ocaml/js_date.cmi +0 -0
  684. package/lib/ocaml/js_date.cmt +0 -0
  685. package/lib/ocaml/js_date.ml +1263 -0
  686. package/lib/ocaml/js_dict.cmi +0 -0
  687. package/lib/ocaml/js_dict.cmt +0 -0
  688. package/lib/ocaml/js_dict.cmti +0 -0
  689. package/lib/ocaml/js_dict.ml +114 -0
  690. package/lib/ocaml/js_dict.mli +152 -0
  691. package/lib/ocaml/js_exn.cmi +0 -0
  692. package/lib/ocaml/js_exn.cmt +0 -0
  693. package/lib/ocaml/js_exn.cmti +0 -0
  694. package/lib/ocaml/js_exn.ml +102 -0
  695. package/lib/ocaml/js_exn.mli +79 -0
  696. package/lib/ocaml/js_float.cmi +0 -0
  697. package/lib/ocaml/js_float.cmt +0 -0
  698. package/lib/ocaml/js_float.ml +294 -0
  699. package/lib/ocaml/js_global.cmi +0 -0
  700. package/lib/ocaml/js_global.cmt +0 -0
  701. package/lib/ocaml/js_global.ml +185 -0
  702. package/lib/ocaml/js_int.cmi +0 -0
  703. package/lib/ocaml/js_int.cmt +0 -0
  704. package/lib/ocaml/js_int.ml +158 -0
  705. package/lib/ocaml/js_json.cmi +0 -0
  706. package/lib/ocaml/js_json.cmt +0 -0
  707. package/lib/ocaml/js_json.cmti +0 -0
  708. package/lib/ocaml/js_json.ml +195 -0
  709. package/lib/ocaml/js_json.mli +244 -0
  710. package/lib/ocaml/js_list.cmi +0 -0
  711. package/lib/ocaml/js_list.cmt +0 -0
  712. package/lib/ocaml/js_list.cmti +0 -0
  713. package/lib/ocaml/js_list.ml +174 -0
  714. package/lib/ocaml/js_list.mli +72 -0
  715. package/lib/ocaml/js_map.cmi +0 -0
  716. package/lib/ocaml/js_map.cmt +0 -0
  717. package/lib/ocaml/js_map.ml +3 -0
  718. package/lib/ocaml/js_mapperRt.cmi +0 -0
  719. package/lib/ocaml/js_mapperRt.cmt +0 -0
  720. package/lib/ocaml/js_mapperRt.cmti +0 -0
  721. package/lib/ocaml/js_mapperRt.ml +50 -0
  722. package/lib/ocaml/js_mapperRt.mli +44 -0
  723. package/lib/ocaml/js_math.cmi +0 -0
  724. package/lib/ocaml/js_math.cmt +0 -0
  725. package/lib/ocaml/js_math.ml +626 -0
  726. package/lib/ocaml/js_null.cmi +0 -0
  727. package/lib/ocaml/js_null.cmt +0 -0
  728. package/lib/ocaml/js_null.cmti +0 -0
  729. package/lib/ocaml/js_null.ml +57 -0
  730. package/lib/ocaml/js_null.mli +87 -0
  731. package/lib/ocaml/js_null_undefined.cmi +0 -0
  732. package/lib/ocaml/js_null_undefined.cmt +0 -0
  733. package/lib/ocaml/js_null_undefined.cmti +0 -0
  734. package/lib/ocaml/js_null_undefined.ml +50 -0
  735. package/lib/ocaml/js_null_undefined.mli +85 -0
  736. package/lib/ocaml/js_obj.cmi +0 -0
  737. package/lib/ocaml/js_obj.cmt +0 -0
  738. package/lib/ocaml/js_obj.ml +100 -0
  739. package/lib/ocaml/js_option.cmi +0 -0
  740. package/lib/ocaml/js_option.cmt +0 -0
  741. package/lib/ocaml/js_option.cmti +0 -0
  742. package/lib/ocaml/js_option.ml +203 -0
  743. package/lib/ocaml/js_option.mli +52 -0
  744. package/lib/ocaml/js_promise.cmi +0 -0
  745. package/lib/ocaml/js_promise.cmt +0 -0
  746. package/lib/ocaml/js_promise.ml +100 -0
  747. package/lib/ocaml/js_re.cmi +0 -0
  748. package/lib/ocaml/js_re.cmt +0 -0
  749. package/lib/ocaml/js_re.ml +184 -0
  750. package/lib/ocaml/js_result.cmi +0 -0
  751. package/lib/ocaml/js_result.cmt +0 -0
  752. package/lib/ocaml/js_result.cmti +0 -0
  753. package/lib/ocaml/js_result.ml +28 -0
  754. package/lib/ocaml/js_result.mli +28 -0
  755. package/lib/ocaml/js_set.cmi +0 -0
  756. package/lib/ocaml/js_set.cmt +0 -0
  757. package/lib/ocaml/js_set.ml +3 -0
  758. package/lib/ocaml/js_string.cmi +0 -0
  759. package/lib/ocaml/js_string.cmt +0 -0
  760. package/lib/ocaml/js_string.ml +914 -0
  761. package/lib/ocaml/js_string2.cmi +0 -0
  762. package/lib/ocaml/js_string2.cmt +0 -0
  763. package/lib/ocaml/js_string2.ml +912 -0
  764. package/lib/ocaml/js_typed_array.cmi +0 -0
  765. package/lib/ocaml/js_typed_array.cmt +0 -0
  766. package/lib/ocaml/js_typed_array.cppo.ml +429 -0
  767. package/lib/ocaml/js_typed_array.ml +1405 -0
  768. package/lib/ocaml/js_typed_array2.cmi +0 -0
  769. package/lib/ocaml/js_typed_array2.cmt +0 -0
  770. package/lib/ocaml/js_typed_array2.cppo.ml +296 -0
  771. package/lib/ocaml/js_typed_array2.ml +1269 -0
  772. package/lib/ocaml/js_types.cmi +0 -0
  773. package/lib/ocaml/js_types.cmt +0 -0
  774. package/lib/ocaml/js_types.cmti +0 -0
  775. package/lib/ocaml/js_types.ml +118 -0
  776. package/lib/ocaml/js_types.mli +78 -0
  777. package/lib/ocaml/js_undefined.cmi +0 -0
  778. package/lib/ocaml/js_undefined.cmt +0 -0
  779. package/lib/ocaml/js_undefined.cmti +0 -0
  780. package/lib/ocaml/js_undefined.ml +59 -0
  781. package/lib/ocaml/js_undefined.mli +92 -0
  782. package/lib/ocaml/js_vector.cmi +0 -0
  783. package/lib/ocaml/js_vector.cmt +0 -0
  784. package/lib/ocaml/js_vector.cmti +0 -0
  785. package/lib/ocaml/js_vector.ml +143 -0
  786. package/lib/ocaml/js_vector.mli +92 -0
  787. package/lib/ocaml/js_weakmap.cmi +0 -0
  788. package/lib/ocaml/js_weakmap.cmt +0 -0
  789. package/lib/ocaml/js_weakmap.ml +3 -0
  790. package/lib/ocaml/js_weakset.cmi +0 -0
  791. package/lib/ocaml/js_weakset.cmt +0 -0
  792. package/lib/ocaml/js_weakset.ml +3 -0
  793. package/lib/ocaml/jsx.cmi +0 -0
  794. package/lib/ocaml/jsx.cmt +0 -0
  795. package/lib/ocaml/jsx.ml +39 -0
  796. package/lib/ocaml/jsxDOM.cmi +0 -0
  797. package/lib/ocaml/jsxDOM.cmt +0 -0
  798. package/lib/ocaml/jsxDOM.ml +2087 -0
  799. package/lib/ocaml/jsxDOMStyle.cmi +0 -0
  800. package/lib/ocaml/jsxDOMStyle.cmt +0 -0
  801. package/lib/ocaml/jsxDOMStyle.ml +777 -0
  802. package/lib/ocaml/jsxEvent.cmi +0 -0
  803. package/lib/ocaml/jsxEvent.cmt +0 -0
  804. package/lib/ocaml/jsxEvent.ml +358 -0
  805. package/lib/ocaml/lazy.cmi +0 -0
  806. package/lib/ocaml/lazy.cmt +0 -0
  807. package/lib/ocaml/lazy.cmti +0 -0
  808. package/lib/ocaml/lazy.ml +70 -0
  809. package/lib/ocaml/lazy.mli +95 -0
  810. package/lib/ocaml/lexing.cmi +0 -0
  811. package/lib/ocaml/lexing.cmt +0 -0
  812. package/lib/ocaml/lexing.cmti +0 -0
  813. package/lib/ocaml/lexing.ml +230 -0
  814. package/lib/ocaml/lexing.mli +172 -0
  815. package/lib/ocaml/list.cmi +0 -0
  816. package/lib/ocaml/list.cmt +0 -0
  817. package/lib/ocaml/list.cmti +0 -0
  818. package/lib/ocaml/list.ml +485 -0
  819. package/lib/ocaml/list.mli +347 -0
  820. package/lib/ocaml/listLabels.cmi +0 -0
  821. package/lib/ocaml/listLabels.cmt +0 -0
  822. package/lib/ocaml/listLabels.cmti +0 -0
  823. package/lib/ocaml/listLabels.ml +485 -0
  824. package/lib/ocaml/listLabels.mli +353 -0
  825. package/lib/ocaml/map.cmi +0 -0
  826. package/lib/ocaml/map.cmt +0 -0
  827. package/lib/ocaml/map.cmti +0 -0
  828. package/lib/ocaml/map.cppo.ml +174 -0
  829. package/lib/ocaml/map.cppo.mli +191 -0
  830. package/lib/ocaml/map.ml +480 -0
  831. package/lib/ocaml/map.mli +315 -0
  832. package/lib/ocaml/mapLabels.cmi +0 -0
  833. package/lib/ocaml/mapLabels.cmt +0 -0
  834. package/lib/ocaml/mapLabels.ml +480 -0
  835. package/lib/ocaml/mapm.cppo.ml +177 -0
  836. package/lib/ocaml/mapm.cppo.mli +138 -0
  837. package/lib/ocaml/moreLabels.cmi +0 -0
  838. package/lib/ocaml/moreLabels.cmt +0 -0
  839. package/lib/ocaml/moreLabels.cmti +0 -0
  840. package/lib/ocaml/moreLabels.ml +22 -0
  841. package/lib/ocaml/moreLabels.mli +198 -0
  842. package/lib/ocaml/node.cmi +0 -0
  843. package/lib/ocaml/node.cmt +0 -0
  844. package/lib/ocaml/node.ml +84 -0
  845. package/lib/ocaml/node_buffer.cmi +0 -0
  846. package/lib/ocaml/node_buffer.cmt +0 -0
  847. package/lib/ocaml/node_buffer.ml +47 -0
  848. package/lib/ocaml/node_child_process.cmi +0 -0
  849. package/lib/ocaml/node_child_process.cmt +0 -0
  850. package/lib/ocaml/node_child_process.ml +50 -0
  851. package/lib/ocaml/node_fs.cmi +0 -0
  852. package/lib/ocaml/node_fs.cmt +0 -0
  853. package/lib/ocaml/node_fs.ml +153 -0
  854. package/lib/ocaml/node_module.cmi +0 -0
  855. package/lib/ocaml/node_module.cmt +0 -0
  856. package/lib/ocaml/node_module.ml +29 -0
  857. package/lib/ocaml/node_path.cmi +0 -0
  858. package/lib/ocaml/node_path.cmt +0 -0
  859. package/lib/ocaml/node_path.ml +71 -0
  860. package/lib/ocaml/node_process.cmi +0 -0
  861. package/lib/ocaml/node_process.cmt +0 -0
  862. package/lib/ocaml/node_process.cmti +0 -0
  863. package/lib/ocaml/node_process.ml +59 -0
  864. package/lib/ocaml/node_process.mli +48 -0
  865. package/lib/ocaml/obj.cmi +0 -0
  866. package/lib/ocaml/obj.cmt +0 -0
  867. package/lib/ocaml/obj.cmti +0 -0
  868. package/lib/ocaml/obj.ml +29 -0
  869. package/lib/ocaml/obj.mli +62 -0
  870. package/lib/ocaml/parsing.cmi +0 -0
  871. package/lib/ocaml/parsing.cmt +0 -0
  872. package/lib/ocaml/parsing.cmti +0 -0
  873. package/lib/ocaml/parsing.ml +212 -0
  874. package/lib/ocaml/parsing.mli +105 -0
  875. package/lib/ocaml/pervasives.cmi +0 -0
  876. package/lib/ocaml/pervasives.cmt +0 -0
  877. package/lib/ocaml/pervasives.cmti +0 -0
  878. package/lib/ocaml/pervasives.ml +297 -0
  879. package/lib/ocaml/pervasives.mli +771 -0
  880. package/lib/ocaml/printexc.cmi +0 -0
  881. package/lib/ocaml/printexc.cmt +0 -0
  882. package/lib/ocaml/printexc.cmti +0 -0
  883. package/lib/ocaml/printexc.ml +79 -0
  884. package/lib/ocaml/printexc.mli +57 -0
  885. package/lib/ocaml/queue.cmi +0 -0
  886. package/lib/ocaml/queue.cmt +0 -0
  887. package/lib/ocaml/queue.cmti +0 -0
  888. package/lib/ocaml/queue.ml +132 -0
  889. package/lib/ocaml/queue.mli +82 -0
  890. package/lib/ocaml/random.cmi +0 -0
  891. package/lib/ocaml/random.cmt +0 -0
  892. package/lib/ocaml/random.cmti +0 -0
  893. package/lib/ocaml/random.ml +273 -0
  894. package/lib/ocaml/random.mli +102 -0
  895. package/lib/ocaml/set.cmi +0 -0
  896. package/lib/ocaml/set.cmt +0 -0
  897. package/lib/ocaml/set.cmti +0 -0
  898. package/lib/ocaml/set.ml +526 -0
  899. package/lib/ocaml/set.mli +266 -0
  900. package/lib/ocaml/setLabels.cmi +0 -0
  901. package/lib/ocaml/setLabels.cmt +0 -0
  902. package/lib/ocaml/setLabels.ml +526 -0
  903. package/lib/ocaml/setm.cppo.ml +346 -0
  904. package/lib/ocaml/setm.cppo.mli +126 -0
  905. package/lib/ocaml/sort.cmi +0 -0
  906. package/lib/ocaml/sort.cmt +0 -0
  907. package/lib/ocaml/sort.cmti +0 -0
  908. package/lib/ocaml/sort.cppo.ml +267 -0
  909. package/lib/ocaml/sort.cppo.mli +96 -0
  910. package/lib/ocaml/sort.ml +99 -0
  911. package/lib/ocaml/sort.mli +44 -0
  912. package/lib/ocaml/stack.cmi +0 -0
  913. package/lib/ocaml/stack.cmt +0 -0
  914. package/lib/ocaml/stack.cmti +0 -0
  915. package/lib/ocaml/stack.ml +44 -0
  916. package/lib/ocaml/stack.mli +63 -0
  917. package/lib/ocaml/stdLabels.cmi +0 -0
  918. package/lib/ocaml/stdLabels.cmt +0 -0
  919. package/lib/ocaml/stdLabels.cmti +0 -0
  920. package/lib/ocaml/stdLabels.ml +24 -0
  921. package/lib/ocaml/stdLabels.mli +29 -0
  922. package/lib/ocaml/stream.cmi +0 -0
  923. package/lib/ocaml/stream.cmt +0 -0
  924. package/lib/ocaml/stream.cmti +0 -0
  925. package/lib/ocaml/stream.ml +213 -0
  926. package/lib/ocaml/stream.mli +108 -0
  927. package/lib/ocaml/string.cmi +0 -0
  928. package/lib/ocaml/string.cmt +0 -0
  929. package/lib/ocaml/string.cmti +0 -0
  930. package/lib/ocaml/string.ml +190 -0
  931. package/lib/ocaml/string.mli +286 -0
  932. package/lib/ocaml/stringLabels.cmi +0 -0
  933. package/lib/ocaml/stringLabels.cmt +0 -0
  934. package/lib/ocaml/stringLabels.cmti +0 -0
  935. package/lib/ocaml/stringLabels.ml +190 -0
  936. package/lib/ocaml/stringLabels.mli +241 -0
  937. package/lib/ocaml/sys.cmi +0 -0
  938. package/lib/ocaml/sys.cmt +0 -0
  939. package/lib/ocaml/sys.cmti +0 -0
  940. package/lib/ocaml/sys.ml +135 -0
  941. package/lib/ocaml/sys.mli +333 -0
  942. package/lib/ocaml/uchar.cmi +0 -0
  943. package/lib/ocaml/uchar.cmt +0 -0
  944. package/lib/ocaml/uchar.cmti +0 -0
  945. package/lib/ocaml/uchar.ml +58 -0
  946. package/lib/ocaml/uchar.mli +98 -0
  947. package/linux/bsb_helper.exe +0 -0
  948. package/linux/bsc.exe +0 -0
  949. package/linux/ninja.COPYING +202 -0
  950. package/linux/ninja.exe +0 -0
  951. package/linux/refmt.exe +0 -0
  952. package/linux/rescript.exe +0 -0
  953. package/openbsd/.keep +0 -0
  954. package/package.json +71 -0
  955. package/rescript +591 -0
  956. package/scripts/LICENSE.ml +27 -0
  957. package/scripts/bin_path.js +38 -0
  958. package/scripts/buckle_lto.js +55 -0
  959. package/scripts/build_sorted.ml +233 -0
  960. package/scripts/buildocaml.js +102 -0
  961. package/scripts/caml_oo_curry_gen.ml +71 -0
  962. package/scripts/checkUnused.js +63 -0
  963. package/scripts/ciTest.js +172 -0
  964. package/scripts/config.js +24 -0
  965. package/scripts/cover.sh +3 -0
  966. package/scripts/curry_gen.ml +167 -0
  967. package/scripts/dbg +13 -0
  968. package/scripts/dedupe.js +44 -0
  969. package/scripts/doc_gen.js +117 -0
  970. package/scripts/install.js +237 -0
  971. package/scripts/installUtils.js +61 -0
  972. package/scripts/js_internal_gen.js +135 -0
  973. package/scripts/jsconfig.json +12 -0
  974. package/scripts/littlecase.js +21 -0
  975. package/scripts/ninja.js +1980 -0
  976. package/scripts/ninjaFactory.js +36 -0
  977. package/scripts/pack.js +107 -0
  978. package/scripts/prebuilt.js +99 -0
  979. package/scripts/release.js +41 -0
  980. package/scripts/repl.js +151 -0
  981. package/scripts/rescript_arg.js +168 -0
  982. package/scripts/rescript_convert.js +128 -0
  983. package/scripts/rescript_dump.js +48 -0
  984. package/scripts/rescript_format.js +194 -0
  985. package/scripts/shake.js +138 -0
  986. package/scripts/tasks.js +149 -0
  987. package/scripts/test.sh +3 -0
  988. package/scripts/tmp.js +98 -0
  989. package/scripts/validate.js +41 -0
  990. package/vendor/ninja.tar.gz +0 -0
  991. package/vendor/ocaml.tar.gz +0 -0
  992. package/win32/bsb_helper.exe +0 -0
  993. package/win32/bsc.exe +0 -0
  994. package/win32/ninja.COPYING +202 -0
  995. package/win32/ninja.exe +0 -0
  996. package/win32/refmt.exe +0 -0
  997. package/win32/rescript.exe +0 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,1717 @@
1
+ # Changelog
2
+
3
+ > **Tags:**
4
+ >
5
+ > - :boom: [Breaking Change]
6
+ > - :eyeglasses: [Spec Compliance]
7
+ > - :rocket: [New Feature]
8
+ > - :bug: [Bug Fix]
9
+ > - :memo: [Documentation]
10
+ > - :house: [Internal]
11
+ > - :nail_care: [Polish]
12
+
13
+ # master
14
+
15
+ #### :boom: Breaking Change
16
+
17
+ - Vendor genType, which does not need to be installed separately anymore. **Only TypeScript back-end** supported.
18
+
19
+ #### :rocket: New Feature
20
+
21
+ - Add support for for `async`/`await` https://github.com/rescript-lang/rescript-compiler/pull/5537
22
+
23
+ - Initial support for JSX V4 including genType, still work in progress.
24
+
25
+ - :boom: when V4 is activated, at most one component is allowed for each module.
26
+
27
+ - Add placeholder types for ES6 collections: `Set`, `Map`, `WeakSet`, and `WeakMap` https://github.com/rescript-lang/rescript-compiler/pull/5630
28
+
29
+ #### :bug: Bug Fix
30
+
31
+ - Fix issue where pipe `->` processing eats up attributes https://github.com/rescript-lang/rescript-compiler/pull/5581
32
+ - Fix issue where cancelling `rescript build` would leave the `.bsb.lock` file behind and block future builds
33
+
34
+ #### :nail_care: Polish
35
+
36
+ - Print patterns in warnings using rescript printer https://github.com/rescript-lang/rescript-compiler/pull/5492
37
+
38
+ # 10.0.1
39
+
40
+ #### :bug: Bug Fix
41
+
42
+ - Fix issue where watch mode would give an error on Windows https://github.com/rescript-lang/rescript-compiler/pull/5621
43
+
44
+ # 10.0.0
45
+
46
+ **Compiler**
47
+
48
+ #### :boom: Breaking Change
49
+
50
+ - `bsconfig.json` does not support `// line` comments anymore.
51
+ - Example: `"suffix": ".bs.js" // determine the suffix`
52
+ - Fix: remove the comment and use standard json.
53
+ - Changed return type of `Js.String.match_` as it was wrong. [#5070](https://github.com/rescript-lang/rescript-compiler/pull/5070)
54
+ - Example: any use of `Js.String.match_` and `Js.String2.match_`
55
+ - Fix: follow the type errors
56
+
57
+ #### :rocket: New Feature
58
+
59
+ - New records with optional fields e.g. `type opt = {x: int, y?: string}` were added as an experimental feature [#5423](https://github.com/rescript-lang/rescript-compiler/pull/5423) [#5452](https://github.com/rescript-lang/rescript-compiler/issues/5452) [New Syntax](https://github.com/rescript-lang/syntax/pull/589/files)
60
+ - Add support for `@new @variadic` (see https://github.com/rescript-lang/rescript-compiler/pull/5364)
61
+
62
+ #### :bug: Bug Fix
63
+
64
+ - Classify bigint correctly [#5351](https://github.com/rescript-lang/rescript-compiler/pull/5351)
65
+ - Fixed crash in `rescript build` on Windows [#5516](https://github.com/rescript-lang/rescript-compiler/pull/5516)
66
+ - Fixed `rescript init` command not working [#5526](https://github.com/rescript-lang/rescript-compiler/pull/5526)
67
+ - Fix issue with compiler log not terminated that causes problems with editor extension not clearing issues when fixed [#5545](https://github.com/rescript-lang/rescript-compiler/issues/5545)
68
+
69
+ ##### :nail_care: Polish
70
+
71
+ - Changed Linux build to depend on GLIBC 2.28 again for compatibility with Debian 10.
72
+
73
+ - Proper M1 support (CI now supports M1 native builds)
74
+
75
+ **Syntax**
76
+
77
+ #### :boom: Breaking Change
78
+
79
+ - `@bs.send.pipe` is now removed. Earlier it was deprecated.
80
+ - Missing labels in function application is now an error (https://forum.rescript-lang.org/t/ann-more-strict-checks-in-missed-labels/2117).
81
+ - Example: `let f = (x, ~z) => x + z; f(1, 2)`
82
+ - Fix: do `let f = (x, ~z) => x + z; f(1, ~z=2)` instead
83
+ - Externals without `@val` annotations do not work anymore, and externals with `= ""` give an error.
84
+ - Example: `external setTimeout: (unit => unit, int) => float = "setTimeout"` is not supported anymore.
85
+ - Fix: use `@val external setTimeout: (unit => unit, int) => float = "setTimeout"` instead.
86
+ - Example2: `@val external setTimeout: (unit => unit, int) => float = ""` is not supported anymore.
87
+ - Fix2: use `@val external setTimeout: (unit => unit, int) => float = "setTimeout"` instead.
88
+ - Strings processed at compile-time don't need escaping anymore.
89
+ - Example: `let blockCommentsRe = %re("/\\/\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*+\\//g")`.
90
+ - Fix: use `let blockCommentsRe = %re("/\/\*([^*]|[\r\n]|(\*+([^*/]|[\r\n])))*\*+\//g")` instead.
91
+ - Remove parsing of "import" and "export" which was never officially supported https://github.com/rescript-lang/syntax/pull/597 https://github.com/rescript-lang/syntax/pull/599
92
+ - Example: `export type t = int`
93
+ - Fix: `@genType type t = int`
94
+ - Example2: `import realValue: complexNumber => float from "./MyMath"`
95
+ - Fix2: `@genType.import("./MyMath") external realValue: complexNumber => float = "realValue"`
96
+
97
+ #### :rocket: New Feature
98
+
99
+ - Unicode is now supported in regular strings and chars (when the symbol fits). This is now going to work: `let str = "Σ"`. And, you'll be able to pattern match on unicode chars: `switch c { | 'Σ' => "what a fine unicode char" | _ => "unicode is fun" }`
100
+ - Doc comments `/** ... */` are now supported. Inernally, they are attributes, so are only valid at positions where `@foo` is allowed, or a syntax error is given. Similarly for module-level `/*** comments */` that can go where `@@attributes` go.
101
+
102
+ #### :bug: Bug Fix
103
+
104
+ - Fix printing for inline nullary functor types [#477](https://github.com/rescript-lang/syntax/pull/477)
105
+ - Fix stripping of quotes for empty poly variants [#474](https://github.com/rescript-lang/syntax/pull/474)
106
+ - Implement syntax for arity zero vs arity one in uncurried application in [#139](https://github.com/rescript-lang/syntax/pull/139)
107
+ - Fix parsing of first class module exprs as part of binary/ternary expr in [#256](https://github.com/rescript-lang/syntax/pull/256)
108
+ - Fix formatter hanging on deeply nested function calls [#261](https://github.com/rescript-lang/syntax/issues/261)
109
+
110
+ **Libraries**
111
+
112
+ #### :boom: Breaking Change
113
+
114
+ - **"Attributes not allowed here"**. If you see this error chances are you're using a ppx that needs updating to a new version.
115
+ See an exampe of how to [update a ppx](https://github.com/zth/rescript-relay/pull/372)
116
+ - Example: for `rescript-relay` 0.23.0 is not supported.
117
+ - Fix: use `rescript-relay@beta` or the new version when released.
118
+ - Removed printing modules (Printf, Format etc) and related functions. Details of files added/removed: https://github.com/rescript-lang/rescript-compiler/commit/0fd8bb0e77c4b0e96a9647ac8af614305057003f.
119
+
120
+ #### :bug: Bug Fix
121
+
122
+ - Fix library issue with missing `bytes_to_string` https://github.com/rescript-lang/rescript-compiler/issues/5573 https://github.com/rescript-lang/rescript-compiler/pull/5589
123
+
124
+ #### :nail_care: Polish
125
+
126
+ - Several Belt / Js libraries are now converted to ReScript syntax, with corresponding comments in Markdown format suitable for hovering. See [#5361](https://github.com/rescript-lang/rescript-compiler/pull/5361).
127
+
128
+ **Playground**
129
+
130
+ #### :house: Internal
131
+
132
+ - Added `jsoo_playground_main.ml` as the rescript-lang.org playground bundle entrypoint
133
+
134
+ #### :boom: Breaking Change
135
+
136
+ - Removed Reason syntax support for the playground experience. See https://github.com/rescript-lang/rescript-compiler/pull/5375
137
+
138
+ # 9.1.4
139
+
140
+ ## Build
141
+
142
+ - #5167 add dump subcommand so that
143
+
144
+ ```
145
+ rescript dump path/to/file.cmi
146
+ ```
147
+
148
+ Will dump the interface to a readable output, note this is integrated into the build system that the build will try to build it if it is not already there
149
+
150
+ - clean will clean its dependency by default.
151
+ subcommand `clean -with-deps`, `-with-deps` is not needed any more
152
+ - hide most bsc options, officially supported bsc flags (this is not a breaking change, those internal options are still there but subject to removal in the future)
153
+
154
+ ```
155
+ Usage: bsc <options> <files>
156
+ Options are:
157
+ Options:
158
+ -w <list> Enable or disable warnings according to <list>:
159
+ +<spec> enable warnings in <spec>
160
+ -<spec> disable warnings in <spec>
161
+ @<spec> enable warnings in <spec> and treat them as errors
162
+ <spec> can be:
163
+ <num> a single warning number
164
+ <num1>..<num2> a range of consecutive warning numbers
165
+ default setting is +a-4-9-20-40-41-42-50-61-102
166
+ -bs-g Debug mode
167
+ -bs-D Define conditional variable e.g, -D DEBUG=true
168
+ -e (experimental) set the string to be evaluated in ReScript syntax
169
+ -v Print compiler version and location of standard library and exit
170
+ -version Print version and exit
171
+ -warn-help Show description of warning numbers
172
+ -warn-error <list> Enable or disable error status for warnings according
173
+ to <list>. See option -w for the syntax of <list>.
174
+ Default setting is -a+5+6+101+109
175
+ ```
176
+
177
+ ## Syntax
178
+
179
+ - #432 bad error message for unterminated quote
180
+
181
+ ## Compiler
182
+
183
+ - #5165 bad error message for uncurried type mistmatch
184
+ - #5169 fix a code gen issue with user defined `None`
185
+
186
+ # 9.1.3 (bug fix release)
187
+
188
+ ## Build
189
+
190
+ - #5154 when toplevel package-specs get changed, its dependencies should be rebuilt
191
+ - #5152 Rebuild not triggered when deletion with nested modules
192
+ - #5153 when Different compiler version triggered,
193
+ it should clean the whole dependencies instead of just the repo itself
194
+ - #5080 Add back -ws option for the build
195
+
196
+ ## Syntax
197
+
198
+ - #425 fix CRLF handling for windows
199
+ - #414 Fix printing of underscore Pexp_fun sugar in context of Array.get
200
+ - #408 Don't parse Int token with suffices as hash ident for poly variants
201
+ - #410 Fix parsing of arrow type with objects in constructor declaration args
202
+ - #404 fix printing of Osig_module in outcome printer
203
+ - #402 Implement printing of `Otyp_module` in outcome printer
204
+
205
+ # 9.1
206
+
207
+ - Remove depercated APIs Js.Re.exec, Js.Re.test, Node.Fs.on
208
+ - #5014 #5063 #5027 the new ReScript CLI interface
209
+ Thew new CLI is self explainatory:
210
+
211
+ ```
212
+ rescript -h
213
+ Available flags
214
+ -v, -version display version number
215
+ -h, -help display help
216
+ Subcommands:
217
+ build
218
+ clean
219
+ format
220
+ convert
221
+ help
222
+ Run rescript subcommand -h for more details,
223
+ For example:
224
+ rescript build -h
225
+ rescript format -h
226
+ ```
227
+
228
+ - #5025 in place format support, this is subsumed into `rescript format` subcommand
229
+ - #5060 #5055
230
+ Add formatting support for stdin/sdout
231
+ - #5053 #5050 clean up structural object semantics
232
+ - #5037
233
+ Allows coercion from nullary types to int/string.
234
+ This applies to collections types too
235
+ - #5029
236
+ int polyvar is compiled into int.
237
+ `#0` is the same as 0 except it is structually typed as `#0`
238
+ - #5023 generate interface file in rescript syntax by default
239
+ - #5021 makes int64 runtime payload small for just comparison
240
+ - #5019, #5017, #5016, #5015, #5010 improve error message
241
+ - #5008 don't trigger a rebuild if mjs file changes, fix an infinite loop in watch mode
242
+ - #5005 not depending on Format for Arg module, smaller size
243
+ - #4985 fix the schema of bsb on `dev` property
244
+ - #4967 #4986, #4984, #4971, #4972, #4969 Breaking changes
245
+ Remove ocaml style classes while structural objects and structural typings are simplified. Js.t is no longer needed. If user does not know
246
+ what ocaml style class is, this should not affect them.
247
+
248
+ # 9.0.2
249
+
250
+ - #4990 Fix an optimization bug introduced in 9.0
251
+
252
+ - #4982 pattern match over modules
253
+
254
+ Provide user with a sugar to pattern match over modules:
255
+
256
+ ```res
257
+ let {length, cons} = module(List)
258
+ ```
259
+
260
+ More discussions can be found [here](https://forum.rescript-lang.org/t/introducing-an-extension-to-make-pattern-match-works-on-modules/1196)
261
+
262
+ # 9.0
263
+
264
+ - #4933 update syntax bf6561bb5d84
265
+ syntax changes listed [here](https://github.com/rescript-lang/syntax/blob/master/CHANGELOG.md#90)
266
+ - #4934 generate `@pure` annotations to help esbuild remove more dead code
267
+
268
+ - #4932 #4931 turn flow syntax checking from a error into warning 103, so it can be turned off as below
269
+
270
+ ```res
271
+ @@config({
272
+ flags: ["-w", "-103"],
273
+ })
274
+
275
+ %%raw(`
276
+ if (import.meta.hot){
277
+ console.log('es6')
278
+ }
279
+ `)
280
+ ```
281
+
282
+ The rationale is that flow could be not standard compilant so we need provide a work around, here
283
+ `import.meta` is something new in Ecmascript
284
+
285
+ - #4926 #4928
286
+ _internal_ changes, move jscomp/syntax to jscomp/frontend to avoid conflicts
287
+
288
+ - #4924 #4927 better code generated for pattern match.
289
+ Take advantage of the JS runtime, some predicates can be simplified
290
+
291
+ - #4920 #4925 support external-stdlib config
292
+
293
+ ```
294
+ "external-stdlib" : "@rescript/std"
295
+ ```
296
+
297
+ - #4922 #4923 \*breaking changes" Allow embed records in structural js objects
298
+
299
+ - #4908 #4919 #4917 #4916 #4914 #4913 #4910
300
+ Get rid of camlp4 as a dev dependency, introduce an optimized visitor pattern
301
+ generator, better performance, no object usage and less dependency thanks to wasm
302
+
303
+ - #4911 Relax uninterpretable attributes from error to warn to make ppx_deriving happy
304
+
305
+ - #4905 _internal_ add `Js_exn.anyToExnInternal`
306
+
307
+ - #4903 porting to open BSD/adJ
308
+
309
+ - #4902 for stdlib es6 artifacts ship .mjs instead of .js, so that
310
+ on the user side, if they config es6 with .mjs, it will work out of box
311
+
312
+ - #4900 #4986 `'` in string literals does not need to be escaped
313
+
314
+ - #4893 _internal_ simplify numbers in JS IR
315
+
316
+ - #4892 #4891 _internal_ simplify boxed int operations
317
+
318
+ - #4890 clean up constant in lambda IR, fix a subtle bug when do constant folding
319
+
320
+ - #4888 #4881 support external in private block
321
+
322
+ - #4882 #4884 #4887 remove nativeint, not allow literlas like `3n`
323
+
324
+ - #4873 #4875 #4876 better code generation for pattern match
325
+
326
+ - #4870 fix typo in uncurried error message
327
+
328
+ - #4867 _internal_ clean up bsb_helper
329
+
330
+ # 8.4.2
331
+
332
+ - #4864 #4865
333
+ Not install dev directory for pinned dependencies
334
+ - #4863
335
+ for a package, only cmi/cmj artifact changes will trigger a rebuild
336
+
337
+ # 8.4.1
338
+
339
+ - Syntax submodule upgrades from 7f5c968 to 7cc70c9
340
+ - #4856 #4858
341
+ Improve code generation for pattern match:
342
+ Input:
343
+
344
+ ```res
345
+ type t =
346
+ | A
347
+ | B
348
+ | C
349
+ | D (int )
350
+ | E (int)
351
+
352
+ let f = x => {
353
+ switch x {
354
+ | A => 0
355
+ | B => 1
356
+ | C => 2
357
+ | D (x) => x
358
+ | E (x) => x + 1
359
+ }
360
+ }
361
+ ```
362
+
363
+ Output was:
364
+
365
+ ```js
366
+ function f(x) {
367
+ if (typeof x !== "number") {
368
+ if (x.TAG) {
369
+ return x._0 + 1 | 0;
370
+ } else {
371
+ return x._0;
372
+ }
373
+
374
+ switch (x) {
375
+ case /* A */0 :
376
+ return 0;
377
+ case /* B */1 :
378
+ return 1;
379
+ case /* C */2 :
380
+ return 2;
381
+ }
382
+ }
383
+ ```
384
+
385
+ Now:
386
+
387
+ ```js
388
+ function f(x) {
389
+ if (typeof x !== "number") {
390
+ if (x.TAG === /* D */ 0) {
391
+ return x._0;
392
+ } else {
393
+ return (x._0 + 1) | 0;
394
+ }
395
+ }
396
+ switch (x) {
397
+ case /* A */ 0:
398
+ return 0;
399
+ case /* B */ 1:
400
+ return 1;
401
+ case /* C */ 2:
402
+ return 2;
403
+ }
404
+ }
405
+ ```
406
+
407
+ - #4855 _internal changes_
408
+ changes to compiler-libs will trigger a rebuild of the compiler, this allows us to
409
+ see how changes of compiler-libs affect bsc.exe quickly
410
+
411
+ - #4850 replace ocp-ocamlres with a lightweight nodejs script, get rid of such dev dependency
412
+
413
+ - #4854 #4848 #4847 #4844 #4836 #4826 #4824
414
+
415
+ Pinned packages support and `-make-world` respect changes of dependencies
416
+
417
+ - #4840 #4841 more robust handling of removing stale output
418
+
419
+ - #4831 use relative paths in the command line
420
+ It will be expanded to absolute path right after the compiler see the path,
421
+ such changes work better with the underlying ninja build engine, and should perform slightly better
422
+
423
+ - #4828 no need pass -o for compiling, inferred directly (with namespace support too)
424
+
425
+ - #4827 _internal_ the dev version of bsc now behave roughly the same as the released version
426
+
427
+ - #4825 fix a typo in the warning `%@string` -> `@string`
428
+
429
+ - #4823 introduce a new warning 109: toplevel expression is expected to have type unit
430
+ It is turned on as warn-error by default. This warning is introduced to avoid partial application errors in a curried language
431
+
432
+ - #4822 more robust hanlding of : ignore warnings and warn-error when bsb is building dependencies
433
+
434
+ # 8.3.3
435
+
436
+ This is a bug release for 8.3.\*
437
+
438
+ - #4817 _internal_ add an option RES_SKIP_STDLIB_CHECK so that
439
+ for a true monorepo, it does not need follow `node_modules` layout
440
+ - #4807 #4815 remove unused code in refmt parser _a lot_ (around 50_000 loc)
441
+ on darwin, the binary size is dropped fom 9.69M to 8.48M
442
+ - #4808 add back basic-reason theme to avoid breakage for existing docs
443
+ - #4806 Fix broken ocaml build with gcc 10
444
+ - #4804 restore back-wards compatibility with `build statement` in generated ninja files
445
+ - #4803 fix the bsb build schema location in the error message
446
+ - #4802 proper error message when bsconfig.json is missing
447
+ - #4801 add a sanity check for name field in bsconfig.json to match real package name
448
+ - #4810 #4784 regressions for weird indentation in warning output
449
+
450
+ # 8.3.1
451
+
452
+ This is a minor bug fix release for 8.3.0
453
+
454
+ - capture warnings when rebuild without enforce warn-as-error
455
+ - #4716 internal, make ninja a submodule in dev process
456
+ - #4722 better dataflow for cases like `let {a;b} as obj = ...`
457
+ - no need call `caml_enter_blocking_section` for single threaded compiler
458
+ - #4739 fix the interaction of exotic filenames like `[id]` with the build system.
459
+
460
+ # 8.3
461
+
462
+ - #4694, #4712 improving/customizing the underlying ninja build system, better performance
463
+
464
+ - #4681, #4710 creating persistent lib/bs.compiler.log per each build for editor diagnostics
465
+
466
+ - #4688, #4707 better error message
467
+
468
+ - - #4702 remove nativeint module which is not meaningful on js platform
469
+
470
+ - #4701 support both `bs.val` and `val` attributes, in the future to recommend the shorter ones
471
+
472
+ - #4693 Fix the compiler runtime issue, always flush err_formatter when at_exit
473
+
474
+ - #4687, #4689, #4691 allow user to customize js file extension in bsconfig.json (checkout the schema )
475
+
476
+ - #4685, #4624, #4690 allow more character set in filenames to make rescript play better with react native and next.js
477
+
478
+ - #4684 fix the raise of Sys.is_directory, make bsb works better with Emacs temp files
479
+
480
+ - #4679 better error message for nonrec GADT
481
+
482
+ - #4671, #4678 better strategies to remove stale output for the build system
483
+
484
+ - #4676 (internal) add Config.syntax_kind so that some changes in super_errors can be made upstream
485
+
486
+ - #4650, #4656, #4657, #4662 always warn-as-error while not degrading user expereince (with the help of build system)
487
+
488
+ - #4661 (internal) not depending on upstream compenv module
489
+
490
+ - #4639, #4642 refined static analysis to generate better code
491
+
492
+ - #4636, #4641 es6 default import support
493
+
494
+ - #4638 clean up the confusing error message over uncurry label
495
+
496
+ - #4637 remove unneeded mention of BuckleScript in uncurried message
497
+
498
+ - #4623 better data flow inference for common pattern: `let {a,b,c} = ...`
499
+
500
+ - #4622 add html element & observer phantom types
501
+
502
+ - #4618 fix combination of bs.obj with bs.as so that bs.as can carry more kinds of playload
503
+
504
+ - #4613 (internal) pass down @inlined attribute from upstream. (the info is passed down, how to make use of it is not done yet)
505
+
506
+ - #4609 Lift the restriction that user can only define a type with less than 256 constructors
507
+
508
+ - #4606, #3961 (internal) use is_a_functor from upstream instead of guessing
509
+
510
+ - #4605 (experimental) take `@@inline` attribute into consideration for functions
511
+
512
+ - #4604 enhance Random module
513
+
514
+ - #4600, #4599 fix missing bounds checking for Bytes.set
515
+
516
+ - #4597 fix Js.Array and Js.Array2 the wrong return type for `from` method
517
+
518
+ - #4513 better error message when interface/implementation mismatches (done in commit db485f1)
519
+
520
+ # 8.2
521
+
522
+ - `bsc -fmt myFile` now changed to `bsc -format myFile`
523
+
524
+ - #4573, #4565, #4559, #4558, #4556, #4554, #4553, #4550 introudce string literal types
525
+
526
+ - #4580 #4581, #4582, #4463, #4583 relax bs.as to allow object literals instead of json, so FFI below is allowed:
527
+
528
+ ```ocaml
529
+ external fff0 : int -> int -> (_[@bs.as {json|[undefined,undefined]|json}]) -> int = "say"
530
+ [@@bs.val]
531
+
532
+ let testUndefined () =
533
+ fff0 1 2
534
+ ```
535
+
536
+ - #4570 refine purity analysis so that object literals in raw will be considered pure
537
+
538
+ - #4548 #4555 fix ghost locaption in empty array
539
+
540
+ - #4540 optimize code generation for recursive modules
541
+ - #4530 internal -color option default to always
542
+
543
+ - #4569 emit a warning for use of `` ( [ `a| `b] [@bs.string]) `` since it is no longer needed
544
+ - #4531 better generated js code for belt
545
+ - #4526 add `bsc -fmt file` option, format into the new syntax
546
+ - #4495 enable newish es syntax in raw
547
+
548
+ - #4491, #4492, #4493 fix a bug when printing a single object literal as statement, optimize this case into a nop
549
+
550
+ - #4482, #4480 disable user to redefine `unit`, `true`, `false`
551
+ - #4474 #4465 [reactjs] add support for ref argument inside of React.forwardRef type applciations
552
+ - #4473 adding an experimental new syntax
553
+ - #4470 tweak error message for not found record fields/constructors
554
+
555
+ * bug fixes
556
+
557
+ - #4572, #4585 fix a corner case for ffi to allow such bindings:
558
+ ```ocaml
559
+ external get : _ -> _ -> _ = "" [@@bs.get_index]
560
+ ```
561
+ - #4589 fix building failure on freebsd
562
+ - #4524, #4519 fix an inlining bug
563
+ - #4505 #4502, fix bad error message in bsb -bla
564
+
565
+ * internal
566
+
567
+ - #4497 #4507, #4516 compiler performance improvement
568
+
569
+ # 8.0
570
+
571
+ - Code generation
572
+
573
+ * #4308,#4309, #4397 #4403 #4404 #4409 variant as objects
574
+ ```
575
+ A (0,1)
576
+ ```
577
+ now is
578
+ ```js
579
+ { TAG : /*A*/0, _0 : 0, _1:1 }
580
+ ```
581
+ * #4399 remove magics in Belt.List to prepare new data representations
582
+ * #4405 polyvar as objects
583
+ ```
584
+ A 1
585
+ ```
586
+ now is
587
+ ```js
588
+ {HASH:MAGIC_NUMBER, VAL:1}
589
+ ```
590
+ * #4331,#4332 #4337,#4339, #4338, #4337 Encoding exception as dictionary, add stacktrace support
591
+ * #4322, #4325,#4326, #4364, #4383, #4371 lazy values as objects, make `caml_update_dummy` generalized
592
+ * #4456, #4458 optimize String.make
593
+ * #4447, #4442 improve arity inference over raw named function expression
594
+ * #4413 changed internal encoding of Some ((Some .. None)), not relying on physiclal equivalence, friendlier to serialization
595
+ * #4379 make bs.config take effect ASAP, however, it can not happen befor parsing.
596
+ This meangs, it won't have effect over flags like `-bs-D` when it happens in lexing.
597
+ * #4426, #4428 apply bs.inline to float literals
598
+ * #4378 apply bs.inline to int64, proper error for not supported types
599
+ * #4425 optimize `bs.as "0"` to allow users to turn record representation into array when needed
600
+ * #4407, #4423 Fix compatiblity layer between debug mode and none-debug mode
601
+ - For exmaple, `A (1,2)` are equal for code generated either in debug or non-debug mode
602
+ * #4422 remove Unix module from stdlib
603
+ * #4421 special encode list as `{hd : v0, tl : ...}`
604
+ * #4420 remove legacy jsx v2
605
+
606
+ * #4390 less parens for `bs.as` json literals
607
+ * #4245, #4385 breaking changes: enable strict-sequence, strict-formats by default
608
+ * #4304, #4293 better code generated for string interpolation
609
+
610
+ - Fix
611
+
612
+ * #4451, #4454 fix imprecise locations over pipe
613
+ * #4442 fix gentypeconfig.language parsing
614
+ * #4430 when cleaning generated files, use `langauge` from `gentypeconfig`
615
+ * #4324 fix react-hooks theme name field
616
+
617
+ - Libs
618
+
619
+ * #4443 provide a best effort generic seralization mechanism
620
+ * #4427 better error message for non-existing module in `sources[n].public`
621
+ * #4414, #4419 better error message for cases like below
622
+ ```
623
+ Error: This expression should not be a function, the expected type is
624
+ (int bounce -> 'a bounce [@bs])
625
+ ```
626
+ * #4416 fix typo (unrecognized primitive -> unrecognized primitive)
627
+ * #4408 [playground] fix jsoo_refmt_main, remove load_modules (uneeded)
628
+ * #4395 fix jsoo_refmt_main, delete playground folder
629
+ * #4394 repl.js: add dev mode
630
+ * #4393 Playground: bring back load_modules API
631
+ * #4389 React JSX ppx: better error message for missing labels
632
+ * #4388 [jsx] fix unused pattern warnings
633
+ * #4380 [jsx] remove bs.config handling in jsx ppx, use bs.config.flags instead
634
+ * #4376 remove Math.imul polyfill, inline Math.imul
635
+ * #4370 remove deprecated support for `fun%raw`
636
+ * #3845, #4367 fix `output too many parens for callback`
637
+ * #4359 [jsx] rais error if creating react.component with unnamed argument
638
+ * #4364 remove customised formatter for exceptions
639
+ * #4358 change reasonreact version for templates
640
+ * #4351 force binding location on the actual make binding
641
+
642
+ - Internal tools/refactoring
643
+
644
+ * #4460 bspack is a stand alone file not relying on c stubs
645
+ * #4459 bsb customized command line parsing, prettier output over `bsb -h`
646
+ * #4455 simplify bsb_helper command line parsing
647
+ * #4458 clean up lexing runtime, stay close to lexing.c
648
+ * #4441 remove unused Obj.set_tag
649
+ * #4438 tweak post-processing after linking, better constant substitution
650
+ * #4429 #4431 #4435 minor breaking changes
651
+ - more compatct encoding of .bsbuild
652
+ - flatten dev gropus
653
+ - for files in dev directory they can refer each other
654
+ * #4402 move `caml_set_oo_id` into `caml_oo` module
655
+ * #4392 remove unused return_exp in J.ml ast
656
+ * #4387 fix a build bug when no mli provided, add reason-react for testing
657
+ * #4366, #4373 update polymoprhic comparison not relying for lazy values
658
+ * #4372 vendor jsoo byte code, build playground on the fly
659
+ * #4354 `bstracing -all` can handle multiple build sessions
660
+
661
+ # 7.3.2
662
+
663
+ - #4315 synup super_errors for better uncurry error message
664
+ - #4335 fix js_date.setUTCTime
665
+ - #4343 fix regex syntax checking for empty or comment string
666
+ - #4351 precie binding location for reasonreact jsx
667
+
668
+ # 7.3
669
+
670
+ - #4235 #4237 #4241 #4244 #4240 generalized uncurry work
671
+ - #4255 #4258 #3953 code generation: compiling unit to `undefined`
672
+ - #4288 code generation: improve module alias code generation
673
+ - #4287 code generation: meaningful names for pattern match
674
+ - #4286 code generation: better code generation for loops
675
+ - #4224 #4262 code generation: eleminate intermediate variables when inlining
676
+ - #4198 #4228 remove some long deprecated APIs, Js.Math.pow_int
677
+ - #4257 docs: add docs about Belt.Id.comparable
678
+ - #4256 tweaks to super error message
679
+ - #4284 regression fix: better dumping cmi files to avoid scary names
680
+ - #4285 #4268 turn off warning 20 by default (which produces false alarm)
681
+ - #4283 tweak react-hooks template
682
+ - #4270 #4273 deriving abstract free in belt, belt no longer relies on such extension
683
+ - #4272 code generation: better handling of option unpacking
684
+ - #4269 not rely on `npm link` for bsb templates
685
+ - #4266 #4265 fix belt.MutableMap
686
+ - #4259 consistent warning docs in `bsc -warn-help`
687
+ - #4251 remove String.prototype.polyfill
688
+ - #4250 adding `-unboxed-types` option (where @unboxed attribute may not be needed)
689
+ - #4217 make compiler int64 encoding agnostic
690
+
691
+ # 7.2
692
+
693
+ - #4211 #4210 optimize int64 performance, Int64.to_string (10x faster), Int64.neg etc
694
+ - #4209 add a space after "acquire lock" in bsb error handling
695
+ - #4208 #4206 let%private support
696
+ ```ocaml
697
+ let %private x = 3
698
+ ```
699
+ `x` will not be exported
700
+ ```ocaml
701
+ module N = struct
702
+ let %private x = 3
703
+ end
704
+ ```
705
+ `x` will not be exported by N
706
+ - #4196 fix printing indexed operators
707
+ - #4177 #4180 support `[@@@bs.config {flags = [| ".." |] }]` per file level to allow file level special flags
708
+
709
+ - #4158 #4157 #4166 #4168 loading stdlib from memory, no postinstall needed
710
+ - #4152 support copyright style comments preserved in JS
711
+ ```
712
+ [%%raw "//copyright ]
713
+ ```
714
+ copyright will be preserved in output js
715
+ - #4191 #4189 add a flag -bs-unsafe-empty-array for easy transition (regain polymorphism for empty array), this is a temporary flag which will be removed eventually
716
+
717
+ - #4190 (internal) remove bsdep which is not used
718
+ - #4188 better encoding around internals for performance and size
719
+ - #4155 fix React PPX regressions from 7.1.0 which caused a type error when writing recursive components.
720
+ - #4185 remove stale tasks.json in bsb themes for vscode, leave it for users to keep it up to date
721
+ - #4159 #4161 #4182 improve the startup time, reducing both the size of cmi and cmj
722
+ - #4179 (internal) remove bsppx, use "bsc.exe -as-ppx" for editor tooling
723
+ - #4171 add a warning for using `fun%raw`, use `[%raw]` directly
724
+ - #4169 An escape hatch for function level comments
725
+ - #4164 #4162 #4165 make code generation platform agnostic (not depending on printf either)
726
+ - #4164 add Node.Buffer.toStringWithEncoding
727
+ - #4150 Grab the hostname from window.location when conntecting to websocket for react-hooks theme
728
+ - #4143 better compilation of optional arguments
729
+ - #4142 fix yarn start command
730
+ - #4140 docs: update README in basic reason template
731
+
732
+ # 7.1.0
733
+
734
+ (it was 7.0.2 but bumped into 7.1.0 due to a breaking change introduced in 7.0.2)
735
+
736
+ - #4131 support `bstracing -C`
737
+
738
+ # 7.0.2
739
+
740
+ - #4117 Upgrade to Reason 3.6.0 @ 8f71db0
741
+ - #4097 introduce a js parser for syntax checking inside raw.
742
+
743
+ We can now tell whether the code inside raw is a function or not and the arity of raw function, so
744
+
745
+ ```ocaml
746
+ let f = [%raw{|function(x){return x}|}]
747
+ ```
748
+
749
+ ```ocaml
750
+ let f = fun%raw x -> {|x|}
751
+ ```
752
+
753
+ will be treated the same, to make FFI simpler, the special form `fun%raw` will be discouraged.
754
+
755
+ - #4090 #4087 fix the unsoundess issue of Js.Array.push
756
+ now the empty array `[||]` won't have a polymorophic type, it will have a concrete type.
757
+ This is a bug fix but also a breaking change
758
+ - #4038 Duplicated package warning for symlinked folders
759
+ - #41112 #4111 #4067 #4101 provide websocket error better error message and better docs
760
+
761
+ - #4108 fix warning concat in some edge cases (bsb)
762
+ - #4100 make node process exit return 'a instead of unit
763
+ - #4098 restore encoding int64 using a tuple for compatibility reasons
764
+
765
+ - #4114 fix SPA mode watcher path in react-hooks template
766
+
767
+ - #4199 Change ReactJS PPX to avoid modifying locations of existing code (better integration with editors)
768
+ - #4122 toplevel [@@@warning "+101"] works for our own warnings (apart from OCaml ones)
769
+
770
+ `bsc -warn-help` listed several of our own warnings
771
+
772
+ ```
773
+ 101 BuckleScript warning: Unused bs attributes
774
+ 102 BuckleScript warning: polymorphic comparison introduced (maybe unsafe)
775
+ 103 BuckleScript warning: about fragile FFI definitions
776
+ 104 BuckleScript warning: bs.deriving warning with customized message
777
+ 105 BuckleScript warning: the external name is inferred from val name is unsafe from refactoring when changing value name
778
+ 106 BuckleScript warning: Unimplemented primitive used:
779
+ 107 BuckleScript warning: Integer literal exceeds the range of representable integers of type int
780
+ 108 BuckleScript warning: Uninterpreted delimiters (for unicode)
781
+ ```
782
+
783
+ - #4060 #4057 add unboxed type support
784
+
785
+ - #4078, #4069 better code generated for cases like `match x with true -> ..| false -> ..`
786
+ - #4075, #4065 allow emoji in folder name
787
+ - #4074 allow defining a custom hostname for websocket
788
+ - #4064 fix shake_compile prefix & code param order
789
+ - #4053 use setImmediate for rebuilding to fix watch mode for some specific editors
790
+ - #4050 support pipe first poly variant
791
+ - #4049 Add support for custom underscored namespace
792
+ - #4018 #4020 #4028 #4031 #4037 #4048 #4042 #4041 #4040 improve compiler performance (optimize hash base data structure)
793
+ - #4039 upgrade refmt (various bug fixes)
794
+ - #4006 #4029 fix misleading error message
795
+ - #4025 #4026 fix corner case of code gen for empty object literal
796
+ - #4024 Playground: update repl.js and docs to support jsoo 3.5.1
797
+
798
+ # 7.0.1
799
+
800
+ - #4009 #4011 fix ocaml type checking bug (cherry pick)
801
+ - #4000 #4010 add react-starter theme
802
+ - #4005 fix windows installing issues
803
+
804
+ # 7.0.0
805
+
806
+ - #4003 not doing ast invariant checking, leave it to us (faster compilation)
807
+ - #4002 upgrade ocamldoc in 4.06, fix document build
808
+ - #4001 tweak error message
809
+ - #3999 #3987 fix ppx reactjs regression keep attributes on object fields
810
+ - #3998 #3996 less strict check for duplication in record labels
811
+ - #3996 #3969 fix refmt upgrade regressions
812
+ - #3982 bs.as for record support (language level feature)
813
+ - #3989 #3993 check renamed label is unique when using bs.as
814
+ - #3985 more precise runtime information passed down from upstream, fix a corner case of compiling ocaml class
815
+ - #3986 more precise runtime information passed down from upstream, add module alias comments in generated code
816
+ - #3991 #3980 fix a corner case when printing js object in statement position
817
+ - #3977 #3978 not relying on ref internal for the runtime
818
+ - #3976 add bs js playground reason support
819
+ - #3974 bsb tweak react hooks template README
820
+ - #3971 docs about format of lib/bs/.bsbuild
821
+ - #3967 #3973 fix recursive value initialization
822
+ - #3972 upgrade repl.js to 4.06.1
823
+ - #3890 Fix typo in readme
824
+ - #3898 #3900 #3911 #3913 #3915 #3925 #3928 #3929 #3932 #3936 #3934 OCaml record as Js object
825
+ - #3945 sync refmt 3.5.3
826
+ - #3916 add large ocaml object test
827
+ - #3935 #3931 partial fix for recursive values inside recursive modules
828
+ - #3917 #3926 speicalize all ref handling (prepare for js object interaction)
829
+ - #3918 use folders from esy ocaml for snapshots
830
+ - #3920 remove size field which is never used
831
+ - #3921 add queue_402 for testing recursive values
832
+ - #3912 add -bs-noloc opton for easy debugging (when using -dparsetree -dtypedtree)
833
+ - #3927 more tests for records
834
+ - #3901 internal rewrite float_of_bits to not rely on int64 representation
835
+ - #3903 Fix invalid json in hooks template
836
+ - #3905 Fix int64 test specification
837
+ - #3906 remove optimizations relying on int64 internals which is fragile when changing into bigint
838
+ - #3907 remove some transformations in printer
839
+ - #3893 specialize code generation for Sys.os_type better code for stdlib
840
+ - #3899 add missing optimization `let _ = xx in yy`
841
+
842
+ - #3878 add Belt.Option.forEach
843
+ - #3941 remove null_to_undefined since type is specialized
844
+ - #3943 fix SPA mode regression for hooks template
845
+ - #3944 #3956 add spacing to variant formatter
846
+ - #3950 fix react-hooks watcher websocket support
847
+ - #3954 alias result type using stdlib `result`
848
+ - #3955 update ¨CONTRIBUTING file
849
+ - #3959 internal, remove alias_table which is not needed
850
+ - #3960 add test case for functor coercion
851
+ - #3962 #3960 set env var `BSB_PROJECT_ROOT` for bsb
852
+ - #3965 better inline heruistics
853
+ - #3966 #3897 improve module coercion code gen in strict subtyping
854
+ Deprecations
855
+ - #3889 remove deprecated light names in bs.deriving abstract
856
+
857
+ # 5.2.1 (2019/10/16)
858
+
859
+ Fixes
860
+
861
+ - #3884 (not using temp file when creating cmt for ocaml 4.06 only)
862
+ - #3877, #3881 Pattern match bug over list of integers
863
+ - #3875, #3879 regression introduced in 5.2.0 over pattern match optimization
864
+ - #3865 consistent name mangling when compiling modules into object
865
+ - #3852, #3870 for module with all module aliases and no interface file, always make it pure (treat it the same as namespace file)
866
+ - #3874 internal bug fix for ocaml cmpiler
867
+ Codegen
868
+ - #3880 optimize pattern match for (string|int) option
869
+ - #3866 update react-hooks template
870
+ - #3843 mitigate windows anti-virius issue
871
+
872
+ # 5.2.0 (2019/09/23)
873
+
874
+ Features
875
+
876
+ - #3803 Add a -install flag for mono-repository improvement for parallel compilation
877
+ - #3790 #3802 #3799 #3792 #3836 Compile locla modules to objects and clean up
878
+ - #3836 initial support of esy
879
+ - #3780 Better code generation for if branches
880
+ - #3799 Improve code gen, better code equality for block
881
+ - #3778 #3770 Improve pattern match compilation against the outer-most staticfail
882
+ - #3764 better code gen for lazy evaluation
883
+ - #3822 allow `f##"Content-Type"` for uncommon property name
884
+ - #3810 annoate constructor names in pattern match compilation
885
+ Fixes
886
+ - #3809 Escape question mark and ampersand to special chars
887
+ - #3805 #3796 Fix stale builds (module alias + namespace interaction)
888
+ - #3777 More friendly error message for invalid package name
889
+ - #3794 Calling genType from bsc instead from the patched ocaml compiler
890
+ - #3784 avoid trailing white space in case branch
891
+ - #3781 #3783 quote package path properly
892
+ - #3793 pass bs-version to genType
893
+ - #3674 installation from master works out of box
894
+ - #3823 fix reason language server
895
+
896
+ Docs
897
+
898
+ - #3795 Fix docs for stringifyAny
899
+ - #3788 Rename getUnasfe to getUnsafe
900
+ - #3830 fix isSortedExample
901
+ - #3829 fix mapWithDefault example
902
+ - #3828 fix getExn example
903
+ - #3827 fix partition example
904
+ - #3826 simplify truncateToLengthUnsafe example
905
+
906
+ # 5.1.0 (2019/08/15)
907
+
908
+ Features
909
+
910
+ - #3731 #3734 #3724 #3714 enable bsc for reason, so that for one file, `bsc hi.re` works
911
+ - #3671 add tool `bstracing` to visualize the building process
912
+ - #3730 #3738 Code gen: simplify `return undefined` as `return`
913
+ - #3713 support ppx with arguments (extended the schema)
914
+ - #3708 #3701 respect NODE_PATH when resolving node modules
915
+
916
+ Fixes
917
+
918
+ - #3699 Exit code from bsb in watch mode should be 0 instead of 2
919
+ - #3692, #3693 fix "cyclic dependencies error is swallowed"
920
+ - #3530, #3690 best effort support for shared library support
921
+ - #3683, #3678 Docs: fix example in Belt.Array
922
+ - #3657, #3669 Fix "For dependencies with namespace, the namespace file is always rebuilt"
923
+ - #3666, #3668 Fix "Ninja fails to compile on alpine linux "
924
+ - #3667, #3664 Fix "Warning number does not concat properly in some cases"
925
+ - #3662, #3515 Fix "bsb doesn't work with non-Unicode characters in the file path "
926
+ - #3653, #3519 Fix "[@react.component] vs .rei " in 4.06 branch
927
+ - #3655 Improve OCaml version file error
928
+ - #3652 Fix pnpm install (again)
929
+ - #3651 Fix "React PPX: Show warning 26 on unused props with default value"
930
+ Internal
931
+ - #3711 not inlining self recursive functions
932
+ - #3740 enable backtrace by default for compiler in dev mode
933
+ - #3705 dump package path in .sourcedirs.json for troubleshooting
934
+ - #3698 better data format for .bsdeps
935
+ - #3680, #3684, #3677, #3675, #3672 better encoding for .bsbuild
936
+ - #3673 strip the binary by default on \*nix platform
937
+ - #3658 #3545 fix a bunch of edge cases with dev build
938
+ - #3643 Fix nasty out of bound error in string/bytes access
939
+
940
+ # 5.0.6
941
+
942
+ Fixes
943
+
944
+ - #3648, #3647, #3645 make sure bsppx.exe (used by editor tools/Merlin, Reason Language service) behaves consistently with bsc.exe
945
+
946
+ - #3643 fix a hidden out of bounds bug
947
+
948
+ - #3642 pass down ninja internal flags in combination of `bsb -make-world`, for example `bsb -make-world -- -d explain`
949
+
950
+ - #3641 fix pnpm install
951
+ - #3635 fix debug mode runtime crash
952
+ - #3633 fix bs dev dependency issue
953
+
954
+ # 5.0.5
955
+
956
+ Fixes
957
+
958
+ - #3615 pruning stale build artifacts in bsb, more robust to file changes (moving files around, renaming)
959
+
960
+ - #3609, #3914 Fix a fatal error in code generation
961
+ - #3598, #3595 Fix code generation when toplevel binding is partial match (edge case)
962
+ - #3588 Fix double quote -ppx argument on windows
963
+ - #3577 fix webpack file serving for direct route access
964
+ - #3574, #3566 Fix code generation when some built in module names are reused
965
+ - #3572, #3570 fix infinite loop in bsb -w (edge case)
966
+
967
+ - #3558, #3557 fix missing Js.MapperRt module (playground js)
968
+ - #3555, #3546 bs.deriving `accessors` add support for GADT
969
+ - #3553, #3549 Fix code generation for leading zero float (edge case)
970
+ - #3474 fix bad error message when bsconfig `dev` and `non-dev` overlap
971
+
972
+ - #3532 add missing docs for `Js.error` and `Js.trace`
973
+ - #3536 fixing nesting `|.` issue
974
+ - #3519 avoid `'a array` manifested in external generated signature which causes inconsistent signatures. The concrete issue is that when adding `.rei` file for `[@react.component]` it triggers not match type error
975
+ - #3534 correct commands for building vendor OCaml from ocaml.tar.gz
976
+ - `*` enforce the rule that a module has to contain `.ml` or `.re` file, interface only file is not supported
977
+
978
+ Features
979
+
980
+ - #3600 allow user to polyfill missing c stubs
981
+ - #3613, #3612 add a warning number 105 (on by default) for cases as below
982
+
983
+ ```ocaml
984
+ external f : int -> int = "" [@@bs.val]
985
+ ```
986
+
987
+ Such ffi declaration is fragile to refactoring when changing names of `f`
988
+
989
+ - #3587, #3571, #3568 simplify debugger mode, `debugger.chrome` is not needed to turn on debug mode
990
+
991
+ Internals
992
+
993
+ - #3556, #3554 allow test reason files directly
994
+ - #3594, #3586, #3580, #3575 upgrade ninja to a customized more performant internal version
995
+
996
+ # 5.0.4
997
+
998
+ Features
999
+
1000
+ - #3523, #3516 Fusing react-jsx ppx as a flag
1001
+
1002
+ Docs
1003
+
1004
+ - #3522 add BS_VSCODE variable docs
1005
+
1006
+ Fixes
1007
+
1008
+ - #3540, #3482 remove unsupported items in the bsconfig.json schema
1009
+ - #3539, #3474 fix bad error message when a repo has same name for two modules
1010
+ - #3538, #3532 update docs
1011
+ - #3536, #3537 fix nesting (|.) ppx issues
1012
+ - #3519, #3535 fix external declarations that can not be generalized (uncovered by react jsx ppx v3)
1013
+ - #3534 fix commands building from ocaml.tar.gz
1014
+ - #3527, #3525, #3504, #3500 playground upgrade
1015
+ - #3518, #3507, #3517 not emit warnings for dependencies
1016
+ - #3515 fix on binding renameSync
1017
+ - #3508 tweak error message for syntax error
1018
+ - #3506 sync location and optional fixes for new jsx ppx
1019
+ - #3501, #3505 fix inconsistency between Js.String and Js.String2
1020
+ - #3502, #3503 fix pipe syntax on qualified opens
1021
+ - #3492, #3499 fix code gen in external when apply bs.uncurry to (unit -> ..)
1022
+ - #3496, #3495 fix 'bs.module isn't being resolved relatively correctly'
1023
+
1024
+ # 5.0.1
1025
+
1026
+ Features
1027
+
1028
+ - #3479 add a theme named react-hooks for the new ppx
1029
+ - #3476 add bs.inline support for literals (int, string, bool) so that it gets a stronger guarantee for inlining
1030
+ - #3473 upstream reason@3c6a9ca98
1031
+ - #3470,#3466 ract jsx ppx
1032
+
1033
+ Fixes
1034
+
1035
+ - #3455 fix polymorphic comparison and equality for js date
1036
+ - #3465 fix brutal console.clear
1037
+ - #3468 add BS_VSCODE to disable -super-errors, which works better with vscode problem matcher
1038
+
1039
+ # 5.0.0
1040
+
1041
+ Features
1042
+
1043
+ - #3418 sync up with refmt 681c491ba760cdf3b49f92297c3dab1703682808
1044
+ - #3395, #3417 better gentype support (gentype.import)
1045
+ - #3412,#3416 Warning against usage of `string_of_float`
1046
+ - #3414, #3415, #2893 allow usage of ` a |. M.(f a b)`
1047
+ - #3403 first class bs.variadic support
1048
+ - #3402 in watch mode, clear the screen upon rebuilding
1049
+ - #3397 add ignored-dirs support in bsconfig.json
1050
+ - #3377, #3376 add Linux prebuilt support for official release
1051
+ - #3372 add Belt.Array.getIndexBy
1052
+ - #3357, add `-bs-cmi-only` flag support to bsc so that no js emitted
1053
+ - #3356, #3354 add gentypeconfig support in bsconfig.json
1054
+ - #3352 fix minor mistake in Js.Dict.values doc
1055
+ - #3329 Allow namespace in bsconfig.json to be customized
1056
+ - #3334 Add Belt.Array.getBy
1057
+ - #3204, #3208 add bs.deriving {light} support to allow short names
1058
+ Fixes
1059
+ - #3413, #2893 deprecate Js.Array.join
1060
+ - #3407, #3408 rebuild when ppx binary changes
1061
+ - #3406, #3399 fix the interaction between external and relative paths
1062
+ - #3393 deprecate Node.Fs.Watch.on in favor of Node.Fs.Watch.on\_
1063
+ - #3315 depercate Js.Re.test, Js.Re.exec in favor of Js.Re.test*, Js.Re.exec*
1064
+ - #3386, #3387 fix a codegen in with bs.raw
1065
+ - #3386 make it more forgiving when interact with Js functions with arity 0
1066
+ - #3381 remove golang as a dev dependency
1067
+
1068
+ * #3388 (breaking) Fix Js.Re.(splitbyReAtMost, splitByRe) binding
1069
+
1070
+ - #3332 remove `-bs-gen-tds` from docs in favor of gentype
1071
+
1072
+ # 4.0.17
1073
+
1074
+ Features
1075
+
1076
+ - #3229 true seperate compilation, incredible perf for incremental build
1077
+
1078
+ Fixes
1079
+
1080
+ - #3226, #3223 absolute path generated in recursive module path and `assert false`
1081
+ - #3220 ppx-flags & scoped packages
1082
+ - #3214 shadowing of js Promise constructor
1083
+ - #3213 Allow build to be re-entrant to deal with yarn issues
1084
+
1085
+ # 4.0.10
1086
+
1087
+ Fixes
1088
+
1089
+ - upstream a bug fix for refmt
1090
+ - Fix installation issues
1091
+
1092
+ # 4.0.8
1093
+
1094
+ Features
1095
+
1096
+ - Support OCaml 4.06 under a config
1097
+
1098
+ * #3146 support `#if 1` and `#if 0` in the built-in conditional compilation language
1099
+ * #3159 Add Node.Buffer.concat
1100
+ * #3181 sync in refmt 9fcbbca
1101
+ * #3185 better performance in compilation, not reading runtime cmj files when not needed
1102
+
1103
+ Code gen
1104
+
1105
+ - #3134 Better arity infer when using first class module as function
1106
+ - #3169 allow _ in bs.raw so that `fun%raw a _ -> ` works
1107
+ - #3170, #3171 better code gen for bs.raw
1108
+ - #2967 bs.variadic attribute (bs.splice still works)
1109
+ Fixes
1110
+ - #3154 Fix binding `Js.Dict.get`
1111
+ - #3132 Fix `int_of_string` semantics in an edge case
1112
+ - #3142 Fix the combination of bs.as and unicode
1113
+ - #3177 Webpack dev server mode
1114
+ - #3180 clean up .gen.js/.gen.tsx for gentype
1115
+
1116
+ Docs
1117
+
1118
+ - #3133 Tweak Belt docs
1119
+ - #3136 Fix typo in react and react-lite tempaltes
1120
+ - #3161 improve perf of some functions in String module
1121
+
1122
+ # 4.0.7
1123
+
1124
+ Features
1125
+
1126
+ - #3072 Add List.filter/WithIndex and List.keep/WithIndex
1127
+
1128
+ Fix
1129
+
1130
+ - #3084,#3083 optimization triggers exception
1131
+ - #3085 Wrong optimizer
1132
+ - #3105 A corner case of optional encoding
1133
+
1134
+ Code gen
1135
+
1136
+ - - #3073, #3079, #3080 no arity tweaking. Function with unit as argument will have arity one
1137
+ - #3078 better codegen for switch
1138
+ - #3088 better codegen for if statement
1139
+
1140
+ # 4.0.6
1141
+
1142
+ ## ReasonML synced 76b27
1143
+
1144
+ Fixes
1145
+
1146
+ - #3064 upgrade `webpack-cli` to fix broken `npm run webpack`
1147
+ - #3054, #3502 fix some potential bugs in codegen
1148
+ - #3047 handle null values correctly in the devtools custom formatter
1149
+ - #3036 fix #3018 about dom in playground
1150
+ - #3017 _important_ fix #3010 nodejs browser loader evaluated code twice
1151
+
1152
+ Features
1153
+
1154
+ - #3051,#3039 add List.keepWithIndex, reduceWithIndex
1155
+ - #3046 add Js.Global.setTimeOutFloat and setIntervalFloat
1156
+
1157
+ Docs
1158
+
1159
+ - #3603 add documentation to Belt.Result
1160
+ - #3031 fix typo in Belt.Option.flatMap example
1161
+
1162
+ # 4.0.4
1163
+
1164
+ Fixes
1165
+
1166
+ - #3001 fix regressios in refmt
1167
+ - #2986 #2973 #2974 fix bsb websocket exit error
1168
+ - #2983 #2988 determinsic behavior
1169
+ when NINJA_ANSI_FORCED=0 no color
1170
+ when NINJA_ANSI_FORCED=1 yes color
1171
+
1172
+ # 4.0.3
1173
+
1174
+ Fixes
1175
+
1176
+ - #2956 clean re.js for genFlow proj
1177
+ - #2970 remove one obsolte error
1178
+ - #2970 address one regression from refmt
1179
+
1180
+ # 4.0.2
1181
+
1182
+ Fixes
1183
+
1184
+ - #2963 fix ppx-flags quoting issue
1185
+
1186
+ Features
1187
+
1188
+ - #2951 sync up with reason
1189
+ - #2964 customize ninja to make output less verbose
1190
+ Add NINJA_ANSI_FORCE env variable support so that third party tools running bsb can still preserve colors
1191
+ - #2960 add tea theme support
1192
+ - #2959 less verbose bsb output
1193
+ - #2958 make `bsb -init` more forgiving
1194
+
1195
+ # 4.0.1
1196
+
1197
+ Fixes:
1198
+
1199
+ - #2949 fix optional regression
1200
+ - #2946 fix react-lite theme on Linux
1201
+
1202
+ # 4.0.0
1203
+
1204
+ Fixes:
1205
+
1206
+ - #2832 fix compiler crash
1207
+ - #2837 `toFixed`, `toExponential` too strict
1208
+ - #2841 fix some inconsistency betweeen debug mode and release mode
1209
+ - #2865 fix reload latency issue in react-lite theme
1210
+ - #2864 fix parallel build random failure
1211
+ - #2874 consistency check for global bsb and local bsb
1212
+ - #2914 Fix bug on Windows where path has colon in command line arg
1213
+ - #2919 fix return value of `Js.Date.toJSON`
1214
+ - #2921 bs.deriving label -> labelGet, the `label` accessor is deprecated
1215
+ - #2924 rename Js.Nullable.test -> Js.Nullable.isNullable
1216
+ - #2923 fix ghost location in error message
1217
+ - #2931 fix a codegen bug in optimization pattern match
1218
+
1219
+ Features:
1220
+
1221
+ - #2280 prettier output in debug mode (chrome custom formatter)
1222
+ - #2823 add build-success hook
1223
+
1224
+ ```
1225
+ bsb -make-world -w -build-success 'your_script'
1226
+ ```
1227
+
1228
+ - #2856 provide websocket intergration with bsb
1229
+ - #2858 add react-lite theme hot module reloading without webpack
1230
+ - #2873 add Belt.Array.sliceToEnd
1231
+ - #2825 Add Belt.Array.partition
1232
+ - #2882, #2885, #2886, #2889, #2890,#2894, #2896, #2897,#2898, #2900
1233
+ #2901, #2905, #2907, #2908, #2909, #2912, #2913
1234
+ unbox optional and code optimization based on type kinds
1235
+
1236
+ - #2910 fix optional inline regression, better codegen for optional equality
1237
+ - #2904 fix Js.Date.parse binding
1238
+ - #2899 Add Dom.htmlFormElement and Dom.htmlInputElement types
1239
+ - #2910 Improve package not found message
1240
+
1241
+ - #2916 optimize value based optional
1242
+ - #2918 adapt polymoprhic comparison for the new optional representation
1243
+ - #2917 remove trailing `return undefined`
1244
+ - #2935 comments in codegen for `ref` generation
1245
+ - #2863 optimize away unused blocks
1246
+
1247
+ # 3.1.4
1248
+
1249
+ Fixes:
1250
+
1251
+ - Put back the deprecated `Js.to_bool` and `Js.Boolean.*` for a little bit longer to avoid breackage in userland. These functions are all deprecated and don't do anythinng anymore, since we compile `bool` to `Js.boolean` directly.
1252
+
1253
+ # 3.1.0
1254
+
1255
+ Features:
1256
+
1257
+ - #2809, #2806 Sync up with latest reason
1258
+ - #2805, allow `x |. Some `
1259
+ - #2797, #2771 `-bs-g`
1260
+ - #2793 more bindings to Js.Console
1261
+ - #2621 add Belt.Result module
1262
+ - #2760 add Belt.Array.unzip
1263
+
1264
+ Perf:
1265
+
1266
+ - #2808 better code gen for if then else
1267
+ - #2804 make HashSet.String size smaller
1268
+
1269
+ Fixes:
1270
+
1271
+ - #2812, compatibility with Node 10
1272
+ - #2789, fix Weak.length
1273
+ - #2790, fix Belt.Set performance issue
1274
+ - #2786, fix polymorphic compare on nullables
1275
+ - #2781, improve location info on bs.deriving abstract
1276
+ - #2776, lift the function limitation on bs.deriving abstract
1277
+ - #2752, fix binding Buffer.toString
1278
+
1279
+ # 3.0.0
1280
+
1281
+ Features:
1282
+
1283
+ - #2740, #2726 Generalized safe/cleaner embedding raw function (https://rescript-lang.org/docs/manual/latest/embed-raw-javascript)
1284
+
1285
+ - #2687, #2665, #2663 bs.deriving abstract type, a powerful way for idiomatic JS and FFI
1286
+
1287
+ - #2696, #2742, #2706, #2711, compile OCaml boolean as JS boolean
1288
+ Breaking change to your code path relying on `Obj.magic` and `bs.raw`
1289
+
1290
+ - #2741 add Node.Buffer.fromStringWithEncoding
1291
+ - #2737 add Js.Json.stringifyWithSpace
1292
+ - #2728 add console.error and console.trace
1293
+ - #2666 add List.sort to belt
1294
+ - #2664 pipe syntax support tuple
1295
+ `obj |. method a b ` and `obj |. (m1 , m2)`
1296
+
1297
+ Perf:
1298
+
1299
+ - #2676 beter optimizations for tuple allocation
1300
+
1301
+ Docs:
1302
+
1303
+ - #2730, #2729, #2733, #2722, #2701, #2699 More docs to Belt
1304
+
1305
+ Fixes:
1306
+
1307
+ - #2657 more intuitive polymorphic comparison with objects
1308
+ - #2686 playground unicode
1309
+ - #2720, #2719, #2718, error message enhancment
1310
+ - #2731 not inlining function contains `raw`
1311
+ - #2672 Fix ci
1312
+ - #2652 fix Buffer name mangling on Node
1313
+ - #2642 weird indentation in generated code
1314
+
1315
+ # 2.2.3
1316
+
1317
+ Features:
1318
+
1319
+ - #2646,#2622 Adding Belt.Option
1320
+ - #2342, #2624 (|.) pipe syntax for t first convention
1321
+ - #2589 Expose Id.MakeComparable functor
1322
+ - #2587 Added production ready settings for react theme
1323
+ - - remove refmt syntax version 2
1324
+
1325
+ Performances:
1326
+
1327
+ - #2438 using concrete predicates for integer comparison
1328
+ - #2584 better handling of if then else common sub expression
1329
+
1330
+ Fixes:
1331
+
1332
+ - #2303 defining or using a module named "Block" causes runtime errors
1333
+ - #2616,#2612,#2554 better error message
1334
+ - #2352 return value of assignment expression
1335
+ - #2413 no break generated after return statement in some code branches
1336
+ - #2633 [@bs.string] in FFI
1337
+ - #2608 short-circuiting of && fails due to extraction of variable
1338
+ - #2559 fix Bytes.create semantics
1339
+ - #2638, bsb -w on windows freez
1340
+ - #2448, js_int.ml not installed on windows
1341
+
1342
+ # 2.2.2
1343
+
1344
+ Features:
1345
+
1346
+ - Upgrade with latest reason syntax (native unucurry support etc)
1347
+ - #2531 add missing functions in Js.Nullable fromoption/toOption
1348
+ - #2527 Belt.List.shuffle
1349
+
1350
+ Fixes:
1351
+
1352
+ - #2503 bs.string and bs.obj interaction
1353
+ - #2549, #2548, $2548, #2542, #2541 improve error message
1354
+
1355
+ # 2.2.0
1356
+
1357
+ Features:
1358
+
1359
+ - A beta release for the new stdlib called Belt
1360
+ - #2436, #2381, #2377, #2353 bs.deriving abstract support
1361
+
1362
+ Performances:
1363
+
1364
+ - #2452 specialized comparison with Js.null, Js.undefined, Js.boolean
1365
+ - #2412, provide specialized primitives for comparison with null/undefined
1366
+ - #2361, better optimization for temporary tuple
1367
+ Fixes:
1368
+ - #2451 better error message when arity mismatch for reason syntax
1369
+ - #2399, turn partial application warnings to error in react template
1370
+ - #2465 build on FreeBSD
1371
+ - #2450 ignore bsb.lock
1372
+ - #2356 ship build-schema.json
1373
+ - #2489, #2464 capitalize names in combination of '/'
1374
+ - #2459 subdirs:true by default for templates
1375
+ - #2428, fix trailing space on react-jsx
1376
+ - #2401, stop tab-aligning imports for smaller diff
1377
+ - #2383, drop bs.deriving attribute after post-processing
1378
+
1379
+ # 2.1.0
1380
+
1381
+ Features:
1382
+
1383
+ - #2282, #2280,#2272,#2271,#2270,#2262,#2260,#2255,#2253
1384
+ Automatically derive js converter between ocaml and Js values
1385
+ - #2238, #2225, #2221
1386
+ Make the compiler relocatable
1387
+ prebuilt compiler (this release for Mac/Win)
1388
+ - #2276 update reason syntax@d0d18
1389
+ - #2229 improve error message with regard to `@bs`
1390
+ - #2266, add Js_global.(encode|decode)URI(Component) bindings
1391
+ - #2220 make watcher mode in linux accept ninja progress animation
1392
+ - #2163 better hints for binding module name
1393
+ - #2187, #2186, #2179 add two warning numbers 101, 102 for polymorhic comparisons
1394
+ and unused bs attributes
1395
+
1396
+ Performance:
1397
+
1398
+ - #2269 type specialized comparison also applied to nullable polymorphic variants
1399
+ - #2208 type specialized comparison allpied to nullable variants
1400
+ - #2213 refine caml_obj_dump into caml_array_dup better array initialization code
1401
+
1402
+ Fixes:
1403
+
1404
+ - #2316 Pattern match with exception case and a single catch-all pattern is optimized incorrectly
1405
+ - #2318 no absname in Match_failure
1406
+ - #2250 #1285, fix code gen for object oriented code
1407
+ - #2278, #2274 fix fatal errors regression and syntactice fatal errors(-werror A) don't stop building
1408
+ - #2259 fix fatal errors don't stop generating cmj file
1409
+ - #1972 bsb -init does not rely on `npm link` on \*nix platform
1410
+ - #2207 nop rebuild to work around yarn bug
1411
+ - #2226 kill bsb -w when stdin is closed
1412
+ - #2184 bsb should exclude -I empty dirs
1413
+
1414
+ # 2.0
1415
+
1416
+ Features
1417
+
1418
+ - update reason3 syntax
1419
+
1420
+ # 1.10.3
1421
+
1422
+ Features:
1423
+
1424
+ - #2112, introduced a key `suffix`, so that user can
1425
+ choose `suffix : ".bs.js"`
1426
+ - #2138, in combination of `.bs.js` suffix and `in-source` build,
1427
+ bsb is able to remove stale build artifact
1428
+ - #2091 bsc xx.cmi will print xx.mli so users can generate
1429
+ mli in the beginning. `bsc -output-re xx.cmi` will print
1430
+ it in reason syntax
1431
+ - #2096, clorized ninja build output
1432
+
1433
+ - #2120 better error message in the location of `{json||json}`
1434
+ - #2123 avoid namespace leaking in types
1435
+ - #2130 make Sys module not break React Native bindings
1436
+ - #2159, #2165 enhance user expereince of bsb (less verbose, status bar when failed)
1437
+ - #2134, allow people to make customized playground via a plugin
1438
+
1439
+ Fixes:
1440
+
1441
+ - #2157, fix unnecessary rebuilding when adding files with namespace option on
1442
+ - #2145, fix bsb unnecessary rebuild issues
1443
+ - #2150, fix an edge case of comparison between cyclic value
1444
+ - #2140 tweak invalid npm package error message
1445
+ - #2080, #2094 bsb -w can detect multiple processes running
1446
+ so no race condition
1447
+ - #2097 default warning with "-30"
1448
+ - #2101 fix bs.splice error message
1449
+ - #2102 fix reason printer bug
1450
+ - #2089 more logs when ocaml fails to build
1451
+ - e16cbd03c64eb2b7e99570abdc29f5799778835f fix a binding of `Js.Re.matches`
1452
+
1453
+ # 1.9.3
1454
+
1455
+ Features:
1456
+
1457
+ - #2049, add a dedicated `warning` field, so that it is easy to override, enable `warn-error` and customize it.
1458
+ - React JSX PPX V3 is in. This allows a custom component's `children` to be of any type. When the child's a single non-JSX item, it's not wrapped in an array anymore.
1459
+ - #2016, add a flag `bsb -v` to tell the version number
1460
+ - 64ea144746f998955f69d8eb4ec2b0179ce2d5b4 add Js.Typed_array subarray API
1461
+ - #2030, error message: better unbound value message
1462
+ - #2041, add a flag `bsb -verbose`, by default it is less noisy
1463
+ - #2047, make bsb error message more professional
1464
+ - #2048, turn `-bs-super-error` by default for reason files
1465
+
1466
+ Deprecations:
1467
+
1468
+ - React JSX PPX V1 has been removed, and the bsconfig `"react-jsx": true` is removed too (use `2` or `3`). JSX only accept a version number
1469
+ - #1666, remove deprecated API
1470
+
1471
+ Fixes:
1472
+
1473
+ - #2029, error message: fix display line and column
1474
+ - #2033, #2040 error message: trim output when too many lines
1475
+ - #2042, better react error message
1476
+ - #2053, better error message when file name is non-existent
1477
+ - #2066, add a missing escaped char ':'
1478
+ - #2063, add Js.Float for windows, remove deprecated Js.Float API
1479
+ - #2070, fix -warn-error interaction with -bs-super-error
1480
+
1481
+ # 1.9.2
1482
+
1483
+ Fixes:
1484
+
1485
+ - #1943, Wrong name mangling for properties "\_50"
1486
+ - #1029, tree shaking in playground
1487
+ - #1946, Fix invalid JS output
1488
+ - #1965, more JS modules exported in playground
1489
+ - #1559, add a comment when no js output produced
1490
+ - #1989, fix a bug for exit inlining
1491
+ - #2002, make default exports work with transpiled babel ES6 import
1492
+ - A bunch of improvements for better error message by Cheng Lou and Cristiano Calcagno
1493
+
1494
+ Features:
1495
+
1496
+ - #1944, bspack support -main-export
1497
+ - #1990, better optimizations for pattern match compilation
1498
+ - #1991, Accept `bs.deriving accessors` applies to `bs.config` as well for single field
1499
+ - #2001, improve global module compilation
1500
+ - #2006, `"subdirs": true` will traverse the directory recursively
1501
+ - #1964, for `Capital_file.ml` generate `Capital_file.js` instead of `capital_file.js`
1502
+
1503
+ Deprecations:
1504
+
1505
+ - #1968, remove support for Google module system
1506
+
1507
+ # 1.9.1 (Recovery 1.9.0)
1508
+
1509
+ Fixes
1510
+
1511
+ - #1933 hyphen directory name fixes
1512
+
1513
+ # 1.9.0
1514
+
1515
+ Features:
1516
+
1517
+ - Namespace support in the build system
1518
+ - #1839, #1653, allow in-source build in package-specs , allow single package-spec element in package-specs
1519
+ - #1802 introduce [@bs.unwrap] for polymorphic variant as external argument
1520
+ - Improve error message via -bs-super-errors
1521
+ - Reason syntax error message for .re/.rei files
1522
+ - #1908 two APIs for Js.Re
1523
+ - #1905, #1906, simplify the workflow of handling null or undefined (via nullable)
1524
+ Optimizations:
1525
+ - #1918, better code gen for pattern match
1526
+ - #1865, Add Js.logN
1527
+
1528
+ Fixes
1529
+
1530
+ - #1925, fix missing js modules in playground
1531
+ - #1893, fix Js.Array.append (Js.Vector.append)
1532
+
1533
+ # 1.8.2
1534
+
1535
+ Features:
1536
+
1537
+ - #1798 make `default` the same semantics as ES6 exports
1538
+ - #1785 upgrade playground
1539
+ - #1758 generator support
1540
+ - #1826 add `bsb -where` support so that bsb.exe can be located and cached in a more robust way
1541
+
1542
+ Optimizations:
1543
+
1544
+ - #1796, #1793 improve submodule arity inference
1545
+ - #1810 don't rebuild ninja if binary already exists in bin folder
1546
+
1547
+ Fixes:
1548
+
1549
+ - #1811 add relative PPX paths to .merlin correctly
1550
+ - #1822, fix an optimization bug
1551
+
1552
+ Internal:
1553
+
1554
+ - add a tool cmjdump.exe
1555
+
1556
+ # 1.8.1
1557
+
1558
+ Fixes:
1559
+
1560
+ - #1762, discard effectful unused code
1561
+ - #1760, div by zero effect analysis
1562
+
1563
+ # 1.8.0
1564
+
1565
+ Fixes:
1566
+
1567
+ - #1573, don't include `-bs` flags in `.merlin`
1568
+ - #1716, fix wrong optimization of recursive values
1569
+ - #1728, bad inlining
1570
+ - #1409, make sure when optional is None, bs.obj will not introduce such label
1571
+ - #1737, same as #1409
1572
+ - #1746, a corner case when mixing recursive value and functions, should make markup.ml work
1573
+ - #1749, fix nested if, code block discarded issue
1574
+
1575
+ # 1.7.5
1576
+
1577
+ Fixes:
1578
+
1579
+ - #1676, `bsb -w` will always build regardless of filetype when fs.watch doesn't send a filename
1580
+ - #1655, fix #1653 Js.Promise.all[n] interfaces
1581
+ - #1658, fix typeof = "null" issue
1582
+ - #1656, bs.get/set/get_index/set_index respects bs.ignore
1583
+ - #1654, `bsb -init` fails if package or current dir has space (parent dir can have spaces)
1584
+ - #1678, bs.get{null;undefined} in object type
1585
+ - #1692, fix invalid js syntax output
1586
+ - #1701, fix tailcall handling interaction with exception handler
1587
+ - #1666, fix misuse of GADT API
1588
+
1589
+ Features:
1590
+
1591
+ - #1648, exposed `bsc` in the npm environment
1592
+ - #1647, special handling `bsb -init .` to reuse current directory
1593
+ - #1667, fix an optimization bug
1594
+ - #1698, fix exit code incorrectly aggregated issue
1595
+ - #1666, add Js.Json.classify and Js.Types.classify
1596
+ - #1705, add DOM storage API
1597
+ - #1672, sync up with new reason
1598
+ - #1696, provide reason-react template
1599
+
1600
+ # 1.7.4
1601
+
1602
+ Internal:
1603
+
1604
+ - #1583, add -U -D support for bspack
1605
+
1606
+ Features:
1607
+
1608
+ - #1630, add modules Option, Result, List, and Vector into Js namespace, update docs
1609
+
1610
+ - #1613, allow bs.scope with bs.send/bs.send.pipe/bs.set/bs.get/bs.set_index/bs.get_index
1611
+ - #1604, add the functions `entries`, `values`, `fromList`, `fromArray` and `map` to `Js.Dict`
1612
+
1613
+ - #1632, bsb themes support
1614
+
1615
+ Fixes:
1616
+
1617
+ - #1581, more error checking
1618
+ - #1633, fix missing installations
1619
+ - #1581, more error checking %identity
1620
+
1621
+ # 1.7.3
1622
+
1623
+ Fixes:
1624
+
1625
+ - #1556, fix duplicated requires of runtime (report by Cheng Lou)
1626
+ - #1568, internal compiler error
1627
+
1628
+ Features:
1629
+
1630
+ - #1564: scoped values in FF, see `bs.scope` in the Manual
1631
+
1632
+ # 1.3.2
1633
+
1634
+ Features:
1635
+
1636
+ - Significantly improve bsb experience
1637
+
1638
+ ## 1.2.1 + dev
1639
+
1640
+ Features:
1641
+
1642
+ - #861, add `-bs-assume-no-mli` and `-bs-no-implicit-include` for deterministic build
1643
+ - #851, add -bs-D -bs-list-conditionals flags
1644
+ - add `-bs-syntax-only`
1645
+ - #854, add `-bs-binary-ast`
1646
+
1647
+ # 1.1.2
1648
+
1649
+ Fixes:
1650
+
1651
+ - #831, bug fix with opam issues
1652
+
1653
+ Features:
1654
+
1655
+ - Provide `bspp.exe` for the official compiler
1656
+
1657
+ # 1.1.1
1658
+
1659
+ Features:
1660
+
1661
+ - #822, add `bsdep.exe`
1662
+ - #820, conditional compilation support
1663
+ - #793, relax syntactic restrictions for all extension point so that `bs.obj`, `obj`, `bs.raw`, `raw`, etc. will both work. Note that all attributes will still be qualified
1664
+ - #793, support `bs.splice` in `bs.new`
1665
+ - #798, complete `bs.splice` support and documentation
1666
+
1667
+ # 1.0.3
1668
+
1669
+ Incompatible changes (to better support Windows):
1670
+
1671
+ - `bsc`, `bspack` and `bsppx` are renamed into `bsc.exe`, `bspack.exe` and `bsppx.exe`
1672
+ - No symlink from .bin any more.
1673
+
1674
+ **Old symlinks**:
1675
+
1676
+ ```sh
1677
+ tmp > ls -al node_modules/.bin/
1678
+ total 96
1679
+ drwxr-xr-x 14 hzhang295 staff 476 Sep 20 17:26 .
1680
+ drwxr-xr-x 4 hzhang295 staff 136 Sep 20 17:27 ..
1681
+ lrwxr-xr-x 1 hzhang295 staff 22 Sep 20 17:26 bsc -> ../bs-platform/bin/bsc
1682
+ lrwxr-xr-x 1 hzhang295 staff 25 Sep 20 17:26 bspack -> ../bs-platform/bin/bspack
1683
+ lrwxr-xr-x 1 hzhang295 staff 24 Sep 20 17:26 bsppx -> ../bs-platform/bin/bsppx
1684
+ ```
1685
+
1686
+ Now these symlinks are removed. You have to refer to `bs-platform/bin/bsc.exe`.
1687
+
1688
+ Features:
1689
+
1690
+ - #787, add an option `-bs-no-warn-unused-bs-attribute`
1691
+
1692
+ # 1.0.2
1693
+
1694
+ Fixes:
1695
+
1696
+ - #743, Fix Bytes.blit when `src == dst`
1697
+
1698
+ Features:
1699
+
1700
+ - #783, by default, `bsc.exe` will warn when it detect some OCaml data types are passed from/to external FFI
1701
+ - #784, add an option `-bs-eval`
1702
+
1703
+ # 1.0.1
1704
+
1705
+ Fixes:
1706
+
1707
+ - #718, Enforce `#=` always return unit for better error messages
1708
+
1709
+ Features:
1710
+
1711
+ - FFI
1712
+ - #694, support fields and mutable fields in JS object creation and private method
1713
+ - #686, introduce phantom arguments (`bs.ignore`) for ad-hoc polymorphism
1714
+
1715
+ # 1.0.0
1716
+
1717
+ Initial release