firefly-compiler 0.5.77 → 0.5.79
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 +1 -1
- package/compiler/Builder.ff +1 -1
- package/compiler/Compiler.ff +7 -3
- package/compiler/JsEmitter.ff +1573 -623
- package/compiler/Main.ff +7 -2
- package/compiler/SourceMap.ff +149 -0
- package/core/Buffer.ff +2 -1
- package/core/BuildSystem.ff +3 -1
- package/core/Core.ff +4 -4
- package/core/Error.ff +7 -1
- package/core/Js.ff +17 -0
- package/firefly.sh +1 -1
- package/fireflysite/Html.ff +15 -2
- package/fireflysite/Main.ff +2 -1
- package/output/js/ff/compiler/Builder.mjs +5 -46
- package/output/js/ff/compiler/Builder.mjs.map +181 -0
- package/output/js/ff/compiler/Compiler.mjs +23 -16
- package/output/js/ff/compiler/Compiler.mjs.map +155 -0
- package/output/js/ff/compiler/Dependencies.mjs +12 -14
- package/output/js/ff/compiler/Dependencies.mjs.map +128 -0
- package/output/js/ff/compiler/DependencyLock.mjs +1 -4
- package/output/js/ff/compiler/DependencyLock.mjs.map +22 -0
- package/output/js/ff/compiler/Deriver.mjs +10 -11
- package/output/js/ff/compiler/Deriver.mjs.map +204 -0
- package/output/js/ff/compiler/Dictionaries.mjs +12 -13
- package/output/js/ff/compiler/Dictionaries.mjs.map +183 -0
- package/output/js/ff/compiler/Environment.mjs +24 -27
- package/output/js/ff/compiler/Environment.mjs.map +141 -0
- package/output/js/ff/compiler/Inference.mjs +85 -94
- package/output/js/ff/compiler/Inference.mjs.map +355 -0
- package/output/js/ff/compiler/JsEmitter.mjs +3730 -1682
- package/output/js/ff/compiler/JsEmitter.mjs.map +423 -0
- package/output/js/ff/compiler/JsImporter.mjs +9 -12
- package/output/js/ff/compiler/JsImporter.mjs.map +52 -0
- package/output/js/ff/compiler/LspHook.mjs +17 -18
- package/output/js/ff/compiler/LspHook.mjs.map +140 -0
- package/output/js/ff/compiler/Main.mjs +69 -69
- package/output/js/ff/compiler/Main.mjs.map +231 -0
- package/output/js/ff/compiler/ModuleCache.mjs +1 -4
- package/output/js/ff/compiler/ModuleCache.mjs.map +82 -0
- package/output/js/ff/compiler/Parser.mjs +58 -61
- package/output/js/ff/compiler/Parser.mjs.map +406 -0
- package/output/js/ff/compiler/Patterns.mjs +19 -22
- package/output/js/ff/compiler/Patterns.mjs.map +119 -0
- package/output/js/ff/compiler/Resolver.mjs +42 -41
- package/output/js/ff/compiler/Resolver.mjs.map +294 -0
- package/output/js/ff/compiler/SourceMap.mjs +402 -0
- package/output/js/ff/compiler/SourceMap.mjs.map +83 -0
- package/output/js/ff/compiler/Substitution.mjs +1 -4
- package/output/js/ff/compiler/Substitution.mjs.map +138 -0
- package/output/js/ff/compiler/Syntax.mjs +252 -251
- package/output/js/ff/compiler/Syntax.mjs.map +351 -0
- package/output/js/ff/compiler/Token.mjs +17 -22
- package/output/js/ff/compiler/Token.mjs.map +113 -0
- package/output/js/ff/compiler/Tokenizer.mjs +5 -12
- package/output/js/ff/compiler/Tokenizer.mjs.map +101 -0
- package/output/js/ff/compiler/Unification.mjs +32 -33
- package/output/js/ff/compiler/Unification.mjs.map +135 -0
- package/output/js/ff/compiler/Wildcards.mjs +1 -4
- package/output/js/ff/compiler/Wildcards.mjs.map +69 -0
- package/output/js/ff/compiler/Workspace.mjs +17 -16
- package/output/js/ff/compiler/Workspace.mjs.map +96 -0
- package/output/js/ff/core/Any.mjs +1 -4
- package/output/js/ff/core/Any.mjs.map +21 -0
- package/output/js/ff/core/Array.mjs +14 -15
- package/output/js/ff/core/Array.mjs.map +90 -0
- package/output/js/ff/core/AssetSystem.mjs +1 -4
- package/output/js/ff/core/AssetSystem.mjs.map +56 -0
- package/output/js/ff/core/Atomic.mjs +1 -4
- package/output/js/ff/core/Atomic.mjs.map +24 -0
- package/output/js/ff/core/Bool.mjs +4 -9
- package/output/js/ff/core/Bool.mjs.map +19 -0
- package/output/js/ff/core/BrowserSystem.mjs +1 -8
- package/output/js/ff/core/BrowserSystem.mjs.map +47 -0
- package/output/js/ff/core/Buffer.mjs +18 -17
- package/output/js/ff/core/Buffer.mjs.map +123 -0
- package/output/js/ff/core/BuildSystem.mjs +7 -10
- package/output/js/ff/core/BuildSystem.mjs.map +87 -0
- package/output/js/ff/core/Channel.mjs +1 -4
- package/output/js/ff/core/Channel.mjs.map +67 -0
- package/output/js/ff/core/Char.mjs +1 -8
- package/output/js/ff/core/Char.mjs.map +21 -0
- package/output/js/ff/core/Core.mjs +9 -16
- package/output/js/ff/core/Core.mjs.map +38 -0
- package/output/js/ff/core/Crypto.mjs +1 -4
- package/output/js/ff/core/Crypto.mjs.map +65 -0
- package/output/js/ff/core/Date.mjs +8 -7
- package/output/js/ff/core/Date.mjs.map +168 -0
- package/output/js/ff/core/Duration.mjs +4 -9
- package/output/js/ff/core/Duration.mjs.map +18 -0
- package/output/js/ff/core/Equal.mjs +9 -14
- package/output/js/ff/core/Equal.mjs.map +22 -0
- package/output/js/ff/core/Error.mjs +33 -10
- package/output/js/ff/core/Error.mjs.map +34 -0
- package/output/js/ff/core/FileHandle.mjs +1 -8
- package/output/js/ff/core/FileHandle.mjs.map +32 -0
- package/output/js/ff/core/Float.mjs +4 -5
- package/output/js/ff/core/Float.mjs.map +93 -0
- package/output/js/ff/core/HttpClient.mjs +1 -4
- package/output/js/ff/core/HttpClient.mjs.map +62 -0
- package/output/js/ff/core/Int.mjs +4 -9
- package/output/js/ff/core/Int.mjs.map +49 -0
- package/output/js/ff/core/IntMap.mjs +3 -6
- package/output/js/ff/core/IntMap.mjs.map +52 -0
- package/output/js/ff/core/Js.mjs +29 -8
- package/output/js/ff/core/Js.mjs.map +125 -0
- package/output/js/ff/core/JsSystem.mjs +1 -8
- package/output/js/ff/core/JsSystem.mjs.map +59 -0
- package/output/js/ff/core/JsValue.mjs +23 -42
- package/output/js/ff/core/JsValue.mjs.map +155 -0
- package/output/js/ff/core/Json.mjs +25 -26
- package/output/js/ff/core/Json.mjs.map +134 -0
- package/output/js/ff/core/List.mjs +11 -12
- package/output/js/ff/core/List.mjs.map +123 -0
- package/output/js/ff/core/Lock.mjs +7 -14
- package/output/js/ff/core/Lock.mjs.map +52 -0
- package/output/js/ff/core/Log.mjs +1 -8
- package/output/js/ff/core/Log.mjs.map +26 -0
- package/output/js/ff/core/Map.mjs +6 -7
- package/output/js/ff/core/Map.mjs.map +67 -0
- package/output/js/ff/core/NodeSystem.mjs +11 -14
- package/output/js/ff/core/NodeSystem.mjs.map +137 -0
- package/output/js/ff/core/Nothing.mjs +1 -10
- package/output/js/ff/core/Nothing.mjs.map +11 -0
- package/output/js/ff/core/Option.mjs +10 -15
- package/output/js/ff/core/Option.mjs.map +67 -0
- package/output/js/ff/core/Ordering.mjs +12 -13
- package/output/js/ff/core/Ordering.mjs.map +48 -0
- package/output/js/ff/core/Pair.mjs +8 -13
- package/output/js/ff/core/Pair.mjs.map +48 -0
- package/output/js/ff/core/Path.mjs +5 -14
- package/output/js/ff/core/Path.mjs.map +178 -0
- package/output/js/ff/core/Queue.mjs +1 -4
- package/output/js/ff/core/Queue.mjs.map +45 -0
- package/output/js/ff/core/Random.mjs +1 -4
- package/output/js/ff/core/Random.mjs.map +79 -0
- package/output/js/ff/core/RbMap.mjs +1 -16
- package/output/js/ff/core/RbMap.mjs.map +92 -0
- package/output/js/ff/core/Serializable.mjs +17 -22
- package/output/js/ff/core/Serializable.mjs.map +73 -0
- package/output/js/ff/core/Set.mjs +6 -7
- package/output/js/ff/core/Set.mjs.map +45 -0
- package/output/js/ff/core/Show.mjs +11 -20
- package/output/js/ff/core/Show.mjs.map +29 -0
- package/output/js/ff/core/SourceLocation.mjs +7 -8
- package/output/js/ff/core/SourceLocation.mjs.map +41 -0
- package/output/js/ff/core/Stream.mjs +1 -4
- package/output/js/ff/core/Stream.mjs.map +92 -0
- package/output/js/ff/core/String.mjs +14 -19
- package/output/js/ff/core/String.mjs.map +106 -0
- package/output/js/ff/core/StringMap.mjs +3 -6
- package/output/js/ff/core/StringMap.mjs.map +52 -0
- package/output/js/ff/core/Task.mjs +1 -8
- package/output/js/ff/core/Task.mjs.map +79 -0
- package/output/js/ff/core/Try.mjs +3 -6
- package/output/js/ff/core/Try.mjs.map +41 -0
- package/output/js/ff/core/Unit.mjs +5 -12
- package/output/js/ff/core/Unit.mjs.map +18 -0
- package/package.json +1 -2
- package/vscode/package.json +1 -1
- package/webserver/WebServer.ff +1 -1
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
1
|
import * as ff_compiler_Compiler from "../../ff/compiler/Compiler.mjs"
|
|
4
2
|
|
|
5
3
|
import * as ff_compiler_Dependencies from "../../ff/compiler/Dependencies.mjs"
|
|
@@ -177,7 +175,7 @@ const if_o = importedAt_
|
|
|
177
175
|
if(if_o.Some) {
|
|
178
176
|
const at_ = if_o.value_;
|
|
179
177
|
if((!ff_core_Path.Path_exists(path_, false, false, false))) {
|
|
180
|
-
|
|
178
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(at_, ("Imported module not found: " + ff_compiler_Syntax.ModuleKey_importName(moduleKey_))), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
181
179
|
}
|
|
182
180
|
}
|
|
183
181
|
};
|
|
@@ -203,7 +201,7 @@ export function Compiler_imports(self_, module_) {
|
|
|
203
201
|
return ff_core_List.List_map(module_.imports_, ((import_) => {
|
|
204
202
|
const newPackagePair_ = import_.moduleKey_.packagePair_;
|
|
205
203
|
if((!ff_core_Map.Map_contains(self_.packagePaths_, newPackagePair_, ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair))) {
|
|
206
|
-
|
|
204
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(import_.at_, ("Missing dependency declaration for: " + ff_compiler_Syntax.PackagePair_groupName(newPackagePair_, ":"))), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
207
205
|
};
|
|
208
206
|
return ff_core_Try.Try_catch(ff_core_Try.Try_tryCatch(ff_core_Core.try_((() => {
|
|
209
207
|
return ff_compiler_Compiler.Compiler_parse(self_, import_.moduleKey_, ff_core_Option.Some(import_.at_))
|
|
@@ -212,14 +210,14 @@ return ff_compiler_Compiler.Compiler_parse(self_, import_.moduleKey_, ff_core_Op
|
|
|
212
210
|
const e_ = _1;
|
|
213
211
|
const error_ = _2;
|
|
214
212
|
const newError_ = ff_compiler_Syntax.CompileError(import_.at_, ("Parse error in imported module: " + ff_compiler_Syntax.ModuleKey_importName(import_.moduleKey_)));
|
|
215
|
-
|
|
213
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileErrors([e_, newError_]), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileErrors, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileErrors)
|
|
216
214
|
}
|
|
217
215
|
}), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError), ((_1, _2) => {
|
|
218
216
|
{
|
|
219
217
|
const compileErrors_ = _1.errors_;
|
|
220
218
|
const error_ = _2;
|
|
221
219
|
const newError_ = ff_compiler_Syntax.CompileError(import_.at_, ("Parse errors in imported module: " + ff_compiler_Syntax.ModuleKey_importName(import_.moduleKey_)));
|
|
222
|
-
|
|
220
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileErrors([...compileErrors_, newError_]), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileErrors, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileErrors)
|
|
223
221
|
}
|
|
224
222
|
}), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileErrors)
|
|
225
223
|
}))
|
|
@@ -271,17 +269,21 @@ const allModules_ = [module_, ...otherModules_];
|
|
|
271
269
|
const emitter_ = ff_compiler_JsEmitter.new_(allModules_, self_.emitTarget_, isMainModule_, ff_core_Option.Option_map(self_.compilerModulePath_, ((_w1) => {
|
|
272
270
|
return ff_core_Path.Path_url(_w1)
|
|
273
271
|
})), moduleKey_);
|
|
274
|
-
|
|
272
|
+
ff_compiler_JsEmitter.JsEmitter_emitModule(emitter_, module_);
|
|
275
273
|
const packagePath_ = ff_core_Path.Path_slash(ff_core_Path.Path_slash(self_.jsOutputPath_, moduleKey_.packagePair_.group_), moduleKey_.packagePair_.name_);
|
|
276
274
|
const jsPath_ = ff_core_List.List_foldLeft(moduleKey_.folders_, packagePath_, ((p_, f_) => {
|
|
277
275
|
return ff_core_Path.Path_slash(p_, f_)
|
|
278
276
|
}));
|
|
279
277
|
const jsFile_ = ff_core_Path.Path_slash(jsPath_, (moduleKey_.name_ + ".mjs"));
|
|
278
|
+
const sourceMapFile_ = ff_core_Path.Path_slash(jsPath_, (moduleKey_.name_ + ".mjs.map"));
|
|
279
|
+
const source_ = ff_core_Option.Some(ff_core_Path.Path_readText(path_));
|
|
280
|
+
const jsAndSourceMap_ = ff_compiler_JsEmitter.JsEmitter_makeOutputAndSourceMap(emitter_, ff_core_List.List_join(ff_core_Path.Path_relativeListTo(path_, jsPath_), "/"), source_);
|
|
280
281
|
ff_core_Path.Path_createDirectory(jsPath_, true);
|
|
281
|
-
ff_core_Path.Path_writeText(jsFile_,
|
|
282
|
+
ff_core_Path.Path_writeText(jsFile_, ((jsAndSourceMap_.first_ + "\n\n//# sourceMappingURL=") + ff_core_Path.Path_base(sourceMapFile_)));
|
|
283
|
+
ff_core_Path.Path_writeText(sourceMapFile_, ff_core_Json.Json_write(jsAndSourceMap_.second_, ff_core_Option.Some(" ")));
|
|
282
284
|
if(isMainModule_) {
|
|
283
285
|
return ff_core_Option.Some((function() {
|
|
284
|
-
const runJs_ = ff_compiler_JsEmitter.
|
|
286
|
+
const runJs_ = ff_compiler_JsEmitter.JsEmitter_makeRun(emitter_, moduleKey_.name_, module_.functions_, moduleKey_.packagePair_, ((moduleKey_.packagePair_.group_ === "ff") && (moduleKey_.packagePair_.name_ === "compiler")));
|
|
285
287
|
const jsRunFile_ = ff_core_Path.Path_slash(jsPath_, (moduleKey_.name_ + ".run.mjs"));
|
|
286
288
|
return ff_core_Path.Path_writeText(jsRunFile_, ff_core_List.List_join(ff_core_List.List_map(runJs_, ((_w1) => {
|
|
287
289
|
return (_w1 + "\n")
|
|
@@ -326,7 +328,7 @@ const if_o = importedAt_
|
|
|
326
328
|
if(if_o.Some) {
|
|
327
329
|
const at_ = if_o.value_;
|
|
328
330
|
if((!(await ff_core_Path.Path_exists$(path_, false, false, false, $task)))) {
|
|
329
|
-
|
|
331
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(at_, ("Imported module not found: " + ff_compiler_Syntax.ModuleKey_importName(moduleKey_))), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
330
332
|
}
|
|
331
333
|
}
|
|
332
334
|
};
|
|
@@ -352,7 +354,7 @@ export async function Compiler_imports$(self_, module_, $task) {
|
|
|
352
354
|
return (await ff_core_List.List_map$(module_.imports_, (async (import_, $task) => {
|
|
353
355
|
const newPackagePair_ = import_.moduleKey_.packagePair_;
|
|
354
356
|
if((!ff_core_Map.Map_contains(self_.packagePaths_, newPackagePair_, ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair))) {
|
|
355
|
-
|
|
357
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(import_.at_, ("Missing dependency declaration for: " + ff_compiler_Syntax.PackagePair_groupName(newPackagePair_, ":"))), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
356
358
|
};
|
|
357
359
|
return ff_core_Try.Try_catch(ff_core_Try.Try_tryCatch((await ff_core_Core.try_$((async ($task) => {
|
|
358
360
|
return (await ff_compiler_Compiler.Compiler_parse$(self_, import_.moduleKey_, ff_core_Option.Some(import_.at_), $task))
|
|
@@ -361,14 +363,14 @@ return (await ff_compiler_Compiler.Compiler_parse$(self_, import_.moduleKey_, ff
|
|
|
361
363
|
const e_ = _1;
|
|
362
364
|
const error_ = _2;
|
|
363
365
|
const newError_ = ff_compiler_Syntax.CompileError(import_.at_, ("Parse error in imported module: " + ff_compiler_Syntax.ModuleKey_importName(import_.moduleKey_)));
|
|
364
|
-
|
|
366
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileErrors([e_, newError_]), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileErrors, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileErrors)
|
|
365
367
|
}
|
|
366
368
|
}), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError), ((_1, _2) => {
|
|
367
369
|
{
|
|
368
370
|
const compileErrors_ = _1.errors_;
|
|
369
371
|
const error_ = _2;
|
|
370
372
|
const newError_ = ff_compiler_Syntax.CompileError(import_.at_, ("Parse errors in imported module: " + ff_compiler_Syntax.ModuleKey_importName(import_.moduleKey_)));
|
|
371
|
-
|
|
373
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileErrors([...compileErrors_, newError_]), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileErrors, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileErrors)
|
|
372
374
|
}
|
|
373
375
|
}), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileErrors)
|
|
374
376
|
}), $task))
|
|
@@ -420,17 +422,21 @@ const allModules_ = [module_, ...otherModules_];
|
|
|
420
422
|
const emitter_ = ff_compiler_JsEmitter.new_(allModules_, self_.emitTarget_, isMainModule_, (await ff_core_Option.Option_map$(self_.compilerModulePath_, (async (_w1, $task) => {
|
|
421
423
|
return (await ff_core_Path.Path_url$(_w1, $task))
|
|
422
424
|
}), $task)), moduleKey_);
|
|
423
|
-
|
|
425
|
+
ff_compiler_JsEmitter.JsEmitter_emitModule(emitter_, module_);
|
|
424
426
|
const packagePath_ = (await ff_core_Path.Path_slash$((await ff_core_Path.Path_slash$(self_.jsOutputPath_, moduleKey_.packagePair_.group_, $task)), moduleKey_.packagePair_.name_, $task));
|
|
425
427
|
const jsPath_ = (await ff_core_List.List_foldLeft$(moduleKey_.folders_, packagePath_, (async (p_, f_, $task) => {
|
|
426
428
|
return (await ff_core_Path.Path_slash$(p_, f_, $task))
|
|
427
429
|
}), $task));
|
|
428
430
|
const jsFile_ = (await ff_core_Path.Path_slash$(jsPath_, (moduleKey_.name_ + ".mjs"), $task));
|
|
431
|
+
const sourceMapFile_ = (await ff_core_Path.Path_slash$(jsPath_, (moduleKey_.name_ + ".mjs.map"), $task));
|
|
432
|
+
const source_ = ff_core_Option.Some((await ff_core_Path.Path_readText$(path_, $task)));
|
|
433
|
+
const jsAndSourceMap_ = ff_compiler_JsEmitter.JsEmitter_makeOutputAndSourceMap(emitter_, ff_core_List.List_join((await ff_core_Path.Path_relativeListTo$(path_, jsPath_, $task)), "/"), source_);
|
|
429
434
|
(await ff_core_Path.Path_createDirectory$(jsPath_, true, $task));
|
|
430
|
-
(await ff_core_Path.Path_writeText$(jsFile_,
|
|
435
|
+
(await ff_core_Path.Path_writeText$(jsFile_, ((jsAndSourceMap_.first_ + "\n\n//# sourceMappingURL=") + (await ff_core_Path.Path_base$(sourceMapFile_, $task))), $task));
|
|
436
|
+
(await ff_core_Path.Path_writeText$(sourceMapFile_, ff_core_Json.Json_write(jsAndSourceMap_.second_, ff_core_Option.Some(" ")), $task));
|
|
431
437
|
if(isMainModule_) {
|
|
432
438
|
return ff_core_Option.Some((await (async function() {
|
|
433
|
-
const runJs_ = ff_compiler_JsEmitter.
|
|
439
|
+
const runJs_ = ff_compiler_JsEmitter.JsEmitter_makeRun(emitter_, moduleKey_.name_, module_.functions_, moduleKey_.packagePair_, ((moduleKey_.packagePair_.group_ === "ff") && (moduleKey_.packagePair_.name_ === "compiler")));
|
|
434
440
|
const jsRunFile_ = (await ff_core_Path.Path_slash$(jsPath_, (moduleKey_.name_ + ".run.mjs"), $task));
|
|
435
441
|
return (await ff_core_Path.Path_writeText$(jsRunFile_, ff_core_List.List_join(ff_core_List.List_map(runJs_, ((_w1) => {
|
|
436
442
|
return (_w1 + "\n")
|
|
@@ -442,3 +448,4 @@ return (_w1 + "\n")
|
|
|
442
448
|
}
|
|
443
449
|
|
|
444
450
|
|
|
451
|
+
//# sourceMappingURL=Compiler.mjs.map
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": [
|
|
4
|
+
"../../../../../compiler/Compiler.ff"
|
|
5
|
+
],
|
|
6
|
+
"sourcesContent": [
|
|
7
|
+
"import Syntax\r\nimport Tokenizer\r\nimport ModuleCache\r\nimport Parser\r\nimport Resolver\r\nimport Deriver\r\nimport Inference\r\nimport JsEmitter\r\nimport Dictionaries\r\nimport Dependencies\r\nimport LspHook\r\n\r\ncapability Compiler(\r\n emitTarget: EmitTarget\r\n task: Task\r\n compilerModulePath: Option[Path]\r\n jsOutputPath: Path\r\n packagePaths: Map[PackagePair, Path]\r\n singleFilePackages: Set[PackagePair]\r\n virtualFiles: Map[String, String]\r\n cache: ModuleCache\r\n lspHook: LspHook\r\n mutable phaseDurationDelta: Duration\r\n phaseDurations: Array[Pair[String, Duration]]\r\n)\r\n\r\nnew(\r\n emitTarget: EmitTarget\r\n task: Task\r\n compilerModulePath: Option[Path]\r\n jsOutputPath: Path\r\n resolvedDependencies: ResolvedDependencies\r\n virtualFiles: Map[String, String]\r\n cache: ModuleCache\r\n lspHook: LspHook\r\n): Compiler {\r\n Compiler(\r\n emitTarget = emitTarget\r\n task = task\r\n compilerModulePath = compilerModulePath\r\n jsOutputPath = jsOutputPath\r\n packagePaths = resolvedDependencies.packagePaths\r\n singleFilePackages = resolvedDependencies.singleFilePackages\r\n virtualFiles = virtualFiles\r\n cache = cache\r\n lspHook = lspHook\r\n phaseDurationDelta = Duration(0.0)\r\n phaseDurations = [].toArray()\r\n )\r\n}\r\n\r\nfail[T](at: Location, message: String): T {\r\n panic(message + \" \" + at.show())\r\n}\r\n\r\ncoreImports: List[DImport] =\r\n [\r\n \"Any\"\r\n \"Array\"\r\n \"AssetSystem\"\r\n \"Atomic\"\r\n \"Bool\"\r\n \"BrowserSystem\"\r\n \"Buffer\"\r\n \"BuildSystem\"\r\n \"Channel\"\r\n \"Char\"\r\n \"Core\"\r\n \"Crypto\"\r\n \"Date\"\r\n \"Duration\"\r\n \"Equal\"\r\n \"Error\"\r\n \"FileHandle\"\r\n \"Float\"\r\n \"HttpClient\"\r\n \"Int\"\r\n \"IntMap\"\r\n \"Json\"\r\n \"JsValue\"\r\n \"JsSystem\"\r\n \"List\"\r\n \"Lock\"\r\n \"Log\"\r\n \"Map\"\r\n \"NodeSystem\"\r\n \"Nothing\"\r\n \"Option\"\r\n \"Ordering\"\r\n \"Pair\"\r\n \"Path\"\r\n \"Queue\"\r\n \"Random\"\r\n \"Serializable\"\r\n \"Set\"\r\n \"Show\"\r\n \"SourceLocation\"\r\n \"Stream\"\r\n \"String\"\r\n \"StringMap\"\r\n \"Task\"\r\n \"Try\"\r\n \"Unit\"\r\n \"Js\"\r\n ].map {moduleName =>\r\n DImport(\r\n at = Location(\"<prelude>\", 1, 1)\r\n alias = moduleName\r\n moduleKey = ModuleKey(PackagePair(\"ff\", \"core\"), [], moduleName)\r\n )\r\n }\r\n\r\nextend self: Compiler {\r\n\r\n measure[T](phase: String, moduleKey: ModuleKey, body: () => T): T {\r\n let start = Duration(self.task.elapsed().seconds - self.phaseDurationDelta.seconds)\r\n let result = body()\r\n let stop = Duration(self.task.elapsed().seconds - self.phaseDurationDelta.seconds)\r\n let duration = Duration(stop.seconds - start.seconds)\r\n self.phaseDurationDelta = Duration(self.phaseDurationDelta.seconds + duration.seconds)\r\n let text = phase + \" \" + moduleKey.qualifiedName()\r\n self.phaseDurations.push(Pair(text, duration))\r\n result\r\n }\r\n\r\n printMeasurements(): Unit {\r\n let worst = self.phaseDurations.toList().sortBy {\r\n (_.second.seconds + 1000000.0) + \"\"\r\n }.takeLast(5).reverse()\r\n worst.each {| Pair(text, duration) =>\r\n Log.debug(text + \":\\t\" + duration.show())\r\n }\r\n }\r\n\r\n parse(moduleKey: ModuleKey, importedAt: Option[Location]): Module {\r\n self.cache.cacheParsedModule(self.packagePaths, moduleKey): path => \r\n self.measure(\"Parse\", moduleKey):\r\n let code = self.virtualFiles.get(path.absolute()).else {\r\n importedAt.each {at => if(!path.exists()) {\r\n throw(CompileError(at, \"Imported module not found: \" + moduleKey.importName()))\r\n }}\r\n path.readText()\r\n }\r\n let completionAt = if(self.lspHook.isEnabled() && self.lspHook.insertIdentifier) {self.lspHook.at}\r\n let tokens = Tokenizer.tokenize(path.absolute(), code, completionAt, self.lspHook.isEnabled())\r\n let parser = Parser.new(moduleKey, tokens, self.emitTarget != EmitBrowser, self.lspHook)\r\n let module = if(self.singleFilePackages.contains(moduleKey.packagePair)) {\r\n parser.parseModuleWithPackageInfo().module\r\n } else {\r\n parser.parseModuleWithoutPackageInfo()\r\n }\r\n let result = module.Module(\r\n imports = [...coreImports, ...module.imports]\r\n )\r\n result\r\n }\r\n\r\n imports(module: Module): List[Module] {\r\n module.imports.map {import =>\r\n let newPackagePair = import.moduleKey.packagePair\r\n if(!self.packagePaths.contains(newPackagePair)) {\r\n throw(CompileError(import.at, \"Missing dependency declaration for: \" + newPackagePair.groupName()))\r\n }\r\n try {\r\n self.parse(import.moduleKey, Some(import.at))\r\n } tryCatch {| CompileError(_, _) @ e, error =>\r\n let newError = CompileError(import.at, \"Parse error in imported module: \" + import.moduleKey.importName())\r\n throw(CompileErrors([e, newError]))\r\n } catch {| CompileErrors(compileErrors), error =>\r\n let newError = CompileError(import.at, \"Parse errors in imported module: \" + import.moduleKey.importName())\r\n throw(CompileErrors([...compileErrors, newError]))\r\n }\r\n }\r\n }\r\n\r\n resolve(moduleKey: ModuleKey): Module {\r\n self.cache.cacheResolvedModule(self.packagePaths, moduleKey): path => \r\n self.measure(\"Resolve\", moduleKey):\r\n\r\n let module = self.parse(moduleKey, None)\r\n let otherModules = self.imports(module)\r\n let resolver = Resolver.new(self.lspHook)\r\n resolver.resolveModule(module, otherModules)\r\n }\r\n\r\n derive(moduleKey: ModuleKey): Module {\r\n self.cache.cacheDerivedModule(self.packagePaths, moduleKey): path => \r\n self.measure(\"Derive\", moduleKey):\r\n\r\n let module = self.resolve(moduleKey)\r\n Deriver.new().deriveModule(module)\r\n }\r\n\r\n infer(moduleKey: ModuleKey): Module {\r\n self.cache.cacheInferredModule(self.packagePaths, moduleKey): path => \r\n self.measure(\"Infer\", moduleKey):\r\n\r\n let module = self.derive(moduleKey)\r\n let otherModules = self.imports(module).map {i =>\r\n self.derive(i.moduleKey)\r\n }\r\n let inference = Inference.new([module, ...otherModules], self.lspHook)\r\n let inferredModule = inference.inferModule(module, otherModules)\r\n Dictionaries.new([module, ...otherModules]).processModule(inferredModule, otherModules)\r\n }\r\n\r\n emit(moduleKey: ModuleKey, isMainModule: Bool): Unit {\r\n self.cache.cacheEmittedModule(self.packagePaths, moduleKey, isMainModule): path => \r\n self.measure(\"Emit\", moduleKey):\r\n\r\n let module = self.infer(moduleKey)\r\n let otherModules = self.imports(module).map {i =>\r\n self.emit(i.moduleKey, isMainModule = False)\r\n self.infer(i.moduleKey)\r\n }\r\n\r\n let allModules = [module, ...otherModules]\r\n let emitter = JsEmitter.new(\r\n otherModules = allModules\r\n emitTarget = self.emitTarget\r\n isMainModule = isMainModule\r\n compilerModuleFileUrl = self.compilerModulePath.map {_.url()}\r\n moduleKey = moduleKey\r\n )\r\n emitter.emitModule(module)\r\n let packagePath = self.jsOutputPath.slash(moduleKey.packagePair.group).slash(moduleKey.packagePair.name)\r\n let jsPath = moduleKey.folders.foldLeft(packagePath) {p, f => p.slash(f)}\r\n let jsFile = jsPath.slash(moduleKey.name + \".mjs\")\r\n let sourceMapFile = jsPath.slash(moduleKey.name + \".mjs.map\")\r\n let source = Some(path.readText())\r\n let jsAndSourceMap = emitter.makeOutputAndSourceMap(path.relativeListTo(jsPath).join(\"/\"), source)\r\n jsPath.createDirectory(createParentDirectories = True)\r\n jsFile.writeText(jsAndSourceMap.first + \"\\n\\n//# sourceMappingURL=\" + sourceMapFile.base())\r\n sourceMapFile.writeText(jsAndSourceMap.second.write(Some(\" \")))\r\n if(isMainModule) {\r\n let runJs = emitter.makeRun(\r\n moduleKey.name\r\n module.functions\r\n moduleKey.packagePair\r\n moduleKey.packagePair.group == \"ff\" && moduleKey.packagePair.name == \"compiler\"\r\n )\r\n let jsRunFile = jsPath.slash(moduleKey.name + \".run.mjs\")\r\n jsRunFile.writeText(runJs.map {_ + \"\\n\"}.join())\r\n }\r\n }\r\n\r\n}\r\n"
|
|
8
|
+
],
|
|
9
|
+
"names": [
|
|
10
|
+
"Compiler",
|
|
11
|
+
"emitTarget",
|
|
12
|
+
"task",
|
|
13
|
+
"compilerModulePath",
|
|
14
|
+
"jsOutputPath",
|
|
15
|
+
"packagePaths",
|
|
16
|
+
"singleFilePackages",
|
|
17
|
+
"virtualFiles",
|
|
18
|
+
"cache",
|
|
19
|
+
"lspHook",
|
|
20
|
+
"phaseDurationDelta",
|
|
21
|
+
"phaseDurations",
|
|
22
|
+
"coreImports",
|
|
23
|
+
"map",
|
|
24
|
+
"moduleName",
|
|
25
|
+
"DImport",
|
|
26
|
+
"Location",
|
|
27
|
+
"ModuleKey",
|
|
28
|
+
"PackagePair",
|
|
29
|
+
"new",
|
|
30
|
+
"resolvedDependencies",
|
|
31
|
+
"toArray",
|
|
32
|
+
"fail",
|
|
33
|
+
"at",
|
|
34
|
+
"message",
|
|
35
|
+
"panic",
|
|
36
|
+
"show",
|
|
37
|
+
"measure",
|
|
38
|
+
"self",
|
|
39
|
+
"phase",
|
|
40
|
+
"moduleKey",
|
|
41
|
+
"body",
|
|
42
|
+
"start",
|
|
43
|
+
"elapsed",
|
|
44
|
+
"result",
|
|
45
|
+
"stop",
|
|
46
|
+
"duration",
|
|
47
|
+
"text",
|
|
48
|
+
"qualifiedName",
|
|
49
|
+
"Pair",
|
|
50
|
+
"printMeasurements",
|
|
51
|
+
"worst",
|
|
52
|
+
"reverse",
|
|
53
|
+
"takeLast",
|
|
54
|
+
"sortBy",
|
|
55
|
+
"toList",
|
|
56
|
+
"w1",
|
|
57
|
+
"second",
|
|
58
|
+
"each",
|
|
59
|
+
"debug",
|
|
60
|
+
"parse",
|
|
61
|
+
"importedAt",
|
|
62
|
+
"cacheParsedModule",
|
|
63
|
+
"path",
|
|
64
|
+
"code",
|
|
65
|
+
"else",
|
|
66
|
+
"get",
|
|
67
|
+
"absolute",
|
|
68
|
+
"exists",
|
|
69
|
+
"CompileError",
|
|
70
|
+
"importName",
|
|
71
|
+
"readText",
|
|
72
|
+
"completionAt",
|
|
73
|
+
"isEnabled",
|
|
74
|
+
"insertIdentifier",
|
|
75
|
+
"tokens",
|
|
76
|
+
"tokenize",
|
|
77
|
+
"parser",
|
|
78
|
+
"notEquals",
|
|
79
|
+
"EmitBrowser",
|
|
80
|
+
"module",
|
|
81
|
+
"contains",
|
|
82
|
+
"packagePair",
|
|
83
|
+
"parseModuleWithPackageInfo",
|
|
84
|
+
"parseModuleWithoutPackageInfo",
|
|
85
|
+
"c",
|
|
86
|
+
"Module",
|
|
87
|
+
"imports",
|
|
88
|
+
"types",
|
|
89
|
+
"traits",
|
|
90
|
+
"instances",
|
|
91
|
+
"extends",
|
|
92
|
+
"lets",
|
|
93
|
+
"functions",
|
|
94
|
+
"import",
|
|
95
|
+
"newPackagePair",
|
|
96
|
+
"groupName",
|
|
97
|
+
"catch",
|
|
98
|
+
"tryCatch",
|
|
99
|
+
"try",
|
|
100
|
+
"Some",
|
|
101
|
+
"e",
|
|
102
|
+
"error",
|
|
103
|
+
"newError",
|
|
104
|
+
"CompileErrors",
|
|
105
|
+
"compileErrors",
|
|
106
|
+
"resolve",
|
|
107
|
+
"cacheResolvedModule",
|
|
108
|
+
"None",
|
|
109
|
+
"otherModules",
|
|
110
|
+
"resolver",
|
|
111
|
+
"resolveModule",
|
|
112
|
+
"derive",
|
|
113
|
+
"cacheDerivedModule",
|
|
114
|
+
"deriveModule",
|
|
115
|
+
"infer",
|
|
116
|
+
"cacheInferredModule",
|
|
117
|
+
"i",
|
|
118
|
+
"inference",
|
|
119
|
+
"inferredModule",
|
|
120
|
+
"inferModule",
|
|
121
|
+
"processModule",
|
|
122
|
+
"emit",
|
|
123
|
+
"isMainModule",
|
|
124
|
+
"cacheEmittedModule",
|
|
125
|
+
"allModules",
|
|
126
|
+
"emitter",
|
|
127
|
+
"url",
|
|
128
|
+
"emitModule",
|
|
129
|
+
"packagePath",
|
|
130
|
+
"slash",
|
|
131
|
+
"group",
|
|
132
|
+
"name",
|
|
133
|
+
"jsPath",
|
|
134
|
+
"foldLeft",
|
|
135
|
+
"folders",
|
|
136
|
+
"p",
|
|
137
|
+
"f",
|
|
138
|
+
"jsFile",
|
|
139
|
+
"sourceMapFile",
|
|
140
|
+
"source",
|
|
141
|
+
"jsAndSourceMap",
|
|
142
|
+
"makeOutputAndSourceMap",
|
|
143
|
+
"join",
|
|
144
|
+
"relativeListTo",
|
|
145
|
+
"createDirectory",
|
|
146
|
+
"writeText",
|
|
147
|
+
"first",
|
|
148
|
+
"base",
|
|
149
|
+
"write",
|
|
150
|
+
"runJs",
|
|
151
|
+
"makeRun",
|
|
152
|
+
"jsRunFile"
|
|
153
|
+
],
|
|
154
|
+
"mappings": "A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;A;;AAYW;AAAA,gBAAAA,QAAA,CACPC,W,EACAC,K,EACAC,mB,EACAC,a,EACAC,a,EACAC,mB,EACAC,a,EACAC,M,EACAC,Q,EACQC,mB,EACRC,eAXO;AAAA,QACPV,W,EACAC,K,EACAC,mB,EACAC,a,EACAC,a,EACAC,mB,EACAC,a,EACAC,M,EACAC,Q,EACQC,mB,EACRC,eAXO;AAAA;;A,OA2CX,MAAAC,YAAA,GAiDMC,qBAAA,CAhDF,CACI,K,EACA,O,EACA,a,EACA,Q,EACA,M,EACA,e,EACA,Q,EACA,a,EACA,S,EACA,M,EACA,M,EACA,Q,EACA,M,EACA,U,EACA,O,EACA,O,EACA,Y,EACA,O,EACA,Y,EACA,K,EACA,Q,EACA,M,EACA,S,EACA,U,EACA,M,EACA,M,EACA,K,EACA,K,EACA,Y,EACA,S,EACA,Q,EACA,U,EACA,M,EACA,M,EACA,O,EACA,Q,EACA,c,EACA,K,EACA,M,EACA,gB,EACA,Q,EACA,Q,EACA,W,EACA,M,EACA,K,EACA,M,EACA,IA/CJ,C,EAgDM,CAAA,CAACC,WAAD;AACF,OAAAC,0BAAA,CACSC,2BAAA,CAAS,W,EAAa,C,EAAG,CAAzB,C,EACGF,W,EACIG,4BAAA,CAAUC,8BAAA,CAAY,I,EAAM,MAAlB,C,EAA2B,CAAA,C,EAAIJ,WAAzC,CAHhB;AADE,EAAJ,CAjDN;;A,OA7BA,SAAAK,IAAA,CACIlB,W,EACAC,K,EACAC,mB,EACAC,a,EACAgB,qB,EACAb,a,EACAC,M,EACAC,QARJ,CAAA;AAUI,OAAAT,6BAAA,CACiBC,W,EACNC,K,EACcC,mB,EACNC,a,EACAgB,qBAAqB,CAAAf,a,EACfe,qBAAqB,CAAAd,mB,EAC3BC,a,EACPC,M,EACEC,Q,EACoB,G,EACVY,yBAAA,CAAH,CAAA,CAAG,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"
|
|
155
|
+
}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import * as import$0 from 'tar';
|
|
2
|
-
|
|
3
1
|
import * as ff_compiler_Dependencies from "../../ff/compiler/Dependencies.mjs"
|
|
4
2
|
|
|
5
3
|
import * as ff_compiler_DependencyLock from "../../ff/compiler/DependencyLock.mjs"
|
|
@@ -106,6 +104,7 @@ import * as ff_core_Task from "../../ff/core/Task.mjs"
|
|
|
106
104
|
|
|
107
105
|
import * as ff_core_Try from "../../ff/core/Try.mjs"
|
|
108
106
|
|
|
107
|
+
import * as import$0 from 'tar';
|
|
109
108
|
import * as ff_core_Unit from "../../ff/core/Unit.mjs"
|
|
110
109
|
|
|
111
110
|
// type Dependencies
|
|
@@ -118,16 +117,14 @@ export function ResolvedDependencies(mainPackagePair_, packages_, packagePaths_,
|
|
|
118
117
|
return {mainPackagePair_, packages_, packagePaths_, singleFilePackages_};
|
|
119
118
|
}
|
|
120
119
|
|
|
121
|
-
|
|
122
|
-
|
|
123
120
|
export function process_(fetch_, dependencyLock_, path_) {
|
|
124
121
|
const workspace_ = ff_compiler_Workspace.loadWorkspace_(path_);
|
|
125
122
|
const self_ = ff_compiler_Dependencies.Dependencies(workspace_, ff_core_List.List_toMap([], ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair), ff_core_List.List_toMap([], 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));
|
|
126
123
|
const packageInfo_ = ff_core_Option.Option_else(ff_compiler_Dependencies.Dependencies_loadPackageInfo(self_, ff_compiler_Syntax.scriptPackagePair_, path_), (() => {
|
|
127
124
|
if((!ff_core_Path.Path_exists(path_, false, false, false))) {
|
|
128
|
-
|
|
125
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(ff_compiler_Syntax.Location(ff_core_Path.Path_absolute(path_), 1, 1), "File not found"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
129
126
|
} else {
|
|
130
|
-
|
|
127
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(ff_compiler_Syntax.Location(ff_core_Path.Path_absolute(path_), 1, 1), "Could not load package info"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
131
128
|
}
|
|
132
129
|
}));
|
|
133
130
|
const newDependencies_ = ff_compiler_Dependencies.Dependencies_processPackageInfo(self_, packageInfo_);
|
|
@@ -169,9 +166,9 @@ const workspace_ = (await ff_compiler_Workspace.loadWorkspace_$(path_, $task));
|
|
|
169
166
|
const self_ = ff_compiler_Dependencies.Dependencies(workspace_, ff_core_List.List_toMap([], ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair), ff_core_List.List_toMap([], 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));
|
|
170
167
|
const packageInfo_ = (await ff_core_Option.Option_else$((await ff_compiler_Dependencies.Dependencies_loadPackageInfo$(self_, ff_compiler_Syntax.scriptPackagePair_, path_, $task)), (async ($task) => {
|
|
171
168
|
if((!(await ff_core_Path.Path_exists$(path_, false, false, false, $task)))) {
|
|
172
|
-
|
|
169
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(ff_compiler_Syntax.Location((await ff_core_Path.Path_absolute$(path_, $task)), 1, 1), "File not found"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
173
170
|
} else {
|
|
174
|
-
|
|
171
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(ff_compiler_Syntax.Location((await ff_core_Path.Path_absolute$(path_, $task)), 1, 1), "Could not load package info"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
175
172
|
}
|
|
176
173
|
}), $task));
|
|
177
174
|
const newDependencies_ = (await ff_compiler_Dependencies.Dependencies_processPackageInfo$(self_, packageInfo_, $task));
|
|
@@ -272,7 +269,7 @@ return ff_core_Option.Some((function() {
|
|
|
272
269
|
ff_core_Log.trace_(("Fetching " + location_));
|
|
273
270
|
const buffer_ = ff_core_HttpClient.HttpClient_get(httpClient_, location_, [], ((response_) => {
|
|
274
271
|
if((!ff_core_HttpClient.FetchResponse_ok(response_))) {
|
|
275
|
-
|
|
272
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(dependency_.at_, ("Could not download dependency: " + location_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
276
273
|
};
|
|
277
274
|
return ff_core_HttpClient.FetchResponse_readBuffer(response_)
|
|
278
275
|
}));
|
|
@@ -289,7 +286,7 @@ return ff_core_Path.Path_renameTo(tarGzPath_, donePath_)
|
|
|
289
286
|
};
|
|
290
287
|
return dependencyPath_
|
|
291
288
|
} else {
|
|
292
|
-
|
|
289
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(dependency_.at_, ("Loading packages by this protocol is not supported: " + location_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
293
290
|
}
|
|
294
291
|
} else {
|
|
295
292
|
return ff_core_Path.Path_path(path_, location_)
|
|
@@ -301,7 +298,7 @@ const packageInfos_ = ff_core_List.List_map(dependencies_, ((dependency_) => {
|
|
|
301
298
|
const dependencyPath_ = ff_compiler_Dependencies.Dependencies_fetchDependency(self_, path_, httpClient_, dependencyLock_, dependency_);
|
|
302
299
|
self_.packagePaths_ = ff_core_Map.Map_add(self_.packagePaths_, dependency_.packagePair_, dependencyPath_, ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair);
|
|
303
300
|
const packageInfo_ = ff_core_Option.Option_else(ff_compiler_Dependencies.Dependencies_loadPackageInfo(self_, dependency_.packagePair_, dependencyPath_), (() => {
|
|
304
|
-
|
|
301
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(dependency_.at_, ("Dependency not found: " + ff_core_Path.Path_absolute(dependencyPath_))), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
305
302
|
}));
|
|
306
303
|
ff_compiler_Dependencies.checkPackagePairs_(dependency_.packagePair_, packageInfo_.package_.packagePair_);
|
|
307
304
|
return packageInfo_
|
|
@@ -378,7 +375,7 @@ return ff_core_Option.Some((await (async function() {
|
|
|
378
375
|
ff_core_Log.trace_(("Fetching " + location_));
|
|
379
376
|
const buffer_ = (await ff_core_HttpClient.HttpClient_get$(httpClient_, location_, [], (async (response_, $task) => {
|
|
380
377
|
if((!(await ff_core_HttpClient.FetchResponse_ok$(response_, $task)))) {
|
|
381
|
-
|
|
378
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(dependency_.at_, ("Could not download dependency: " + location_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
382
379
|
};
|
|
383
380
|
return (await ff_core_HttpClient.FetchResponse_readBuffer$(response_, $task))
|
|
384
381
|
}), $task));
|
|
@@ -395,7 +392,7 @@ return (await ff_core_Path.Path_renameTo$(tarGzPath_, donePath_, $task))
|
|
|
395
392
|
};
|
|
396
393
|
return dependencyPath_
|
|
397
394
|
} else {
|
|
398
|
-
|
|
395
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(dependency_.at_, ("Loading packages by this protocol is not supported: " + location_)), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
399
396
|
}
|
|
400
397
|
} else {
|
|
401
398
|
return (await ff_core_Path.Path_path$(path_, location_, $task))
|
|
@@ -407,7 +404,7 @@ const packageInfos_ = (await ff_core_List.List_map$(dependencies_, (async (depen
|
|
|
407
404
|
const dependencyPath_ = (await ff_compiler_Dependencies.Dependencies_fetchDependency$(self_, path_, httpClient_, dependencyLock_, dependency_, $task));
|
|
408
405
|
self_.packagePaths_ = ff_core_Map.Map_add(self_.packagePaths_, dependency_.packagePair_, dependencyPath_, ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair);
|
|
409
406
|
const packageInfo_ = (await ff_core_Option.Option_else$((await ff_compiler_Dependencies.Dependencies_loadPackageInfo$(self_, dependency_.packagePair_, dependencyPath_, $task)), (async ($task) => {
|
|
410
|
-
|
|
407
|
+
throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(dependency_.at_, ("Dependency not found: " + (await ff_core_Path.Path_absolute$(dependencyPath_, $task)))), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
|
|
411
408
|
}), $task));
|
|
412
409
|
ff_compiler_Dependencies.checkPackagePairs_(dependency_.packagePair_, packageInfo_.package_.packagePair_);
|
|
413
410
|
return packageInfo_
|
|
@@ -421,3 +418,4 @@ if(ff_core_Equal.notEquals_(newDependencies_, [], ff_core_List.ff_core_Equal_Equ
|
|
|
421
418
|
}
|
|
422
419
|
|
|
423
420
|
|
|
421
|
+
//# sourceMappingURL=Dependencies.mjs.map
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": [
|
|
4
|
+
"../../../../../compiler/Dependencies.ff"
|
|
5
|
+
],
|
|
6
|
+
"sourcesContent": [
|
|
7
|
+
"import Parser\r\nimport Syntax\r\nimport Tokenizer\r\nimport Workspace\r\nimport LspHook\r\nimport DependencyLock\r\n\r\ncapability Dependencies(\r\n workspace: Workspace\r\n mutable packages: Map[PackagePair, PackageInfo]\r\n mutable packagePaths: Map[PackagePair, Path]\r\n mutable singleFilePackages: Set[PackagePair]\r\n)\r\n\r\ncapability ResolvedDependencies(\r\n mainPackagePair: PackagePair\r\n packages: Map[PackagePair, PackageInfo]\r\n packagePaths: Map[PackagePair, Path]\r\n singleFilePackages: Set[PackagePair]\r\n)\r\n\r\nextend self: Dependencies {\r\n\r\n loadPackageInfo(\r\n packagePair: PackagePair\r\n path: Path\r\n ): Option[PackageInfo] {\r\n //let packageDirectory = if(path.extension() == \".ff\") {path.parent().grab()} else {path}\r\n let packageDirectory = findScriptPackageLocation(path)\r\n let sharedPackageFile = packageDirectory.slash(\".firefly\").slash(\"package.ff\")\r\n let packageFile = if(sharedPackageFile.exists()) {\r\n sharedPackageFile\r\n } else {\r\n self.singleFilePackages = self.singleFilePackages.add(packagePair)\r\n path\r\n }\r\n try {packageFile.readText()}.toOption().map: code =>\r\n self.parsePackageFile(packagePair, packageFile.absolute(), code)\r\n }\r\n \r\n parsePackageFile(\r\n packagePair: PackagePair\r\n fileName: String\r\n code: String\r\n ): PackageInfo {\r\n let tokens = Tokenizer.tokenize(fileName, code, None, True)\r\n let moduleKey = ModuleKey(packagePair, [], \"<package>\")\r\n let parser = Parser.new(moduleKey, tokens, False, LspHook.disabled())\r\n let info = parser.parsePackageInfo()\r\n self.addCoreDependencyIfMissing(info)\r\n }\r\n\r\n addCoreDependencyIfMissing(info: PackageInfo): PackageInfo {\r\n if(info.dependencies.any {d =>\r\n d.packagePair.group == \"ff\" && d.packagePair.name == \"core\"\r\n }) {\r\n info\r\n } else {\r\n let coreDependency = DDependency(\r\n at = info.package.at\r\n packagePair = PackagePair(\"ff\", \"core\")\r\n version = Version(info.package.at, 0, 0, 0)\r\n safety = Trusted\r\n targets = info.package.targets\r\n )\r\n info.PackageInfo(dependencies = [coreDependency, ...info.dependencies])\r\n }\r\n }\r\n\r\n processPackageInfo(\r\n packageInfo: PackageInfo\r\n ): List[DDependency] {\r\n self.packages = self.packages.add(packageInfo.package.packagePair, packageInfo)\r\n packageInfo.dependencies.filter {!self.packages.contains(_.packagePair)}\r\n }\r\n\r\n fetchDependency(\r\n path: Path\r\n httpClient: HttpClient\r\n dependencyLock: DependencyLock\r\n dependency: DDependency\r\n ): Path {\r\n let location = self.workspace.findPackageLocation(dependency.packagePair, dependency.version)\r\n if(location.contains(\":\") && !location.dropFirst(1).startsWith(\":\")) {\r\n if(location.startsWith(\"http://\") || location.startsWith(\"https://\")) {\r\n let packagePair = dependency.packagePair\r\n let directory = if(path.isDirectory()) {path} else {path.parent().grab()}\r\n let dependenciesPath = directory.slash(\".firefly\").slash(\"dependencies\")\r\n let dependencyPath = dependenciesPath.slash(packagePair.group).slash(packagePair.name)\r\n let tarGzPath = dependenciesPath.slash(Workspace.tarGzName(packagePair, dependency.version))\r\n let donePath = dependenciesPath.slash(Workspace.tarGzName(packagePair, dependency.version) + \".done\")\r\n if(!donePath.exists()) {\r\n dependencyLock.do(donePath.absolute()) {\r\n if(!donePath.exists()) {\r\n Log.trace(\"Fetching \" + location)\r\n let buffer = httpClient.get(location, []) {response =>\r\n if(!response.ok()) {\r\n throw(CompileError(dependency.at, \"Could not download dependency: \" + location))\r\n }\r\n response.readBuffer()\r\n }\r\n if(dependencyPath.exists()) {\r\n dependencyPath.delete()\r\n }\r\n dependencyPath.createDirectory(createParentDirectories = True)\r\n tarGzPath.writeStream([buffer].toStream())\r\n internalExtractTarGz(tarGzPath, dependencyPath)\r\n tarGzPath.renameTo(donePath)\r\n }\r\n }\r\n }\r\n dependencyPath\r\n } else {\r\n throw(CompileError(dependency.at, \"Loading packages by this protocol is not supported: \" + location))\r\n }\r\n } else {\r\n path.path(location)\r\n }\r\n }\r\n\r\n processDependencies(\r\n path: Path\r\n httpClient: HttpClient\r\n dependencyLock: DependencyLock\r\n dependencies: List[DDependency]\r\n ): Unit {\r\n // Remember to check for cycles\r\n let packageInfos = dependencies.map {dependency =>\r\n let dependencyPath = self.fetchDependency(path, httpClient, dependencyLock, dependency)\r\n self.packagePaths = self.packagePaths.add(dependency.packagePair, dependencyPath)\r\n let packageInfo = self.loadPackageInfo(dependency.packagePair, dependencyPath).else {\r\n throw(CompileError(dependency.at, \"Dependency not found: \" + dependencyPath.absolute()))\r\n }\r\n checkPackagePairs(dependency.packagePair, packageInfo.package.packagePair)\r\n packageInfo\r\n }\r\n let newDependencies = packageInfos.flatMap {self.processPackageInfo(_)}\r\n if(newDependencies != []) {\r\n self.processDependencies(path, httpClient, dependencyLock, newDependencies)\r\n }\r\n }\r\n\r\n}\r\n\r\nprocess(fetch: HttpClient, dependencyLock: DependencyLock, path: Path): ResolvedDependencies {\r\n let workspace = Workspace.loadWorkspace(path)\r\n let self = Dependencies(workspace, [].toMap(), [].toMap(), [].toSet())\r\n let packageInfo = self.loadPackageInfo(Syntax.scriptPackagePair, path).else {\r\n if(!path.exists()) {\r\n throw(CompileError(Location(path.absolute(), 1, 1), \"File not found\"))\r\n } else {\r\n throw(CompileError(Location(path.absolute(), 1, 1), \"Could not load package info\"))\r\n }\r\n }\r\n let newDependencies = self.processPackageInfo(packageInfo)\r\n self.processDependencies(path, fetch, dependencyLock, newDependencies)\r\n let packagePaths = self.packagePaths.add(packageInfo.package.packagePair, findScriptPackageLocation(path))\r\n ResolvedDependencies(\r\n mainPackagePair = packageInfo.package.packagePair\r\n packages = self.packages\r\n packagePaths = packagePaths\r\n singleFilePackages = self.singleFilePackages\r\n )\r\n}\r\n\r\nfindScriptPackageLocation(path: Path): Path {\r\n let packageDirectory = if(path.extension() == \".ff\") {path.parent().grab()} else {path}\r\n function go(directory: Path): Path {\r\n let packageFile = directory.slash(\".firefly\").slash(\"package.ff\")\r\n if(packageFile.exists()) {\r\n directory\r\n } elseIf {!directory.parent().isEmpty()} {\r\n go(directory.parent().grab())\r\n } else {\r\n packageDirectory\r\n }\r\n }\r\n go(packageDirectory)\r\n}\r\n\r\ncheckPackagePairs(dependencyPair: PackagePair, packagePair: PackagePair): Unit {\r\n if(\r\n packagePair.group != dependencyPair.group ||\r\n packagePair.name != dependencyPair.name\r\n ) {\r\n panic(\r\n \"Dependency declaration and package declaration disagree on package name: \" +\r\n dependencyPair.groupName() + \" vs. \" + packagePair.groupName()\r\n )\r\n }\r\n}\r\n\r\ninternalExtractTarGz(tarGzPath: Path, path: Path): Unit {\r\n let tar = Js.import(\"tar\")\r\n Js.await(tar->extract(Js->(file = tarGzPath.absolutePath, cwd = path.absolutePath, strict = True)))\r\n}\r\n"
|
|
8
|
+
],
|
|
9
|
+
"names": [
|
|
10
|
+
"Dependencies",
|
|
11
|
+
"workspace",
|
|
12
|
+
"packages",
|
|
13
|
+
"packagePaths",
|
|
14
|
+
"singleFilePackages",
|
|
15
|
+
"ResolvedDependencies",
|
|
16
|
+
"mainPackagePair",
|
|
17
|
+
"process",
|
|
18
|
+
"fetch",
|
|
19
|
+
"dependencyLock",
|
|
20
|
+
"path",
|
|
21
|
+
"loadWorkspace",
|
|
22
|
+
"self",
|
|
23
|
+
"toMap",
|
|
24
|
+
"toSet",
|
|
25
|
+
"packageInfo",
|
|
26
|
+
"else",
|
|
27
|
+
"loadPackageInfo",
|
|
28
|
+
"scriptPackagePair",
|
|
29
|
+
"exists",
|
|
30
|
+
"CompileError",
|
|
31
|
+
"Location",
|
|
32
|
+
"absolute",
|
|
33
|
+
"newDependencies",
|
|
34
|
+
"processPackageInfo",
|
|
35
|
+
"processDependencies",
|
|
36
|
+
"add",
|
|
37
|
+
"package",
|
|
38
|
+
"packagePair",
|
|
39
|
+
"findScriptPackageLocation",
|
|
40
|
+
"packageDirectory",
|
|
41
|
+
"extension",
|
|
42
|
+
"grab",
|
|
43
|
+
"parent",
|
|
44
|
+
"go",
|
|
45
|
+
"directory",
|
|
46
|
+
"packageFile",
|
|
47
|
+
"slash",
|
|
48
|
+
"isEmpty",
|
|
49
|
+
"checkPackagePairs",
|
|
50
|
+
"dependencyPair",
|
|
51
|
+
"group",
|
|
52
|
+
"name",
|
|
53
|
+
"panic",
|
|
54
|
+
"groupName",
|
|
55
|
+
"internalExtractTarGz",
|
|
56
|
+
"tarGzPath",
|
|
57
|
+
"tar",
|
|
58
|
+
"extract",
|
|
59
|
+
"file",
|
|
60
|
+
"absolutePath",
|
|
61
|
+
"cwd",
|
|
62
|
+
"strict",
|
|
63
|
+
"sharedPackageFile",
|
|
64
|
+
"map",
|
|
65
|
+
"toOption",
|
|
66
|
+
"try",
|
|
67
|
+
"readText",
|
|
68
|
+
"code",
|
|
69
|
+
"parsePackageFile",
|
|
70
|
+
"fileName",
|
|
71
|
+
"tokens",
|
|
72
|
+
"tokenize",
|
|
73
|
+
"None",
|
|
74
|
+
"moduleKey",
|
|
75
|
+
"ModuleKey",
|
|
76
|
+
"parser",
|
|
77
|
+
"new",
|
|
78
|
+
"disabled",
|
|
79
|
+
"info",
|
|
80
|
+
"parsePackageInfo",
|
|
81
|
+
"addCoreDependencyIfMissing",
|
|
82
|
+
"any",
|
|
83
|
+
"dependencies",
|
|
84
|
+
"d",
|
|
85
|
+
"coreDependency",
|
|
86
|
+
"DDependency",
|
|
87
|
+
"at",
|
|
88
|
+
"PackagePair",
|
|
89
|
+
"Version",
|
|
90
|
+
"Trusted",
|
|
91
|
+
"targets",
|
|
92
|
+
"c",
|
|
93
|
+
"PackageInfo",
|
|
94
|
+
"includes",
|
|
95
|
+
"filter",
|
|
96
|
+
"w1",
|
|
97
|
+
"contains",
|
|
98
|
+
"fetchDependency",
|
|
99
|
+
"httpClient",
|
|
100
|
+
"dependency",
|
|
101
|
+
"location",
|
|
102
|
+
"findPackageLocation",
|
|
103
|
+
"version",
|
|
104
|
+
"startsWith",
|
|
105
|
+
"dropFirst",
|
|
106
|
+
"isDirectory",
|
|
107
|
+
"dependenciesPath",
|
|
108
|
+
"dependencyPath",
|
|
109
|
+
"tarGzName",
|
|
110
|
+
"donePath",
|
|
111
|
+
"do",
|
|
112
|
+
"trace",
|
|
113
|
+
"buffer",
|
|
114
|
+
"get",
|
|
115
|
+
"response",
|
|
116
|
+
"ok",
|
|
117
|
+
"readBuffer",
|
|
118
|
+
"delete",
|
|
119
|
+
"createDirectory",
|
|
120
|
+
"writeStream",
|
|
121
|
+
"toStream",
|
|
122
|
+
"renameTo",
|
|
123
|
+
"packageInfos",
|
|
124
|
+
"flatMap",
|
|
125
|
+
"notEquals"
|
|
126
|
+
],
|
|
127
|
+
"mappings": "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"
|
|
128
|
+
}
|