firefly-compiler 0.5.79 → 0.5.80

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.
Files changed (105) hide show
  1. package/compiler/Builder.ff +31 -39
  2. package/compiler/Compiler.ff +14 -4
  3. package/compiler/DevelopMode.ff +406 -0
  4. package/compiler/Main.ff +73 -53
  5. package/compiler/ModuleCache.ff +5 -5
  6. package/core/.firefly/include/package.json +1 -1
  7. package/core/BuildSystem.ff +82 -11
  8. package/core/NodeSystem.ff +47 -30
  9. package/core/Path.ff +7 -2
  10. package/experimental/proxy/Main.ff +60 -0
  11. package/experimental/proxy/Runner.ff +11 -0
  12. package/experimental/proxy/Tcp.ff +162 -0
  13. package/experimental/random/Superdigit.ff +18 -0
  14. package/experimental/terrain/Main.ff +40 -0
  15. package/experimental/terrain/Terrain.ff +97 -0
  16. package/experimental/terrain/Terrain2.ff +109 -0
  17. package/fireflysite/Main.ff +0 -1
  18. package/fireflysite/assets/markdown/reference/statements-and-expressions.md +1 -1
  19. package/lsp/CompletionHandler.ff +2 -2
  20. package/output/js/ff/compiler/Builder.mjs +24 -48
  21. package/output/js/ff/compiler/Builder.mjs.map +7 -11
  22. package/output/js/ff/compiler/Compiler.mjs +66 -12
  23. package/output/js/ff/compiler/Compiler.mjs.map +18 -14
  24. package/output/js/ff/compiler/Dependencies.mjs.map +2 -2
  25. package/output/js/ff/compiler/DependencyLock.mjs.map +1 -1
  26. package/output/js/ff/compiler/Deriver.mjs.map +1 -1
  27. package/output/js/ff/compiler/DevelopMode.mjs +1049 -0
  28. package/output/js/ff/compiler/DevelopMode.mjs.map +183 -0
  29. package/output/js/ff/compiler/Dictionaries.mjs.map +1 -1
  30. package/output/js/ff/compiler/Environment.mjs.map +1 -1
  31. package/output/js/ff/compiler/Inference.mjs.map +1 -1
  32. package/output/js/ff/compiler/JsEmitter.mjs.map +1 -1
  33. package/output/js/ff/compiler/JsImporter.mjs.map +1 -1
  34. package/output/js/ff/compiler/LspHook.mjs.map +1 -1
  35. package/output/js/ff/compiler/Main.mjs +256 -105
  36. package/output/js/ff/compiler/Main.mjs.map +43 -38
  37. package/output/js/ff/compiler/ModuleCache.mjs +12 -8
  38. package/output/js/ff/compiler/ModuleCache.mjs.map +4 -3
  39. package/output/js/ff/compiler/Parser.mjs.map +1 -1
  40. package/output/js/ff/compiler/Patterns.mjs.map +1 -1
  41. package/output/js/ff/compiler/Resolver.mjs.map +1 -1
  42. package/output/js/ff/compiler/SourceMap.mjs.map +1 -1
  43. package/output/js/ff/compiler/Substitution.mjs.map +1 -1
  44. package/output/js/ff/compiler/Syntax.mjs.map +1 -1
  45. package/output/js/ff/compiler/Token.mjs.map +1 -1
  46. package/output/js/ff/compiler/Tokenizer.mjs.map +1 -1
  47. package/output/js/ff/compiler/Unification.mjs.map +1 -1
  48. package/output/js/ff/compiler/Wildcards.mjs.map +1 -1
  49. package/output/js/ff/compiler/Workspace.mjs.map +1 -1
  50. package/output/js/ff/core/Any.mjs.map +1 -1
  51. package/output/js/ff/core/Array.mjs.map +1 -1
  52. package/output/js/ff/core/AssetSystem.mjs.map +1 -1
  53. package/output/js/ff/core/Atomic.mjs.map +1 -1
  54. package/output/js/ff/core/Bool.mjs.map +1 -1
  55. package/output/js/ff/core/BrowserSystem.mjs.map +1 -1
  56. package/output/js/ff/core/Buffer.mjs.map +1 -1
  57. package/output/js/ff/core/BuildSystem.mjs +116 -12
  58. package/output/js/ff/core/BuildSystem.mjs.map +35 -6
  59. package/output/js/ff/core/Channel.mjs.map +1 -1
  60. package/output/js/ff/core/Char.mjs.map +1 -1
  61. package/output/js/ff/core/Core.mjs.map +1 -1
  62. package/output/js/ff/core/Crypto.mjs.map +1 -1
  63. package/output/js/ff/core/Date.mjs.map +1 -1
  64. package/output/js/ff/core/Duration.mjs.map +1 -1
  65. package/output/js/ff/core/Equal.mjs.map +1 -1
  66. package/output/js/ff/core/Error.mjs.map +1 -1
  67. package/output/js/ff/core/FileHandle.mjs.map +1 -1
  68. package/output/js/ff/core/Float.mjs.map +1 -1
  69. package/output/js/ff/core/HttpClient.mjs.map +1 -1
  70. package/output/js/ff/core/Int.mjs.map +1 -1
  71. package/output/js/ff/core/IntMap.mjs.map +1 -1
  72. package/output/js/ff/core/Js.mjs.map +1 -1
  73. package/output/js/ff/core/JsSystem.mjs.map +1 -1
  74. package/output/js/ff/core/JsValue.mjs.map +1 -1
  75. package/output/js/ff/core/Json.mjs.map +1 -1
  76. package/output/js/ff/core/List.mjs.map +1 -1
  77. package/output/js/ff/core/Lock.mjs.map +1 -1
  78. package/output/js/ff/core/Log.mjs.map +1 -1
  79. package/output/js/ff/core/Map.mjs.map +1 -1
  80. package/output/js/ff/core/NodeSystem.mjs +54 -20
  81. package/output/js/ff/core/NodeSystem.mjs.map +14 -6
  82. package/output/js/ff/core/Nothing.mjs.map +1 -1
  83. package/output/js/ff/core/Option.mjs.map +1 -1
  84. package/output/js/ff/core/Ordering.mjs.map +1 -1
  85. package/output/js/ff/core/Pair.mjs.map +1 -1
  86. package/output/js/ff/core/Path.mjs +30 -4
  87. package/output/js/ff/core/Path.mjs.map +8 -6
  88. package/output/js/ff/core/Queue.mjs.map +1 -1
  89. package/output/js/ff/core/Random.mjs.map +1 -1
  90. package/output/js/ff/core/RbMap.mjs.map +1 -1
  91. package/output/js/ff/core/Serializable.mjs.map +1 -1
  92. package/output/js/ff/core/Set.mjs.map +1 -1
  93. package/output/js/ff/core/Show.mjs.map +1 -1
  94. package/output/js/ff/core/SourceLocation.mjs.map +1 -1
  95. package/output/js/ff/core/Stream.mjs.map +1 -1
  96. package/output/js/ff/core/String.mjs.map +1 -1
  97. package/output/js/ff/core/StringMap.mjs.map +1 -1
  98. package/output/js/ff/core/Task.mjs.map +1 -1
  99. package/output/js/ff/core/Try.mjs.map +1 -1
  100. package/output/js/ff/core/Unit.mjs.map +1 -1
  101. package/output/js/ff/core/node_modules +1 -0
  102. package/package.json +1 -1
  103. package/vscode/package.json +1 -1
  104. package/webserver/.firefly/include/package.json +1 -1
  105. package/webserver/WebServer.ff +6 -3
@@ -8,6 +8,8 @@ import * as ff_compiler_Dependencies from "../../ff/compiler/Dependencies.mjs"
8
8
 
9
9
  import * as ff_compiler_DependencyLock from "../../ff/compiler/DependencyLock.mjs"
10
10
 
11
+ import * as ff_compiler_DevelopMode from "../../ff/compiler/DevelopMode.mjs"
12
+
11
13
  import * as ff_compiler_Inference from "../../ff/compiler/Inference.mjs"
12
14
 
13
15
  import * as ff_compiler_JsEmitter from "../../ff/compiler/JsEmitter.mjs"
@@ -129,6 +131,9 @@ return BootstrapCommand$;
129
131
  export function RunCommand(mainPath_, argument_) {
130
132
  return {RunCommand: true, mainPath_, argument_};
131
133
  }
134
+ export function DevelopCommand(mainPath_, argument_) {
135
+ return {DevelopCommand: true, mainPath_, argument_};
136
+ }
132
137
  export function BrowserCommand(mainPath_) {
133
138
  return {BrowserCommand: true, mainPath_};
134
139
  }
@@ -147,39 +152,10 @@ export function CommandLineError(problem_) {
147
152
  return {problem_};
148
153
  }
149
154
 
150
- export const usageString_ = "\r\nusage: firefly <main-file> [<main-arguments>] | <command> [<command-arguments>]\r\n\r\nThese are the commands:\r\n run <main-file> [<main-arguments>] Run the main file with the provided arguments\r\n browser <main-file> Compile the main file for the browser\r\n build <main-file> Build the main file\r\n check <firefly-file> Check the firefly source file for errors\r\n symbols <out-file> <firefly-file> Print a .tsv with the symbols of a firefly source file\r\n bootstrap Bootstrap the compiler\r\n";
155
+ export const usageString_ = "\r\nusage: firefly <main-file> [<main-arguments>] | <command> [<command-arguments>]\r\n\r\nThese are the commands:\r\n run <main-file> [<main-arguments>] Run the main file with the provided arguments\r\n develop <main-file> [<main-arguments>] Develop the main file with the provided arguments\r\n browser <main-file> Compile the main file for the browser\r\n build <main-file> Build the main file\r\n check <firefly-file> Check the firefly source file for errors\r\n symbols <out-file> <firefly-file> Print a .tsv with the symbols of a firefly source file\r\n bootstrap Bootstrap the compiler\r\n";
151
156
 
152
157
  export function main_(system_) {
153
158
  const fireflyPath_ = ff_compiler_Main.detectFireflyPath_(system_);
154
- function buildScript_(mainPath_, mainPackagePair_, emitTarget_, resolvedDependencies_) {
155
- const fixedPackagePaths_ = (ff_core_Map.Map_contains(resolvedDependencies_.packagePaths_, ff_compiler_Syntax.PackagePair("ff", "core"), ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair)
156
- ? resolvedDependencies_.packagePaths_
157
- : ff_core_Map.Map_add(resolvedDependencies_.packagePaths_, ff_compiler_Syntax.PackagePair("ff", "core"), ff_core_Path.Path_slash(fireflyPath_, "core"), ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair));
158
- const compilerModulePath_ = ((ff_core_Equal.notEquals_(emitTarget_, ff_compiler_JsEmitter.EmitBrowser(), ff_compiler_JsEmitter.ff_core_Equal_Equal$ff_compiler_JsEmitter_EmitTarget) && ff_core_Equal.notEquals_(emitTarget_, ff_compiler_JsEmitter.EmitExecutable(), ff_compiler_JsEmitter.ff_core_Equal_Equal$ff_compiler_JsEmitter_EmitTarget))
159
- ? ff_core_Option.Some(ff_core_Path.Path_slash(ff_core_Path.Path_slash(ff_core_Path.Path_slash(ff_core_Path.Path_slash(fireflyPath_, "output"), "js"), "ff"), "compiler/Builder.mjs"))
160
- : ff_core_Option.None());
161
- const targetName_ = (((_1) => {
162
- if(_1.EmitBuild) {
163
- return "build"
164
- }
165
- if(_1.EmitNode) {
166
- return "node"
167
- }
168
- if(_1.EmitBrowser) {
169
- return "browser"
170
- }
171
- {
172
- return "executable"
173
- }
174
- }))(emitTarget_);
175
- const folders_ = ff_core_Path.Path_relativeListTo(ff_core_Option.Option_grab(ff_core_Path.Path_parent(mainPath_)), ff_core_Map.Map_grab(fixedPackagePaths_, mainPackagePair_, ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair));
176
- const name_ = ff_core_Option.Option_grab(ff_core_String.String_removeLast(ff_core_Path.Path_base(mainPath_), ".ff"));
177
- const moduleKey_ = ff_compiler_Syntax.ModuleKey(mainPackagePair_, folders_, name_);
178
- ff_compiler_Builder.build_(system_, emitTarget_, [moduleKey_], (((_c) => {
179
- return ff_compiler_Dependencies.ResolvedDependencies(_c.mainPackagePair_, _c.packages_, fixedPackagePaths_, _c.singleFilePackages_)
180
- }))(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.new_(0));
181
- return moduleKey_
182
- }
183
159
  function runCommand_(command_) {
184
160
  const command_a = command_;
185
161
  if(command_a.RunCommand) {
@@ -188,19 +164,25 @@ const arguments_ = command_a.argument_;
188
164
  const resolvedDependencies_ = ff_compiler_Dependencies.process_(ff_core_NodeSystem.NodeSystem_httpClient(system_), ff_compiler_DependencyLock.new_(ff_core_NodeSystem.NodeSystem_mainTask(system_)), ff_core_NodeSystem.NodeSystem_path(system_, mainFile_));
189
165
  ff_compiler_Main.prepareFireflyDirectory_(ff_core_NodeSystem.NodeSystem_path(system_, "."));
190
166
  const mainPath_ = ff_core_NodeSystem.NodeSystem_path(system_, mainFile_);
191
- const moduleKey_ = buildScript_(mainPath_, resolvedDependencies_.mainPackagePair_, ff_compiler_JsEmitter.EmitNode(), resolvedDependencies_);
167
+ const moduleKey_ = ff_compiler_Main.buildScript_(system_, mainPath_, resolvedDependencies_.mainPackagePair_, ff_compiler_JsEmitter.EmitNode(), resolvedDependencies_, ff_compiler_ModuleCache.new_(0), false);
192
168
  if((!ff_compiler_Main.importAndRun_(system_, fireflyPath_, "node", moduleKey_, arguments_))) {
193
169
  const at_ = ff_compiler_Syntax.Location(ff_core_Path.Path_absolute(ff_core_NodeSystem.NodeSystem_path(system_, mainFile_)), 1, 1);
194
170
  throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(at_, "This module does not contain a 'nodeMain' function"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
195
171
  }
196
172
  return
197
173
  }
174
+ if(command_a.DevelopCommand) {
175
+ const mainFile_ = command_a.mainPath_;
176
+ const arguments_ = command_a.argument_;
177
+ ff_compiler_DevelopMode.run_(system_, fireflyPath_, mainFile_, arguments_)
178
+ return
179
+ }
198
180
  if(command_a.BrowserCommand) {
199
181
  const mainFile_ = command_a.mainPath_;
200
182
  const resolvedDependencies_ = ff_compiler_Dependencies.process_(ff_core_NodeSystem.NodeSystem_httpClient(system_), ff_compiler_DependencyLock.new_(ff_core_NodeSystem.NodeSystem_mainTask(system_)), ff_core_NodeSystem.NodeSystem_path(system_, mainFile_));
201
183
  ff_compiler_Main.prepareFireflyDirectory_(ff_core_NodeSystem.NodeSystem_path(system_, "."));
202
184
  const mainPath_ = ff_core_NodeSystem.NodeSystem_path(system_, mainFile_);
203
- const moduleKey_ = buildScript_(mainPath_, resolvedDependencies_.mainPackagePair_, ff_compiler_JsEmitter.EmitBrowser(), resolvedDependencies_);
185
+ const moduleKey_ = ff_compiler_Main.buildScript_(system_, mainPath_, resolvedDependencies_.mainPackagePair_, ff_compiler_JsEmitter.EmitBrowser(), resolvedDependencies_, ff_compiler_ModuleCache.new_(0), false);
204
186
  ff_compiler_Main.bundleForBrowser_(system_, resolvedDependencies_.mainPackagePair_, moduleKey_)
205
187
  return
206
188
  }
@@ -209,8 +191,8 @@ const mainFile_ = command_a.mainPath_;
209
191
  const resolvedDependencies_ = ff_compiler_Dependencies.process_(ff_core_NodeSystem.NodeSystem_httpClient(system_), ff_compiler_DependencyLock.new_(ff_core_NodeSystem.NodeSystem_mainTask(system_)), ff_core_NodeSystem.NodeSystem_path(system_, (mainFile_ + ".ff")));
210
192
  ff_compiler_Main.prepareFireflyDirectory_(ff_core_NodeSystem.NodeSystem_path(system_, "."));
211
193
  const mainPath_ = ff_core_NodeSystem.NodeSystem_path(system_, mainFile_);
212
- const moduleKey_ = buildScript_(mainPath_, resolvedDependencies_.mainPackagePair_, ff_compiler_JsEmitter.EmitBuild(), resolvedDependencies_);
213
- buildScript_(mainPath_, resolvedDependencies_.mainPackagePair_, ff_compiler_JsEmitter.EmitExecutable(), resolvedDependencies_);
194
+ const moduleKey_ = ff_compiler_Main.buildScript_(system_, mainPath_, resolvedDependencies_.mainPackagePair_, ff_compiler_JsEmitter.EmitBuild(), resolvedDependencies_, ff_compiler_ModuleCache.new_(0), false);
195
+ ff_compiler_Main.buildScript_(system_, mainPath_, resolvedDependencies_.mainPackagePair_, ff_compiler_JsEmitter.EmitExecutable(), resolvedDependencies_, ff_compiler_ModuleCache.new_(0), false);
214
196
  ff_compiler_Main.bundleForPkg_(system_, resolvedDependencies_.mainPackagePair_, ff_core_Path.Path_base(mainPath_));
215
197
  ff_compiler_Main.importAndRun_(system_, fireflyPath_, "build", moduleKey_, [])
216
198
  return
@@ -226,7 +208,7 @@ return
226
208
  if(command_a.BootstrapCommand) {
227
209
  const workingDirectory_ = ff_core_NodeSystem.NodeSystem_path(system_, ".");
228
210
  const fakeLocation_ = ff_compiler_Syntax.Location("<core>", 0, 0);
229
- ff_compiler_Builder.build_(system_, ff_compiler_JsEmitter.EmitNode(), [ff_compiler_Syntax.ModuleKey(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))
211
+ ff_compiler_Builder.build_(system_, ff_compiler_JsEmitter.EmitNode(), [ff_compiler_Syntax.ModuleKey(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"), "js"), true, ff_compiler_ModuleCache.new_(0))
230
212
  return
231
213
  }
232
214
  {
@@ -295,6 +277,37 @@ return
295
277
  }), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileErrors)
296
278
  }
297
279
 
280
+ export function buildScript_(system_, mainPath_, mainPackagePair_, emitTarget_, resolvedDependencies_, moduleCache_ = ff_compiler_ModuleCache.new_(0), printMeasurements_ = false) {
281
+ const fireflyPath_ = ff_compiler_Main.detectFireflyPath_(system_);
282
+ const fixedPackagePaths_ = (ff_core_Map.Map_contains(resolvedDependencies_.packagePaths_, ff_compiler_Syntax.PackagePair("ff", "core"), ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair)
283
+ ? resolvedDependencies_.packagePaths_
284
+ : ff_core_Map.Map_add(resolvedDependencies_.packagePaths_, ff_compiler_Syntax.PackagePair("ff", "core"), ff_core_Path.Path_slash(fireflyPath_, "core"), ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair));
285
+ const compilerModulePath_ = ((ff_core_Equal.notEquals_(emitTarget_, ff_compiler_JsEmitter.EmitBrowser(), ff_compiler_JsEmitter.ff_core_Equal_Equal$ff_compiler_JsEmitter_EmitTarget) && ff_core_Equal.notEquals_(emitTarget_, ff_compiler_JsEmitter.EmitExecutable(), ff_compiler_JsEmitter.ff_core_Equal_Equal$ff_compiler_JsEmitter_EmitTarget))
286
+ ? ff_core_Option.Some(ff_core_Path.Path_slash(ff_core_Path.Path_slash(ff_core_Path.Path_slash(ff_core_Path.Path_slash(fireflyPath_, "output"), "js"), "ff"), "compiler/Builder.mjs"))
287
+ : ff_core_Option.None());
288
+ const targetName_ = (((_1) => {
289
+ if(_1.EmitBuild) {
290
+ return "build"
291
+ }
292
+ if(_1.EmitNode) {
293
+ return "node"
294
+ }
295
+ if(_1.EmitBrowser) {
296
+ return "browser"
297
+ }
298
+ {
299
+ return "executable"
300
+ }
301
+ }))(emitTarget_);
302
+ const folders_ = ff_core_Path.Path_relativeListTo(ff_core_Option.Option_grab(ff_core_Path.Path_parent(mainPath_)), ff_core_Map.Map_grab(fixedPackagePaths_, mainPackagePair_, ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair));
303
+ const name_ = ff_core_Option.Option_grab(ff_core_String.String_removeLast(ff_core_Path.Path_base(mainPath_), ".ff"));
304
+ const moduleKey_ = ff_compiler_Syntax.ModuleKey(mainPackagePair_, folders_, name_);
305
+ ff_compiler_Builder.build_(system_, emitTarget_, [moduleKey_], (((_c) => {
306
+ return ff_compiler_Dependencies.ResolvedDependencies(_c.mainPackagePair_, _c.packages_, fixedPackagePaths_, _c.singleFilePackages_)
307
+ }))(resolvedDependencies_), compilerModulePath_, ff_core_Path.Path_path(ff_core_Path.Path_path(ff_core_NodeSystem.NodeSystem_path(system_, ".firefly"), "output"), targetName_), printMeasurements_, moduleCache_);
308
+ return moduleKey_
309
+ }
310
+
298
311
  export function parseCommandLine_(arguments_) {
299
312
  const arguments_a = arguments_;
300
313
  if(arguments_a.length >= 1) {
@@ -325,6 +338,25 @@ throw ff_core_Js.initializeError_(ff_compiler_Main.CommandLineError(("You must s
325
338
  }
326
339
  return
327
340
  }
341
+ if(arguments_a.length >= 1 && arguments_a[0] === "develop") {
342
+ const runArguments_ = arguments_a.slice(1);
343
+ {
344
+ const _1 = runArguments_;
345
+ if(_1.length >= 1) {
346
+ const mainFile_ = _1[0];
347
+ const mainArguments_ = _1.slice(1);
348
+ const _guard1 = ff_core_String.String_removeLast(mainFile_, ".ff");
349
+ if(_guard1.Some) {
350
+ const mainName_ = _guard1.value_;
351
+ return ff_compiler_Main.DevelopCommand(mainFile_, mainArguments_)
352
+ }
353
+ }
354
+ {
355
+ throw ff_core_Js.initializeError_(ff_compiler_Main.CommandLineError(("You must specify a Firefly file (.ff) as first argument to develop." + ff_compiler_Main.usageString_)), new Error(), ff_compiler_Main.ff_core_Any_HasAnyTag$ff_compiler_Main_CommandLineError, ff_compiler_Main.ff_core_Show_Show$ff_compiler_Main_CommandLineError)
356
+ }
357
+ }
358
+ return
359
+ }
328
360
  if(arguments_a.length >= 1 && arguments_a[0] === "browser") {
329
361
  const browserArguments_ = arguments_a.slice(1);
330
362
  {
@@ -432,13 +464,7 @@ ff_core_BuildSystem.internalBrowserCallEsBuild_(system_, [ff_core_Path.Path_abso
432
464
  }
433
465
 
434
466
  export function importAndRun_(system_, fireflyPath_, target_, moduleKey_, arguments_) {
435
- const process_ = import("process");
436
- const cwd_ = process_.cwd();
437
- const workingDirectory_ = ((cwd_.indexOf(":") === 1)
438
- ? ("file:///" + cwd_)
439
- : cwd_);
440
- const packagePath_ = ff_compiler_Syntax.PackagePair_groupName(moduleKey_.packagePair_, "/");
441
- const runFile_ = (((((((workingDirectory_ + "/.firefly/output/") + target_) + "/") + packagePath_) + "/") + ff_compiler_Syntax.ModuleKey_importName(moduleKey_)) + ".run.mjs");
467
+ const runFile_ = ff_compiler_Main.locateRunFile_(system_, target_, moduleKey_);
442
468
  const runFilePath_ = (ff_core_String.String_contains(runFile_, "://")
443
469
  ? ff_core_NodeSystem.NodeSystem_pathFromUrl(system_, runFile_)
444
470
  : ff_core_NodeSystem.NodeSystem_path(system_, runFile_));
@@ -456,6 +482,16 @@ return false
456
482
  }
457
483
  }
458
484
 
485
+ export function locateRunFile_(system_, target_, moduleKey_) {
486
+ const process_ = import("process");
487
+ const cwd_ = process_.cwd();
488
+ const workingDirectory_ = ((cwd_.indexOf(":") === 1)
489
+ ? ("file:///" + cwd_)
490
+ : cwd_);
491
+ const packagePath_ = ff_compiler_Syntax.PackagePair_groupName(moduleKey_.packagePair_, "/");
492
+ return (((((((workingDirectory_ + "/.firefly/output/") + target_) + "/") + packagePath_) + "/") + ff_compiler_Syntax.ModuleKey_importName(moduleKey_)) + ".run.mjs")
493
+ }
494
+
459
495
  export function prepareFireflyDirectory_(path_) {
460
496
  if((!ff_core_Path.Path_exists(ff_core_Path.Path_slash(ff_core_Path.Path_slash(path_, ".firefly"), "output"), false, false, false))) {
461
497
  if((!ff_core_Path.Path_exists(ff_core_Path.Path_slash(path_, ".firefly"), false, false, false))) {
@@ -560,35 +596,6 @@ return [header_, ...ff_core_List.List_sort(r_.symbols_, ff_core_Ordering.ff_core
560
596
 
561
597
  export async function main_$(system_, $task) {
562
598
  const fireflyPath_ = (await ff_compiler_Main.detectFireflyPath_$(system_, $task));
563
- async function buildScript_$(mainPath_, mainPackagePair_, emitTarget_, resolvedDependencies_, $task) {
564
- const fixedPackagePaths_ = (ff_core_Map.Map_contains(resolvedDependencies_.packagePaths_, ff_compiler_Syntax.PackagePair("ff", "core"), ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair)
565
- ? resolvedDependencies_.packagePaths_
566
- : ff_core_Map.Map_add(resolvedDependencies_.packagePaths_, ff_compiler_Syntax.PackagePair("ff", "core"), (await ff_core_Path.Path_slash$(fireflyPath_, "core", $task)), ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair));
567
- const compilerModulePath_ = ((ff_core_Equal.notEquals_(emitTarget_, ff_compiler_JsEmitter.EmitBrowser(), ff_compiler_JsEmitter.ff_core_Equal_Equal$ff_compiler_JsEmitter_EmitTarget) && ff_core_Equal.notEquals_(emitTarget_, ff_compiler_JsEmitter.EmitExecutable(), ff_compiler_JsEmitter.ff_core_Equal_Equal$ff_compiler_JsEmitter_EmitTarget))
568
- ? ff_core_Option.Some((await ff_core_Path.Path_slash$((await ff_core_Path.Path_slash$((await ff_core_Path.Path_slash$((await ff_core_Path.Path_slash$(fireflyPath_, "output", $task)), "js", $task)), "ff", $task)), "compiler/Builder.mjs", $task)))
569
- : ff_core_Option.None());
570
- const targetName_ = (((_1) => {
571
- if(_1.EmitBuild) {
572
- return "build"
573
- }
574
- if(_1.EmitNode) {
575
- return "node"
576
- }
577
- if(_1.EmitBrowser) {
578
- return "browser"
579
- }
580
- {
581
- return "executable"
582
- }
583
- }))(emitTarget_);
584
- const folders_ = (await ff_core_Path.Path_relativeListTo$(ff_core_Option.Option_grab((await ff_core_Path.Path_parent$(mainPath_, $task))), ff_core_Map.Map_grab(fixedPackagePaths_, mainPackagePair_, ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair), $task));
585
- const name_ = ff_core_Option.Option_grab(ff_core_String.String_removeLast((await ff_core_Path.Path_base$(mainPath_, $task)), ".ff"));
586
- const moduleKey_ = ff_compiler_Syntax.ModuleKey(mainPackagePair_, folders_, name_);
587
- (await ff_compiler_Builder.build_$(system_, emitTarget_, [moduleKey_], (((_c) => {
588
- return ff_compiler_Dependencies.ResolvedDependencies(_c.mainPackagePair_, _c.packages_, fixedPackagePaths_, _c.singleFilePackages_)
589
- }))(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.new_(0), $task));
590
- return moduleKey_
591
- }
592
599
  async function runCommand_$(command_, $task) {
593
600
  const command_a = command_;
594
601
  if(command_a.RunCommand) {
@@ -597,19 +604,25 @@ const arguments_ = command_a.argument_;
597
604
  const resolvedDependencies_ = (await ff_compiler_Dependencies.process_$((await ff_core_NodeSystem.NodeSystem_httpClient$(system_, $task)), (await ff_compiler_DependencyLock.new_$((await ff_core_NodeSystem.NodeSystem_mainTask$(system_, $task)), $task)), (await ff_core_NodeSystem.NodeSystem_path$(system_, mainFile_, $task)), $task));
598
605
  (await ff_compiler_Main.prepareFireflyDirectory_$((await ff_core_NodeSystem.NodeSystem_path$(system_, ".", $task)), $task));
599
606
  const mainPath_ = (await ff_core_NodeSystem.NodeSystem_path$(system_, mainFile_, $task));
600
- const moduleKey_ = (await buildScript_$(mainPath_, resolvedDependencies_.mainPackagePair_, ff_compiler_JsEmitter.EmitNode(), resolvedDependencies_, $task));
607
+ const moduleKey_ = (await ff_compiler_Main.buildScript_$(system_, mainPath_, resolvedDependencies_.mainPackagePair_, ff_compiler_JsEmitter.EmitNode(), resolvedDependencies_, ff_compiler_ModuleCache.new_(0), false, $task));
601
608
  if((!(await ff_compiler_Main.importAndRun_$(system_, fireflyPath_, "node", moduleKey_, arguments_, $task)))) {
602
609
  const at_ = ff_compiler_Syntax.Location((await ff_core_Path.Path_absolute$((await ff_core_NodeSystem.NodeSystem_path$(system_, mainFile_, $task)), $task)), 1, 1);
603
610
  throw ff_core_Js.initializeError_(ff_compiler_Syntax.CompileError(at_, "This module does not contain a 'nodeMain' function"), new Error(), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileError, ff_compiler_Syntax.ff_core_Show_Show$ff_compiler_Syntax_CompileError)
604
611
  }
605
612
  return
606
613
  }
614
+ if(command_a.DevelopCommand) {
615
+ const mainFile_ = command_a.mainPath_;
616
+ const arguments_ = command_a.argument_;
617
+ (await ff_compiler_DevelopMode.run_$(system_, fireflyPath_, mainFile_, arguments_, $task))
618
+ return
619
+ }
607
620
  if(command_a.BrowserCommand) {
608
621
  const mainFile_ = command_a.mainPath_;
609
622
  const resolvedDependencies_ = (await ff_compiler_Dependencies.process_$((await ff_core_NodeSystem.NodeSystem_httpClient$(system_, $task)), (await ff_compiler_DependencyLock.new_$((await ff_core_NodeSystem.NodeSystem_mainTask$(system_, $task)), $task)), (await ff_core_NodeSystem.NodeSystem_path$(system_, mainFile_, $task)), $task));
610
623
  (await ff_compiler_Main.prepareFireflyDirectory_$((await ff_core_NodeSystem.NodeSystem_path$(system_, ".", $task)), $task));
611
624
  const mainPath_ = (await ff_core_NodeSystem.NodeSystem_path$(system_, mainFile_, $task));
612
- const moduleKey_ = (await buildScript_$(mainPath_, resolvedDependencies_.mainPackagePair_, ff_compiler_JsEmitter.EmitBrowser(), resolvedDependencies_, $task));
625
+ const moduleKey_ = (await ff_compiler_Main.buildScript_$(system_, mainPath_, resolvedDependencies_.mainPackagePair_, ff_compiler_JsEmitter.EmitBrowser(), resolvedDependencies_, ff_compiler_ModuleCache.new_(0), false, $task));
613
626
  (await ff_compiler_Main.bundleForBrowser_$(system_, resolvedDependencies_.mainPackagePair_, moduleKey_, $task))
614
627
  return
615
628
  }
@@ -618,8 +631,8 @@ const mainFile_ = command_a.mainPath_;
618
631
  const resolvedDependencies_ = (await ff_compiler_Dependencies.process_$((await ff_core_NodeSystem.NodeSystem_httpClient$(system_, $task)), (await ff_compiler_DependencyLock.new_$((await ff_core_NodeSystem.NodeSystem_mainTask$(system_, $task)), $task)), (await ff_core_NodeSystem.NodeSystem_path$(system_, (mainFile_ + ".ff"), $task)), $task));
619
632
  (await ff_compiler_Main.prepareFireflyDirectory_$((await ff_core_NodeSystem.NodeSystem_path$(system_, ".", $task)), $task));
620
633
  const mainPath_ = (await ff_core_NodeSystem.NodeSystem_path$(system_, mainFile_, $task));
621
- const moduleKey_ = (await buildScript_$(mainPath_, resolvedDependencies_.mainPackagePair_, ff_compiler_JsEmitter.EmitBuild(), resolvedDependencies_, $task));
622
- (await buildScript_$(mainPath_, resolvedDependencies_.mainPackagePair_, ff_compiler_JsEmitter.EmitExecutable(), resolvedDependencies_, $task));
634
+ const moduleKey_ = (await ff_compiler_Main.buildScript_$(system_, mainPath_, resolvedDependencies_.mainPackagePair_, ff_compiler_JsEmitter.EmitBuild(), resolvedDependencies_, ff_compiler_ModuleCache.new_(0), false, $task));
635
+ (await ff_compiler_Main.buildScript_$(system_, mainPath_, resolvedDependencies_.mainPackagePair_, ff_compiler_JsEmitter.EmitExecutable(), resolvedDependencies_, ff_compiler_ModuleCache.new_(0), false, $task));
623
636
  (await ff_compiler_Main.bundleForPkg_$(system_, resolvedDependencies_.mainPackagePair_, (await ff_core_Path.Path_base$(mainPath_, $task)), $task));
624
637
  (await ff_compiler_Main.importAndRun_$(system_, fireflyPath_, "build", moduleKey_, [], $task))
625
638
  return
@@ -635,7 +648,7 @@ return
635
648
  if(command_a.BootstrapCommand) {
636
649
  const workingDirectory_ = (await ff_core_NodeSystem.NodeSystem_path$(system_, ".", $task));
637
650
  const fakeLocation_ = ff_compiler_Syntax.Location("<core>", 0, 0);
638
- (await ff_compiler_Builder.build_$(system_, ff_compiler_JsEmitter.EmitNode(), [ff_compiler_Syntax.ModuleKey(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))
651
+ (await ff_compiler_Builder.build_$(system_, ff_compiler_JsEmitter.EmitNode(), [ff_compiler_Syntax.ModuleKey(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)), "js", $task)), true, ff_compiler_ModuleCache.new_(0), $task))
639
652
  return
640
653
  }
641
654
  {
@@ -704,6 +717,37 @@ return
704
717
  }), ff_compiler_Syntax.ff_core_Any_HasAnyTag$ff_compiler_Syntax_CompileErrors)
705
718
  }
706
719
 
720
+ export async function buildScript_$(system_, mainPath_, mainPackagePair_, emitTarget_, resolvedDependencies_, moduleCache_ = ff_compiler_ModuleCache.new_(0), printMeasurements_ = false, $task) {
721
+ const fireflyPath_ = (await ff_compiler_Main.detectFireflyPath_$(system_, $task));
722
+ const fixedPackagePaths_ = (ff_core_Map.Map_contains(resolvedDependencies_.packagePaths_, ff_compiler_Syntax.PackagePair("ff", "core"), ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair)
723
+ ? resolvedDependencies_.packagePaths_
724
+ : ff_core_Map.Map_add(resolvedDependencies_.packagePaths_, ff_compiler_Syntax.PackagePair("ff", "core"), (await ff_core_Path.Path_slash$(fireflyPath_, "core", $task)), ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair));
725
+ const compilerModulePath_ = ((ff_core_Equal.notEquals_(emitTarget_, ff_compiler_JsEmitter.EmitBrowser(), ff_compiler_JsEmitter.ff_core_Equal_Equal$ff_compiler_JsEmitter_EmitTarget) && ff_core_Equal.notEquals_(emitTarget_, ff_compiler_JsEmitter.EmitExecutable(), ff_compiler_JsEmitter.ff_core_Equal_Equal$ff_compiler_JsEmitter_EmitTarget))
726
+ ? ff_core_Option.Some((await ff_core_Path.Path_slash$((await ff_core_Path.Path_slash$((await ff_core_Path.Path_slash$((await ff_core_Path.Path_slash$(fireflyPath_, "output", $task)), "js", $task)), "ff", $task)), "compiler/Builder.mjs", $task)))
727
+ : ff_core_Option.None());
728
+ const targetName_ = (((_1) => {
729
+ if(_1.EmitBuild) {
730
+ return "build"
731
+ }
732
+ if(_1.EmitNode) {
733
+ return "node"
734
+ }
735
+ if(_1.EmitBrowser) {
736
+ return "browser"
737
+ }
738
+ {
739
+ return "executable"
740
+ }
741
+ }))(emitTarget_);
742
+ const folders_ = (await ff_core_Path.Path_relativeListTo$(ff_core_Option.Option_grab((await ff_core_Path.Path_parent$(mainPath_, $task))), ff_core_Map.Map_grab(fixedPackagePaths_, mainPackagePair_, ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair), $task));
743
+ const name_ = ff_core_Option.Option_grab(ff_core_String.String_removeLast((await ff_core_Path.Path_base$(mainPath_, $task)), ".ff"));
744
+ const moduleKey_ = ff_compiler_Syntax.ModuleKey(mainPackagePair_, folders_, name_);
745
+ (await ff_compiler_Builder.build_$(system_, emitTarget_, [moduleKey_], (((_c) => {
746
+ return ff_compiler_Dependencies.ResolvedDependencies(_c.mainPackagePair_, _c.packages_, fixedPackagePaths_, _c.singleFilePackages_)
747
+ }))(resolvedDependencies_), compilerModulePath_, (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)), printMeasurements_, moduleCache_, $task));
748
+ return moduleKey_
749
+ }
750
+
707
751
  export async function parseCommandLine_$(arguments_, $task) {
708
752
  const arguments_a = arguments_;
709
753
  if(arguments_a.length >= 1) {
@@ -734,6 +778,25 @@ throw ff_core_Js.initializeError_(ff_compiler_Main.CommandLineError(("You must s
734
778
  }
735
779
  return
736
780
  }
781
+ if(arguments_a.length >= 1 && arguments_a[0] === "develop") {
782
+ const runArguments_ = arguments_a.slice(1);
783
+ {
784
+ const _1 = runArguments_;
785
+ if(_1.length >= 1) {
786
+ const mainFile_ = _1[0];
787
+ const mainArguments_ = _1.slice(1);
788
+ const _guard1 = ff_core_String.String_removeLast(mainFile_, ".ff");
789
+ if(_guard1.Some) {
790
+ const mainName_ = _guard1.value_;
791
+ return ff_compiler_Main.DevelopCommand(mainFile_, mainArguments_)
792
+ }
793
+ }
794
+ {
795
+ throw ff_core_Js.initializeError_(ff_compiler_Main.CommandLineError(("You must specify a Firefly file (.ff) as first argument to develop." + ff_compiler_Main.usageString_)), new Error(), ff_compiler_Main.ff_core_Any_HasAnyTag$ff_compiler_Main_CommandLineError, ff_compiler_Main.ff_core_Show_Show$ff_compiler_Main_CommandLineError)
796
+ }
797
+ }
798
+ return
799
+ }
737
800
  if(arguments_a.length >= 1 && arguments_a[0] === "browser") {
738
801
  const browserArguments_ = arguments_a.slice(1);
739
802
  {
@@ -841,13 +904,7 @@ ff_core_BuildSystem.internalBrowserCallEsBuild_(system_, [(await ff_core_Path.Pa
841
904
  }
842
905
 
843
906
  export async function importAndRun_$(system_, fireflyPath_, target_, moduleKey_, arguments_, $task) {
844
- const process_ = (await import("process"));
845
- const cwd_ = process_.cwd();
846
- const workingDirectory_ = ((cwd_.indexOf(":") === 1)
847
- ? ("file:///" + cwd_)
848
- : cwd_);
849
- const packagePath_ = ff_compiler_Syntax.PackagePair_groupName(moduleKey_.packagePair_, "/");
850
- const runFile_ = (((((((workingDirectory_ + "/.firefly/output/") + target_) + "/") + packagePath_) + "/") + ff_compiler_Syntax.ModuleKey_importName(moduleKey_)) + ".run.mjs");
907
+ const runFile_ = (await ff_compiler_Main.locateRunFile_$(system_, target_, moduleKey_, $task));
851
908
  const runFilePath_ = (ff_core_String.String_contains(runFile_, "://")
852
909
  ? (await ff_core_NodeSystem.NodeSystem_pathFromUrl$(system_, runFile_, $task))
853
910
  : (await ff_core_NodeSystem.NodeSystem_path$(system_, runFile_, $task)));
@@ -865,6 +922,16 @@ return false
865
922
  }
866
923
  }
867
924
 
925
+ export async function locateRunFile_$(system_, target_, moduleKey_, $task) {
926
+ const process_ = (await import("process"));
927
+ const cwd_ = process_.cwd();
928
+ const workingDirectory_ = ((cwd_.indexOf(":") === 1)
929
+ ? ("file:///" + cwd_)
930
+ : cwd_);
931
+ const packagePath_ = ff_compiler_Syntax.PackagePair_groupName(moduleKey_.packagePair_, "/");
932
+ return (((((((workingDirectory_ + "/.firefly/output/") + target_) + "/") + packagePath_) + "/") + ff_compiler_Syntax.ModuleKey_importName(moduleKey_)) + ".run.mjs")
933
+ }
934
+
868
935
  export async function prepareFireflyDirectory_$(path_, $task) {
869
936
  if((!(await ff_core_Path.Path_exists$((await ff_core_Path.Path_slash$((await ff_core_Path.Path_slash$(path_, ".firefly", $task)), "output", $task)), false, false, false, $task)))) {
870
937
  if((!(await ff_core_Path.Path_exists$((await ff_core_Path.Path_slash$(path_, ".firefly", $task)), false, false, false, $task)))) {
@@ -996,6 +1063,10 @@ if(value_a.RunCommand) {
996
1063
  const z_ = value_a;
997
1064
  return ((((("RunCommand" + "(") + ff_core_Show.ff_core_Show_Show$ff_core_String_String.show_(z_.mainPath_)) + ", ") + ff_core_Show.ff_core_Show_Show$ff_core_List_List(ff_core_Show.ff_core_Show_Show$ff_core_String_String).show_(z_.argument_)) + ")")
998
1065
  }
1066
+ if(value_a.DevelopCommand) {
1067
+ const z_ = value_a;
1068
+ return ((((("DevelopCommand" + "(") + ff_core_Show.ff_core_Show_Show$ff_core_String_String.show_(z_.mainPath_)) + ", ") + ff_core_Show.ff_core_Show_Show$ff_core_List_List(ff_core_Show.ff_core_Show_Show$ff_core_String_String).show_(z_.argument_)) + ")")
1069
+ }
999
1070
  if(value_a.BrowserCommand) {
1000
1071
  const z_ = value_a;
1001
1072
  return ((("BrowserCommand" + "(") + ff_core_Show.ff_core_Show_Show$ff_core_String_String.show_(z_.mainPath_)) + ")")
@@ -1023,6 +1094,10 @@ if(value_a.RunCommand) {
1023
1094
  const z_ = value_a;
1024
1095
  return ((((("RunCommand" + "(") + ff_core_Show.ff_core_Show_Show$ff_core_String_String.show_(z_.mainPath_)) + ", ") + ff_core_Show.ff_core_Show_Show$ff_core_List_List(ff_core_Show.ff_core_Show_Show$ff_core_String_String).show_(z_.argument_)) + ")")
1025
1096
  }
1097
+ if(value_a.DevelopCommand) {
1098
+ const z_ = value_a;
1099
+ return ((((("DevelopCommand" + "(") + ff_core_Show.ff_core_Show_Show$ff_core_String_String.show_(z_.mainPath_)) + ", ") + ff_core_Show.ff_core_Show_Show$ff_core_List_List(ff_core_Show.ff_core_Show_Show$ff_core_String_String).show_(z_.argument_)) + ")")
1100
+ }
1026
1101
  if(value_a.BrowserCommand) {
1027
1102
  const z_ = value_a;
1028
1103
  return ((("BrowserCommand" + "(") + ff_core_Show.ff_core_Show_Show$ff_core_String_String.show_(z_.mainPath_)) + ")")
@@ -1071,6 +1146,11 @@ const x_ = x_a;
1071
1146
  const y_ = y_a;
1072
1147
  return ((x_.mainPath_ === y_.mainPath_) && ff_core_List.ff_core_Equal_Equal$ff_core_List_List(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String).equals_(x_.argument_, y_.argument_))
1073
1148
  }
1149
+ if(x_a.DevelopCommand && y_a.DevelopCommand) {
1150
+ const x_ = x_a;
1151
+ const y_ = y_a;
1152
+ return ((x_.mainPath_ === y_.mainPath_) && ff_core_List.ff_core_Equal_Equal$ff_core_List_List(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String).equals_(x_.argument_, y_.argument_))
1153
+ }
1074
1154
  if(x_a.BrowserCommand && y_a.BrowserCommand) {
1075
1155
  const x_ = x_a;
1076
1156
  const y_ = y_a;
@@ -1106,6 +1186,11 @@ const x_ = x_a;
1106
1186
  const y_ = y_a;
1107
1187
  return ((x_.mainPath_ === y_.mainPath_) && ff_core_List.ff_core_Equal_Equal$ff_core_List_List(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String).equals_(x_.argument_, y_.argument_))
1108
1188
  }
1189
+ if(x_a.DevelopCommand && y_a.DevelopCommand) {
1190
+ const x_ = x_a;
1191
+ const y_ = y_a;
1192
+ return ((x_.mainPath_ === y_.mainPath_) && ff_core_List.ff_core_Equal_Equal$ff_core_List_List(ff_core_Equal.ff_core_Equal_Equal$ff_core_String_String).equals_(x_.argument_, y_.argument_))
1193
+ }
1109
1194
  if(x_a.BrowserCommand && y_a.BrowserCommand) {
1110
1195
  const x_ = x_a;
1111
1196
  const y_ = y_a;
@@ -1178,6 +1263,22 @@ return ff_core_Ordering.OrderingSame()
1178
1263
  }
1179
1264
  return
1180
1265
  }
1266
+ if(x_a.DevelopCommand && y_a.DevelopCommand) {
1267
+ const x_ = x_a;
1268
+ const y_ = y_a;
1269
+ const mainPathOrdering_ = ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String.compare_(x_.mainPath_, y_.mainPath_);
1270
+ if((mainPathOrdering_ !== ff_core_Ordering.OrderingSame())) {
1271
+ return mainPathOrdering_
1272
+ } else {
1273
+ const argumentOrdering_ = ff_core_Ordering.ff_core_Ordering_Order$ff_core_List_List(ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String).compare_(x_.argument_, y_.argument_);
1274
+ if((argumentOrdering_ !== ff_core_Ordering.OrderingSame())) {
1275
+ return argumentOrdering_
1276
+ } else {
1277
+ return ff_core_Ordering.OrderingSame()
1278
+ }
1279
+ }
1280
+ return
1281
+ }
1181
1282
  if(x_a.BrowserCommand && y_a.BrowserCommand) {
1182
1283
  const x_ = x_a;
1183
1284
  const y_ = y_a;
@@ -1236,18 +1337,21 @@ return 0
1236
1337
  if(z_a.RunCommand) {
1237
1338
  return 1
1238
1339
  }
1239
- if(z_a.BrowserCommand) {
1340
+ if(z_a.DevelopCommand) {
1240
1341
  return 2
1241
1342
  }
1242
- if(z_a.BuildCommand) {
1343
+ if(z_a.BrowserCommand) {
1243
1344
  return 3
1244
1345
  }
1245
- if(z_a.CheckCommand) {
1346
+ if(z_a.BuildCommand) {
1246
1347
  return 4
1247
1348
  }
1248
- {
1349
+ if(z_a.CheckCommand) {
1249
1350
  return 5
1250
1351
  }
1352
+ {
1353
+ return 6
1354
+ }
1251
1355
  }
1252
1356
  return ff_core_Ordering.ff_core_Ordering_Order$ff_core_Int_Int.compare_(number_(x_), number_(y_))
1253
1357
  }
@@ -1274,6 +1378,22 @@ return ff_core_Ordering.OrderingSame()
1274
1378
  }
1275
1379
  return
1276
1380
  }
1381
+ if(x_a.DevelopCommand && y_a.DevelopCommand) {
1382
+ const x_ = x_a;
1383
+ const y_ = y_a;
1384
+ const mainPathOrdering_ = ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String.compare_(x_.mainPath_, y_.mainPath_);
1385
+ if((mainPathOrdering_ !== ff_core_Ordering.OrderingSame())) {
1386
+ return mainPathOrdering_
1387
+ } else {
1388
+ const argumentOrdering_ = ff_core_Ordering.ff_core_Ordering_Order$ff_core_List_List(ff_core_Ordering.ff_core_Ordering_Order$ff_core_String_String).compare_(x_.argument_, y_.argument_);
1389
+ if((argumentOrdering_ !== ff_core_Ordering.OrderingSame())) {
1390
+ return argumentOrdering_
1391
+ } else {
1392
+ return ff_core_Ordering.OrderingSame()
1393
+ }
1394
+ }
1395
+ return
1396
+ }
1277
1397
  if(x_a.BrowserCommand && y_a.BrowserCommand) {
1278
1398
  const x_ = x_a;
1279
1399
  const y_ = y_a;
@@ -1332,18 +1452,21 @@ return 0
1332
1452
  if(z_a.RunCommand) {
1333
1453
  return 1
1334
1454
  }
1335
- if(z_a.BrowserCommand) {
1455
+ if(z_a.DevelopCommand) {
1336
1456
  return 2
1337
1457
  }
1338
- if(z_a.BuildCommand) {
1458
+ if(z_a.BrowserCommand) {
1339
1459
  return 3
1340
1460
  }
1341
- if(z_a.CheckCommand) {
1461
+ if(z_a.BuildCommand) {
1342
1462
  return 4
1343
1463
  }
1344
- {
1464
+ if(z_a.CheckCommand) {
1345
1465
  return 5
1346
1466
  }
1467
+ {
1468
+ return 6
1469
+ }
1347
1470
  }
1348
1471
  return ff_core_Ordering.ff_core_Ordering_Order$ff_core_Int_Int.compare_(number_(x_), number_(y_))
1349
1472
  }
@@ -1407,12 +1530,22 @@ ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.ser
1407
1530
  ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_List_List(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String).serializeUsing_(serialization_, v_.argument_)
1408
1531
  return
1409
1532
  }
1410
- if(value_a.BrowserCommand) {
1533
+ if(value_a.DevelopCommand) {
1411
1534
  const v_ = value_a;
1412
1535
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 31), 0);
1413
1536
  ff_core_Serializable.Serialization_autoResize(serialization_, 1);
1414
1537
  ff_core_Buffer.Buffer_setUint8(serialization_.buffer_, serialization_.offset_, 2);
1415
1538
  serialization_.offset_ += 1;
1539
+ ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.serializeUsing_(serialization_, v_.mainPath_);
1540
+ ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_List_List(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String).serializeUsing_(serialization_, v_.argument_)
1541
+ return
1542
+ }
1543
+ if(value_a.BrowserCommand) {
1544
+ const v_ = value_a;
1545
+ serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 31), 0);
1546
+ ff_core_Serializable.Serialization_autoResize(serialization_, 1);
1547
+ ff_core_Buffer.Buffer_setUint8(serialization_.buffer_, serialization_.offset_, 3);
1548
+ serialization_.offset_ += 1;
1416
1549
  ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.serializeUsing_(serialization_, v_.mainPath_)
1417
1550
  return
1418
1551
  }
@@ -1420,7 +1553,7 @@ if(value_a.BuildCommand) {
1420
1553
  const v_ = value_a;
1421
1554
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 29), 0);
1422
1555
  ff_core_Serializable.Serialization_autoResize(serialization_, 1);
1423
- ff_core_Buffer.Buffer_setUint8(serialization_.buffer_, serialization_.offset_, 3);
1556
+ ff_core_Buffer.Buffer_setUint8(serialization_.buffer_, serialization_.offset_, 4);
1424
1557
  serialization_.offset_ += 1;
1425
1558
  ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.serializeUsing_(serialization_, v_.mainPath_)
1426
1559
  return
@@ -1429,7 +1562,7 @@ if(value_a.CheckCommand) {
1429
1562
  const v_ = value_a;
1430
1563
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 29), 0);
1431
1564
  ff_core_Serializable.Serialization_autoResize(serialization_, 1);
1432
- ff_core_Buffer.Buffer_setUint8(serialization_.buffer_, serialization_.offset_, 4);
1565
+ ff_core_Buffer.Buffer_setUint8(serialization_.buffer_, serialization_.offset_, 5);
1433
1566
  serialization_.offset_ += 1;
1434
1567
  ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.serializeUsing_(serialization_, v_.filePath_)
1435
1568
  return
@@ -1438,7 +1571,7 @@ return
1438
1571
  const v_ = value_a;
1439
1572
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 31), 0);
1440
1573
  ff_core_Serializable.Serialization_autoResize(serialization_, 1);
1441
- ff_core_Buffer.Buffer_setUint8(serialization_.buffer_, serialization_.offset_, 5);
1574
+ ff_core_Buffer.Buffer_setUint8(serialization_.buffer_, serialization_.offset_, 6);
1442
1575
  serialization_.offset_ += 1;
1443
1576
  ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.serializeUsing_(serialization_, v_.outPath_);
1444
1577
  ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_List_List(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String).serializeUsing_(serialization_, v_.filePaths_)
@@ -1460,17 +1593,21 @@ return ff_compiler_Main.RunCommand(ff_core_Serializable.ff_core_Serializable_Ser
1460
1593
  }
1461
1594
  if(_1 === 2) {
1462
1595
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 31), 0);
1463
- return ff_compiler_Main.BrowserCommand(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.deserializeUsing_(serialization_))
1596
+ return ff_compiler_Main.DevelopCommand(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.deserializeUsing_(serialization_), ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_List_List(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String).deserializeUsing_(serialization_))
1464
1597
  }
1465
1598
  if(_1 === 3) {
1599
+ serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 31), 0);
1600
+ return ff_compiler_Main.BrowserCommand(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.deserializeUsing_(serialization_))
1601
+ }
1602
+ if(_1 === 4) {
1466
1603
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 29), 0);
1467
1604
  return ff_compiler_Main.BuildCommand(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.deserializeUsing_(serialization_))
1468
1605
  }
1469
- if(_1 === 4) {
1606
+ if(_1 === 5) {
1470
1607
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 29), 0);
1471
1608
  return ff_compiler_Main.CheckCommand(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.deserializeUsing_(serialization_))
1472
1609
  }
1473
- if(_1 === 5) {
1610
+ if(_1 === 6) {
1474
1611
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 31), 0);
1475
1612
  return ff_compiler_Main.SymbolsCommand(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.deserializeUsing_(serialization_), ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_List_List(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String).deserializeUsing_(serialization_))
1476
1613
  }
@@ -1500,12 +1637,22 @@ ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.ser
1500
1637
  ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_List_List(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String).serializeUsing_(serialization_, v_.argument_)
1501
1638
  return
1502
1639
  }
1503
- if(value_a.BrowserCommand) {
1640
+ if(value_a.DevelopCommand) {
1504
1641
  const v_ = value_a;
1505
1642
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 31), 0);
1506
1643
  ff_core_Serializable.Serialization_autoResize(serialization_, 1);
1507
1644
  ff_core_Buffer.Buffer_setUint8(serialization_.buffer_, serialization_.offset_, 2);
1508
1645
  serialization_.offset_ += 1;
1646
+ ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.serializeUsing_(serialization_, v_.mainPath_);
1647
+ ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_List_List(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String).serializeUsing_(serialization_, v_.argument_)
1648
+ return
1649
+ }
1650
+ if(value_a.BrowserCommand) {
1651
+ const v_ = value_a;
1652
+ serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 31), 0);
1653
+ ff_core_Serializable.Serialization_autoResize(serialization_, 1);
1654
+ ff_core_Buffer.Buffer_setUint8(serialization_.buffer_, serialization_.offset_, 3);
1655
+ serialization_.offset_ += 1;
1509
1656
  ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.serializeUsing_(serialization_, v_.mainPath_)
1510
1657
  return
1511
1658
  }
@@ -1513,7 +1660,7 @@ if(value_a.BuildCommand) {
1513
1660
  const v_ = value_a;
1514
1661
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 29), 0);
1515
1662
  ff_core_Serializable.Serialization_autoResize(serialization_, 1);
1516
- ff_core_Buffer.Buffer_setUint8(serialization_.buffer_, serialization_.offset_, 3);
1663
+ ff_core_Buffer.Buffer_setUint8(serialization_.buffer_, serialization_.offset_, 4);
1517
1664
  serialization_.offset_ += 1;
1518
1665
  ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.serializeUsing_(serialization_, v_.mainPath_)
1519
1666
  return
@@ -1522,7 +1669,7 @@ if(value_a.CheckCommand) {
1522
1669
  const v_ = value_a;
1523
1670
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 29), 0);
1524
1671
  ff_core_Serializable.Serialization_autoResize(serialization_, 1);
1525
- ff_core_Buffer.Buffer_setUint8(serialization_.buffer_, serialization_.offset_, 4);
1672
+ ff_core_Buffer.Buffer_setUint8(serialization_.buffer_, serialization_.offset_, 5);
1526
1673
  serialization_.offset_ += 1;
1527
1674
  ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.serializeUsing_(serialization_, v_.filePath_)
1528
1675
  return
@@ -1531,7 +1678,7 @@ return
1531
1678
  const v_ = value_a;
1532
1679
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 31), 0);
1533
1680
  ff_core_Serializable.Serialization_autoResize(serialization_, 1);
1534
- ff_core_Buffer.Buffer_setUint8(serialization_.buffer_, serialization_.offset_, 5);
1681
+ ff_core_Buffer.Buffer_setUint8(serialization_.buffer_, serialization_.offset_, 6);
1535
1682
  serialization_.offset_ += 1;
1536
1683
  ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.serializeUsing_(serialization_, v_.outPath_);
1537
1684
  ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_List_List(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String).serializeUsing_(serialization_, v_.filePaths_)
@@ -1553,17 +1700,21 @@ return ff_compiler_Main.RunCommand(ff_core_Serializable.ff_core_Serializable_Ser
1553
1700
  }
1554
1701
  if(_1 === 2) {
1555
1702
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 31), 0);
1556
- return ff_compiler_Main.BrowserCommand(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.deserializeUsing_(serialization_))
1703
+ return ff_compiler_Main.DevelopCommand(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.deserializeUsing_(serialization_), ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_List_List(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String).deserializeUsing_(serialization_))
1557
1704
  }
1558
1705
  if(_1 === 3) {
1706
+ serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 31), 0);
1707
+ return ff_compiler_Main.BrowserCommand(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.deserializeUsing_(serialization_))
1708
+ }
1709
+ if(_1 === 4) {
1559
1710
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 29), 0);
1560
1711
  return ff_compiler_Main.BuildCommand(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.deserializeUsing_(serialization_))
1561
1712
  }
1562
- if(_1 === 4) {
1713
+ if(_1 === 5) {
1563
1714
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 29), 0);
1564
1715
  return ff_compiler_Main.CheckCommand(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.deserializeUsing_(serialization_))
1565
1716
  }
1566
- if(_1 === 5) {
1717
+ if(_1 === 6) {
1567
1718
  serialization_.checksum_ = ff_core_Int.Int_bitOr(((31 * serialization_.checksum_) + 31), 0);
1568
1719
  return ff_compiler_Main.SymbolsCommand(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String.deserializeUsing_(serialization_), ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_List_List(ff_core_Serializable.ff_core_Serializable_Serializable$ff_core_String_String).deserializeUsing_(serialization_))
1569
1720
  }