xbintsc 0.2.9 → 0.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +17 -2
- package/README.zh-CN.md +16 -2
- package/bin/xbintsc.js +49 -10
- package/dist/src/ast/expressions.d.ts +2 -0
- package/dist/src/binder/binder.d.ts +24 -98
- package/dist/src/binder/binder.js +13 -559
- package/dist/src/binder/binder.js.map +1 -1
- package/dist/src/binder/declarations.d.ts +16 -0
- package/dist/src/binder/declarations.js +168 -0
- package/dist/src/binder/declarations.js.map +1 -0
- package/dist/src/binder/helpers.d.ts +11 -0
- package/dist/src/binder/helpers.js +46 -0
- package/dist/src/binder/helpers.js.map +1 -0
- package/dist/src/binder/references.d.ts +21 -0
- package/dist/src/binder/references.js +349 -0
- package/dist/src/binder/references.js.map +1 -0
- package/dist/src/binder/types.d.ts +114 -0
- package/dist/src/binder/types.js +27 -0
- package/dist/src/binder/types.js.map +1 -0
- package/dist/src/cli/main.d.ts +1 -0
- package/dist/src/cli/main.js +40 -0
- package/dist/src/cli/main.js.map +1 -1
- package/dist/src/codegen/generator/calls/access.d.ts +13 -0
- package/dist/src/codegen/generator/calls/access.js +115 -0
- package/dist/src/codegen/generator/calls/access.js.map +1 -0
- package/dist/src/codegen/generator/calls/closures.d.ts +11 -0
- package/dist/src/codegen/generator/calls/closures.js +50 -0
- package/dist/src/codegen/generator/calls/closures.js.map +1 -0
- package/dist/src/codegen/generator/calls/invocation.d.ts +18 -0
- package/dist/src/codegen/generator/calls/invocation.js +242 -0
- package/dist/src/codegen/generator/calls/invocation.js.map +1 -0
- package/dist/src/codegen/generator/calls/literals.d.ts +10 -0
- package/dist/src/codegen/generator/calls/literals.js +69 -0
- package/dist/src/codegen/generator/calls/literals.js.map +1 -0
- package/dist/src/codegen/generator/calls/super.d.ts +10 -0
- package/dist/src/codegen/generator/calls/super.js +47 -0
- package/dist/src/codegen/generator/calls/super.js.map +1 -0
- package/dist/src/codegen/generator/calls.d.ts +15 -24
- package/dist/src/codegen/generator/calls.js +15 -482
- package/dist/src/codegen/generator/calls.js.map +1 -1
- package/dist/src/codegen/generator/context.d.ts +1 -1
- package/dist/src/codegen/generator/context.js +2 -2
- package/dist/src/codegen/generator/context.js.map +1 -1
- package/dist/src/codegen/generator/expressions/assignment.d.ts +13 -0
- package/dist/src/codegen/generator/expressions/assignment.js +203 -0
- package/dist/src/codegen/generator/expressions/assignment.js.map +1 -0
- package/dist/src/codegen/generator/expressions/operators.d.ts +14 -0
- package/dist/src/codegen/generator/expressions/operators.js +163 -0
- package/dist/src/codegen/generator/expressions/operators.js.map +1 -0
- package/dist/src/codegen/generator/expressions/primary.d.ts +17 -0
- package/dist/src/codegen/generator/expressions/primary.js +260 -0
- package/dist/src/codegen/generator/expressions/primary.js.map +1 -0
- package/dist/src/codegen/generator/expressions.d.ts +11 -21
- package/dist/src/codegen/generator/expressions.js +11 -494
- package/dist/src/codegen/generator/expressions.js.map +1 -1
- package/dist/src/codegen/generator/module.js +16 -4
- package/dist/src/codegen/generator/module.js.map +1 -1
- package/dist/src/codegen/generator/state.js +8 -0
- package/dist/src/codegen/generator/state.js.map +1 -1
- package/dist/src/codegen/generator/statements/control-flow.d.ts +14 -0
- package/dist/src/codegen/generator/statements/control-flow.js +199 -0
- package/dist/src/codegen/generator/statements/control-flow.js.map +1 -0
- package/dist/src/codegen/generator/statements/dispatch.d.ts +12 -0
- package/dist/src/codegen/generator/statements/dispatch.js +100 -0
- package/dist/src/codegen/generator/statements/dispatch.js.map +1 -0
- package/dist/src/codegen/generator/statements/loops.d.ts +13 -0
- package/dist/src/codegen/generator/statements/loops.js +152 -0
- package/dist/src/codegen/generator/statements/loops.js.map +1 -0
- package/dist/src/codegen/generator/statements/variables.d.ts +13 -0
- package/dist/src/codegen/generator/statements/variables.js +146 -0
- package/dist/src/codegen/generator/statements/variables.js.map +1 -0
- package/dist/src/codegen/generator/statements.d.ts +13 -21
- package/dist/src/codegen/generator/statements.js +13 -568
- package/dist/src/codegen/generator/statements.js.map +1 -1
- package/dist/src/codegen/generator/tables.js +7 -0
- package/dist/src/codegen/generator/tables.js.map +1 -1
- package/dist/src/codegen/values.d.ts +17 -17
- package/dist/src/codegen/values.js +21 -57
- package/dist/src/codegen/values.js.map +1 -1
- package/dist/src/diagnostics/diagnostic.d.ts +1 -0
- package/dist/src/diagnostics/diagnostic.js +1 -0
- package/dist/src/diagnostics/diagnostic.js.map +1 -1
- package/dist/src/diagnostics/source.d.ts +1 -1
- package/dist/src/diagnostics/source.js +7 -12
- package/dist/src/diagnostics/source.js.map +1 -1
- package/dist/src/driver/compiler.d.ts +4 -0
- package/dist/src/driver/compiler.js +51 -16
- package/dist/src/driver/compiler.js.map +1 -1
- package/dist/src/driver/index.d.ts +5 -2
- package/dist/src/driver/index.js +5 -2
- package/dist/src/driver/index.js.map +1 -1
- package/dist/src/driver/paths.d.ts +20 -0
- package/dist/src/driver/paths.js +49 -0
- package/dist/src/driver/paths.js.map +1 -1
- package/dist/src/driver/runtime-lib.d.ts +18 -0
- package/dist/src/driver/runtime-lib.js +31 -0
- package/dist/src/driver/runtime-lib.js.map +1 -0
- package/dist/src/driver/toolchain-download.d.ts +50 -0
- package/dist/src/driver/toolchain-download.js +76 -0
- package/dist/src/driver/toolchain-download.js.map +1 -0
- package/dist/src/driver/toolchain-provider.d.ts +33 -0
- package/dist/src/driver/toolchain-provider.js +71 -0
- package/dist/src/driver/toolchain-provider.js.map +1 -0
- package/dist/src/driver/toolchain.d.ts +9 -4
- package/dist/src/driver/toolchain.js +6 -10
- package/dist/src/driver/toolchain.js.map +1 -1
- package/dist/src/extensions/node/child_process/index.d.ts +4 -2
- package/dist/src/extensions/node/child_process/index.js +4 -2
- package/dist/src/extensions/node/child_process/index.js.map +1 -1
- package/dist/src/extensions/node/events/index.d.ts +10 -0
- package/dist/src/extensions/node/events/index.js +22 -0
- package/dist/src/extensions/node/events/index.js.map +1 -0
- package/dist/src/extensions/node/index.js +6 -0
- package/dist/src/extensions/node/index.js.map +1 -1
- package/dist/src/extensions/node/querystring/index.d.ts +10 -0
- package/dist/src/extensions/node/querystring/index.js +25 -0
- package/dist/src/extensions/node/querystring/index.js.map +1 -0
- package/dist/src/extensions/node/util/index.d.ts +11 -0
- package/dist/src/extensions/node/util/index.js +41 -0
- package/dist/src/extensions/node/util/index.js.map +1 -0
- package/dist/src/extensions/registry.d.ts +6 -0
- package/dist/src/extensions/registry.js.map +1 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/lexer/scanner/identifiers.d.ts +9 -0
- package/dist/src/lexer/scanner/identifiers.js +33 -0
- package/dist/src/lexer/scanner/identifiers.js.map +1 -0
- package/dist/src/lexer/scanner/numbers.d.ts +10 -0
- package/dist/src/lexer/scanner/numbers.js +89 -0
- package/dist/src/lexer/scanner/numbers.js.map +1 -0
- package/dist/src/lexer/scanner/punctuation.d.ts +9 -0
- package/dist/src/lexer/scanner/punctuation.js +151 -0
- package/dist/src/lexer/scanner/punctuation.js.map +1 -0
- package/dist/src/lexer/scanner/regex.d.ts +11 -0
- package/dist/src/lexer/scanner/regex.js +69 -0
- package/dist/src/lexer/scanner/regex.js.map +1 -0
- package/dist/src/lexer/scanner/strings.d.ts +13 -0
- package/dist/src/lexer/scanner/strings.js +118 -0
- package/dist/src/lexer/scanner/strings.js.map +1 -0
- package/dist/src/lexer/scanner.d.ts +20 -27
- package/dist/src/lexer/scanner.js +11 -415
- package/dist/src/lexer/scanner.js.map +1 -1
- package/dist/src/parser/declarations/classes.d.ts +14 -0
- package/dist/src/parser/declarations/classes.js +191 -0
- package/dist/src/parser/declarations/classes.js.map +1 -0
- package/dist/src/parser/declarations/functions.d.ts +17 -0
- package/dist/src/parser/declarations/functions.js +241 -0
- package/dist/src/parser/declarations/functions.js.map +1 -0
- package/dist/src/parser/declarations/type-members.d.ts +16 -0
- package/dist/src/parser/declarations/type-members.js +156 -0
- package/dist/src/parser/declarations/type-members.js.map +1 -0
- package/dist/src/parser/declarations.d.ts +13 -24
- package/dist/src/parser/declarations.js +13 -571
- package/dist/src/parser/declarations.js.map +1 -1
- package/dist/src/parser/helpers.js +13 -4
- package/dist/src/parser/helpers.js.map +1 -1
- package/dist/src/parser/literals.js +10 -1
- package/dist/src/parser/literals.js.map +1 -1
- package/dist/tests/codegen/llvm.test.js +24 -0
- package/dist/tests/codegen/llvm.test.js.map +1 -1
- package/dist/tests/driver/compiler.test.js +3 -0
- package/dist/tests/driver/compiler.test.js.map +1 -1
- package/dist/tests/driver/paths.test.d.ts +1 -0
- package/dist/tests/driver/paths.test.js +26 -0
- package/dist/tests/driver/paths.test.js.map +1 -0
- package/dist/tests/driver/toolchain-download.test.d.ts +1 -0
- package/dist/tests/driver/toolchain-download.test.js +38 -0
- package/dist/tests/driver/toolchain-download.test.js.map +1 -0
- package/dist/tests/driver/toolchain-provider.test.d.ts +1 -0
- package/dist/tests/driver/toolchain-provider.test.js +37 -0
- package/dist/tests/driver/toolchain-provider.test.js.map +1 -0
- package/dist/tests/e2e/compile-node.test.d.ts +7 -0
- package/dist/tests/e2e/compile-node.test.js +123 -0
- package/dist/tests/e2e/compile-node.test.js.map +1 -0
- package/dist/tests/e2e/compile.test.d.ts +4 -1
- package/dist/tests/e2e/compile.test.js +78 -130
- package/dist/tests/e2e/compile.test.js.map +1 -1
- package/dist/tests/e2e/harness.d.ts +36 -0
- package/dist/tests/e2e/harness.js +64 -0
- package/dist/tests/e2e/harness.js.map +1 -0
- package/dist/tests/e2e/node-modules.test.js +60 -0
- package/dist/tests/e2e/node-modules.test.js.map +1 -1
- package/dist/tests/extensions/registry.test.js +4 -0
- package/dist/tests/extensions/registry.test.js.map +1 -1
- package/package.json +5 -3
- package/runtime/ext_node/buffer/buffer.c +12 -552
- package/runtime/ext_node/buffer/parts/byte-access.inc +35 -0
- package/runtime/ext_node/buffer/parts/construction.inc +60 -0
- package/runtime/ext_node/buffer/parts/integer-io.inc +119 -0
- package/runtime/ext_node/buffer/parts/methods.inc +135 -0
- package/runtime/ext_node/buffer/parts/prototype.inc +54 -0
- package/runtime/ext_node/buffer/parts/search.inc +86 -0
- package/runtime/ext_node/buffer/parts/static-api.inc +58 -0
- package/runtime/ext_node/child_process/child_process.c +37 -3
- package/runtime/ext_node/events/events.c +285 -0
- package/runtime/ext_node/http/http.c +11 -736
- package/runtime/ext_node/http/parts/client.inc +290 -0
- package/runtime/ext_node/http/parts/helpers.inc +45 -0
- package/runtime/ext_node/http/parts/prototypes.inc +57 -0
- package/runtime/ext_node/http/parts/response.inc +149 -0
- package/runtime/ext_node/http/parts/server.inc +133 -0
- package/runtime/ext_node/http/parts/string-builder.inc +58 -0
- package/runtime/ext_node/net/net.c +12 -504
- package/runtime/ext_node/net/parts/construction.inc +22 -0
- package/runtime/ext_node/net/parts/platform.inc +60 -0
- package/runtime/ext_node/net/parts/prototypes.inc +35 -0
- package/runtime/ext_node/net/parts/read-loop.inc +58 -0
- package/runtime/ext_node/net/parts/server.inc +131 -0
- package/runtime/ext_node/net/parts/socket-methods.inc +100 -0
- package/runtime/ext_node/net/parts/static-api.inc +93 -0
- package/runtime/ext_node/querystring/querystring.c +251 -0
- package/runtime/ext_node/util/util.c +456 -0
- package/runtime/rt.h +8 -2
- package/runtime/rt_internal.h +34 -0
- package/runtime/xt_bigint/arithmetic.inc +135 -0
- package/runtime/xt_bigint/bits.inc +98 -0
- package/runtime/xt_bigint/bitwise.inc +103 -0
- package/runtime/xt_bigint/compare.inc +30 -0
- package/runtime/xt_bigint/conversions.inc +51 -0
- package/runtime/xt_bigint/division.inc +85 -0
- package/runtime/xt_bigint/format.inc +145 -0
- package/runtime/xt_bigint/helpers.inc +92 -0
- package/runtime/xt_bigint/magnitude.inc +88 -0
- package/runtime/xt_bigint/public.inc +59 -0
- package/runtime/xt_bigint/small-arithmetic.inc +58 -0
- package/runtime/xt_bigint.c +42 -0
- package/runtime/xt_builtins.c +1 -0
- package/runtime/xt_io.c +7 -0
- package/runtime/xt_stdlib/arrays.inc +161 -0
- package/runtime/xt_stdlib/dispatch.inc +116 -0
- package/runtime/xt_stdlib/helpers.inc +23 -0
- package/runtime/xt_stdlib/math.inc +72 -0
- package/runtime/xt_stdlib/strings.inc +178 -0
- package/runtime/xt_stdlib.c +10 -549
- package/runtime/xt_stdlib2/array-statics.inc +37 -0
- package/runtime/xt_stdlib2/arrays.inc +189 -0
- package/runtime/xt_stdlib2/container.inc +23 -0
- package/runtime/xt_stdlib2/date.inc +72 -0
- package/runtime/xt_stdlib2/error.inc +22 -0
- package/runtime/xt_stdlib2/helpers.inc +43 -0
- package/runtime/xt_stdlib2/json.inc +213 -0
- package/runtime/xt_stdlib2/map.inc +95 -0
- package/runtime/xt_stdlib2/number-string-statics.inc +73 -0
- package/runtime/xt_stdlib2/numbers.inc +38 -0
- package/runtime/xt_stdlib2/objects.inc +41 -0
- package/runtime/xt_stdlib2/regexp-match.inc +204 -0
- package/runtime/xt_stdlib2/regexp.inc +20 -0
- package/runtime/xt_stdlib2/set.inc +105 -0
- package/runtime/xt_stdlib2/strings.inc +94 -0
- package/runtime/xt_stdlib2.c +19 -1278
- package/runtime/xt_values.c +155 -12
- package/scripts/build-runtime.ts +109 -0
- package/scripts/fetch-toolchain.ts +101 -0
- package/scripts/package-release.ts +192 -0
- package/src/ast/expressions.ts +2 -0
- package/src/binder/binder.ts +40 -725
- package/src/binder/declarations.ts +203 -0
- package/src/binder/helpers.ts +47 -0
- package/src/binder/references.ts +410 -0
- package/src/binder/types.ts +134 -0
- package/src/cli/main.ts +43 -0
- package/src/codegen/generator/calls/access.ts +139 -0
- package/src/codegen/generator/calls/closures.ts +60 -0
- package/src/codegen/generator/calls/invocation.ts +282 -0
- package/src/codegen/generator/calls/literals.ts +77 -0
- package/src/codegen/generator/calls/super.ts +61 -0
- package/src/codegen/generator/calls.ts +30 -552
- package/src/codegen/generator/context.ts +2 -2
- package/src/codegen/generator/expressions/assignment.ts +226 -0
- package/src/codegen/generator/expressions/operators.ts +182 -0
- package/src/codegen/generator/expressions/primary.ts +304 -0
- package/src/codegen/generator/expressions.ts +22 -553
- package/src/codegen/generator/module.ts +14 -4
- package/src/codegen/generator/state.ts +8 -0
- package/src/codegen/generator/statements/control-flow.ts +225 -0
- package/src/codegen/generator/statements/dispatch.ts +122 -0
- package/src/codegen/generator/statements/loops.ts +173 -0
- package/src/codegen/generator/statements/variables.ts +152 -0
- package/src/codegen/generator/statements.ts +26 -612
- package/src/codegen/generator/tables.ts +7 -0
- package/src/codegen/values.ts +22 -57
- package/src/diagnostics/diagnostic.ts +1 -0
- package/src/diagnostics/source.ts +7 -12
- package/src/driver/compiler.ts +61 -18
- package/src/driver/index.ts +17 -2
- package/src/driver/paths.ts +54 -0
- package/src/driver/runtime-lib.ts +32 -0
- package/src/driver/toolchain-download.ts +108 -0
- package/src/driver/toolchain-provider.ts +91 -0
- package/src/driver/toolchain.ts +29 -11
- package/src/extensions/node/child_process/index.ts +4 -2
- package/src/extensions/node/events/index.ts +27 -0
- package/src/extensions/node/index.ts +6 -0
- package/src/extensions/node/querystring/index.ts +29 -0
- package/src/extensions/node/util/index.ts +48 -0
- package/src/extensions/registry.ts +6 -0
- package/src/index.ts +1 -0
- package/src/lexer/scanner/identifiers.ts +37 -0
- package/src/lexer/scanner/numbers.ts +84 -0
- package/src/lexer/scanner/punctuation.ts +132 -0
- package/src/lexer/scanner/regex.ts +79 -0
- package/src/lexer/scanner/strings.ts +128 -0
- package/src/lexer/scanner.ts +35 -401
- package/src/parser/declarations/classes.ts +215 -0
- package/src/parser/declarations/functions.ts +254 -0
- package/src/parser/declarations/type-members.ts +181 -0
- package/src/parser/declarations.ts +32 -609
- package/src/parser/helpers.ts +13 -6
- package/src/parser/literals.ts +10 -1
- package/scripts/build-runtime.mjs +0 -55
|
@@ -66,6 +66,7 @@ export const GLOBAL_FUNCTIONS = {
|
|
|
66
66
|
Number: "xt_number_ctor",
|
|
67
67
|
String: "xt_string_ctor",
|
|
68
68
|
Boolean: "xt_boolean_ctor",
|
|
69
|
+
BigInt: "xt_bigint_ctor",
|
|
69
70
|
};
|
|
70
71
|
/** Global functions that are also usable as first-class values, each mapped to
|
|
71
72
|
* a runtime trampoline with the closure ABI. */
|
|
@@ -77,6 +78,7 @@ export const BUILTIN_FUNCTION_VALUES = {
|
|
|
77
78
|
Number: "xt_builtin_value_number",
|
|
78
79
|
String: "xt_builtin_value_string",
|
|
79
80
|
Boolean: "xt_builtin_value_boolean",
|
|
81
|
+
BigInt: "xt_builtin_value_bigint",
|
|
80
82
|
};
|
|
81
83
|
/** Global namespaces whose static methods map to runtime dispatchers. */
|
|
82
84
|
export const NAMESPACE_STATICS = {
|
|
@@ -86,6 +88,7 @@ export const NAMESPACE_STATICS = {
|
|
|
86
88
|
Object: "xt_object_static",
|
|
87
89
|
Number: "xt_number_static",
|
|
88
90
|
String: "xt_string_static",
|
|
91
|
+
BigInt: "xt_bigint_static",
|
|
89
92
|
Date: "xt_date_static",
|
|
90
93
|
Promise: "xt_promise_static",
|
|
91
94
|
path: "xt_path_static",
|
|
@@ -101,6 +104,9 @@ export const NAMESPACE_STATICS = {
|
|
|
101
104
|
net: "xt_net_static",
|
|
102
105
|
dgram: "xt_dgram_static",
|
|
103
106
|
http: "xt_http_static",
|
|
107
|
+
events: "xt_events_static",
|
|
108
|
+
util: "xt_util_static",
|
|
109
|
+
querystring: "xt_querystring_static",
|
|
104
110
|
};
|
|
105
111
|
/** Namespace identifiers whose property access maps to a runtime getter. */
|
|
106
112
|
export const NAMESPACE_PROPERTIES = {
|
|
@@ -124,6 +130,7 @@ export const CTOR_FUNCTIONS = {
|
|
|
124
130
|
PassThrough: "xt_pass_through_ctor",
|
|
125
131
|
Socket: "xt_net_socket_ctor",
|
|
126
132
|
Server: "xt_net_server_ctor",
|
|
133
|
+
EventEmitter: "xt_event_emitter_ctor",
|
|
127
134
|
};
|
|
128
135
|
export const BUILTIN_METHODS = new Set([
|
|
129
136
|
"push", "pop", "shift", "unshift", "join", "slice", "indexOf", "includes", "map", "forEach", "filter",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tables.js","sourceRoot":"","sources":["../../../../src/codegen/generator/tables.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"tables.js","sourceRoot":"","sources":["../../../../src/codegen/generator/tables.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,25 +6,25 @@
|
|
|
6
6
|
* emits these constants directly into LLVM IR, so this module (together with
|
|
7
7
|
* runtime/rt.h) is the single source of truth for the representation.
|
|
8
8
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
9
|
+
* BigInts are available both to the host (Node) running the compiler and to
|
|
10
|
+
* the compiler once self-hosted, so the constants below are written as BigInt
|
|
11
|
+
* literals and `numberLiteral` derives a double's raw bits with BigInt
|
|
12
|
+
* arithmetic. `i64` normalises any 64-bit pattern to the signed decimal form
|
|
13
|
+
* LLVM expects.
|
|
13
14
|
*/
|
|
14
|
-
|
|
15
|
-
export declare const
|
|
16
|
-
|
|
17
|
-
export declare const
|
|
18
|
-
export declare const
|
|
19
|
-
export declare const
|
|
20
|
-
export declare const
|
|
21
|
-
export declare const
|
|
22
|
-
export declare const
|
|
23
|
-
export declare const
|
|
24
|
-
export declare const
|
|
25
|
-
export declare const XT_FUNCTION = "-281474976710656";
|
|
15
|
+
export declare const XT_TAG_MASK = 18446462598732840960n;
|
|
16
|
+
export declare const XT_NUMBER_MASK = 18444492273895866368n;
|
|
17
|
+
export declare const XT_UNDEFINED = 18444492273895866368n;
|
|
18
|
+
export declare const XT_NULL = 18444773748872577024n;
|
|
19
|
+
export declare const XT_FALSE = 18445055223849287680n;
|
|
20
|
+
export declare const XT_TRUE = 18445055223849287681n;
|
|
21
|
+
export declare const XT_BIGINT = 18445336698825998336n;
|
|
22
|
+
export declare const XT_STRING = 18445618173802708992n;
|
|
23
|
+
export declare const XT_OBJECT = 18445899648779419648n;
|
|
24
|
+
export declare const XT_ARRAY = 18446181123756130304n;
|
|
25
|
+
export declare const XT_FUNCTION = 18446462598732840960n;
|
|
26
26
|
/** Render a 64-bit constant the way LLVM expects signed i64 literals. */
|
|
27
|
-
export declare function i64(value:
|
|
27
|
+
export declare function i64(value: bigint): string;
|
|
28
28
|
/** The raw 64 bits of an IEEE-754 double, as a signed i64 literal. */
|
|
29
29
|
export declare function numberLiteral(value: number): string;
|
|
30
30
|
export declare function booleanLiteral(value: boolean): string;
|
|
@@ -6,31 +6,31 @@
|
|
|
6
6
|
* emits these constants directly into LLVM IR, so this module (together with
|
|
7
7
|
* runtime/rt.h) is the single source of truth for the representation.
|
|
8
8
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
9
|
+
* BigInts are available both to the host (Node) running the compiler and to
|
|
10
|
+
* the compiler once self-hosted, so the constants below are written as BigInt
|
|
11
|
+
* literals and `numberLiteral` derives a double's raw bits with BigInt
|
|
12
|
+
* arithmetic. `i64` normalises any 64-bit pattern to the signed decimal form
|
|
13
|
+
* LLVM expects.
|
|
13
14
|
*/
|
|
14
|
-
|
|
15
|
-
export const
|
|
16
|
-
|
|
17
|
-
export const
|
|
18
|
-
export const
|
|
19
|
-
export const
|
|
20
|
-
export const
|
|
21
|
-
export const
|
|
22
|
-
export const
|
|
23
|
-
export const
|
|
24
|
-
export const
|
|
25
|
-
export const XT_FUNCTION = "-281474976710656"; // 0xffff000000000000
|
|
15
|
+
export const XT_TAG_MASK = 0xffff000000000000n;
|
|
16
|
+
export const XT_NUMBER_MASK = 0xfff8000000000000n;
|
|
17
|
+
export const XT_UNDEFINED = 0xfff8000000000000n;
|
|
18
|
+
export const XT_NULL = 0xfff9000000000000n;
|
|
19
|
+
export const XT_FALSE = 0xfffa000000000000n;
|
|
20
|
+
export const XT_TRUE = 0xfffa000000000001n;
|
|
21
|
+
export const XT_BIGINT = 0xfffb000000000000n;
|
|
22
|
+
export const XT_STRING = 0xfffc000000000000n;
|
|
23
|
+
export const XT_OBJECT = 0xfffd000000000000n;
|
|
24
|
+
export const XT_ARRAY = 0xfffe000000000000n;
|
|
25
|
+
export const XT_FUNCTION = 0xffff000000000000n;
|
|
26
26
|
/** Render a 64-bit constant the way LLVM expects signed i64 literals. */
|
|
27
27
|
export function i64(value) {
|
|
28
|
-
return value;
|
|
28
|
+
return BigInt.asIntN(64, value).toString();
|
|
29
29
|
}
|
|
30
30
|
/** The raw 64 bits of an IEEE-754 double, as a signed i64 literal. */
|
|
31
31
|
export function numberLiteral(value) {
|
|
32
32
|
if (value !== value)
|
|
33
|
-
return
|
|
33
|
+
return i64(0x7ff8000000000000n);
|
|
34
34
|
const negative = value < 0 || (value === 0 && 1 / value < 0);
|
|
35
35
|
const abs = negative ? -value : value;
|
|
36
36
|
let high;
|
|
@@ -64,46 +64,10 @@ export function numberLiteral(value) {
|
|
|
64
64
|
}
|
|
65
65
|
if (negative)
|
|
66
66
|
high += 0x80000000;
|
|
67
|
-
|
|
67
|
+
const bits = (BigInt(high >>> 0) << 32n) | BigInt(low >>> 0);
|
|
68
|
+
return i64(bits);
|
|
68
69
|
}
|
|
69
70
|
export function booleanLiteral(value) {
|
|
70
|
-
return value ? XT_TRUE : XT_FALSE;
|
|
71
|
-
}
|
|
72
|
-
/** Two's-complement (high, low) 32-bit halves as a signed decimal string. */
|
|
73
|
-
function signedDecimal(high, low) {
|
|
74
|
-
if (high >= 0x80000000) {
|
|
75
|
-
let h = (~high) >>> 0;
|
|
76
|
-
let l = (~low) >>> 0;
|
|
77
|
-
l = (l + 1) >>> 0;
|
|
78
|
-
if (l === 0)
|
|
79
|
-
h = (h + 1) >>> 0;
|
|
80
|
-
return "-" + unsignedDecimal(h, l);
|
|
81
|
-
}
|
|
82
|
-
return unsignedDecimal(high, low);
|
|
83
|
-
}
|
|
84
|
-
/** Unsigned 64-bit `high * 2^32 + low` as a decimal string. */
|
|
85
|
-
function unsignedDecimal(high, low) {
|
|
86
|
-
const digits = [];
|
|
87
|
-
let h = high;
|
|
88
|
-
if (h === 0)
|
|
89
|
-
digits.push(0);
|
|
90
|
-
while (h > 0) {
|
|
91
|
-
digits.push(h % 10);
|
|
92
|
-
h = Math.floor(h / 10);
|
|
93
|
-
}
|
|
94
|
-
let carry = low;
|
|
95
|
-
for (let i = 0; i < digits.length; i++) {
|
|
96
|
-
const current = digits[i] * 4294967296 + carry;
|
|
97
|
-
digits[i] = current % 10;
|
|
98
|
-
carry = Math.floor(current / 10);
|
|
99
|
-
}
|
|
100
|
-
while (carry > 0) {
|
|
101
|
-
digits.push(carry % 10);
|
|
102
|
-
carry = Math.floor(carry / 10);
|
|
103
|
-
}
|
|
104
|
-
let out = "";
|
|
105
|
-
for (let i = digits.length - 1; i >= 0; i--)
|
|
106
|
-
out += digits[i];
|
|
107
|
-
return out;
|
|
71
|
+
return i64(value ? XT_TRUE : XT_FALSE);
|
|
108
72
|
}
|
|
109
73
|
//# sourceMappingURL=values.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"values.js","sourceRoot":"","sources":["../../../src/codegen/values.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"values.js","sourceRoot":"","sources":["../../../src/codegen/values.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,6 +20,7 @@ export var DiagnosticCode;
|
|
|
20
20
|
DiagnosticCode[DiagnosticCode["DuplicateIdentifier"] = 3001] = "DuplicateIdentifier";
|
|
21
21
|
DiagnosticCode[DiagnosticCode["CannotFindName"] = 3002] = "CannotFindName";
|
|
22
22
|
DiagnosticCode[DiagnosticCode["IllegalRedeclaration"] = 3003] = "IllegalRedeclaration";
|
|
23
|
+
DiagnosticCode[DiagnosticCode["CannotAssignToConst"] = 3004] = "CannotAssignToConst";
|
|
23
24
|
// Checker 4xxx
|
|
24
25
|
DiagnosticCode[DiagnosticCode["TypeMismatch"] = 4001] = "TypeMismatch";
|
|
25
26
|
DiagnosticCode[DiagnosticCode["NotCallable"] = 4002] = "NotCallable";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagnostic.js","sourceRoot":"","sources":["../../../src/diagnostics/diagnostic.ts"],"names":[],"mappings":"AAIA,gEAAgE;AAChE,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"diagnostic.js","sourceRoot":"","sources":["../../../src/diagnostics/diagnostic.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,6 +38,6 @@ export declare class SourceFile {
|
|
|
38
38
|
* and stable across platforms which is exactly what the incremental cache
|
|
39
39
|
* needs. Collision resistance is not a security property here.
|
|
40
40
|
*/
|
|
41
|
-
export declare function hashText(text: string, seed?:
|
|
41
|
+
export declare function hashText(text: string, seed?: bigint): string;
|
|
42
42
|
/** Combine several hashes/strings into one stable fingerprint. */
|
|
43
43
|
export declare function combineHashes(parts: readonly string[]): string;
|
|
@@ -56,20 +56,15 @@ export class SourceFile {
|
|
|
56
56
|
* and stable across platforms which is exactly what the incremental cache
|
|
57
57
|
* needs. Collision resistance is not a security property here.
|
|
58
58
|
*/
|
|
59
|
-
export function hashText(text, seed =
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
let b = (0x84222325 ^ seed) >>> 0;
|
|
64
|
-
const prime = 0x01000193;
|
|
59
|
+
export function hashText(text, seed = 0xcbf29ce484222325n) {
|
|
60
|
+
let hash = seed;
|
|
61
|
+
const prime = 0x100000001b3n;
|
|
62
|
+
const mask = 0xffffffffffffffffn;
|
|
65
63
|
for (let i = 0; i < text.length; i++) {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
a = Math.imul(a ^ (code >>> 8), prime) >>> 0;
|
|
69
|
-
b = Math.imul(b ^ (code >>> 8), prime) >>> 0;
|
|
70
|
-
b = Math.imul(b ^ (code & 0xff), prime) >>> 0;
|
|
64
|
+
hash ^= BigInt(text.charCodeAt(i));
|
|
65
|
+
hash = (hash * prime) & mask;
|
|
71
66
|
}
|
|
72
|
-
return
|
|
67
|
+
return hash.toString(16).padStart(16, "0");
|
|
73
68
|
}
|
|
74
69
|
/** Combine several hashes/strings into one stable fingerprint. */
|
|
75
70
|
export function combineHashes(parts) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source.js","sourceRoot":"","sources":["../../../src/diagnostics/source.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAsBH,MAAM,OAAO,UAAU;IACZ,QAAQ,CAAS;IACjB,IAAI,CAAS;IACtB,qDAAqD;IAC5C,IAAI,CAAS;IACd,UAAU,CAAuB;IAEzC,YAAY,QAAgB,EAAE,IAAY;QACxC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,2EAA2E;QAC3E,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACxE,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAC1B,CAAC;IAEO,aAAa;QACnB,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;YACnB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrC,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,QAAQ;oBAAE,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC7D,CAAC;YACD,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;QAC3B,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,UAAU,CAAC,MAAc;QACvB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACpC,wDAAwD;QACxD,IAAI,EAAE,GAAG,CAAC,CAAC;QACX,IAAI,EAAE,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QAC3B,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/B,IAAI,MAAM,CAAC,GAAG,CAAE,IAAI,OAAO;gBAAE,EAAE,GAAG,GAAG,CAAC;;gBACjC,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;QACpB,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,EAAE,CAAE,GAAG,CAAC,EAAE,CAAC;IAC7D,CAAC;IAED,sDAAsD;IACtD,KAAK,CAAC,KAAgB;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IACjD,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,IAAY,EAAE,IAAI,GAAG,
|
|
1
|
+
{"version":3,"file":"source.js","sourceRoot":"","sources":["../../../src/diagnostics/source.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,6 +23,8 @@ export interface BuildOptions {
|
|
|
23
23
|
readonly extensions?: ExtensionRegistry;
|
|
24
24
|
readonly runner?: Runner;
|
|
25
25
|
readonly clang?: string;
|
|
26
|
+
/** Prefer a prebuilt `runtime/lib/<os>-<arch>/*.a` archive when present (default true). */
|
|
27
|
+
readonly preferPrebuilt?: boolean;
|
|
26
28
|
readonly write?: boolean;
|
|
27
29
|
}
|
|
28
30
|
export interface BuildResult {
|
|
@@ -44,3 +46,5 @@ export declare function compileString(source: string, fileName?: string, extensi
|
|
|
44
46
|
*/
|
|
45
47
|
export declare function compileEntry(entryPath: string, extensions?: ExtensionRegistry): CompileStringResult;
|
|
46
48
|
export declare function build(entryPath: string, options?: BuildOptions): BuildResult;
|
|
49
|
+
/** Core runtime translation units (each compiled and cached independently). */
|
|
50
|
+
export declare const RUNTIME_SOURCES: readonly ["xt_alloc.c", "xt_values.c", "xt_bigint.c", "xt_containers.c", "xt_stdlib.c", "xt_stdlib2.c", "xt_promise.c", "xt_loop.c", "xt_builtins.c", "xt_io.c"];
|
|
@@ -17,7 +17,9 @@ import { bundleModules } from "./modules.js";
|
|
|
17
17
|
import { createDefaultRegistry } from "../extensions/registry.js";
|
|
18
18
|
import { BuildCache, hashParts } from "./cache.js";
|
|
19
19
|
import { findRuntimeDir } from "./paths.js";
|
|
20
|
-
import {
|
|
20
|
+
import { findRuntimeLibrary } from "./runtime-lib.js";
|
|
21
|
+
import { resolveToolchain } from "./toolchain-provider.js";
|
|
22
|
+
import { compileC, compileIr, link, realRunner, } from "./toolchain.js";
|
|
21
23
|
export const COMPILER_VERSION = "0.1.0";
|
|
22
24
|
/** Compile TypeScript source text to LLVM IR without touching the toolchain. */
|
|
23
25
|
export function compileString(source, fileName = "input.ts", extensions) {
|
|
@@ -129,32 +131,41 @@ export function build(entryPath, options = {}) {
|
|
|
129
131
|
return { outputPath, irPath, cached: false, diagnostics: [], ir };
|
|
130
132
|
}
|
|
131
133
|
// -- toolchain -----------------------------------------------------------
|
|
132
|
-
const
|
|
133
|
-
|
|
134
|
+
const toolchain = options.clang
|
|
135
|
+
? { clang: options.clang, linkerArgs: [], env: {} }
|
|
136
|
+
: resolveToolchain(runner);
|
|
137
|
+
const clang = toolchain.clang;
|
|
134
138
|
mkdirSync(cacheDir, { recursive: true });
|
|
135
|
-
const { runtimeObjects, extensionObjects } = ensureRuntimeObjects(runner, clang, runtimeDir, cacheDir, registry);
|
|
136
139
|
const objectPath = emit === "obj" ? outputPath : resolve(outDir, baseName + ".o");
|
|
137
|
-
compileIr(runner, { clang, irPath, objectPath, optimize });
|
|
140
|
+
compileIr(runner, { clang, irPath, objectPath, optimize, env: toolchain.env });
|
|
138
141
|
if (emit === "obj") {
|
|
139
142
|
cache.record(cacheKey, outputs);
|
|
140
143
|
cache.save();
|
|
141
144
|
return { outputPath, irPath, cached: false, diagnostics: [], ir };
|
|
142
145
|
}
|
|
146
|
+
const runtimeDir = findRuntimeDir();
|
|
147
|
+
const { runtimeObjects, extensionObjects } = ensureRuntimeObjects(runner, clang, runtimeDir, cacheDir, registry, options.preferPrebuilt ?? true, toolchain.env);
|
|
143
148
|
link(runner, {
|
|
144
149
|
clang,
|
|
145
150
|
objectPaths: [objectPath, ...runtimeObjects, ...extensionObjects],
|
|
146
151
|
outputPath,
|
|
147
|
-
linkerFlags: [
|
|
152
|
+
linkerFlags: [
|
|
153
|
+
...toolchain.linkerArgs,
|
|
154
|
+
...(process.platform === "win32" ? ["-lws2_32"] : ["-lm"]),
|
|
155
|
+
...registry.linkerFlags(),
|
|
156
|
+
],
|
|
148
157
|
optimize,
|
|
158
|
+
env: toolchain.env,
|
|
149
159
|
});
|
|
150
160
|
cache.record(cacheKey, outputs);
|
|
151
161
|
cache.save();
|
|
152
162
|
return { outputPath, irPath, cached: false, diagnostics: [], ir };
|
|
153
163
|
}
|
|
154
164
|
/** Core runtime translation units (each compiled and cached independently). */
|
|
155
|
-
const RUNTIME_SOURCES = [
|
|
165
|
+
export const RUNTIME_SOURCES = [
|
|
156
166
|
"xt_alloc.c",
|
|
157
167
|
"xt_values.c",
|
|
168
|
+
"xt_bigint.c",
|
|
158
169
|
"xt_containers.c",
|
|
159
170
|
"xt_stdlib.c",
|
|
160
171
|
"xt_stdlib2.c",
|
|
@@ -166,17 +177,22 @@ const RUNTIME_SOURCES = [
|
|
|
166
177
|
/**
|
|
167
178
|
* Compile the core runtime and every extension source, reusing cached object
|
|
168
179
|
* files keyed on the C source hash. Returns the object paths to link.
|
|
180
|
+
*
|
|
181
|
+
* When `preferPrebuilt` is set, a shipped static archive
|
|
182
|
+
* (`runtime/lib/<os>-<arch>/{core,ext_<name>}.a`) is used instead of compiling
|
|
183
|
+
* that group's C sources. Missing archives fall back to compiling the sources.
|
|
169
184
|
*/
|
|
170
|
-
function ensureRuntimeObjects(runner, clang, runtimeDir, cacheDir, registry) {
|
|
171
|
-
/* Runtime objects depend on the shared headers (rt.h/rt_internal.h/...)
|
|
172
|
-
|
|
185
|
+
function ensureRuntimeObjects(runner, clang, runtimeDir, cacheDir, registry, preferPrebuilt, env) {
|
|
186
|
+
/* Runtime objects depend on the shared headers (rt.h/rt_internal.h/...) and
|
|
187
|
+
the `#include`d implementation fragments (`.inc`), so any change to them
|
|
188
|
+
must invalidate every cached object. Hash them all. */
|
|
173
189
|
const headerParts = [];
|
|
174
190
|
const collectHeaders = (dir) => {
|
|
175
191
|
for (const entry of readdirSync(dir, { withFileTypes: true })) {
|
|
176
192
|
const full = join(dir, entry.name);
|
|
177
193
|
if (entry.isDirectory())
|
|
178
194
|
collectHeaders(full);
|
|
179
|
-
else if (entry.name.endsWith(".h"))
|
|
195
|
+
else if (entry.name.endsWith(".h") || entry.name.endsWith(".inc"))
|
|
180
196
|
headerParts.push(readFileSync(full, "utf8"));
|
|
181
197
|
}
|
|
182
198
|
};
|
|
@@ -187,14 +203,33 @@ function ensureRuntimeObjects(runner, clang, runtimeDir, cacheDir, registry) {
|
|
|
187
203
|
const key = hashParts(["runtime", COMPILER_VERSION, tag, headerStamp, body, clang, process.platform]);
|
|
188
204
|
const objectPath = join(cacheDir, `${tag}-${key}.o`);
|
|
189
205
|
if (!existsSync(objectPath)) {
|
|
190
|
-
compileC(runner, clang, sourcePath, objectPath, runtimeDir);
|
|
206
|
+
compileC(runner, clang, sourcePath, objectPath, runtimeDir, env);
|
|
191
207
|
}
|
|
192
208
|
return objectPath;
|
|
193
209
|
};
|
|
194
|
-
const
|
|
195
|
-
const
|
|
196
|
-
|
|
197
|
-
.map((
|
|
210
|
+
const coreArchive = preferPrebuilt ? findRuntimeLibrary("core") : undefined;
|
|
211
|
+
const runtimeObjects = coreArchive
|
|
212
|
+
? [coreArchive]
|
|
213
|
+
: RUNTIME_SOURCES.map((source) => compileOne(join(runtimeDir, source), basename(source, ".c")));
|
|
214
|
+
const extensionObjects = [];
|
|
215
|
+
const seen = new Set();
|
|
216
|
+
for (const extension of registry.all()) {
|
|
217
|
+
const sources = extension.runtimeSources ? extension.runtimeSources() : [];
|
|
218
|
+
if (sources.length === 0)
|
|
219
|
+
continue;
|
|
220
|
+
const archive = preferPrebuilt ? findRuntimeLibrary(`ext_${extension.name}`) : undefined;
|
|
221
|
+
if (archive) {
|
|
222
|
+
extensionObjects.push(archive);
|
|
223
|
+
continue;
|
|
224
|
+
}
|
|
225
|
+
for (const sourcePath of sources) {
|
|
226
|
+
const dedupeKey = resolve(sourcePath);
|
|
227
|
+
if (seen.has(dedupeKey))
|
|
228
|
+
continue;
|
|
229
|
+
seen.add(dedupeKey);
|
|
230
|
+
extensionObjects.push(compileOne(sourcePath, `ext_${extensionObjects.length}_${basename(sourcePath, ".c")}`));
|
|
231
|
+
}
|
|
232
|
+
}
|
|
198
233
|
return { runtimeObjects, extensionObjects };
|
|
199
234
|
}
|
|
200
235
|
//# sourceMappingURL=compiler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../../src/driver/compiler.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC1F,OAAO,EAAE,QAAQ,EAAW,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACtE,OAAO,EAAE,aAAa,EAAmB,MAAM,8BAA8B,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,qBAAqB,EAA0B,MAAM,2BAA2B,CAAC;AAC1F,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EACL,QAAQ,EACR,SAAS,EACT,
|
|
1
|
+
{"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../../src/driver/compiler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
export { build, compileString, COMPILER_VERSION, type BuildOptions, type BuildResult, type EmitKind } from "./compiler.js";
|
|
2
2
|
export { BuildCache, hashParts, hashString } from "./cache.js";
|
|
3
|
-
export { findRuntimeDir, findPackageRoot } from "./paths.js";
|
|
4
|
-
export {
|
|
3
|
+
export { findRuntimeDir, findPackageRoot, findVendorDir, vendorRootDir, platformSlug, releaseArchiveBase, releaseArchiveExtension } from "./paths.js";
|
|
4
|
+
export { toolchainDownload, toolchainSupportLibraries, LLVM_VERSION, LLVM_MINGW_VERSION, type ToolchainDownload, type SupportLibrary, } from "./toolchain-download.js";
|
|
5
|
+
export { findRuntimeLibrary, runtimeLibDir } from "./runtime-lib.js";
|
|
6
|
+
export { findClang, realRunner, ToolchainError, type Runner, } from "./toolchain.js";
|
|
7
|
+
export { resolveToolchain, type ResolvedToolchain, type ToolchainSource } from "./toolchain-provider.js";
|
package/dist/src/driver/index.js
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
export { build, compileString, COMPILER_VERSION } from "./compiler.js";
|
|
2
2
|
export { BuildCache, hashParts, hashString } from "./cache.js";
|
|
3
|
-
export { findRuntimeDir, findPackageRoot } from "./paths.js";
|
|
4
|
-
export {
|
|
3
|
+
export { findRuntimeDir, findPackageRoot, findVendorDir, vendorRootDir, platformSlug, releaseArchiveBase, releaseArchiveExtension } from "./paths.js";
|
|
4
|
+
export { toolchainDownload, toolchainSupportLibraries, LLVM_VERSION, LLVM_MINGW_VERSION, } from "./toolchain-download.js";
|
|
5
|
+
export { findRuntimeLibrary, runtimeLibDir } from "./runtime-lib.js";
|
|
6
|
+
export { findClang, realRunner, ToolchainError, } from "./toolchain.js";
|
|
7
|
+
export { resolveToolchain } from "./toolchain-provider.js";
|
|
5
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/driver/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAsD,MAAM,eAAe,CAAC;AAC3H,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/driver/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAsD,MAAM,eAAe,CAAC;AAC3H,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,aAAa,EAAE,YAAY,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AACtJ,OAAO,EACL,iBAAiB,EACjB,yBAAyB,EACzB,YAAY,EACZ,kBAAkB,GAGnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EACL,SAAS,EACT,UAAU,EACV,cAAc,GAEf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAgD,MAAM,yBAAyB,CAAC"}
|
|
@@ -2,3 +2,23 @@
|
|
|
2
2
|
/** Directory containing `rt.h` and the runtime/ext C sources. */
|
|
3
3
|
export declare function findRuntimeDir(): string;
|
|
4
4
|
export declare function findPackageRoot(): string;
|
|
5
|
+
/** `<package>/vendor` — where a bundled toolchain is assembled (may not exist). */
|
|
6
|
+
export declare function vendorRootDir(): string;
|
|
7
|
+
/** Platform-architecture slug, e.g. `darwin-arm64`, `linux-x64`, `win32-x64`. */
|
|
8
|
+
export declare function platformSlug(): string;
|
|
9
|
+
/**
|
|
10
|
+
* Base name (no extension) of a packaged release archive, e.g.
|
|
11
|
+
* `xbintsc-linux-x64`. Matches the top-level directory inside the archive.
|
|
12
|
+
*/
|
|
13
|
+
export declare function releaseArchiveBase(platform?: string, arch?: string): string;
|
|
14
|
+
/**
|
|
15
|
+
* Extension for a release archive. `.tar.zst` when a `zstd` binary is available
|
|
16
|
+
* (smaller, faster), otherwise the universally supported `.tar.gz`.
|
|
17
|
+
*/
|
|
18
|
+
export declare function releaseArchiveExtension(useZstd: boolean): string;
|
|
19
|
+
/**
|
|
20
|
+
* Directory that may hold a toolchain shipped next to the package:
|
|
21
|
+
* `<package>/vendor/<os>-<arch>` (or a generic `vendor/`). Undefined when none
|
|
22
|
+
* is present, in which case the driver falls back to the system PATH.
|
|
23
|
+
*/
|
|
24
|
+
export declare function findVendorDir(): string | undefined;
|