firefly-compiler 0.5.35 → 0.5.37
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/.hintrc +4 -4
- package/.vscode/settings.json +4 -4
- package/bin/Release.ff +157 -154
- package/bin/firefly.mjs +1 -1
- package/compiler/Builder.ff +275 -277
- package/compiler/Compiler.ff +234 -233
- package/compiler/Dependencies.ff +186 -187
- package/compiler/DependencyLock.ff +17 -17
- package/compiler/Deriver.ff +23 -31
- package/compiler/Dictionaries.ff +1 -1
- package/compiler/Inference.ff +43 -20
- package/compiler/JsEmitter.ff +1437 -1282
- package/compiler/LspHook.ff +202 -202
- package/compiler/Main.ff +25 -24
- package/compiler/ModuleCache.ff +178 -178
- package/compiler/Parser.ff +36 -109
- package/compiler/Resolver.ff +5 -8
- package/compiler/Substitution.ff +1 -1
- package/compiler/Syntax.ff +1 -16
- package/compiler/Token.ff +9 -0
- package/compiler/Tokenizer.ff +4 -0
- package/compiler/Workspace.ff +88 -88
- package/core/.firefly/include/package.json +5 -5
- package/core/.firefly/package.ff +2 -2
- package/core/Any.ff +26 -30
- package/core/Array.ff +298 -265
- package/core/Atomic.ff +63 -64
- package/core/Box.ff +7 -7
- package/core/BrowserSystem.ff +40 -40
- package/core/Buffer.ff +185 -152
- package/core/BuildSystem.ff +156 -148
- package/core/Channel.ff +95 -92
- package/core/Char.ff +3 -2
- package/core/Core.ff +16 -23
- package/core/Crypto.ff +94 -96
- package/core/Equal.ff +41 -36
- package/core/Error.ff +15 -10
- package/core/FileHandle.ff +45 -37
- package/core/Float.ff +176 -200
- package/core/HttpClient.ff +142 -148
- package/core/Instant.ff +6 -8
- package/core/Int.ff +40 -24
- package/core/IntMap.ff +61 -39
- package/core/Js.ff +305 -0
- package/core/JsSystem.ff +135 -114
- package/core/JsValue.ff +303 -159
- package/core/Json.ff +423 -443
- package/core/List.ff +482 -486
- package/core/Lock.ff +108 -144
- package/core/Log.ff +25 -14
- package/core/NodeSystem.ff +198 -191
- package/core/Ordering.ff +160 -161
- package/core/Path.ff +377 -409
- package/core/Queue.ff +90 -0
- package/core/Random.ff +140 -134
- package/core/RbMap.ff +216 -216
- package/core/Serializable.ff +16 -13
- package/core/Show.ff +44 -43
- package/core/SourceLocation.ff +68 -68
- package/core/Stream.ff +1 -1
- package/core/String.ff +224 -202
- package/core/StringMap.ff +58 -36
- package/core/Task.ff +165 -149
- package/experimental/benchmarks/ListGrab.ff +23 -23
- package/experimental/benchmarks/ListGrab.java +55 -55
- package/experimental/benchmarks/Pyrotek45.ff +30 -30
- package/experimental/benchmarks/Pyrotek45.java +64 -64
- package/experimental/bidirectional/Bidi.ff +88 -88
- package/experimental/lines/Main.ff +40 -0
- package/experimental/random/Index.ff +53 -53
- package/experimental/random/Process.ff +120 -120
- package/experimental/random/RunLength.ff +65 -65
- package/experimental/random/Scrape.ff +51 -51
- package/experimental/random/Symbols.ff +73 -73
- package/experimental/random/Tensor.ff +52 -52
- package/experimental/random/Units.ff +36 -36
- package/experimental/s3/S3TestAuthorizationHeader.ff +39 -39
- package/experimental/s3/S3TestPut.ff +16 -16
- package/experimental/tests/TestJson.ff +26 -26
- package/firefly.sh +0 -0
- package/fireflysite/.firefly/package.ff +4 -4
- package/fireflysite/CommunityOverview.ff +20 -20
- package/fireflysite/CountingButtonDemo.ff +58 -58
- package/fireflysite/DocumentParser.ff +325 -331
- package/fireflysite/ExamplesOverview.ff +40 -40
- package/fireflysite/FrontPage.ff +344 -344
- package/fireflysite/GettingStarted.ff +45 -45
- package/fireflysite/Guide.ff +456 -456
- package/fireflysite/Main.ff +163 -152
- package/fireflysite/MatchingPasswordsDemo.ff +82 -82
- package/fireflysite/PackagesOverview.ff +49 -49
- package/fireflysite/PostgresqlDemo.ff +34 -34
- package/fireflysite/ReferenceAll.ff +18 -18
- package/fireflysite/ReferenceIntroduction.ff +11 -11
- package/fireflysite/Styles.ff +567 -567
- package/fireflysite/Test.ff +121 -62
- package/fireflysite/assets/markdown/reference/BaseTypes.md +209 -209
- package/fireflysite/assets/markdown/reference/EmittedJavascript.md +65 -65
- package/fireflysite/assets/markdown/reference/Exceptions.md +101 -101
- package/fireflysite/assets/markdown/reference/FunctionsAndMethods.md +364 -364
- package/fireflysite/assets/markdown/reference/JavascriptInterop.md +235 -172
- package/fireflysite/assets/markdown/reference/ModulesAndPackages.md +162 -162
- package/fireflysite/assets/markdown/reference/OldStructuredConcurrency.md +48 -48
- package/fireflysite/assets/markdown/reference/PatternMatching.md +224 -224
- package/fireflysite/assets/markdown/reference/StatementsAndExpressions.md +86 -86
- package/fireflysite/assets/markdown/reference/StructuredConcurrency.md +99 -99
- package/fireflysite/assets/markdown/reference/TraitsAndInstances.md +100 -100
- package/fireflysite/assets/markdown/reference/UserDefinedTypes.md +184 -184
- package/fireflysite/assets/markdown/scratch/ControlFlow.md +136 -136
- package/fireflysite/assets/markdown/scratch/Toc.md +40 -40
- package/lsp/.firefly/package.ff +1 -1
- package/lsp/CompletionHandler.ff +827 -827
- package/lsp/Handler.ff +714 -714
- package/lsp/HoverHandler.ff +79 -79
- package/lsp/LanguageServer.ff +272 -272
- package/lsp/SignatureHelpHandler.ff +55 -55
- package/lsp/SymbolHandler.ff +181 -181
- package/lsp/TestReferences.ff +17 -17
- package/lsp/TestReferencesCase.ff +7 -7
- package/lsp/stderr.txt +1 -1
- package/lsp/stdout.txt +34 -34
- package/lux/.firefly/package.ff +1 -1
- package/lux/Css.ff +648 -648
- package/lux/CssTest.ff +48 -48
- package/lux/Lux.ff +608 -617
- package/lux/LuxEvent.ff +79 -116
- package/lux/Main.ff +123 -123
- package/lux/Main2.ff +143 -143
- package/lux/TestDry.ff +28 -28
- package/output/js/ff/compiler/Builder.mjs +72 -71
- package/output/js/ff/compiler/Compiler.mjs +19 -13
- package/output/js/ff/compiler/Dependencies.mjs +8 -7
- package/output/js/ff/compiler/DependencyLock.mjs +6 -4
- package/output/js/ff/compiler/Deriver.mjs +26 -24
- package/output/js/ff/compiler/Dictionaries.mjs +14 -18
- package/output/js/ff/compiler/Environment.mjs +6 -4
- package/output/js/ff/compiler/Inference.mjs +238 -164
- package/output/js/ff/compiler/JsEmitter.mjs +1160 -350
- package/output/js/ff/compiler/JsImporter.mjs +20 -18
- package/output/js/ff/compiler/LspHook.mjs +12 -10
- package/output/js/ff/compiler/Main.mjs +61 -41
- package/output/js/ff/compiler/ModuleCache.mjs +10 -8
- package/output/js/ff/compiler/Parser.mjs +153 -669
- package/output/js/ff/compiler/Patterns.mjs +12 -10
- package/output/js/ff/compiler/Resolver.mjs +52 -78
- package/output/js/ff/compiler/Substitution.mjs +12 -16
- package/output/js/ff/compiler/Syntax.mjs +50 -341
- package/output/js/ff/compiler/Token.mjs +126 -4
- package/output/js/ff/compiler/Tokenizer.mjs +62 -52
- package/output/js/ff/compiler/Unification.mjs +74 -90
- package/output/js/ff/compiler/Wildcards.mjs +4 -2
- package/output/js/ff/compiler/Workspace.mjs +26 -20
- package/output/js/ff/core/Any.mjs +20 -20
- package/output/js/ff/core/Array.mjs +268 -175
- package/output/js/ff/core/AssetSystem.mjs +8 -6
- package/output/js/ff/core/Atomic.mjs +84 -52
- package/output/js/ff/core/Bool.mjs +6 -4
- package/output/js/ff/core/BrowserSystem.mjs +38 -29
- package/output/js/ff/core/Buffer.mjs +285 -133
- package/output/js/ff/core/BuildSystem.mjs +36 -56
- package/output/js/ff/core/Channel.mjs +250 -97
- package/output/js/ff/core/Char.mjs +5 -3
- package/output/js/ff/core/Core.mjs +28 -34
- package/output/js/ff/core/Crypto.mjs +30 -52
- package/output/js/ff/core/Duration.mjs +4 -2
- package/output/js/ff/core/Equal.mjs +14 -12
- package/output/js/ff/core/Error.mjs +17 -11
- package/output/js/ff/core/FileHandle.mjs +76 -38
- package/output/js/ff/core/Float.mjs +92 -160
- package/output/js/ff/core/HttpClient.mjs +208 -76
- package/output/js/ff/core/Instant.mjs +8 -10
- package/output/js/ff/core/Int.mjs +36 -26
- package/output/js/ff/core/IntMap.mjs +79 -33
- package/output/js/ff/core/Js.mjs +751 -0
- package/output/js/ff/core/JsSystem.mjs +54 -60
- package/output/js/ff/core/JsValue.mjs +294 -143
- package/output/js/ff/core/Json.mjs +443 -253
- package/output/js/ff/core/List.mjs +262 -214
- package/output/js/ff/core/Lock.mjs +156 -125
- package/output/js/ff/core/Log.mjs +20 -10
- package/output/js/ff/core/Map.mjs +10 -8
- package/output/js/ff/core/NodeSystem.mjs +189 -123
- package/output/js/ff/core/Nothing.mjs +4 -2
- package/output/js/ff/core/Option.mjs +40 -38
- package/output/js/ff/core/Ordering.mjs +26 -20
- package/output/js/ff/core/Pair.mjs +4 -2
- package/output/js/ff/core/Path.mjs +517 -315
- package/output/js/ff/core/Queue.mjs +306 -0
- package/output/js/ff/core/Random.mjs +141 -77
- package/output/js/ff/core/RbMap.mjs +36 -34
- package/output/js/ff/core/Serializable.mjs +44 -28
- package/output/js/ff/core/Set.mjs +6 -4
- package/output/js/ff/core/Show.mjs +8 -6
- package/output/js/ff/core/SourceLocation.mjs +4 -2
- package/output/js/ff/core/Stream.mjs +30 -50
- package/output/js/ff/core/String.mjs +263 -172
- package/output/js/ff/core/StringMap.mjs +77 -31
- package/output/js/ff/core/Task.mjs +91 -76
- package/output/js/ff/core/Try.mjs +20 -18
- package/output/js/ff/core/Unit.mjs +4 -2
- package/package.json +1 -1
- package/postgresql/Pg.ff +53 -59
- package/rpc/.firefly/package.ff +1 -1
- package/rpc/Rpc.ff +70 -70
- package/s3/.firefly/package.ff +1 -1
- package/s3/S3.ff +92 -94
- package/vscode/LICENSE.txt +21 -21
- package/vscode/Prepublish.ff +15 -15
- package/vscode/README.md +16 -16
- package/vscode/client/package-lock.json +544 -544
- package/vscode/client/package.json +22 -22
- package/vscode/client/src/extension.ts +104 -104
- package/vscode/icons/firefly-icon.svg +10 -10
- package/vscode/language-configuration.json +61 -61
- package/vscode/package-lock.json +3623 -3623
- package/vscode/package.json +1 -1
- package/vscode/snippets.json +241 -241
- package/vscode/syntaxes/firefly-markdown-injection.json +45 -45
- package/webserver/.firefly/include/package.json +5 -5
- package/webserver/.firefly/package.ff +2 -2
- package/webserver/WebServer.ff +647 -685
- package/websocket/.firefly/package.ff +1 -1
- package/websocket/WebSocket.ff +100 -131
- package/core/UnsafeJs.ff +0 -42
- package/output/js/ff/core/UnsafeJs.mjs +0 -191
|
@@ -46,6 +46,8 @@ import * as ff_core_Int from "../../ff/core/Int.mjs"
|
|
|
46
46
|
|
|
47
47
|
import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
|
|
48
48
|
|
|
49
|
+
import * as ff_core_Js from "../../ff/core/Js.mjs"
|
|
50
|
+
|
|
49
51
|
import * as ff_core_JsSystem from "../../ff/core/JsSystem.mjs"
|
|
50
52
|
|
|
51
53
|
import * as ff_core_JsValue from "../../ff/core/JsValue.mjs"
|
|
@@ -72,6 +74,8 @@ import * as ff_core_Pair from "../../ff/core/Pair.mjs"
|
|
|
72
74
|
|
|
73
75
|
import * as ff_core_Path from "../../ff/core/Path.mjs"
|
|
74
76
|
|
|
77
|
+
import * as ff_core_Queue from "../../ff/core/Queue.mjs"
|
|
78
|
+
|
|
75
79
|
import * as ff_core_Random from "../../ff/core/Random.mjs"
|
|
76
80
|
|
|
77
81
|
import * as ff_core_Serializable from "../../ff/core/Serializable.mjs"
|
|
@@ -94,8 +98,6 @@ import * as ff_core_Try from "../../ff/core/Try.mjs"
|
|
|
94
98
|
|
|
95
99
|
import * as ff_core_Unit from "../../ff/core/Unit.mjs"
|
|
96
100
|
|
|
97
|
-
import * as ff_core_UnsafeJs from "../../ff/core/UnsafeJs.mjs"
|
|
98
|
-
|
|
99
101
|
// type JsImporter
|
|
100
102
|
export function JsImporter(imports_) {
|
|
101
103
|
return {imports_};
|
|
@@ -126,7 +128,7 @@ const n_ = ("import$" + ff_core_Map.Map_size(self_.imports_, ff_core_Ordering.ff
|
|
|
126
128
|
self_.imports_ = ff_core_Map.Map_add(self_.imports_, url_, n_, ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String);
|
|
127
129
|
return n_
|
|
128
130
|
}
|
|
129
|
-
|
|
131
|
+
{
|
|
130
132
|
const n_ = _1.value_;
|
|
131
133
|
return n_
|
|
132
134
|
}
|
|
@@ -138,26 +140,26 @@ export function JsImporter_process(self_, at_, code_) {
|
|
|
138
140
|
const space_ = ff_core_String.String_takeWhile(code_, ((c_) => {
|
|
139
141
|
return (((((c_ === 32) || (c_ === 9)) || (c_ === 13)) || (c_ === 10)) || (c_ === 59))
|
|
140
142
|
}));
|
|
141
|
-
const rest_ = ff_core_String.String_dropFirst(code_,
|
|
143
|
+
const rest_ = ff_core_String.String_dropFirst(code_, space_.length);
|
|
142
144
|
if((!ff_core_String.String_startsWith(rest_, "import * as ", 0))) {
|
|
143
145
|
return code_
|
|
144
146
|
} else {
|
|
145
|
-
const rest2_ = ff_core_String.String_dropFirst(rest_,
|
|
147
|
+
const rest2_ = ff_core_String.String_dropFirst(rest_, "import * as ".length);
|
|
146
148
|
const name_ = ff_core_String.String_takeWhile(rest2_, ((_w1) => {
|
|
147
149
|
return ff_core_Char.Char_isAsciiLetterOrDigit(_w1)
|
|
148
150
|
}));
|
|
149
|
-
if((
|
|
151
|
+
if((name_.length === 0)) {
|
|
150
152
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, "Expected alias after \"import * as \""), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
|
|
151
153
|
};
|
|
152
|
-
const rest3_ = ff_core_String.String_dropFirst(rest2_,
|
|
154
|
+
const rest3_ = ff_core_String.String_dropFirst(rest2_, name_.length);
|
|
153
155
|
if((!ff_core_String.String_startsWith(rest3_, " from '", 0))) {
|
|
154
156
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, "Expected \" from '\" after \"import * as ...\""), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
|
|
155
157
|
};
|
|
156
|
-
const rest4_ = ff_core_String.String_dropFirst(rest3_,
|
|
158
|
+
const rest4_ = ff_core_String.String_dropFirst(rest3_, " from '".length);
|
|
157
159
|
const url_ = ff_core_String.String_takeWhile(rest4_, ((_w1) => {
|
|
158
160
|
return (_w1 !== 39)
|
|
159
161
|
}));
|
|
160
|
-
if((
|
|
162
|
+
if((url_.length === 0)) {
|
|
161
163
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, "Expected module name after \" from '\""), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
|
|
162
164
|
};
|
|
163
165
|
if(ff_core_String.String_any(url_, ((_w1) => {
|
|
@@ -165,7 +167,7 @@ return (_w1 === 10)
|
|
|
165
167
|
}))) {
|
|
166
168
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, "Unclosed module name string"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
|
|
167
169
|
};
|
|
168
|
-
const rest5_ = ff_core_String.String_dropFirst(rest4_, (
|
|
170
|
+
const rest5_ = ff_core_String.String_dropFirst(rest4_, (url_.length + 1));
|
|
169
171
|
const importName_ = ff_compiler_JsImporter.JsImporter_add(self_, url_);
|
|
170
172
|
return (((((space_ + "const ") + name_) + " = ") + importName_) + ff_compiler_JsImporter.JsImporter_process(self_, at_, rest5_))
|
|
171
173
|
}
|
|
@@ -193,7 +195,7 @@ const n_ = ("import$" + ff_core_Map.Map_size(self_.imports_, ff_core_Ordering.ff
|
|
|
193
195
|
self_.imports_ = ff_core_Map.Map_add(self_.imports_, url_, n_, ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String);
|
|
194
196
|
return n_
|
|
195
197
|
}
|
|
196
|
-
|
|
198
|
+
{
|
|
197
199
|
const n_ = _1.value_;
|
|
198
200
|
return n_
|
|
199
201
|
}
|
|
@@ -205,26 +207,26 @@ export async function JsImporter_process$(self_, at_, code_, $task) {
|
|
|
205
207
|
const space_ = ff_core_String.String_takeWhile(code_, ((c_) => {
|
|
206
208
|
return (((((c_ === 32) || (c_ === 9)) || (c_ === 13)) || (c_ === 10)) || (c_ === 59))
|
|
207
209
|
}));
|
|
208
|
-
const rest_ = ff_core_String.String_dropFirst(code_,
|
|
210
|
+
const rest_ = ff_core_String.String_dropFirst(code_, space_.length);
|
|
209
211
|
if((!ff_core_String.String_startsWith(rest_, "import * as ", 0))) {
|
|
210
212
|
return code_
|
|
211
213
|
} else {
|
|
212
|
-
const rest2_ = ff_core_String.String_dropFirst(rest_,
|
|
214
|
+
const rest2_ = ff_core_String.String_dropFirst(rest_, "import * as ".length);
|
|
213
215
|
const name_ = ff_core_String.String_takeWhile(rest2_, ((_w1) => {
|
|
214
216
|
return ff_core_Char.Char_isAsciiLetterOrDigit(_w1)
|
|
215
217
|
}));
|
|
216
|
-
if((
|
|
218
|
+
if((name_.length === 0)) {
|
|
217
219
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, "Expected alias after \"import * as \""), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
|
|
218
220
|
};
|
|
219
|
-
const rest3_ = ff_core_String.String_dropFirst(rest2_,
|
|
221
|
+
const rest3_ = ff_core_String.String_dropFirst(rest2_, name_.length);
|
|
220
222
|
if((!ff_core_String.String_startsWith(rest3_, " from '", 0))) {
|
|
221
223
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, "Expected \" from '\" after \"import * as ...\""), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
|
|
222
224
|
};
|
|
223
|
-
const rest4_ = ff_core_String.String_dropFirst(rest3_,
|
|
225
|
+
const rest4_ = ff_core_String.String_dropFirst(rest3_, " from '".length);
|
|
224
226
|
const url_ = ff_core_String.String_takeWhile(rest4_, ((_w1) => {
|
|
225
227
|
return (_w1 !== 39)
|
|
226
228
|
}));
|
|
227
|
-
if((
|
|
229
|
+
if((url_.length === 0)) {
|
|
228
230
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, "Expected module name after \" from '\""), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
|
|
229
231
|
};
|
|
230
232
|
if(ff_core_String.String_any(url_, ((_w1) => {
|
|
@@ -232,7 +234,7 @@ return (_w1 === 10)
|
|
|
232
234
|
}))) {
|
|
233
235
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileError(at_, "Unclosed module name string"), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError)})
|
|
234
236
|
};
|
|
235
|
-
const rest5_ = ff_core_String.String_dropFirst(rest4_, (
|
|
237
|
+
const rest5_ = ff_core_String.String_dropFirst(rest4_, (url_.length + 1));
|
|
236
238
|
const importName_ = ff_compiler_JsImporter.JsImporter_add(self_, url_);
|
|
237
239
|
return (((((space_ + "const ") + name_) + " = ") + importName_) + ff_compiler_JsImporter.JsImporter_process(self_, at_, rest5_))
|
|
238
240
|
}
|
|
@@ -50,6 +50,8 @@ import * as ff_core_Int from "../../ff/core/Int.mjs"
|
|
|
50
50
|
|
|
51
51
|
import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
|
|
52
52
|
|
|
53
|
+
import * as ff_core_Js from "../../ff/core/Js.mjs"
|
|
54
|
+
|
|
53
55
|
import * as ff_core_JsSystem from "../../ff/core/JsSystem.mjs"
|
|
54
56
|
|
|
55
57
|
import * as ff_core_JsValue from "../../ff/core/JsValue.mjs"
|
|
@@ -76,6 +78,8 @@ import * as ff_core_Pair from "../../ff/core/Pair.mjs"
|
|
|
76
78
|
|
|
77
79
|
import * as ff_core_Path from "../../ff/core/Path.mjs"
|
|
78
80
|
|
|
81
|
+
import * as ff_core_Queue from "../../ff/core/Queue.mjs"
|
|
82
|
+
|
|
79
83
|
import * as ff_core_Random from "../../ff/core/Random.mjs"
|
|
80
84
|
|
|
81
85
|
import * as ff_core_Serializable from "../../ff/core/Serializable.mjs"
|
|
@@ -98,8 +102,6 @@ import * as ff_core_Try from "../../ff/core/Try.mjs"
|
|
|
98
102
|
|
|
99
103
|
import * as ff_core_Unit from "../../ff/core/Unit.mjs"
|
|
100
104
|
|
|
101
|
-
import * as ff_core_UnsafeJs from "../../ff/core/UnsafeJs.mjs"
|
|
102
|
-
|
|
103
105
|
// type LspHook
|
|
104
106
|
export function LspHook(at_, definedAt_, insertIdentifier_, trackSymbols_, arrayOfResults_) {
|
|
105
107
|
return {at_, definedAt_, insertIdentifier_, trackSymbols_, arrayOfResults_};
|
|
@@ -335,7 +337,7 @@ const symbol_ = hook_a.symbol_;
|
|
|
335
337
|
const explicitType_ = hook_a.explicitType_;
|
|
336
338
|
return "ResolveTypeHook(...)"
|
|
337
339
|
}
|
|
338
|
-
|
|
340
|
+
{
|
|
339
341
|
const symbol_ = hook_a.symbol_;
|
|
340
342
|
const type_ = hook_a.type_;
|
|
341
343
|
const commonField_ = hook_a.commonField_;
|
|
@@ -471,7 +473,7 @@ const symbol_ = hook_a.symbol_;
|
|
|
471
473
|
const explicitType_ = hook_a.explicitType_;
|
|
472
474
|
return "ResolveTypeHook(...)"
|
|
473
475
|
}
|
|
474
|
-
|
|
476
|
+
{
|
|
475
477
|
const symbol_ = hook_a.symbol_;
|
|
476
478
|
const type_ = hook_a.type_;
|
|
477
479
|
const commonField_ = hook_a.commonField_;
|
|
@@ -589,7 +591,7 @@ if(value_a.SType) {
|
|
|
589
591
|
const z_ = value_a;
|
|
590
592
|
return "SType"
|
|
591
593
|
}
|
|
592
|
-
|
|
594
|
+
{
|
|
593
595
|
const z_ = value_a;
|
|
594
596
|
return "SParameter"
|
|
595
597
|
}
|
|
@@ -628,7 +630,7 @@ if(value_a.SType) {
|
|
|
628
630
|
const z_ = value_a;
|
|
629
631
|
return "SType"
|
|
630
632
|
}
|
|
631
|
-
|
|
633
|
+
{
|
|
632
634
|
const z_ = value_a;
|
|
633
635
|
return "SParameter"
|
|
634
636
|
}
|
|
@@ -812,7 +814,7 @@ return 6
|
|
|
812
814
|
if(z_a.SType) {
|
|
813
815
|
return 7
|
|
814
816
|
}
|
|
815
|
-
|
|
817
|
+
{
|
|
816
818
|
return 8
|
|
817
819
|
}
|
|
818
820
|
}
|
|
@@ -874,7 +876,7 @@ return 6
|
|
|
874
876
|
if(z_a.SType) {
|
|
875
877
|
return 7
|
|
876
878
|
}
|
|
877
|
-
|
|
879
|
+
{
|
|
878
880
|
return 8
|
|
879
881
|
}
|
|
880
882
|
}
|
|
@@ -1014,7 +1016,7 @@ ff_core_Buffer.Buffer_setUint8(serialization_.buffer_, serialization_.offset_, 7
|
|
|
1014
1016
|
serialization_.offset_ += 1
|
|
1015
1017
|
return
|
|
1016
1018
|
}
|
|
1017
|
-
|
|
1019
|
+
{
|
|
1018
1020
|
const v_ = value_a;
|
|
1019
1021
|
serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 30), 0);
|
|
1020
1022
|
ff_core_Serializable.Serialization_autoResize(serialization_, 1);
|
|
@@ -1138,7 +1140,7 @@ ff_core_Buffer.Buffer_setUint8(serialization_.buffer_, serialization_.offset_, 7
|
|
|
1138
1140
|
serialization_.offset_ += 1
|
|
1139
1141
|
return
|
|
1140
1142
|
}
|
|
1141
|
-
|
|
1143
|
+
{
|
|
1142
1144
|
const v_ = value_a;
|
|
1143
1145
|
serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 30), 0);
|
|
1144
1146
|
ff_core_Serializable.Serialization_autoResize(serialization_, 1);
|
|
@@ -70,6 +70,8 @@ import * as ff_core_Int from "../../ff/core/Int.mjs"
|
|
|
70
70
|
|
|
71
71
|
import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
|
|
72
72
|
|
|
73
|
+
import * as ff_core_Js from "../../ff/core/Js.mjs"
|
|
74
|
+
|
|
73
75
|
import * as ff_core_JsSystem from "../../ff/core/JsSystem.mjs"
|
|
74
76
|
|
|
75
77
|
import * as ff_core_JsValue from "../../ff/core/JsValue.mjs"
|
|
@@ -96,6 +98,8 @@ import * as ff_core_Pair from "../../ff/core/Pair.mjs"
|
|
|
96
98
|
|
|
97
99
|
import * as ff_core_Path from "../../ff/core/Path.mjs"
|
|
98
100
|
|
|
101
|
+
import * as ff_core_Queue from "../../ff/core/Queue.mjs"
|
|
102
|
+
|
|
99
103
|
import * as ff_core_Random from "../../ff/core/Random.mjs"
|
|
100
104
|
|
|
101
105
|
import * as ff_core_Serializable from "../../ff/core/Serializable.mjs"
|
|
@@ -118,8 +122,6 @@ import * as ff_core_Try from "../../ff/core/Try.mjs"
|
|
|
118
122
|
|
|
119
123
|
import * as ff_core_Unit from "../../ff/core/Unit.mjs"
|
|
120
124
|
|
|
121
|
-
import * as ff_core_UnsafeJs from "../../ff/core/UnsafeJs.mjs"
|
|
122
|
-
|
|
123
125
|
// type MainCommand
|
|
124
126
|
const BootstrapCommand$ = {BootstrapCommand: true};
|
|
125
127
|
export function BootstrapCommand() {
|
|
@@ -173,7 +175,7 @@ return "node"
|
|
|
173
175
|
if(_1.EmitBrowser) {
|
|
174
176
|
return "browser"
|
|
175
177
|
}
|
|
176
|
-
|
|
178
|
+
{
|
|
177
179
|
return "executable"
|
|
178
180
|
}
|
|
179
181
|
}))(emitTarget_);
|
|
@@ -224,7 +226,7 @@ throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Sy
|
|
|
224
226
|
}
|
|
225
227
|
return
|
|
226
228
|
}
|
|
227
|
-
|
|
229
|
+
{
|
|
228
230
|
const workingDirectory_ = ff_core_NodeSystem.NodeSystem_path(system_, ".");
|
|
229
231
|
const fakeLocation_ = ff_compiler_Syntax.Location("<core>", 0, 0);
|
|
230
232
|
ff_compiler_Builder.build_(system_, ff_compiler_JsEmitter.EmitNode(), ff_compiler_Syntax.PackagePair("ff", "compiler"), "Main", ff_compiler_Dependencies.ResolvedDependencies(ff_compiler_Syntax.PackagePair("ff", "compiler"), ff_core_List.List_toMap([ff_core_Pair.Pair(ff_compiler_Syntax.PackagePair("ff", "core"), ff_compiler_Syntax.PackageInfo(ff_compiler_Syntax.DPackage(fakeLocation_, ff_compiler_Syntax.PackagePair("ff", "core"), ff_compiler_Syntax.Version(fakeLocation_, 0, 0, 0), ff_compiler_Syntax.TargetNames(true, false)), [], [ff_compiler_Syntax.DInclude(fakeLocation_, "node_modules")]))], ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair), ff_core_List.List_toMap([ff_core_Pair.Pair(ff_compiler_Syntax.PackagePair("ff", "compiler"), ff_core_Path.Path_slash(workingDirectory_, "compiler")), ff_core_Pair.Pair(ff_compiler_Syntax.PackagePair("ff", "core"), ff_core_Path.Path_slash(workingDirectory_, "core"))], ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair), ff_core_List.List_toSet([], ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair)), ff_core_Option.None(), ff_core_Path.Path_slash(ff_core_Path.Path_slash(workingDirectory_, "output"), "temporary"), ff_core_Path.Path_slash(ff_core_Path.Path_slash(workingDirectory_, "output"), "js"), true, ff_compiler_ModuleCache.new_(0))
|
|
@@ -347,7 +349,7 @@ return ff_compiler_Main.CheckCommand(fileName_)
|
|
|
347
349
|
if(_1.length >= 2) {
|
|
348
350
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Main.CommandLineError(("You must only specify a single argument to check." + ff_compiler_Main.usageString_)), ff_compiler_Main.ff_core_Any_HasAnyTag$ff_compiler_Main_CommandLineError)})
|
|
349
351
|
}
|
|
350
|
-
|
|
352
|
+
{
|
|
351
353
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Main.CommandLineError(("You must specify a Firefly file (.ff) or directory as the argument to check." + ff_compiler_Main.usageString_)), ff_compiler_Main.ff_core_Any_HasAnyTag$ff_compiler_Main_CommandLineError)})
|
|
352
354
|
}
|
|
353
355
|
}
|
|
@@ -362,7 +364,7 @@ return ff_compiler_Main.BootstrapCommand()
|
|
|
362
364
|
if(arguments_a.length === 0) {
|
|
363
365
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Main.CommandLineError(("You must specify a command or a main file to run." + ff_compiler_Main.usageString_)), ff_compiler_Main.ff_core_Any_HasAnyTag$ff_compiler_Main_CommandLineError)})
|
|
364
366
|
}
|
|
365
|
-
|
|
367
|
+
{
|
|
366
368
|
const s_ = arguments_a[0];
|
|
367
369
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Main.CommandLineError(((("Unknown command '" + s_) + "'") + ff_compiler_Main.usageString_)), ff_compiler_Main.ff_core_Any_HasAnyTag$ff_compiler_Main_CommandLineError)})
|
|
368
370
|
}
|
|
@@ -386,7 +388,19 @@ ff_core_BuildSystem.internalCallEsBuild_(browserCode_, mainJsFile_, file_, true,
|
|
|
386
388
|
}
|
|
387
389
|
|
|
388
390
|
export function importAndRun_(fireflyPath_, target_, packagePair_, mainFile_, arguments_) {
|
|
389
|
-
|
|
391
|
+
const process_ = import("process");
|
|
392
|
+
const cwd_ = process_.cwd();
|
|
393
|
+
const workingDirectory_ = ((cwd_.indexOf(":") === 1)
|
|
394
|
+
? ("file:///" + cwd_)
|
|
395
|
+
: cwd_);
|
|
396
|
+
const packagePath_ = ((packagePair_.group_ + "/") + packagePair_.name_);
|
|
397
|
+
const main_ = import((((((((workingDirectory_ + "/.firefly/output/") + target_) + "/") + packagePath_) + "/") + mainFile_) + ".mjs"));
|
|
398
|
+
if(((typeof main_["$run$"]) !== "undefined")) {
|
|
399
|
+
main_["$run$"](fireflyPath_.absolutePath_, arguments_);
|
|
400
|
+
return true
|
|
401
|
+
} else {
|
|
402
|
+
return false
|
|
403
|
+
}
|
|
390
404
|
}
|
|
391
405
|
|
|
392
406
|
export function prepareFireflyDirectory_(path_) {
|
|
@@ -399,7 +413,14 @@ ff_core_Path.Path_createDirectory(ff_core_Path.Path_slash(ff_core_Path.Path_slas
|
|
|
399
413
|
}
|
|
400
414
|
|
|
401
415
|
export function detectFireflyPath_(system_) {
|
|
402
|
-
|
|
416
|
+
const url_ = import$0;
|
|
417
|
+
const suffix_ = "/output/js/ff/compiler/Main.mjs";
|
|
418
|
+
const moduleUrl_ = import.meta.url;
|
|
419
|
+
if((!import.meta.url.endsWith(suffix_))) {
|
|
420
|
+
throw (new Error(((("Expected module path to end with: " + suffix_) + ", but got: ") + moduleUrl_)))
|
|
421
|
+
} else {
|
|
422
|
+
return ff_core_Path.Path(url_.fileURLToPath((new URL(moduleUrl_.slice(0, (-suffix_.length))))))
|
|
423
|
+
}
|
|
403
424
|
}
|
|
404
425
|
|
|
405
426
|
export async function main_$(system_, $task) {
|
|
@@ -421,7 +442,7 @@ return "node"
|
|
|
421
442
|
if(_1.EmitBrowser) {
|
|
422
443
|
return "browser"
|
|
423
444
|
}
|
|
424
|
-
|
|
445
|
+
{
|
|
425
446
|
return "executable"
|
|
426
447
|
}
|
|
427
448
|
}))(emitTarget_);
|
|
@@ -472,7 +493,7 @@ throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Sy
|
|
|
472
493
|
}
|
|
473
494
|
return
|
|
474
495
|
}
|
|
475
|
-
|
|
496
|
+
{
|
|
476
497
|
const workingDirectory_ = (await ff_core_NodeSystem.NodeSystem_path$(system_, ".", $task));
|
|
477
498
|
const fakeLocation_ = ff_compiler_Syntax.Location("<core>", 0, 0);
|
|
478
499
|
(await ff_compiler_Builder.build_$(system_, ff_compiler_JsEmitter.EmitNode(), ff_compiler_Syntax.PackagePair("ff", "compiler"), "Main", ff_compiler_Dependencies.ResolvedDependencies(ff_compiler_Syntax.PackagePair("ff", "compiler"), ff_core_List.List_toMap([ff_core_Pair.Pair(ff_compiler_Syntax.PackagePair("ff", "core"), ff_compiler_Syntax.PackageInfo(ff_compiler_Syntax.DPackage(fakeLocation_, ff_compiler_Syntax.PackagePair("ff", "core"), ff_compiler_Syntax.Version(fakeLocation_, 0, 0, 0), ff_compiler_Syntax.TargetNames(true, false)), [], [ff_compiler_Syntax.DInclude(fakeLocation_, "node_modules")]))], ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair), ff_core_List.List_toMap([ff_core_Pair.Pair(ff_compiler_Syntax.PackagePair("ff", "compiler"), (await ff_core_Path.Path_slash$(workingDirectory_, "compiler", $task))), ff_core_Pair.Pair(ff_compiler_Syntax.PackagePair("ff", "core"), (await ff_core_Path.Path_slash$(workingDirectory_, "core", $task)))], ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair), ff_core_List.List_toSet([], ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair)), ff_core_Option.None(), (await ff_core_Path.Path_slash$((await ff_core_Path.Path_slash$(workingDirectory_, "output", $task)), "temporary", $task)), (await ff_core_Path.Path_slash$((await ff_core_Path.Path_slash$(workingDirectory_, "output", $task)), "js", $task)), true, ff_compiler_ModuleCache.new_(0), $task))
|
|
@@ -595,7 +616,7 @@ return ff_compiler_Main.CheckCommand(fileName_)
|
|
|
595
616
|
if(_1.length >= 2) {
|
|
596
617
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Main.CommandLineError(("You must only specify a single argument to check." + ff_compiler_Main.usageString_)), ff_compiler_Main.ff_core_Any_HasAnyTag$ff_compiler_Main_CommandLineError)})
|
|
597
618
|
}
|
|
598
|
-
|
|
619
|
+
{
|
|
599
620
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Main.CommandLineError(("You must specify a Firefly file (.ff) or directory as the argument to check." + ff_compiler_Main.usageString_)), ff_compiler_Main.ff_core_Any_HasAnyTag$ff_compiler_Main_CommandLineError)})
|
|
600
621
|
}
|
|
601
622
|
}
|
|
@@ -610,7 +631,7 @@ return ff_compiler_Main.BootstrapCommand()
|
|
|
610
631
|
if(arguments_a.length === 0) {
|
|
611
632
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Main.CommandLineError(("You must specify a command or a main file to run." + ff_compiler_Main.usageString_)), ff_compiler_Main.ff_core_Any_HasAnyTag$ff_compiler_Main_CommandLineError)})
|
|
612
633
|
}
|
|
613
|
-
|
|
634
|
+
{
|
|
614
635
|
const s_ = arguments_a[0];
|
|
615
636
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Main.CommandLineError(((("Unknown command '" + s_) + "'") + ff_compiler_Main.usageString_)), ff_compiler_Main.ff_core_Any_HasAnyTag$ff_compiler_Main_CommandLineError)})
|
|
616
637
|
}
|
|
@@ -634,19 +655,19 @@ return (await ff_core_Path.Path_readStream$((await ff_core_NodeSystem.NodeSystem
|
|
|
634
655
|
}
|
|
635
656
|
|
|
636
657
|
export async function importAndRun_$(fireflyPath_, target_, packagePair_, mainFile_, arguments_, $task) {
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
658
|
+
const process_ = (await import("process"));
|
|
659
|
+
const cwd_ = process_.cwd();
|
|
660
|
+
const workingDirectory_ = ((cwd_.indexOf(":") === 1)
|
|
661
|
+
? ("file:///" + cwd_)
|
|
662
|
+
: cwd_);
|
|
663
|
+
const packagePath_ = ((packagePair_.group_ + "/") + packagePair_.name_);
|
|
664
|
+
const main_ = (await import((((((((workingDirectory_ + "/.firefly/output/") + target_) + "/") + packagePath_) + "/") + mainFile_) + ".mjs")));
|
|
665
|
+
if(((typeof main_["$run$"]) !== "undefined")) {
|
|
666
|
+
main_["$run$"](fireflyPath_.absolutePath_, arguments_);
|
|
667
|
+
return true
|
|
668
|
+
} else {
|
|
669
|
+
return false
|
|
670
|
+
}
|
|
650
671
|
}
|
|
651
672
|
|
|
652
673
|
export async function prepareFireflyDirectory_$(path_, $task) {
|
|
@@ -659,15 +680,14 @@ if((!(await ff_core_Path.Path_exists$((await ff_core_Path.Path_slash$(path_, ".f
|
|
|
659
680
|
}
|
|
660
681
|
|
|
661
682
|
export async function detectFireflyPath_$(system_, $task) {
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
683
|
+
const url_ = import$0;
|
|
684
|
+
const suffix_ = "/output/js/ff/compiler/Main.mjs";
|
|
685
|
+
const moduleUrl_ = import.meta.url;
|
|
686
|
+
if((!import.meta.url.endsWith(suffix_))) {
|
|
687
|
+
throw (new Error(((("Expected module path to end with: " + suffix_) + ", but got: ") + moduleUrl_)))
|
|
688
|
+
} else {
|
|
689
|
+
return ff_core_Path.Path(url_.fileURLToPath((new URL(moduleUrl_.slice(0, (-suffix_.length))))))
|
|
690
|
+
}
|
|
671
691
|
}
|
|
672
692
|
|
|
673
693
|
|
|
@@ -709,7 +729,7 @@ if(value_a.BuildCommand) {
|
|
|
709
729
|
const z_ = value_a;
|
|
710
730
|
return ((("BuildCommand" + "(") + ff_core_Show.ff_core_Show_Show$ff_core_String_String.show_(z_.mainPath_)) + ")")
|
|
711
731
|
}
|
|
712
|
-
|
|
732
|
+
{
|
|
713
733
|
const z_ = value_a;
|
|
714
734
|
return ((("CheckCommand" + "(") + ff_core_Show.ff_core_Show_Show$ff_core_String_String.show_(z_.filePath_)) + ")")
|
|
715
735
|
}
|
|
@@ -732,7 +752,7 @@ if(value_a.BuildCommand) {
|
|
|
732
752
|
const z_ = value_a;
|
|
733
753
|
return ((("BuildCommand" + "(") + ff_core_Show.ff_core_Show_Show$ff_core_String_String.show_(z_.mainPath_)) + ")")
|
|
734
754
|
}
|
|
735
|
-
|
|
755
|
+
{
|
|
736
756
|
const z_ = value_a;
|
|
737
757
|
return ((("CheckCommand" + "(") + ff_core_Show.ff_core_Show_Show$ff_core_String_String.show_(z_.filePath_)) + ")")
|
|
738
758
|
}
|
|
@@ -913,7 +933,7 @@ return 2
|
|
|
913
933
|
if(z_a.BuildCommand) {
|
|
914
934
|
return 3
|
|
915
935
|
}
|
|
916
|
-
|
|
936
|
+
{
|
|
917
937
|
return 4
|
|
918
938
|
}
|
|
919
939
|
}
|
|
@@ -990,7 +1010,7 @@ return 2
|
|
|
990
1010
|
if(z_a.BuildCommand) {
|
|
991
1011
|
return 3
|
|
992
1012
|
}
|
|
993
|
-
|
|
1013
|
+
{
|
|
994
1014
|
return 4
|
|
995
1015
|
}
|
|
996
1016
|
}
|
|
@@ -1074,7 +1094,7 @@ serialization_.offset_ += 1;
|
|
|
1074
1094
|
ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.serializeUsing_(serialization_, v_.mainPath_)
|
|
1075
1095
|
return
|
|
1076
1096
|
}
|
|
1077
|
-
|
|
1097
|
+
{
|
|
1078
1098
|
const v_ = value_a;
|
|
1079
1099
|
serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 29), 0);
|
|
1080
1100
|
ff_core_Serializable.Serialization_autoResize(serialization_, 1);
|
|
@@ -1153,7 +1173,7 @@ serialization_.offset_ += 1;
|
|
|
1153
1173
|
ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.serializeUsing_(serialization_, v_.mainPath_)
|
|
1154
1174
|
return
|
|
1155
1175
|
}
|
|
1156
|
-
|
|
1176
|
+
{
|
|
1157
1177
|
const v_ = value_a;
|
|
1158
1178
|
serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 29), 0);
|
|
1159
1179
|
ff_core_Serializable.Serialization_autoResize(serialization_, 1);
|
|
@@ -1254,7 +1274,7 @@ throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_core_Serial
|
|
|
1254
1274
|
|
|
1255
1275
|
export async function $run$(fireflyPath_, arguments_) {
|
|
1256
1276
|
Error.stackTraceLimit = 50
|
|
1257
|
-
const $task = {
|
|
1277
|
+
const $task = {controller_: new AbortController(), subtasks_: new Set(), promise_: new Promise(() => {}), started_: performance.now() * 0.001}
|
|
1258
1278
|
let interval = setInterval(() => {}, 24 * 60 * 60 * 1000)
|
|
1259
1279
|
let system = {
|
|
1260
1280
|
task_: $task,
|
|
@@ -46,6 +46,8 @@ import * as ff_core_Int from "../../ff/core/Int.mjs"
|
|
|
46
46
|
|
|
47
47
|
import * as ff_core_IntMap from "../../ff/core/IntMap.mjs"
|
|
48
48
|
|
|
49
|
+
import * as ff_core_Js from "../../ff/core/Js.mjs"
|
|
50
|
+
|
|
49
51
|
import * as ff_core_JsSystem from "../../ff/core/JsSystem.mjs"
|
|
50
52
|
|
|
51
53
|
import * as ff_core_JsValue from "../../ff/core/JsValue.mjs"
|
|
@@ -72,6 +74,8 @@ import * as ff_core_Pair from "../../ff/core/Pair.mjs"
|
|
|
72
74
|
|
|
73
75
|
import * as ff_core_Path from "../../ff/core/Path.mjs"
|
|
74
76
|
|
|
77
|
+
import * as ff_core_Queue from "../../ff/core/Queue.mjs"
|
|
78
|
+
|
|
75
79
|
import * as ff_core_Random from "../../ff/core/Random.mjs"
|
|
76
80
|
|
|
77
81
|
import * as ff_core_Serializable from "../../ff/core/Serializable.mjs"
|
|
@@ -94,8 +98,6 @@ import * as ff_core_Try from "../../ff/core/Try.mjs"
|
|
|
94
98
|
|
|
95
99
|
import * as ff_core_Unit from "../../ff/core/Unit.mjs"
|
|
96
100
|
|
|
97
|
-
import * as ff_core_UnsafeJs from "../../ff/core/UnsafeJs.mjs"
|
|
98
|
-
|
|
99
101
|
// type ModuleCache
|
|
100
102
|
export function ModuleCache(version_, parsedModules_, resolvedModules_, derivedModules_, inferredModules_, emittedModules_) {
|
|
101
103
|
return {version_, parsedModules_, resolvedModules_, derivedModules_, inferredModules_, emittedModules_};
|
|
@@ -315,12 +317,12 @@ export function ModuleCache_cacheEmittedModule(self_, packagePaths_, packagePair
|
|
|
315
317
|
const path_ = ff_compiler_ModuleCache.modulePath_(packagePaths_, packagePair_, moduleName_);
|
|
316
318
|
if((!ff_core_Map.Map_contains(self_.emittedModules_, ff_core_Path.Path_absolute(path_), ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String))) {
|
|
317
319
|
self_.emittedModules_ = ff_core_Map.Map_add(self_.emittedModules_, ff_core_Path.Path_absolute(path_), self_.version_, ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String);
|
|
318
|
-
|
|
320
|
+
try {
|
|
319
321
|
body_(path_)
|
|
320
|
-
}
|
|
322
|
+
} catch(error_) {
|
|
321
323
|
self_.emittedModules_ = ff_core_Map.Map_remove(self_.emittedModules_, ff_core_Path.Path_absolute(path_), ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String);
|
|
322
324
|
ff_core_Error.Error_rethrow(error_)
|
|
323
|
-
}
|
|
325
|
+
}
|
|
324
326
|
}
|
|
325
327
|
}
|
|
326
328
|
|
|
@@ -488,12 +490,12 @@ export async function ModuleCache_cacheEmittedModule$(self_, packagePaths_, pack
|
|
|
488
490
|
const path_ = (await ff_compiler_ModuleCache.modulePath_$(packagePaths_, packagePair_, moduleName_, $task));
|
|
489
491
|
if((!ff_core_Map.Map_contains(self_.emittedModules_, (await ff_core_Path.Path_absolute$(path_, $task)), ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String))) {
|
|
490
492
|
self_.emittedModules_ = ff_core_Map.Map_add(self_.emittedModules_, (await ff_core_Path.Path_absolute$(path_, $task)), self_.version_, ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String);
|
|
491
|
-
|
|
493
|
+
try {
|
|
492
494
|
(await body_(path_, $task))
|
|
493
|
-
}
|
|
495
|
+
} catch(error_) {
|
|
494
496
|
self_.emittedModules_ = ff_core_Map.Map_remove(self_.emittedModules_, (await ff_core_Path.Path_absolute$(path_, $task)), ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String);
|
|
495
497
|
ff_core_Error.Error_rethrow(error_)
|
|
496
|
-
}
|
|
498
|
+
}
|
|
497
499
|
}
|
|
498
500
|
}
|
|
499
501
|
|