firefly-compiler 0.4.23 → 0.4.25
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/bin/firefly.mjs +2 -0
- package/compiler/Builder.ff +14 -1
- package/compiler/Compiler.ff +13 -40
- package/compiler/Main.ff +15 -1
- package/compiler/ModuleCache.ff +160 -0
- package/core/Map.ff +8 -0
- package/core/Path.ff +4 -0
- package/experimental/bidirectional/Bidi.ff +88 -0
- package/lsp/Handler.ff +109 -37
- package/lsp/LanguageServer.ff +12 -8
- package/lsp/TestReferences.ff +3 -1
- package/lux/.firefly/package.ff +0 -1
- package/output/js/ff/compiler/Builder.mjs +30 -16
- package/output/js/ff/compiler/Compiler.mjs +29 -67
- package/output/js/ff/compiler/Dependencies.mjs +0 -2
- package/output/js/ff/compiler/Deriver.mjs +0 -2
- package/output/js/ff/compiler/Dictionaries.mjs +0 -2
- package/output/js/ff/compiler/Environment.mjs +0 -2
- package/output/js/ff/compiler/Inference.mjs +0 -2
- package/output/js/ff/compiler/JsEmitter.mjs +0 -2
- package/output/js/ff/compiler/JsImporter.mjs +0 -2
- package/output/js/ff/compiler/LspHook.mjs +0 -2
- package/output/js/ff/compiler/Main.mjs +8 -8
- package/output/js/ff/compiler/ModuleCache.mjs +428 -0
- package/output/js/ff/compiler/Parser.mjs +0 -2
- package/output/js/ff/compiler/Patterns.mjs +0 -2
- package/output/js/ff/compiler/Resolver.mjs +0 -2
- package/output/js/ff/compiler/Substitution.mjs +0 -2
- package/output/js/ff/compiler/Syntax.mjs +0 -2
- package/output/js/ff/compiler/Token.mjs +0 -2
- package/output/js/ff/compiler/Tokenizer.mjs +0 -2
- package/output/js/ff/compiler/Unification.mjs +0 -2
- package/output/js/ff/compiler/Wildcards.mjs +0 -2
- package/output/js/ff/compiler/Workspace.mjs +0 -2
- package/output/js/ff/core/Any.mjs +0 -2
- package/output/js/ff/core/Array.mjs +0 -2
- package/output/js/ff/core/AssetSystem.mjs +0 -2
- package/output/js/ff/core/Atomic.mjs +0 -2
- package/output/js/ff/core/Bool.mjs +0 -2
- package/output/js/ff/core/BrowserSystem.mjs +0 -2
- package/output/js/ff/core/Buffer.mjs +0 -2
- package/output/js/ff/core/BuildSystem.mjs +0 -2
- package/output/js/ff/core/Channel.mjs +0 -2
- package/output/js/ff/core/Char.mjs +0 -2
- package/output/js/ff/core/Core.mjs +0 -2
- package/output/js/ff/core/Duration.mjs +0 -2
- package/output/js/ff/core/Equal.mjs +0 -2
- package/output/js/ff/core/Error.mjs +0 -2
- package/output/js/ff/core/FileHandle.mjs +0 -2
- package/output/js/ff/core/Float.mjs +0 -2
- package/output/js/ff/core/HttpClient.mjs +0 -2
- package/output/js/ff/core/Instant.mjs +0 -2
- package/output/js/ff/core/Int.mjs +0 -2
- package/output/js/ff/core/IntMap.mjs +0 -2
- package/output/js/ff/core/JsSystem.mjs +0 -2
- package/output/js/ff/core/JsValue.mjs +0 -2
- package/output/js/ff/core/Json.mjs +0 -2
- package/output/js/ff/core/List.mjs +0 -2
- package/output/js/ff/core/Lock.mjs +0 -2
- package/output/js/ff/core/Log.mjs +0 -2
- package/output/js/ff/core/Map.mjs +16 -2
- package/output/js/ff/core/NodeSystem.mjs +0 -2
- package/output/js/ff/core/Nothing.mjs +0 -2
- package/output/js/ff/core/Option.mjs +0 -2
- package/output/js/ff/core/Ordering.mjs +0 -2
- package/output/js/ff/core/Pair.mjs +0 -2
- package/output/js/ff/core/Path.mjs +12 -2
- package/output/js/ff/core/Random.mjs +0 -2
- package/output/js/ff/core/RbMap.mjs +0 -2
- package/output/js/ff/core/Serializable.mjs +0 -2
- package/output/js/ff/core/Set.mjs +0 -2
- package/output/js/ff/core/Show.mjs +0 -2
- package/output/js/ff/core/SourceLocation.mjs +0 -2
- package/output/js/ff/core/Stream.mjs +0 -2
- package/output/js/ff/core/String.mjs +0 -2
- package/output/js/ff/core/StringMap.mjs +0 -2
- package/output/js/ff/core/Task.mjs +0 -2
- package/output/js/ff/core/Try.mjs +0 -2
- package/output/js/ff/core/Unit.mjs +0 -2
- package/package.json +1 -1
- package/vscode/README.md +3 -1
- package/vscode/client/src/extension.ts +4 -3
- package/vscode/package.json +1 -1
- package/output/js/ff/core/Box.mjs +0 -114
|
@@ -14,6 +14,8 @@ import * as ff_compiler_JsEmitter from "../../ff/compiler/JsEmitter.mjs"
|
|
|
14
14
|
|
|
15
15
|
import * as ff_compiler_LspHook from "../../ff/compiler/LspHook.mjs"
|
|
16
16
|
|
|
17
|
+
import * as ff_compiler_ModuleCache from "../../ff/compiler/ModuleCache.mjs"
|
|
18
|
+
|
|
17
19
|
import * as ff_compiler_Parser from "../../ff/compiler/Parser.mjs"
|
|
18
20
|
|
|
19
21
|
import * as ff_compiler_Resolver from "../../ff/compiler/Resolver.mjs"
|
|
@@ -32,8 +34,6 @@ import * as ff_core_Atomic from "../../ff/core/Atomic.mjs"
|
|
|
32
34
|
|
|
33
35
|
import * as ff_core_Bool from "../../ff/core/Bool.mjs"
|
|
34
36
|
|
|
35
|
-
import * as ff_core_Box from "../../ff/core/Box.mjs"
|
|
36
|
-
|
|
37
37
|
import * as ff_core_BrowserSystem from "../../ff/core/BrowserSystem.mjs"
|
|
38
38
|
|
|
39
39
|
import * as ff_core_Buffer from "../../ff/core/Buffer.mjs"
|
|
@@ -113,24 +113,24 @@ import * as ff_core_Try from "../../ff/core/Try.mjs"
|
|
|
113
113
|
import * as ff_core_Unit from "../../ff/core/Unit.mjs"
|
|
114
114
|
|
|
115
115
|
// type Compiler
|
|
116
|
-
export function Compiler(emitTarget_, task_, compilerModulePath_, jsOutputPath_, packagePaths_, singleFilePackages_, virtualFiles_,
|
|
117
|
-
return {emitTarget_, task_, compilerModulePath_, jsOutputPath_, packagePaths_, singleFilePackages_, virtualFiles_,
|
|
116
|
+
export function Compiler(emitTarget_, task_, compilerModulePath_, jsOutputPath_, packagePaths_, singleFilePackages_, virtualFiles_, cache_, lspHook_, phaseDurationDelta_, phaseDurations_) {
|
|
117
|
+
return {emitTarget_, task_, compilerModulePath_, jsOutputPath_, packagePaths_, singleFilePackages_, virtualFiles_, cache_, lspHook_, phaseDurationDelta_, phaseDurations_};
|
|
118
118
|
}
|
|
119
119
|
|
|
120
|
-
export const coreImports_ = ff_core_List.List_map(["Any", "Array", "AssetSystem", "Atomic", "Bool", "
|
|
120
|
+
export const coreImports_ = ff_core_List.List_map(["Any", "Array", "AssetSystem", "Atomic", "Bool", "BrowserSystem", "Buffer", "BuildSystem", "Channel", "Char", "Core", "Duration", "Equal", "Error", "FileHandle", "Float", "HttpClient", "Instant", "Int", "IntMap", "Json", "JsValue", "JsSystem", "List", "Lock", "Log", "Map", "NodeSystem", "Nothing", "Option", "Ordering", "Pair", "Path", "Random", "Serializable", "Set", "Show", "SourceLocation", "Stream", "String", "StringMap", "Task", "Try", "Unit"], ((moduleName_) => {
|
|
121
121
|
return ff_compiler_Syntax.DImport(ff_compiler_Syntax.Location("<prelude>", 1, 1), moduleName_, ff_compiler_Syntax.PackagePair("ff", "core"), [], moduleName_)
|
|
122
122
|
}));
|
|
123
123
|
|
|
124
|
-
export function make_(emitTarget_, task_, compilerModulePath_, jsOutputPath_, resolvedDependencies_, virtualFiles_, lspHook_) {
|
|
125
|
-
return ff_compiler_Compiler.Compiler(emitTarget_, task_, compilerModulePath_, jsOutputPath_, resolvedDependencies_.packagePaths_, resolvedDependencies_.singleFilePackages_, virtualFiles_,
|
|
124
|
+
export function make_(emitTarget_, task_, compilerModulePath_, jsOutputPath_, resolvedDependencies_, virtualFiles_, cache_, lspHook_) {
|
|
125
|
+
return ff_compiler_Compiler.Compiler(emitTarget_, task_, compilerModulePath_, jsOutputPath_, resolvedDependencies_.packagePaths_, resolvedDependencies_.singleFilePackages_, virtualFiles_, cache_, lspHook_, 0.0, ff_core_List.List_toArray([]))
|
|
126
126
|
}
|
|
127
127
|
|
|
128
128
|
export function fail_(at_, message_) {
|
|
129
129
|
return ff_core_Core.panic_(((message_ + " ") + ff_compiler_Syntax.Location_show(at_)))
|
|
130
130
|
}
|
|
131
131
|
|
|
132
|
-
export async function make_$(emitTarget_, task_, compilerModulePath_, jsOutputPath_, resolvedDependencies_, virtualFiles_, lspHook_, $task) {
|
|
133
|
-
return ff_compiler_Compiler.Compiler(emitTarget_, task_, compilerModulePath_, jsOutputPath_, resolvedDependencies_.packagePaths_, resolvedDependencies_.singleFilePackages_, virtualFiles_,
|
|
132
|
+
export async function make_$(emitTarget_, task_, compilerModulePath_, jsOutputPath_, resolvedDependencies_, virtualFiles_, cache_, lspHook_, $task) {
|
|
133
|
+
return ff_compiler_Compiler.Compiler(emitTarget_, task_, compilerModulePath_, jsOutputPath_, resolvedDependencies_.packagePaths_, resolvedDependencies_.singleFilePackages_, virtualFiles_, cache_, lspHook_, 0.0, ff_core_List.List_toArray([]))
|
|
134
134
|
}
|
|
135
135
|
|
|
136
136
|
export async function fail_$(at_, message_, $task) {
|
|
@@ -163,14 +163,9 @@ return
|
|
|
163
163
|
}
|
|
164
164
|
|
|
165
165
|
export function Compiler_parse(self_, packagePair_, moduleName_, importedAt_) {
|
|
166
|
+
return ff_compiler_ModuleCache.ModuleCache_cacheParsedModule(self_.cache_, self_.packagePaths_, packagePair_, moduleName_, ((path_) => {
|
|
166
167
|
const packageName_ = ff_compiler_Syntax.PackagePair_groupName(packagePair_, ":");
|
|
167
|
-
return ff_core_Option.Option_else(ff_core_Map.Map_get(self_.parsedModules_, ((packageName_ + ":") + moduleName_), ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), (() => {
|
|
168
168
|
return ff_compiler_Compiler.Compiler_measure(self_, "Parse", packagePair_, moduleName_, (() => {
|
|
169
|
-
const packagePath_ = ff_core_Option.Option_else(ff_core_Map.Map_get(self_.packagePaths_, packagePair_, ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair), (() => {
|
|
170
|
-
return ff_core_Core.panic_(("Internal error - package path missing: " + ff_compiler_Syntax.PackagePair_groupName(packagePair_, ":")))
|
|
171
|
-
}));
|
|
172
|
-
const file_ = (moduleName_ + ".ff");
|
|
173
|
-
const path_ = ff_core_Path.Path_slash(packagePath_, file_);
|
|
174
169
|
const code_ = ff_core_Option.Option_else(ff_core_Map.Map_get(self_.virtualFiles_, ff_core_Path.Path_absolute(path_), ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), (() => {
|
|
175
170
|
ff_core_Option.Option_each(importedAt_, ((at_) => {
|
|
176
171
|
if((!ff_core_Path.Path_exists(path_, false, false, false))) {
|
|
@@ -183,14 +178,13 @@ const completionAt_ = ((ff_compiler_LspHook.LspHook_isEnabled(self_.lspHook_) &&
|
|
|
183
178
|
? ff_core_Option.Some(self_.lspHook_.at_)
|
|
184
179
|
: ff_core_Option.None());
|
|
185
180
|
const tokens_ = ff_compiler_Tokenizer.tokenize_(ff_core_Path.Path_absolute(path_), code_, completionAt_, ff_compiler_LspHook.LspHook_isEnabled(self_.lspHook_));
|
|
186
|
-
const parser_ = ff_compiler_Parser.make_(packagePair_,
|
|
181
|
+
const parser_ = ff_compiler_Parser.make_(packagePair_, ff_core_Path.Path_base(path_), tokens_, ff_core_Equal.notEquals_(self_.emitTarget_, ff_compiler_JsEmitter.EmitBrowser(), ff_compiler_JsEmitter.ff_core_Equal_Equal$ff_compiler_JsEmitter_EmitTarget), self_.lspHook_);
|
|
187
182
|
const module_ = (ff_core_Set.Set_contains(self_.singleFilePackages_, packagePair_, ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair)
|
|
188
183
|
? ff_compiler_Parser.Parser_parseModuleWithPackageInfo(parser_).module_
|
|
189
184
|
: ff_compiler_Parser.Parser_parseModuleWithoutPackageInfo(parser_));
|
|
190
185
|
const result_ = (((_c) => {
|
|
191
186
|
return ff_compiler_Syntax.Module(_c.file_, _c.packagePair_, [...ff_compiler_Compiler.coreImports_, ...module_.imports_], _c.types_, _c.traits_, _c.instances_, _c.extends_, _c.lets_, _c.functions_)
|
|
192
187
|
}))(module_);
|
|
193
|
-
self_.parsedModules_ = ff_core_Map.Map_add(self_.parsedModules_, ((packageName_ + ":") + moduleName_), result_, ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String);
|
|
194
188
|
return result_
|
|
195
189
|
}))
|
|
196
190
|
}))
|
|
@@ -210,34 +204,27 @@ return ff_compiler_Compiler.Compiler_parse(self_, newPackagePair_, newModuleName
|
|
|
210
204
|
}
|
|
211
205
|
|
|
212
206
|
export function Compiler_resolve(self_, packagePair_, moduleName_) {
|
|
213
|
-
|
|
214
|
-
return ff_core_Option.Option_else(ff_core_Map.Map_get(self_.resolvedModules_, ((packageName_ + ":") + moduleName_), ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), (() => {
|
|
207
|
+
return ff_compiler_ModuleCache.ModuleCache_cacheResolvedModule(self_.cache_, self_.packagePaths_, packagePair_, moduleName_, ((path_) => {
|
|
215
208
|
return ff_compiler_Compiler.Compiler_measure(self_, "Resolve", packagePair_, moduleName_, (() => {
|
|
216
209
|
const module_ = ff_compiler_Compiler.Compiler_parse(self_, packagePair_, moduleName_, ff_core_Option.None());
|
|
217
210
|
const otherModules_ = ff_compiler_Compiler.Compiler_imports(self_, module_);
|
|
218
211
|
const resolver_ = ff_compiler_Resolver.make_(packagePair_, moduleName_, self_.lspHook_);
|
|
219
|
-
|
|
220
|
-
self_.resolvedModules_ = ff_core_Map.Map_add(self_.resolvedModules_, ((packageName_ + ":") + moduleName_), result_, ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String);
|
|
221
|
-
return result_
|
|
212
|
+
return ff_compiler_Resolver.Resolver_resolveModule(resolver_, module_, otherModules_)
|
|
222
213
|
}))
|
|
223
214
|
}))
|
|
224
215
|
}
|
|
225
216
|
|
|
226
217
|
export function Compiler_derive(self_, packagePair_, moduleName_) {
|
|
227
|
-
|
|
228
|
-
return ff_core_Option.Option_else(ff_core_Map.Map_get(self_.derivedModules_, ((packageName_ + ":") + moduleName_), ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), (() => {
|
|
218
|
+
return ff_compiler_ModuleCache.ModuleCache_cacheDerivedModule(self_.cache_, self_.packagePaths_, packagePair_, moduleName_, ((path_) => {
|
|
229
219
|
return ff_compiler_Compiler.Compiler_measure(self_, "Derive", packagePair_, moduleName_, (() => {
|
|
230
220
|
const module_ = ff_compiler_Compiler.Compiler_resolve(self_, packagePair_, moduleName_);
|
|
231
|
-
|
|
232
|
-
self_.derivedModules_ = ff_core_Map.Map_add(self_.derivedModules_, ((packageName_ + ":") + moduleName_), result_, ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String);
|
|
233
|
-
return result_
|
|
221
|
+
return ff_compiler_Deriver.Deriver_deriveModule(ff_compiler_Deriver.make_(), module_)
|
|
234
222
|
}))
|
|
235
223
|
}))
|
|
236
224
|
}
|
|
237
225
|
|
|
238
226
|
export function Compiler_infer(self_, packagePair_, moduleName_) {
|
|
239
|
-
|
|
240
|
-
return ff_core_Option.Option_else(ff_core_Map.Map_get(self_.inferredModules_, ((packageName_ + ":") + moduleName_), ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), (() => {
|
|
227
|
+
return ff_compiler_ModuleCache.ModuleCache_cacheInferredModule(self_.cache_, self_.packagePaths_, packagePair_, moduleName_, ((path_) => {
|
|
241
228
|
return ff_compiler_Compiler.Compiler_measure(self_, "Infer", packagePair_, moduleName_, (() => {
|
|
242
229
|
const module_ = ff_compiler_Compiler.Compiler_derive(self_, packagePair_, moduleName_);
|
|
243
230
|
const otherModules_ = ff_core_List.List_map(ff_compiler_Compiler.Compiler_imports(self_, module_), ((i_) => {
|
|
@@ -245,20 +232,14 @@ return ff_compiler_Compiler.Compiler_derive(self_, i_.packagePair_, ff_core_Stri
|
|
|
245
232
|
}));
|
|
246
233
|
const inference_ = ff_compiler_Inference.make_([module_, ...otherModules_], self_.lspHook_);
|
|
247
234
|
const inferredModule_ = ff_compiler_Inference.Inference_inferModule(inference_, module_, otherModules_);
|
|
248
|
-
|
|
249
|
-
self_.inferredModules_ = ff_core_Map.Map_add(self_.inferredModules_, ((packageName_ + ":") + moduleName_), result_, ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String);
|
|
250
|
-
return result_
|
|
235
|
+
return ff_compiler_Dictionaries.Dictionaries_processModule(ff_compiler_Dictionaries.make_([module_, ...otherModules_]), inferredModule_, otherModules_)
|
|
251
236
|
}))
|
|
252
237
|
}))
|
|
253
238
|
}
|
|
254
239
|
|
|
255
240
|
export function Compiler_emit(self_, packagePair_, moduleName_, isMainModule_) {
|
|
256
|
-
|
|
257
|
-
if(ff_core_Set.Set_contains(self_.emittedModules_, ((packageName_ + ":") + moduleName_), ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String)) {
|
|
258
|
-
|
|
259
|
-
} else {
|
|
241
|
+
ff_compiler_ModuleCache.ModuleCache_cacheEmittedModule(self_.cache_, self_.packagePaths_, packagePair_, moduleName_, ((path_) => {
|
|
260
242
|
ff_compiler_Compiler.Compiler_measure(self_, "Emit", packagePair_, moduleName_, (() => {
|
|
261
|
-
self_.emittedModules_ = ff_core_Set.Set_add(self_.emittedModules_, ((packageName_ + ":") + moduleName_), ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String);
|
|
262
243
|
const module_ = ff_compiler_Compiler.Compiler_infer(self_, packagePair_, moduleName_);
|
|
263
244
|
const otherModules_ = ff_core_List.List_map(ff_compiler_Compiler.Compiler_imports(self_, module_), ((i_) => {
|
|
264
245
|
const newModuleName_ = ff_core_String.String_dropLast(i_.file_, ff_core_String.String_size(".ff"));
|
|
@@ -272,7 +253,7 @@ const jsFile_ = ff_core_Path.Path_slash(jsPath_, (moduleName_ + ".mjs"));
|
|
|
272
253
|
ff_core_Path.Path_createDirectory(jsPath_, true);
|
|
273
254
|
return ff_core_Path.Path_writeText(jsFile_, js_)
|
|
274
255
|
}))
|
|
275
|
-
}
|
|
256
|
+
}))
|
|
276
257
|
}
|
|
277
258
|
|
|
278
259
|
export async function Compiler_measure$(self_, phase_, packagePair_, moduleName_, body_, $task) {
|
|
@@ -301,14 +282,9 @@ return
|
|
|
301
282
|
}
|
|
302
283
|
|
|
303
284
|
export async function Compiler_parse$(self_, packagePair_, moduleName_, importedAt_, $task) {
|
|
285
|
+
return (await ff_compiler_ModuleCache.ModuleCache_cacheParsedModule$(self_.cache_, self_.packagePaths_, packagePair_, moduleName_, (async (path_, $task) => {
|
|
304
286
|
const packageName_ = ff_compiler_Syntax.PackagePair_groupName(packagePair_, ":");
|
|
305
|
-
return (await ff_core_Option.Option_else$(ff_core_Map.Map_get(self_.parsedModules_, ((packageName_ + ":") + moduleName_), ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), (async ($task) => {
|
|
306
287
|
return (await ff_compiler_Compiler.Compiler_measure$(self_, "Parse", packagePair_, moduleName_, (async ($task) => {
|
|
307
|
-
const packagePath_ = ff_core_Option.Option_else(ff_core_Map.Map_get(self_.packagePaths_, packagePair_, ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair), (() => {
|
|
308
|
-
return ff_core_Core.panic_(("Internal error - package path missing: " + ff_compiler_Syntax.PackagePair_groupName(packagePair_, ":")))
|
|
309
|
-
}));
|
|
310
|
-
const file_ = (moduleName_ + ".ff");
|
|
311
|
-
const path_ = (await ff_core_Path.Path_slash$(packagePath_, file_, $task));
|
|
312
288
|
const code_ = (await ff_core_Option.Option_else$(ff_core_Map.Map_get(self_.virtualFiles_, (await ff_core_Path.Path_absolute$(path_, $task)), ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), (async ($task) => {
|
|
313
289
|
(await ff_core_Option.Option_each$(importedAt_, (async (at_, $task) => {
|
|
314
290
|
if((!(await ff_core_Path.Path_exists$(path_, false, false, false, $task)))) {
|
|
@@ -321,14 +297,13 @@ const completionAt_ = ((ff_compiler_LspHook.LspHook_isEnabled(self_.lspHook_) &&
|
|
|
321
297
|
? ff_core_Option.Some(self_.lspHook_.at_)
|
|
322
298
|
: ff_core_Option.None());
|
|
323
299
|
const tokens_ = ff_compiler_Tokenizer.tokenize_((await ff_core_Path.Path_absolute$(path_, $task)), code_, completionAt_, ff_compiler_LspHook.LspHook_isEnabled(self_.lspHook_));
|
|
324
|
-
const parser_ = ff_compiler_Parser.make_(packagePair_,
|
|
300
|
+
const parser_ = ff_compiler_Parser.make_(packagePair_, (await ff_core_Path.Path_base$(path_, $task)), tokens_, ff_core_Equal.notEquals_(self_.emitTarget_, ff_compiler_JsEmitter.EmitBrowser(), ff_compiler_JsEmitter.ff_core_Equal_Equal$ff_compiler_JsEmitter_EmitTarget), self_.lspHook_);
|
|
325
301
|
const module_ = (ff_core_Set.Set_contains(self_.singleFilePackages_, packagePair_, ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair)
|
|
326
302
|
? ff_compiler_Parser.Parser_parseModuleWithPackageInfo(parser_).module_
|
|
327
303
|
: ff_compiler_Parser.Parser_parseModuleWithoutPackageInfo(parser_));
|
|
328
304
|
const result_ = (((_c) => {
|
|
329
305
|
return ff_compiler_Syntax.Module(_c.file_, _c.packagePair_, [...ff_compiler_Compiler.coreImports_, ...module_.imports_], _c.types_, _c.traits_, _c.instances_, _c.extends_, _c.lets_, _c.functions_)
|
|
330
306
|
}))(module_);
|
|
331
|
-
self_.parsedModules_ = ff_core_Map.Map_add(self_.parsedModules_, ((packageName_ + ":") + moduleName_), result_, ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String);
|
|
332
307
|
return result_
|
|
333
308
|
}), $task))
|
|
334
309
|
}), $task))
|
|
@@ -348,34 +323,27 @@ return (await ff_compiler_Compiler.Compiler_parse$(self_, newPackagePair_, newMo
|
|
|
348
323
|
}
|
|
349
324
|
|
|
350
325
|
export async function Compiler_resolve$(self_, packagePair_, moduleName_, $task) {
|
|
351
|
-
|
|
352
|
-
return (await ff_core_Option.Option_else$(ff_core_Map.Map_get(self_.resolvedModules_, ((packageName_ + ":") + moduleName_), ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), (async ($task) => {
|
|
326
|
+
return (await ff_compiler_ModuleCache.ModuleCache_cacheResolvedModule$(self_.cache_, self_.packagePaths_, packagePair_, moduleName_, (async (path_, $task) => {
|
|
353
327
|
return (await ff_compiler_Compiler.Compiler_measure$(self_, "Resolve", packagePair_, moduleName_, (async ($task) => {
|
|
354
328
|
const module_ = (await ff_compiler_Compiler.Compiler_parse$(self_, packagePair_, moduleName_, ff_core_Option.None(), $task));
|
|
355
329
|
const otherModules_ = (await ff_compiler_Compiler.Compiler_imports$(self_, module_, $task));
|
|
356
330
|
const resolver_ = ff_compiler_Resolver.make_(packagePair_, moduleName_, self_.lspHook_);
|
|
357
|
-
|
|
358
|
-
self_.resolvedModules_ = ff_core_Map.Map_add(self_.resolvedModules_, ((packageName_ + ":") + moduleName_), result_, ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String);
|
|
359
|
-
return result_
|
|
331
|
+
return ff_compiler_Resolver.Resolver_resolveModule(resolver_, module_, otherModules_)
|
|
360
332
|
}), $task))
|
|
361
333
|
}), $task))
|
|
362
334
|
}
|
|
363
335
|
|
|
364
336
|
export async function Compiler_derive$(self_, packagePair_, moduleName_, $task) {
|
|
365
|
-
|
|
366
|
-
return (await ff_core_Option.Option_else$(ff_core_Map.Map_get(self_.derivedModules_, ((packageName_ + ":") + moduleName_), ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), (async ($task) => {
|
|
337
|
+
return (await ff_compiler_ModuleCache.ModuleCache_cacheDerivedModule$(self_.cache_, self_.packagePaths_, packagePair_, moduleName_, (async (path_, $task) => {
|
|
367
338
|
return (await ff_compiler_Compiler.Compiler_measure$(self_, "Derive", packagePair_, moduleName_, (async ($task) => {
|
|
368
339
|
const module_ = (await ff_compiler_Compiler.Compiler_resolve$(self_, packagePair_, moduleName_, $task));
|
|
369
|
-
|
|
370
|
-
self_.derivedModules_ = ff_core_Map.Map_add(self_.derivedModules_, ((packageName_ + ":") + moduleName_), result_, ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String);
|
|
371
|
-
return result_
|
|
340
|
+
return ff_compiler_Deriver.Deriver_deriveModule(ff_compiler_Deriver.make_(), module_)
|
|
372
341
|
}), $task))
|
|
373
342
|
}), $task))
|
|
374
343
|
}
|
|
375
344
|
|
|
376
345
|
export async function Compiler_infer$(self_, packagePair_, moduleName_, $task) {
|
|
377
|
-
|
|
378
|
-
return (await ff_core_Option.Option_else$(ff_core_Map.Map_get(self_.inferredModules_, ((packageName_ + ":") + moduleName_), ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String), (async ($task) => {
|
|
346
|
+
return (await ff_compiler_ModuleCache.ModuleCache_cacheInferredModule$(self_.cache_, self_.packagePaths_, packagePair_, moduleName_, (async (path_, $task) => {
|
|
379
347
|
return (await ff_compiler_Compiler.Compiler_measure$(self_, "Infer", packagePair_, moduleName_, (async ($task) => {
|
|
380
348
|
const module_ = (await ff_compiler_Compiler.Compiler_derive$(self_, packagePair_, moduleName_, $task));
|
|
381
349
|
const otherModules_ = (await ff_core_List.List_map$((await ff_compiler_Compiler.Compiler_imports$(self_, module_, $task)), (async (i_, $task) => {
|
|
@@ -383,20 +351,14 @@ return (await ff_compiler_Compiler.Compiler_derive$(self_, i_.packagePair_, ff_c
|
|
|
383
351
|
}), $task));
|
|
384
352
|
const inference_ = ff_compiler_Inference.make_([module_, ...otherModules_], self_.lspHook_);
|
|
385
353
|
const inferredModule_ = ff_compiler_Inference.Inference_inferModule(inference_, module_, otherModules_);
|
|
386
|
-
|
|
387
|
-
self_.inferredModules_ = ff_core_Map.Map_add(self_.inferredModules_, ((packageName_ + ":") + moduleName_), result_, ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String);
|
|
388
|
-
return result_
|
|
354
|
+
return ff_compiler_Dictionaries.Dictionaries_processModule(ff_compiler_Dictionaries.make_([module_, ...otherModules_]), inferredModule_, otherModules_)
|
|
389
355
|
}), $task))
|
|
390
356
|
}), $task))
|
|
391
357
|
}
|
|
392
358
|
|
|
393
359
|
export async function Compiler_emit$(self_, packagePair_, moduleName_, isMainModule_, $task) {
|
|
394
|
-
|
|
395
|
-
if(ff_core_Set.Set_contains(self_.emittedModules_, ((packageName_ + ":") + moduleName_), ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String)) {
|
|
396
|
-
|
|
397
|
-
} else {
|
|
360
|
+
(await ff_compiler_ModuleCache.ModuleCache_cacheEmittedModule$(self_.cache_, self_.packagePaths_, packagePair_, moduleName_, (async (path_, $task) => {
|
|
398
361
|
(await ff_compiler_Compiler.Compiler_measure$(self_, "Emit", packagePair_, moduleName_, (async ($task) => {
|
|
399
|
-
self_.emittedModules_ = ff_core_Set.Set_add(self_.emittedModules_, ((packageName_ + ":") + moduleName_), ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String);
|
|
400
362
|
const module_ = (await ff_compiler_Compiler.Compiler_infer$(self_, packagePair_, moduleName_, $task));
|
|
401
363
|
const otherModules_ = (await ff_core_List.List_map$((await ff_compiler_Compiler.Compiler_imports$(self_, module_, $task)), (async (i_, $task) => {
|
|
402
364
|
const newModuleName_ = ff_core_String.String_dropLast(i_.file_, ff_core_String.String_size(".ff"));
|
|
@@ -410,7 +372,7 @@ const jsFile_ = (await ff_core_Path.Path_slash$(jsPath_, (moduleName_ + ".mjs"),
|
|
|
410
372
|
(await ff_core_Path.Path_createDirectory$(jsPath_, true, $task));
|
|
411
373
|
return (await ff_core_Path.Path_writeText$(jsFile_, js_, $task))
|
|
412
374
|
}), $task))
|
|
413
|
-
}
|
|
375
|
+
}), $task))
|
|
414
376
|
}
|
|
415
377
|
|
|
416
378
|
|
|
@@ -22,8 +22,6 @@ import * as ff_core_Atomic from "../../ff/core/Atomic.mjs"
|
|
|
22
22
|
|
|
23
23
|
import * as ff_core_Bool from "../../ff/core/Bool.mjs"
|
|
24
24
|
|
|
25
|
-
import * as ff_core_Box from "../../ff/core/Box.mjs"
|
|
26
|
-
|
|
27
25
|
import * as ff_core_BrowserSystem from "../../ff/core/BrowserSystem.mjs"
|
|
28
26
|
|
|
29
27
|
import * as ff_core_Buffer from "../../ff/core/Buffer.mjs"
|
|
@@ -14,8 +14,6 @@ import * as ff_core_Atomic from "../../ff/core/Atomic.mjs"
|
|
|
14
14
|
|
|
15
15
|
import * as ff_core_Bool from "../../ff/core/Bool.mjs"
|
|
16
16
|
|
|
17
|
-
import * as ff_core_Box from "../../ff/core/Box.mjs"
|
|
18
|
-
|
|
19
17
|
import * as ff_core_BrowserSystem from "../../ff/core/BrowserSystem.mjs"
|
|
20
18
|
|
|
21
19
|
import * as ff_core_Buffer from "../../ff/core/Buffer.mjs"
|
|
@@ -18,8 +18,6 @@ import * as ff_core_Atomic from "../../ff/core/Atomic.mjs"
|
|
|
18
18
|
|
|
19
19
|
import * as ff_core_Bool from "../../ff/core/Bool.mjs"
|
|
20
20
|
|
|
21
|
-
import * as ff_core_Box from "../../ff/core/Box.mjs"
|
|
22
|
-
|
|
23
21
|
import * as ff_core_BrowserSystem from "../../ff/core/BrowserSystem.mjs"
|
|
24
22
|
|
|
25
23
|
import * as ff_core_Buffer from "../../ff/core/Buffer.mjs"
|
|
@@ -14,8 +14,6 @@ import * as ff_core_Atomic from "../../ff/core/Atomic.mjs"
|
|
|
14
14
|
|
|
15
15
|
import * as ff_core_Bool from "../../ff/core/Bool.mjs"
|
|
16
16
|
|
|
17
|
-
import * as ff_core_Box from "../../ff/core/Box.mjs"
|
|
18
|
-
|
|
19
17
|
import * as ff_core_BrowserSystem from "../../ff/core/BrowserSystem.mjs"
|
|
20
18
|
|
|
21
19
|
import * as ff_core_Buffer from "../../ff/core/Buffer.mjs"
|
|
@@ -22,8 +22,6 @@ import * as ff_core_Atomic from "../../ff/core/Atomic.mjs"
|
|
|
22
22
|
|
|
23
23
|
import * as ff_core_Bool from "../../ff/core/Bool.mjs"
|
|
24
24
|
|
|
25
|
-
import * as ff_core_Box from "../../ff/core/Box.mjs"
|
|
26
|
-
|
|
27
25
|
import * as ff_core_BrowserSystem from "../../ff/core/BrowserSystem.mjs"
|
|
28
26
|
|
|
29
27
|
import * as ff_core_Buffer from "../../ff/core/Buffer.mjs"
|
|
@@ -18,8 +18,6 @@ import * as ff_core_Atomic from "../../ff/core/Atomic.mjs"
|
|
|
18
18
|
|
|
19
19
|
import * as ff_core_Bool from "../../ff/core/Bool.mjs"
|
|
20
20
|
|
|
21
|
-
import * as ff_core_Box from "../../ff/core/Box.mjs"
|
|
22
|
-
|
|
23
21
|
import * as ff_core_BrowserSystem from "../../ff/core/BrowserSystem.mjs"
|
|
24
22
|
|
|
25
23
|
import * as ff_core_Buffer from "../../ff/core/Buffer.mjs"
|
|
@@ -14,8 +14,6 @@ import * as ff_core_Atomic from "../../ff/core/Atomic.mjs"
|
|
|
14
14
|
|
|
15
15
|
import * as ff_core_Bool from "../../ff/core/Bool.mjs"
|
|
16
16
|
|
|
17
|
-
import * as ff_core_Box from "../../ff/core/Box.mjs"
|
|
18
|
-
|
|
19
17
|
import * as ff_core_BrowserSystem from "../../ff/core/BrowserSystem.mjs"
|
|
20
18
|
|
|
21
19
|
import * as ff_core_Buffer from "../../ff/core/Buffer.mjs"
|
|
@@ -18,8 +18,6 @@ import * as ff_core_Atomic from "../../ff/core/Atomic.mjs"
|
|
|
18
18
|
|
|
19
19
|
import * as ff_core_Bool from "../../ff/core/Bool.mjs"
|
|
20
20
|
|
|
21
|
-
import * as ff_core_Box from "../../ff/core/Box.mjs"
|
|
22
|
-
|
|
23
21
|
import * as ff_core_BrowserSystem from "../../ff/core/BrowserSystem.mjs"
|
|
24
22
|
|
|
25
23
|
import * as ff_core_Buffer from "../../ff/core/Buffer.mjs"
|
|
@@ -14,6 +14,8 @@ import * as ff_compiler_JsEmitter from "../../ff/compiler/JsEmitter.mjs"
|
|
|
14
14
|
|
|
15
15
|
import * as ff_compiler_LspHook from "../../ff/compiler/LspHook.mjs"
|
|
16
16
|
|
|
17
|
+
import * as ff_compiler_ModuleCache from "../../ff/compiler/ModuleCache.mjs"
|
|
18
|
+
|
|
17
19
|
import * as ff_compiler_Parser from "../../ff/compiler/Parser.mjs"
|
|
18
20
|
|
|
19
21
|
import * as ff_compiler_Resolver from "../../ff/compiler/Resolver.mjs"
|
|
@@ -34,8 +36,6 @@ import * as ff_core_Atomic from "../../ff/core/Atomic.mjs"
|
|
|
34
36
|
|
|
35
37
|
import * as ff_core_Bool from "../../ff/core/Bool.mjs"
|
|
36
38
|
|
|
37
|
-
import * as ff_core_Box from "../../ff/core/Box.mjs"
|
|
38
|
-
|
|
39
39
|
import * as ff_core_BrowserSystem from "../../ff/core/BrowserSystem.mjs"
|
|
40
40
|
|
|
41
41
|
import * as ff_core_Buffer from "../../ff/core/Buffer.mjs"
|
|
@@ -173,7 +173,7 @@ return "executable"
|
|
|
173
173
|
}))(emitTarget_);
|
|
174
174
|
ff_compiler_Builder.build_(system_, emitTarget_, mainPackagePair_, mainFile_, (((_c) => {
|
|
175
175
|
return ff_compiler_Dependencies.ResolvedDependencies(_c.mainPackagePair_, _c.packages_, fixedPackagePaths_, _c.singleFilePackages_)
|
|
176
|
-
}))(resolvedDependencies_), compilerModulePath_, ff_core_Path.Path_slash(ff_core_NodeSystem.NodeSystem_path(system_, ".firefly"), "temporary"), ff_core_Path.Path_path(ff_core_Path.Path_path(ff_core_NodeSystem.NodeSystem_path(system_, ".firefly"), "output"), targetName_), false)
|
|
176
|
+
}))(resolvedDependencies_), compilerModulePath_, ff_core_Path.Path_slash(ff_core_NodeSystem.NodeSystem_path(system_, ".firefly"), "temporary"), ff_core_Path.Path_path(ff_core_Path.Path_path(ff_core_NodeSystem.NodeSystem_path(system_, ".firefly"), "output"), targetName_), false, ff_compiler_ModuleCache.empty_(0))
|
|
177
177
|
}
|
|
178
178
|
function runCommand_(command_) {
|
|
179
179
|
const command_a = command_;
|
|
@@ -212,7 +212,7 @@ return
|
|
|
212
212
|
}
|
|
213
213
|
if(command_a.CheckCommand) {
|
|
214
214
|
const filePath_ = command_a.filePath_;
|
|
215
|
-
const errors_ = ff_compiler_Builder.check_(system_, fireflyPath_, ff_core_NodeSystem.NodeSystem_path(system_, filePath_), ff_core_Option.None(), ff_core_Map.empty_(), ff_compiler_LspHook.disabled_(), true);
|
|
215
|
+
const errors_ = ff_compiler_Builder.check_(system_, fireflyPath_, ff_core_NodeSystem.NodeSystem_path(system_, filePath_), ff_core_Option.None(), ff_core_Map.empty_(), ff_compiler_ModuleCache.empty_(1), 0, ff_compiler_LspHook.disabled_(), true, false);
|
|
216
216
|
if((!ff_core_List.List_isEmpty(errors_))) {
|
|
217
217
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileErrors(ff_core_List.List_distinct(errors_, ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_CompileError)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileErrors)})
|
|
218
218
|
}
|
|
@@ -220,7 +220,7 @@ return
|
|
|
220
220
|
}
|
|
221
221
|
if(command_a.BootstrapCommand) {
|
|
222
222
|
const workingDirectory_ = ff_core_NodeSystem.NodeSystem_path(system_, ".");
|
|
223
|
-
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_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)
|
|
223
|
+
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_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.empty_(0))
|
|
224
224
|
return
|
|
225
225
|
}
|
|
226
226
|
}
|
|
@@ -420,7 +420,7 @@ return "executable"
|
|
|
420
420
|
}))(emitTarget_);
|
|
421
421
|
(await ff_compiler_Builder.build_$(system_, emitTarget_, mainPackagePair_, mainFile_, (((_c) => {
|
|
422
422
|
return ff_compiler_Dependencies.ResolvedDependencies(_c.mainPackagePair_, _c.packages_, fixedPackagePaths_, _c.singleFilePackages_)
|
|
423
|
-
}))(resolvedDependencies_), compilerModulePath_, (await ff_core_Path.Path_slash$((await ff_core_NodeSystem.NodeSystem_path$(system_, ".firefly", $task)), "temporary", $task)), (await ff_core_Path.Path_path$((await ff_core_Path.Path_path$((await ff_core_NodeSystem.NodeSystem_path$(system_, ".firefly", $task)), "output", $task)), targetName_, $task)), false, $task))
|
|
423
|
+
}))(resolvedDependencies_), compilerModulePath_, (await ff_core_Path.Path_slash$((await ff_core_NodeSystem.NodeSystem_path$(system_, ".firefly", $task)), "temporary", $task)), (await ff_core_Path.Path_path$((await ff_core_Path.Path_path$((await ff_core_NodeSystem.NodeSystem_path$(system_, ".firefly", $task)), "output", $task)), targetName_, $task)), false, ff_compiler_ModuleCache.empty_(0), $task))
|
|
424
424
|
}
|
|
425
425
|
async function runCommand_$(command_, $task) {
|
|
426
426
|
const command_a = command_;
|
|
@@ -459,7 +459,7 @@ return
|
|
|
459
459
|
}
|
|
460
460
|
if(command_a.CheckCommand) {
|
|
461
461
|
const filePath_ = command_a.filePath_;
|
|
462
|
-
const errors_ = (await ff_compiler_Builder.check_$(system_, fireflyPath_, (await ff_core_NodeSystem.NodeSystem_path$(system_, filePath_, $task)), ff_core_Option.None(), ff_core_Map.empty_(), ff_compiler_LspHook.disabled_(), true, $task));
|
|
462
|
+
const errors_ = (await ff_compiler_Builder.check_$(system_, fireflyPath_, (await ff_core_NodeSystem.NodeSystem_path$(system_, filePath_, $task)), ff_core_Option.None(), ff_core_Map.empty_(), ff_compiler_ModuleCache.empty_(1), 0, ff_compiler_LspHook.disabled_(), true, false, $task));
|
|
463
463
|
if((!ff_core_List.List_isEmpty(errors_))) {
|
|
464
464
|
throw Object.assign(new Error(), {ffException: ff_core_Any.toAny_(ff_compiler_Syntax.CompileErrors(ff_core_List.List_distinct(errors_, ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_CompileError)), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileErrors)})
|
|
465
465
|
}
|
|
@@ -467,7 +467,7 @@ return
|
|
|
467
467
|
}
|
|
468
468
|
if(command_a.BootstrapCommand) {
|
|
469
469
|
const workingDirectory_ = (await ff_core_NodeSystem.NodeSystem_path$(system_, ".", $task));
|
|
470
|
-
(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_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, $task))
|
|
470
|
+
(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_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.empty_(0), $task))
|
|
471
471
|
return
|
|
472
472
|
}
|
|
473
473
|
}
|