diff --git a/README.md b/README.md index 87acbd1..1d8fbb5 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,11 @@ # Experiment: Monorepo for ReScript standard libraries See https://github.com/rescript-lang/rescript-compiler/issues/6826. + +This repo contains an npm workspace with the ReScript 12 standard libraries: + +- runtime: runtime modules (where the .cm\* files + JS output files need to be shipped with the compiler) +- primitives: primitives (where only the JS output files need to be shipped with the compiler) +- core: the ReScript Core standard library +- belt: Belt library (immutable collections etc.) +- js: legacy Js modules diff --git a/belt/rescript.json b/belt/rescript.json index 1f04848..cea901e 100644 --- a/belt/rescript.json +++ b/belt/rescript.json @@ -4,7 +4,7 @@ "dir": "src", "subdirs": true }, - "bs-dependencies": ["stdlib-mini"], + "bs-dependencies": ["runtime"], "bsc-flags": [ "-nostdlib", "-nopervasives", diff --git a/core/rescript.json b/core/rescript.json index 2ce1507..e723e67 100644 --- a/core/rescript.json +++ b/core/rescript.json @@ -4,7 +4,7 @@ "dir": "src", "subdirs": true }, - "bs-dependencies": ["stdlib-mini", "runtime"], + "bs-dependencies": ["runtime"], "bsc-flags": [ "-nostdlib", "-nopervasives", diff --git a/js/rescript.json b/js/rescript.json index 33e6580..c2d2a6e 100644 --- a/js/rescript.json +++ b/js/rescript.json @@ -4,7 +4,7 @@ "dir": "src", "subdirs": true }, - "bs-dependencies": ["stdlib-mini"], + "bs-dependencies": ["runtime"], "bsc-flags": [ "-nostdlib", "-nopervasives", diff --git a/package-lock.json b/package-lock.json index dda8fe7..021c05e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,9 +8,9 @@ "name": "rescript-stdlib", "version": "0.0.0", "workspaces": [ - "stdlib-mini", "core", "belt", + "primitives", "runtime", "js" ], @@ -52,6 +52,10 @@ "resolved": "js", "link": true }, + "node_modules/primitives": { + "resolved": "primitives", + "link": true + }, "node_modules/rescript": { "version": "12.0.0-alpha.1", "resolved": "https://registry.npmjs.org/rescript/-/rescript-12.0.0-alpha.1.tgz", @@ -71,14 +75,10 @@ "resolved": "runtime", "link": true }, - "node_modules/stdlib-mini": { - "resolved": "stdlib-mini", - "link": true - }, - "runtime": { + "primitives": { "version": "0.0.0" }, - "stdlib-mini": { + "runtime": { "version": "0.0.0" } } diff --git a/package.json b/package.json index 7839dde..e576599 100644 --- a/package.json +++ b/package.json @@ -4,9 +4,9 @@ "private": true, "packageManager": "npm@10.8.1", "workspaces": [ - "stdlib-mini", "core", "belt", + "primitives", "runtime", "js" ], diff --git a/stdlib-mini/package.json b/primitives/package.json similarity index 50% rename from stdlib-mini/package.json rename to primitives/package.json index e356ae8..71384ae 100644 --- a/stdlib-mini/package.json +++ b/primitives/package.json @@ -1,4 +1,4 @@ { - "name": "stdlib-mini", + "name": "primitives", "version": "0.0.0" } diff --git a/primitives/rescript.json b/primitives/rescript.json new file mode 100644 index 0000000..803cc1d --- /dev/null +++ b/primitives/rescript.json @@ -0,0 +1,14 @@ +{ + "name": "primitives", + "sources": { + "dir": "src", + "subdirs": true + }, + "bs-dependencies": ["runtime"], + "bsc-flags": [ + "-nostdlib", + "-nopervasives", + "-bs-no-version-header", + "-open Stdlib_mini" + ] +} diff --git a/runtime/src/caml.js b/primitives/src/caml.js similarity index 100% rename from runtime/src/caml.js rename to primitives/src/caml.js diff --git a/runtime/src/caml.res b/primitives/src/caml.res similarity index 100% rename from runtime/src/caml.res rename to primitives/src/caml.res diff --git a/runtime/src/caml.resi b/primitives/src/caml.resi similarity index 100% rename from runtime/src/caml.resi rename to primitives/src/caml.resi diff --git a/runtime/src/caml_array.js b/primitives/src/caml_array.js similarity index 100% rename from runtime/src/caml_array.js rename to primitives/src/caml_array.js diff --git a/runtime/src/caml_array.res b/primitives/src/caml_array.res similarity index 100% rename from runtime/src/caml_array.res rename to primitives/src/caml_array.res diff --git a/runtime/src/caml_array.resi b/primitives/src/caml_array.resi similarity index 100% rename from runtime/src/caml_array.resi rename to primitives/src/caml_array.resi diff --git a/runtime/src/caml_array_extern.js b/primitives/src/caml_array_extern.js similarity index 100% rename from runtime/src/caml_array_extern.js rename to primitives/src/caml_array_extern.js diff --git a/runtime/src/caml_array_extern.res b/primitives/src/caml_array_extern.res similarity index 100% rename from runtime/src/caml_array_extern.res rename to primitives/src/caml_array_extern.res diff --git a/runtime/src/caml_bigint.js b/primitives/src/caml_bigint.js similarity index 100% rename from runtime/src/caml_bigint.js rename to primitives/src/caml_bigint.js diff --git a/runtime/src/caml_bigint.res b/primitives/src/caml_bigint.res similarity index 100% rename from runtime/src/caml_bigint.res rename to primitives/src/caml_bigint.res diff --git a/runtime/src/caml_bigint.resi b/primitives/src/caml_bigint.resi similarity index 100% rename from runtime/src/caml_bigint.resi rename to primitives/src/caml_bigint.resi diff --git a/runtime/src/caml_bigint_extern.js b/primitives/src/caml_bigint_extern.js similarity index 100% rename from runtime/src/caml_bigint_extern.js rename to primitives/src/caml_bigint_extern.js diff --git a/runtime/src/caml_bigint_extern.res b/primitives/src/caml_bigint_extern.res similarity index 100% rename from runtime/src/caml_bigint_extern.res rename to primitives/src/caml_bigint_extern.res diff --git a/runtime/src/caml_bytes.js b/primitives/src/caml_bytes.js similarity index 100% rename from runtime/src/caml_bytes.js rename to primitives/src/caml_bytes.js diff --git a/runtime/src/caml_bytes.res b/primitives/src/caml_bytes.res similarity index 100% rename from runtime/src/caml_bytes.res rename to primitives/src/caml_bytes.res diff --git a/runtime/src/caml_bytes.resi b/primitives/src/caml_bytes.resi similarity index 100% rename from runtime/src/caml_bytes.resi rename to primitives/src/caml_bytes.resi diff --git a/runtime/src/caml_exceptions.js b/primitives/src/caml_exceptions.js similarity index 100% rename from runtime/src/caml_exceptions.js rename to primitives/src/caml_exceptions.js diff --git a/runtime/src/caml_exceptions.res b/primitives/src/caml_exceptions.res similarity index 100% rename from runtime/src/caml_exceptions.res rename to primitives/src/caml_exceptions.res diff --git a/runtime/src/caml_exceptions.resi b/primitives/src/caml_exceptions.resi similarity index 100% rename from runtime/src/caml_exceptions.resi rename to primitives/src/caml_exceptions.resi diff --git a/runtime/src/caml_external_polyfill.js b/primitives/src/caml_external_polyfill.js similarity index 100% rename from runtime/src/caml_external_polyfill.js rename to primitives/src/caml_external_polyfill.js diff --git a/runtime/src/caml_external_polyfill.res b/primitives/src/caml_external_polyfill.res similarity index 100% rename from runtime/src/caml_external_polyfill.res rename to primitives/src/caml_external_polyfill.res diff --git a/runtime/src/caml_float.js b/primitives/src/caml_float.js similarity index 100% rename from runtime/src/caml_float.js rename to primitives/src/caml_float.js diff --git a/runtime/src/caml_float.res b/primitives/src/caml_float.res similarity index 100% rename from runtime/src/caml_float.res rename to primitives/src/caml_float.res diff --git a/runtime/src/caml_float.resi b/primitives/src/caml_float.resi similarity index 100% rename from runtime/src/caml_float.resi rename to primitives/src/caml_float.resi diff --git a/runtime/src/caml_float_extern.js b/primitives/src/caml_float_extern.js similarity index 100% rename from runtime/src/caml_float_extern.js rename to primitives/src/caml_float_extern.js diff --git a/runtime/src/caml_float_extern.res b/primitives/src/caml_float_extern.res similarity index 100% rename from runtime/src/caml_float_extern.res rename to primitives/src/caml_float_extern.res diff --git a/runtime/src/caml_format.js b/primitives/src/caml_format.js similarity index 100% rename from runtime/src/caml_format.js rename to primitives/src/caml_format.js diff --git a/runtime/src/caml_format.res b/primitives/src/caml_format.res similarity index 100% rename from runtime/src/caml_format.res rename to primitives/src/caml_format.res diff --git a/runtime/src/caml_format.resi b/primitives/src/caml_format.resi similarity index 100% rename from runtime/src/caml_format.resi rename to primitives/src/caml_format.resi diff --git a/runtime/src/caml_hash.js b/primitives/src/caml_hash.js similarity index 100% rename from runtime/src/caml_hash.js rename to primitives/src/caml_hash.js diff --git a/runtime/src/caml_hash.res b/primitives/src/caml_hash.res similarity index 100% rename from runtime/src/caml_hash.res rename to primitives/src/caml_hash.res diff --git a/runtime/src/caml_hash.resi b/primitives/src/caml_hash.resi similarity index 100% rename from runtime/src/caml_hash.resi rename to primitives/src/caml_hash.resi diff --git a/runtime/src/caml_hash_primitive.js b/primitives/src/caml_hash_primitive.js similarity index 100% rename from runtime/src/caml_hash_primitive.js rename to primitives/src/caml_hash_primitive.js diff --git a/runtime/src/caml_hash_primitive.res b/primitives/src/caml_hash_primitive.res similarity index 100% rename from runtime/src/caml_hash_primitive.res rename to primitives/src/caml_hash_primitive.res diff --git a/runtime/src/caml_hash_primitive.resi b/primitives/src/caml_hash_primitive.resi similarity index 100% rename from runtime/src/caml_hash_primitive.resi rename to primitives/src/caml_hash_primitive.resi diff --git a/runtime/src/caml_int32.js b/primitives/src/caml_int32.js similarity index 100% rename from runtime/src/caml_int32.js rename to primitives/src/caml_int32.js diff --git a/runtime/src/caml_int32.res b/primitives/src/caml_int32.res similarity index 100% rename from runtime/src/caml_int32.res rename to primitives/src/caml_int32.res diff --git a/runtime/src/caml_int32.resi b/primitives/src/caml_int32.resi similarity index 100% rename from runtime/src/caml_int32.resi rename to primitives/src/caml_int32.resi diff --git a/runtime/src/caml_int64.js b/primitives/src/caml_int64.js similarity index 100% rename from runtime/src/caml_int64.js rename to primitives/src/caml_int64.js diff --git a/runtime/src/caml_int64.res b/primitives/src/caml_int64.res similarity index 100% rename from runtime/src/caml_int64.res rename to primitives/src/caml_int64.res diff --git a/runtime/src/caml_int64.resi b/primitives/src/caml_int64.resi similarity index 100% rename from runtime/src/caml_int64.resi rename to primitives/src/caml_int64.resi diff --git a/runtime/src/caml_int64_extern.js b/primitives/src/caml_int64_extern.js similarity index 100% rename from runtime/src/caml_int64_extern.js rename to primitives/src/caml_int64_extern.js diff --git a/runtime/src/caml_int64_extern.res b/primitives/src/caml_int64_extern.res similarity index 100% rename from runtime/src/caml_int64_extern.res rename to primitives/src/caml_int64_extern.res diff --git a/runtime/src/caml_js_exceptions.js b/primitives/src/caml_js_exceptions.js similarity index 100% rename from runtime/src/caml_js_exceptions.js rename to primitives/src/caml_js_exceptions.js diff --git a/runtime/src/caml_js_exceptions.res b/primitives/src/caml_js_exceptions.res similarity index 100% rename from runtime/src/caml_js_exceptions.res rename to primitives/src/caml_js_exceptions.res diff --git a/runtime/src/caml_lexer.js b/primitives/src/caml_lexer.js similarity index 100% rename from runtime/src/caml_lexer.js rename to primitives/src/caml_lexer.js diff --git a/runtime/src/caml_lexer.res b/primitives/src/caml_lexer.res similarity index 100% rename from runtime/src/caml_lexer.res rename to primitives/src/caml_lexer.res diff --git a/runtime/src/caml_lexer.resi b/primitives/src/caml_lexer.resi similarity index 100% rename from runtime/src/caml_lexer.resi rename to primitives/src/caml_lexer.resi diff --git a/runtime/src/caml_md5.js b/primitives/src/caml_md5.js similarity index 100% rename from runtime/src/caml_md5.js rename to primitives/src/caml_md5.js diff --git a/runtime/src/caml_md5.res b/primitives/src/caml_md5.res similarity index 100% rename from runtime/src/caml_md5.res rename to primitives/src/caml_md5.res diff --git a/runtime/src/caml_md5.resi b/primitives/src/caml_md5.resi similarity index 100% rename from runtime/src/caml_md5.resi rename to primitives/src/caml_md5.resi diff --git a/runtime/src/caml_module.js b/primitives/src/caml_module.js similarity index 100% rename from runtime/src/caml_module.js rename to primitives/src/caml_module.js diff --git a/runtime/src/caml_module.res b/primitives/src/caml_module.res similarity index 100% rename from runtime/src/caml_module.res rename to primitives/src/caml_module.res diff --git a/runtime/src/caml_module.resi b/primitives/src/caml_module.resi similarity index 100% rename from runtime/src/caml_module.resi rename to primitives/src/caml_module.resi diff --git a/runtime/src/caml_nativeint_extern.js b/primitives/src/caml_nativeint_extern.js similarity index 100% rename from runtime/src/caml_nativeint_extern.js rename to primitives/src/caml_nativeint_extern.js diff --git a/runtime/src/caml_nativeint_extern.res b/primitives/src/caml_nativeint_extern.res similarity index 100% rename from runtime/src/caml_nativeint_extern.res rename to primitives/src/caml_nativeint_extern.res diff --git a/runtime/src/caml_obj.js b/primitives/src/caml_obj.js similarity index 100% rename from runtime/src/caml_obj.js rename to primitives/src/caml_obj.js diff --git a/runtime/src/caml_obj.res b/primitives/src/caml_obj.res similarity index 100% rename from runtime/src/caml_obj.res rename to primitives/src/caml_obj.res diff --git a/runtime/src/caml_obj.resi b/primitives/src/caml_obj.resi similarity index 100% rename from runtime/src/caml_obj.resi rename to primitives/src/caml_obj.resi diff --git a/runtime/src/caml_option.js b/primitives/src/caml_option.js similarity index 100% rename from runtime/src/caml_option.js rename to primitives/src/caml_option.js diff --git a/runtime/src/caml_option.res b/primitives/src/caml_option.res similarity index 100% rename from runtime/src/caml_option.res rename to primitives/src/caml_option.res diff --git a/runtime/src/caml_option.resi b/primitives/src/caml_option.resi similarity index 100% rename from runtime/src/caml_option.resi rename to primitives/src/caml_option.resi diff --git a/runtime/src/caml_parser.js b/primitives/src/caml_parser.js similarity index 100% rename from runtime/src/caml_parser.js rename to primitives/src/caml_parser.js diff --git a/runtime/src/caml_parser.res b/primitives/src/caml_parser.res similarity index 100% rename from runtime/src/caml_parser.res rename to primitives/src/caml_parser.res diff --git a/runtime/src/caml_parser.resi b/primitives/src/caml_parser.resi similarity index 100% rename from runtime/src/caml_parser.resi rename to primitives/src/caml_parser.resi diff --git a/runtime/src/caml_splice_call.js b/primitives/src/caml_splice_call.js similarity index 100% rename from runtime/src/caml_splice_call.js rename to primitives/src/caml_splice_call.js diff --git a/runtime/src/caml_splice_call.res b/primitives/src/caml_splice_call.res similarity index 100% rename from runtime/src/caml_splice_call.res rename to primitives/src/caml_splice_call.res diff --git a/runtime/src/caml_splice_call.resi b/primitives/src/caml_splice_call.resi similarity index 100% rename from runtime/src/caml_splice_call.resi rename to primitives/src/caml_splice_call.resi diff --git a/runtime/src/caml_string.js b/primitives/src/caml_string.js similarity index 100% rename from runtime/src/caml_string.js rename to primitives/src/caml_string.js diff --git a/runtime/src/caml_string.res b/primitives/src/caml_string.res similarity index 100% rename from runtime/src/caml_string.res rename to primitives/src/caml_string.res diff --git a/runtime/src/caml_string.resi b/primitives/src/caml_string.resi similarity index 100% rename from runtime/src/caml_string.resi rename to primitives/src/caml_string.resi diff --git a/runtime/src/caml_string_extern.js b/primitives/src/caml_string_extern.js similarity index 100% rename from runtime/src/caml_string_extern.js rename to primitives/src/caml_string_extern.js diff --git a/runtime/src/caml_string_extern.res b/primitives/src/caml_string_extern.res similarity index 100% rename from runtime/src/caml_string_extern.res rename to primitives/src/caml_string_extern.res diff --git a/runtime/src/caml_sys.js b/primitives/src/caml_sys.js similarity index 100% rename from runtime/src/caml_sys.js rename to primitives/src/caml_sys.js diff --git a/runtime/src/caml_sys.res b/primitives/src/caml_sys.res similarity index 100% rename from runtime/src/caml_sys.res rename to primitives/src/caml_sys.res diff --git a/runtime/src/caml_sys.resi b/primitives/src/caml_sys.resi similarity index 100% rename from runtime/src/caml_sys.resi rename to primitives/src/caml_sys.resi diff --git a/runtime/src/caml_undefined_extern.js b/primitives/src/caml_undefined_extern.js similarity index 100% rename from runtime/src/caml_undefined_extern.js rename to primitives/src/caml_undefined_extern.js diff --git a/runtime/src/caml_undefined_extern.res b/primitives/src/caml_undefined_extern.res similarity index 100% rename from runtime/src/caml_undefined_extern.res rename to primitives/src/caml_undefined_extern.res diff --git a/runtime/src/curry.js b/primitives/src/curry.js similarity index 100% rename from runtime/src/curry.js rename to primitives/src/curry.js diff --git a/runtime/src/curry.res b/primitives/src/curry.res similarity index 100% rename from runtime/src/curry.res rename to primitives/src/curry.res diff --git a/rescript.json b/rescript.json index fa1ca77..b39a5e7 100644 --- a/rescript.json +++ b/rescript.json @@ -6,6 +6,6 @@ "in-source": true }, "suffix": ".js", - "bs-dependencies": ["stdlib-mini", "core", "belt", "runtime", "js"], + "bs-dependencies": ["core", "belt", "primitives", "runtime", "js"], "bsc-flags": ["-nostdlib", "-nopervasives", "-bs-no-version-header"] } diff --git a/runtime/rescript.json b/runtime/rescript.json index d617d30..180d117 100644 --- a/runtime/rescript.json +++ b/runtime/rescript.json @@ -4,11 +4,5 @@ "dir": "src", "subdirs": true }, - "bs-dependencies": ["stdlib-mini"], - "bsc-flags": [ - "-nostdlib", - "-nopervasives", - "-bs-no-version-header", - "-open Stdlib_mini" - ] + "bsc-flags": ["-nostdlib", "-nopervasives", "-bs-no-version-header"] } diff --git a/runtime/src/runtime_deriving.res b/runtime/src/runtime_deriving.res index 7aa535e..4f14519 100644 --- a/runtime/src/runtime_deriving.res +++ b/runtime/src/runtime_deriving.res @@ -22,6 +22,8 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ +open Stdlib_mini + let raiseWhenNotFound = x => if Js.testAny(x) { raise(Not_found) diff --git a/stdlib-mini/src/runtime_types.js b/runtime/src/runtime_types.js similarity index 100% rename from stdlib-mini/src/runtime_types.js rename to runtime/src/runtime_types.js diff --git a/stdlib-mini/src/runtime_types.res b/runtime/src/runtime_types.res similarity index 100% rename from stdlib-mini/src/runtime_types.res rename to runtime/src/runtime_types.res diff --git a/stdlib-mini/src/stdlib_mini.js b/runtime/src/stdlib_mini.js similarity index 100% rename from stdlib-mini/src/stdlib_mini.js rename to runtime/src/stdlib_mini.js diff --git a/stdlib-mini/src/stdlib_mini.res b/runtime/src/stdlib_mini.res similarity index 100% rename from stdlib-mini/src/stdlib_mini.res rename to runtime/src/stdlib_mini.res diff --git a/stdlib-mini/rescript.json b/stdlib-mini/rescript.json deleted file mode 100644 index c822c39..0000000 --- a/stdlib-mini/rescript.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "name": "stdlib-mini", - "sources": { - "dir": "src", - "subdirs": true - }, - "bsc-flags": ["-nostdlib", "-nopervasives", "-bs-no-version-header"] -}