firefly-compiler 0.5.76 → 0.5.78

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 (157) hide show
  1. package/bin/firefly.mjs +1 -1
  2. package/compiler/Builder.ff +3 -1
  3. package/compiler/Compiler.ff +7 -3
  4. package/compiler/JsEmitter.ff +1564 -623
  5. package/compiler/Main.ff +1 -1
  6. package/compiler/SourceMap.ff +149 -0
  7. package/core/Buffer.ff +2 -1
  8. package/core/BuildSystem.ff +3 -1
  9. package/core/Js.ff +6 -0
  10. package/firefly.sh +1 -1
  11. package/fireflysite/Main.ff +2 -1
  12. package/output/js/ff/compiler/Builder.mjs +8 -44
  13. package/output/js/ff/compiler/Builder.mjs.map +181 -0
  14. package/output/js/ff/compiler/Compiler.mjs +23 -16
  15. package/output/js/ff/compiler/Compiler.mjs.map +155 -0
  16. package/output/js/ff/compiler/Dependencies.mjs +12 -14
  17. package/output/js/ff/compiler/Dependencies.mjs.map +128 -0
  18. package/output/js/ff/compiler/DependencyLock.mjs +1 -4
  19. package/output/js/ff/compiler/DependencyLock.mjs.map +22 -0
  20. package/output/js/ff/compiler/Deriver.mjs +10 -11
  21. package/output/js/ff/compiler/Deriver.mjs.map +204 -0
  22. package/output/js/ff/compiler/Dictionaries.mjs +12 -13
  23. package/output/js/ff/compiler/Dictionaries.mjs.map +183 -0
  24. package/output/js/ff/compiler/Environment.mjs +24 -27
  25. package/output/js/ff/compiler/Environment.mjs.map +141 -0
  26. package/output/js/ff/compiler/Inference.mjs +83 -92
  27. package/output/js/ff/compiler/Inference.mjs.map +355 -0
  28. package/output/js/ff/compiler/JsEmitter.mjs +3689 -1687
  29. package/output/js/ff/compiler/JsEmitter.mjs.map +423 -0
  30. package/output/js/ff/compiler/JsImporter.mjs +9 -12
  31. package/output/js/ff/compiler/JsImporter.mjs.map +52 -0
  32. package/output/js/ff/compiler/LspHook.mjs +17 -18
  33. package/output/js/ff/compiler/LspHook.mjs.map +140 -0
  34. package/output/js/ff/compiler/Main.mjs +57 -67
  35. package/output/js/ff/compiler/Main.mjs.map +226 -0
  36. package/output/js/ff/compiler/ModuleCache.mjs +1 -4
  37. package/output/js/ff/compiler/ModuleCache.mjs.map +82 -0
  38. package/output/js/ff/compiler/Parser.mjs +54 -57
  39. package/output/js/ff/compiler/Parser.mjs.map +406 -0
  40. package/output/js/ff/compiler/Patterns.mjs +19 -22
  41. package/output/js/ff/compiler/Patterns.mjs.map +119 -0
  42. package/output/js/ff/compiler/Resolver.mjs +40 -39
  43. package/output/js/ff/compiler/Resolver.mjs.map +294 -0
  44. package/output/js/ff/compiler/SourceMap.mjs +402 -0
  45. package/output/js/ff/compiler/SourceMap.mjs.map +83 -0
  46. package/output/js/ff/compiler/Substitution.mjs +1 -4
  47. package/output/js/ff/compiler/Substitution.mjs.map +138 -0
  48. package/output/js/ff/compiler/Syntax.mjs +250 -249
  49. package/output/js/ff/compiler/Syntax.mjs.map +351 -0
  50. package/output/js/ff/compiler/Token.mjs +17 -22
  51. package/output/js/ff/compiler/Token.mjs.map +113 -0
  52. package/output/js/ff/compiler/Tokenizer.mjs +5 -12
  53. package/output/js/ff/compiler/Tokenizer.mjs.map +101 -0
  54. package/output/js/ff/compiler/Unification.mjs +32 -33
  55. package/output/js/ff/compiler/Unification.mjs.map +135 -0
  56. package/output/js/ff/compiler/Wildcards.mjs +1 -4
  57. package/output/js/ff/compiler/Wildcards.mjs.map +69 -0
  58. package/output/js/ff/compiler/Workspace.mjs +17 -16
  59. package/output/js/ff/compiler/Workspace.mjs.map +96 -0
  60. package/output/js/ff/core/Any.mjs +1 -4
  61. package/output/js/ff/core/Any.mjs.map +21 -0
  62. package/output/js/ff/core/Array.mjs +14 -15
  63. package/output/js/ff/core/Array.mjs.map +90 -0
  64. package/output/js/ff/core/AssetSystem.mjs +1 -4
  65. package/output/js/ff/core/AssetSystem.mjs.map +56 -0
  66. package/output/js/ff/core/Atomic.mjs +1 -4
  67. package/output/js/ff/core/Atomic.mjs.map +24 -0
  68. package/output/js/ff/core/Bool.mjs +4 -9
  69. package/output/js/ff/core/Bool.mjs.map +19 -0
  70. package/output/js/ff/core/BrowserSystem.mjs +1 -8
  71. package/output/js/ff/core/BrowserSystem.mjs.map +47 -0
  72. package/output/js/ff/core/Buffer.mjs +18 -17
  73. package/output/js/ff/core/Buffer.mjs.map +123 -0
  74. package/output/js/ff/core/BuildSystem.mjs +7 -10
  75. package/output/js/ff/core/BuildSystem.mjs.map +87 -0
  76. package/output/js/ff/core/Channel.mjs +1 -4
  77. package/output/js/ff/core/Channel.mjs.map +67 -0
  78. package/output/js/ff/core/Char.mjs +1 -8
  79. package/output/js/ff/core/Char.mjs.map +21 -0
  80. package/output/js/ff/core/Core.mjs +5 -8
  81. package/output/js/ff/core/Core.mjs.map +40 -0
  82. package/output/js/ff/core/Crypto.mjs +1 -4
  83. package/output/js/ff/core/Crypto.mjs.map +65 -0
  84. package/output/js/ff/core/Date.mjs +8 -7
  85. package/output/js/ff/core/Date.mjs.map +168 -0
  86. package/output/js/ff/core/Duration.mjs +4 -9
  87. package/output/js/ff/core/Duration.mjs.map +18 -0
  88. package/output/js/ff/core/Equal.mjs +9 -14
  89. package/output/js/ff/core/Equal.mjs.map +22 -0
  90. package/output/js/ff/core/Error.mjs +1 -8
  91. package/output/js/ff/core/Error.mjs.map +21 -0
  92. package/output/js/ff/core/FileHandle.mjs +1 -8
  93. package/output/js/ff/core/FileHandle.mjs.map +32 -0
  94. package/output/js/ff/core/Float.mjs +4 -5
  95. package/output/js/ff/core/Float.mjs.map +93 -0
  96. package/output/js/ff/core/HttpClient.mjs +1 -4
  97. package/output/js/ff/core/HttpClient.mjs.map +62 -0
  98. package/output/js/ff/core/Int.mjs +4 -9
  99. package/output/js/ff/core/Int.mjs.map +49 -0
  100. package/output/js/ff/core/IntMap.mjs +3 -6
  101. package/output/js/ff/core/IntMap.mjs.map +52 -0
  102. package/output/js/ff/core/Js.mjs +13 -8
  103. package/output/js/ff/core/Js.mjs.map +121 -0
  104. package/output/js/ff/core/JsSystem.mjs +1 -8
  105. package/output/js/ff/core/JsSystem.mjs.map +59 -0
  106. package/output/js/ff/core/JsValue.mjs +23 -42
  107. package/output/js/ff/core/JsValue.mjs.map +155 -0
  108. package/output/js/ff/core/Json.mjs +25 -26
  109. package/output/js/ff/core/Json.mjs.map +134 -0
  110. package/output/js/ff/core/List.mjs +11 -12
  111. package/output/js/ff/core/List.mjs.map +123 -0
  112. package/output/js/ff/core/Lock.mjs +7 -14
  113. package/output/js/ff/core/Lock.mjs.map +52 -0
  114. package/output/js/ff/core/Log.mjs +1 -8
  115. package/output/js/ff/core/Log.mjs.map +26 -0
  116. package/output/js/ff/core/Map.mjs +6 -7
  117. package/output/js/ff/core/Map.mjs.map +67 -0
  118. package/output/js/ff/core/NodeSystem.mjs +11 -14
  119. package/output/js/ff/core/NodeSystem.mjs.map +137 -0
  120. package/output/js/ff/core/Nothing.mjs +1 -10
  121. package/output/js/ff/core/Nothing.mjs.map +11 -0
  122. package/output/js/ff/core/Option.mjs +10 -15
  123. package/output/js/ff/core/Option.mjs.map +67 -0
  124. package/output/js/ff/core/Ordering.mjs +12 -13
  125. package/output/js/ff/core/Ordering.mjs.map +48 -0
  126. package/output/js/ff/core/Pair.mjs +8 -13
  127. package/output/js/ff/core/Pair.mjs.map +48 -0
  128. package/output/js/ff/core/Path.mjs +5 -14
  129. package/output/js/ff/core/Path.mjs.map +178 -0
  130. package/output/js/ff/core/Queue.mjs +1 -4
  131. package/output/js/ff/core/Queue.mjs.map +45 -0
  132. package/output/js/ff/core/Random.mjs +1 -4
  133. package/output/js/ff/core/Random.mjs.map +79 -0
  134. package/output/js/ff/core/RbMap.mjs +1 -16
  135. package/output/js/ff/core/RbMap.mjs.map +92 -0
  136. package/output/js/ff/core/Serializable.mjs +17 -22
  137. package/output/js/ff/core/Serializable.mjs.map +73 -0
  138. package/output/js/ff/core/Set.mjs +6 -7
  139. package/output/js/ff/core/Set.mjs.map +45 -0
  140. package/output/js/ff/core/Show.mjs +11 -20
  141. package/output/js/ff/core/Show.mjs.map +29 -0
  142. package/output/js/ff/core/SourceLocation.mjs +7 -8
  143. package/output/js/ff/core/SourceLocation.mjs.map +41 -0
  144. package/output/js/ff/core/Stream.mjs +1 -4
  145. package/output/js/ff/core/Stream.mjs.map +92 -0
  146. package/output/js/ff/core/String.mjs +14 -19
  147. package/output/js/ff/core/String.mjs.map +106 -0
  148. package/output/js/ff/core/StringMap.mjs +3 -6
  149. package/output/js/ff/core/StringMap.mjs.map +52 -0
  150. package/output/js/ff/core/Task.mjs +1 -8
  151. package/output/js/ff/core/Task.mjs.map +79 -0
  152. package/output/js/ff/core/Try.mjs +3 -6
  153. package/output/js/ff/core/Try.mjs.map +41 -0
  154. package/output/js/ff/core/Unit.mjs +5 -12
  155. package/output/js/ff/core/Unit.mjs.map +18 -0
  156. package/package.json +1 -1
  157. package/vscode/package.json +1 -1
package/compiler/Main.ff CHANGED
@@ -188,7 +188,7 @@ These are the commands:
188
188
  browser <main-file> Compile the main file for the browser
189
189
  build <main-file> Build the main file
190
190
  check <firefly-file> Check the firefly source file for errors
191
- symbols <firefly-file> Print a .tsv with the symbols of a firefly source file
191
+ symbols <out-file> <firefly-file> Print a .tsv with the symbols of a firefly source file
192
192
  bootstrap Bootstrap the compiler
193
193
  """
194
194
 
@@ -0,0 +1,149 @@
1
+ makeOutputAndSourceMap(
2
+ fireflyFile: String
3
+ fireflySource: Option[String]
4
+ writtenStrings: Array[Array[String]]
5
+ writtenSegments: Array[Array[List[Int]]]
6
+ writtenAnchors: IntMap[List[String]]
7
+ writtenNames: StringMap[Int]
8
+ ): Pair[String, Json] {
9
+ let lines = Array.new()
10
+ let output = Array.new()
11
+ mutable index = 0
12
+ mutable lastSource = 0
13
+ mutable lastLine = 0
14
+ mutable lastColumn = 0
15
+ mutable lastName = 0
16
+ writtenStrings.drain().zip(writtenSegments.drain()).each {| Pair(strings, segments) =>
17
+ writtenAnchors.get(index).each {anchorLines =>
18
+ anchorLines.each {l =>
19
+ lines.push([])
20
+ output.push(l)
21
+ output.push("\n")
22
+ }
23
+ }
24
+ mutable lastOutputColumn = 0
25
+ let line = Array.new()
26
+ segments.each {segment =>
27
+ let relative = Array.new()
28
+ let newOutputColumn = segment.grab(0)
29
+ relative.push(newOutputColumn - lastOutputColumn)
30
+ lastOutputColumn = newOutputColumn
31
+ if(segment.size() > 1) {
32
+ let newSource = segment.grab(1)
33
+ relative.push(newSource - lastSource)
34
+ lastSource = newSource
35
+ let newLine = segment.grab(2)
36
+ relative.push(newLine - lastLine)
37
+ lastLine = newLine
38
+ let newColumn = segment.grab(3)
39
+ relative.push(newColumn - lastColumn)
40
+ lastColumn = newColumn
41
+ if(segment.size() == 5) {
42
+ let newName = segment.grab(4)
43
+ relative.push(newName - lastName)
44
+ lastName = newName
45
+ }
46
+ }
47
+ line.push(relative.drain())
48
+ }
49
+ lines.push(line.drain())
50
+ strings.each {output.push(_)}
51
+ output.push("\n")
52
+ index += 1
53
+ }
54
+ let sourceMap = sourceMap([fireflyFile], [fireflySource], writtenNames.keys(), lines.drain())
55
+ Pair(output.join(), sourceMap)
56
+ }
57
+
58
+ makeOutput(
59
+ writtenStrings: Array[Array[String]]
60
+ writtenAnchors: IntMap[List[String]]
61
+ ): String {
62
+ let output = Array.new()
63
+ writtenStrings.drain().pairs().each {| Pair(index, strings) =>
64
+ writtenAnchors.get(index).each {anchorLines =>
65
+ anchorLines.each {l =>
66
+ output.push(l)
67
+ }
68
+ }
69
+ output.push(strings.join())
70
+ }
71
+ output.join("\n")
72
+ }
73
+
74
+ sourceMap(
75
+ sources: List[String]
76
+ contents: List[Option[String]]
77
+ names: List[String]
78
+ lines: List[List[List[Int]]]
79
+ ): Json {
80
+ Json->(
81
+ version = 3
82
+ sources = sources
83
+ sourcesContent = contents.map {_.map {Json.string(_)}.else {Json.null()}}
84
+ names = names
85
+ mappings = toMappings(lines)
86
+ )
87
+ }
88
+
89
+ toMappings(lines: List[List[List[Int]]]): String {
90
+ let vlq = Array.new()
91
+ mutable firstLine = True
92
+ lines.each {line =>
93
+ if(firstLine) {
94
+ firstLine = False
95
+ } else {
96
+ vlq.push(semicolonIndex)
97
+ }
98
+ mutable firstSegment = True
99
+ line.each {segment =>
100
+ if(firstSegment) {
101
+ firstSegment = False
102
+ } else {
103
+ vlq.push(commaIndex)
104
+ }
105
+ segment.each {field =>
106
+ internalToVlq(vlq, field)
107
+ }
108
+ }
109
+ }
110
+ toBase64Vlq(vlq.drain())
111
+ }
112
+
113
+ toBase64Vlq(vlq: List[Int]): String {
114
+ let result = Buffer.new(vlq.size())
115
+
116
+ 0.until(vlq.size()).each {i =>
117
+ result.setUint8(i, base64Characters.grab(vlq.grab(i)).codeUnit)
118
+ }
119
+
120
+ result.toString()
121
+ }
122
+
123
+ internalToVlq(vlq: Array[Int], value: Int) {
124
+ mutable digit = 0
125
+ mutable v = value
126
+
127
+ if(v < 0) {
128
+ v = v.abs().bitLeft(1).bitOr(1)
129
+ } else {
130
+ v = v.bitLeft(1)
131
+ }
132
+
133
+ doWhile {
134
+ digit = v.bitAnd(vlqBaseMask)
135
+ v = v.bitRightUnsigned(vlqBaseShift)
136
+ if(v > 0) {
137
+ digit = digit.bitOr(vlqContinuationBit)
138
+ }
139
+ vlq.push(digit)
140
+ v > 0
141
+ }
142
+ }
143
+
144
+ vlqBaseShift = 5
145
+ vlqBaseMask = 1.bitLeft(vlqBaseShift) - 1
146
+ vlqContinuationBit = 1.bitLeft(vlqBaseShift)
147
+ base64Characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/;,"
148
+ semicolonIndex = base64Characters.indexOf(";").grab()
149
+ commaIndex = base64Characters.indexOf(",").grab()
package/core/Buffer.ff CHANGED
@@ -140,8 +140,9 @@ extend self: Buffer {
140
140
  Js->TextDecoder->ffSingleton = Js->TextDecoder->()
141
141
  }
142
142
  Js->TextDecoder->ffSingleton->decode(self!)?
143
+ } else {
144
+ Js->TextDecoder->()->decode(self!)?
143
145
  }
144
- Js->TextDecoder->()->decode(self!)?
145
146
  }
146
147
 
147
148
  toByteList(): List[Int] {
@@ -16,7 +16,9 @@ extend self: BuildSystem {
16
16
  let runPaths = internalListPath(browserOutputPath).filter {_.base().endsWith(".run.mjs")}.toList()
17
17
  let outputPath = runPaths.grabFirst().parent().grab()
18
18
  internalBrowserCallEsBuild(self, runPaths.map {_.absolute()}, outputPath.absolute(), minify, sourceMaps)
19
- let bundlePaths = internalListPath(browserOutputPath).filter {_.base().endsWith(".bundle.js")}.toList()
19
+ let bundlePaths = internalListPath(browserOutputPath).filter {p =>
20
+ p.base().endsWith(".bundle.js") || p.base().endsWith(".bundle.js.map")
21
+ }.toList()
20
22
  AssetSystem(bundlePaths.map {p =>
21
23
  Pair("/" + p.relativeTo(browserOutputPath).replace("\\", "/"), {p.readStream()})
22
24
  }.toMap())
package/core/Js.ff CHANGED
@@ -156,6 +156,12 @@ throw[T](value: JsValue): T {
156
156
  panic("This call should have been eliminated by the compiler")
157
157
  }
158
158
 
159
+ initializeError[E: HasAnyTag: Show, T](error: JsValue, exception: E): JsValue {
160
+ error->message = Show.show(exception)!
161
+ error->ffException = Any.toAny(exception)!
162
+ error
163
+ }
164
+
159
165
  unaryOperator[T1: IsJsValue](operator: String, a1: T1): JsValue {
160
166
  panic("This call should have been eliminated by the compiler")
161
167
  }
package/firefly.sh CHANGED
@@ -2,4 +2,4 @@
2
2
  set -e
3
3
  firefly_link=`readlink -f "$0"`
4
4
  firefly=`dirname "$firefly_link"`
5
- node --harmony-temporal "$firefly/output/js/ff/compiler/Main.run.mjs" $@
5
+ node --enable-source-maps --harmony-temporal "$firefly/output/js/ff/compiler/Main.run.mjs" $@
@@ -53,7 +53,8 @@ nodeMain(system: NodeSystem): Unit {
53
53
 
54
54
  buildMain(system: BuildSystem) {
55
55
  mutable assets = AssetSystem.create()
56
- let browserAssets = system.bundleForBrowser(Router.modulesWithBrowserMain().map {_ + ".ff"})
56
+ let browserAssets = system.bundleForBrowser(Router.modulesWithBrowserMain().map {_ + ".ff"}, sourceMaps = True)
57
+ //let browserAssets = system.compileForBrowser(Router.modulesWithBrowserMain().map {_ + ".ff"})
57
58
  assets = assets.addAssets("/js/", browserAssets)
58
59
  assets = assets.addAssets("/assets/", system.packageAssets().assets("/assets/"))
59
60
  system.setAssets(assets)
@@ -1,5 +1,3 @@
1
- import * as import$0 from 'pkg';
2
-
3
1
  import * as ff_compiler_Builder from "../../ff/compiler/Builder.mjs"
4
2
 
5
3
  import * as ff_compiler_Compiler from "../../ff/compiler/Compiler.mjs"
@@ -116,6 +114,7 @@ import * as ff_core_Task from "../../ff/core/Task.mjs"
116
114
 
117
115
  import * as ff_core_Try from "../../ff/core/Try.mjs"
118
116
 
117
+ import * as import$0 from 'pkg';
119
118
  import * as ff_core_Unit from "../../ff/core/Unit.mjs"
120
119
 
121
120
  // type PackageFiles
@@ -123,8 +122,6 @@ export function PackageFiles(root_, packageFile_, files_) {
123
122
  return {root_, packageFile_, files_};
124
123
  }
125
124
 
126
-
127
-
128
125
  export function build_(system_, emitTarget_, mainModules_, resolvedDependencies_, compilerModulePath_, tempPath_, jsOutputPath_, printMeasurements_, moduleCache_) {
129
126
  if(ff_core_Path.Path_exists(tempPath_, false, false, false)) {
130
127
  ff_core_Path.Path_delete(tempPath_, 0, 100)
@@ -147,9 +144,11 @@ const if_o = ff_core_Map.Map_get(resolvedDependencies_.packages_, packagePair_,
147
144
  if(if_o.Some) {
148
145
  const packageInfo_ = if_o.value_;
149
146
  ff_compiler_Builder.processNodeModules_(system_, jsPathFile_, packagePath_, packageInfo_);
147
+ if(ff_core_Equal.notEquals_(emitTarget_, ff_compiler_JsEmitter.EmitBrowser(), ff_compiler_JsEmitter.ff_core_Equal_Equal$ff_compiler_JsEmitter_EmitTarget)) {
150
148
  ff_compiler_Builder.processIncludes_(jsPathFile_, packagePath_, packageInfo_)
151
149
  }
152
150
  }
151
+ }
153
152
  }), ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair);
154
153
  return true
155
154
  }));
@@ -378,25 +377,7 @@ ff_core_Path.Path_writeStream(p_, makeStream_(), false)
378
377
  return
379
378
  }
380
379
  }));
381
- const json_ = `{
382
- "name": "main",
383
- "bin": {
384
- "firefly-main": "Main.bundle.js"
385
- },
386
- "devDependencies": {
387
- "pkg": "^5.8.0"
388
- },
389
- "pkg": {
390
- "scripts": "Main.bundle.js",
391
- "outputPath": "bin",
392
- "assets": ["../assets/**/*"],
393
- "targets": [
394
- "node18-linux-x64",
395
- "node18-macos-x64",
396
- "node18-win-x64"
397
- ]
398
- }
399
- }`;
380
+ const json_ = "{\r\n \"name\": \"main\",\r\n \"bin\": {\r\n \"firefly-main\": \"Main.bundle.js\"\r\n },\r\n \"devDependencies\": {\r\n \"pkg\": \"^5.8.0\"\r\n },\r\n \"pkg\": {\r\n \"scripts\": \"Main.bundle.js\",\r\n \"outputPath\": \"bin\",\r\n \"assets\": [\"../assets/**/*\"],\r\n \"targets\": [\r\n \"node18-linux-x64\",\r\n \"node18-macos-x64\",\r\n \"node18-win-x64\"\r\n ]\r\n }\r\n }";
400
381
  const packageFile_ = ff_core_Path.Path_slash(outputPath_, "executable/package.json");
401
382
  ff_core_Path.Path_writeText(packageFile_, json_);
402
383
  ff_compiler_Builder.internalCallPkg_(self_, packageFile_, outputPath_, targets_)
@@ -429,9 +410,11 @@ const if_o = ff_core_Map.Map_get(resolvedDependencies_.packages_, packagePair_,
429
410
  if(if_o.Some) {
430
411
  const packageInfo_ = if_o.value_;
431
412
  (await ff_compiler_Builder.processNodeModules_$(system_, jsPathFile_, packagePath_, packageInfo_, $task));
413
+ if(ff_core_Equal.notEquals_(emitTarget_, ff_compiler_JsEmitter.EmitBrowser(), ff_compiler_JsEmitter.ff_core_Equal_Equal$ff_compiler_JsEmitter_EmitTarget)) {
432
414
  (await ff_compiler_Builder.processIncludes_$(jsPathFile_, packagePath_, packageInfo_, $task))
433
415
  }
434
416
  }
417
+ }
435
418
  }), ff_compiler_Syntax.ff_core_Ordering_Order$ff_compiler_Syntax_PackagePair, $task));
436
419
  return true
437
420
  }), $task));
@@ -660,25 +643,7 @@ const p_ = (await ff_core_Path.Path_slash$(assetOutputPath_, path_, $task));
660
643
  return
661
644
  }
662
645
  }), $task));
663
- const json_ = `{
664
- "name": "main",
665
- "bin": {
666
- "firefly-main": "Main.bundle.js"
667
- },
668
- "devDependencies": {
669
- "pkg": "^5.8.0"
670
- },
671
- "pkg": {
672
- "scripts": "Main.bundle.js",
673
- "outputPath": "bin",
674
- "assets": ["../assets/**/*"],
675
- "targets": [
676
- "node18-linux-x64",
677
- "node18-macos-x64",
678
- "node18-win-x64"
679
- ]
680
- }
681
- }`;
646
+ const json_ = "{\r\n \"name\": \"main\",\r\n \"bin\": {\r\n \"firefly-main\": \"Main.bundle.js\"\r\n },\r\n \"devDependencies\": {\r\n \"pkg\": \"^5.8.0\"\r\n },\r\n \"pkg\": {\r\n \"scripts\": \"Main.bundle.js\",\r\n \"outputPath\": \"bin\",\r\n \"assets\": [\"../assets/**/*\"],\r\n \"targets\": [\r\n \"node18-linux-x64\",\r\n \"node18-macos-x64\",\r\n \"node18-win-x64\"\r\n ]\r\n }\r\n }";
682
647
  const packageFile_ = (await ff_core_Path.Path_slash$(outputPath_, "executable/package.json", $task));
683
648
  (await ff_core_Path.Path_writeText$(packageFile_, json_, $task));
684
649
  (await ff_compiler_Builder.internalCallPkg_$(self_, packageFile_, outputPath_, targets_, $task))
@@ -690,5 +655,4 @@ const pkg_ = import$0;
690
655
  }
691
656
 
692
657
 
693
-
694
-
658
+ //# sourceMappingURL=Builder.mjs.map
@@ -0,0 +1,181 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [
4
+ "../../../../../compiler/Builder.ff"
5
+ ],
6
+ "sourcesContent": [
7
+ "import Tokenizer\r\nimport Parser\r\nimport Syntax\r\nimport Resolver\r\nimport Compiler\r\nimport Unification\r\nimport Dependencies\r\nimport JsEmitter\r\nimport ModuleCache\r\nimport LspHook\r\nimport DependencyLock\r\n\r\nbuild(\r\n system: NodeSystem\r\n emitTarget: EmitTarget\r\n mainModules: List[ModuleKey]\r\n resolvedDependencies: ResolvedDependencies\r\n compilerModulePath: Option[Path]\r\n tempPath: Path\r\n jsOutputPath: Path\r\n printMeasurements: Bool\r\n moduleCache: ModuleCache\r\n): Unit {\r\n\r\n if(tempPath.exists()) {tempPath.delete()}\r\n tempPath.createDirectory()\r\n\r\n let jsPathFile = tempPath.slash(\"js\")\r\n jsPathFile.createDirectory(createParentDirectories = True)\r\n\r\n let success = do {\r\n let compiler = Compiler.new(\r\n emitTarget\r\n system.mainTask()\r\n compilerModulePath\r\n jsPathFile\r\n resolvedDependencies\r\n Map.new()\r\n moduleCache\r\n lspHook = LspHook.disabled()\r\n )\r\n mainModules.each {moduleKey => compiler.emit(moduleKey, isMainModule = True)}\r\n if(printMeasurements) {compiler.printMeasurements()}\r\n resolvedDependencies.packagePaths.each {packagePair, packagePath =>\r\n resolvedDependencies.packages.get(packagePair).each {packageInfo =>\r\n processNodeModules(system, jsPathFile, packagePath, packageInfo)\r\n if(emitTarget != EmitBrowser) {\r\n processIncludes(jsPathFile, packagePath, packageInfo)\r\n }\r\n }\r\n }\r\n True\r\n }\r\n\r\n if(success) {\r\n if(jsOutputPath.exists()) {jsOutputPath.delete()}\r\n jsPathFile.renameTo(jsOutputPath)\r\n }\r\n\r\n}\r\n\r\nprocessIncludes(jsPathFile: Path, packagePath: Path, info: PackageInfo) {\r\n info.includes.each {include =>\r\n let fromPath = packagePath.slash(\".firefly\").slash(\"include\").slash(include.path)\r\n let toPath = jsPathFile.slash(info.package.packagePair.groupName(\"/\")).slash(include.path)\r\n toPath.createSymlinkTo(fromPath, junction = True)\r\n }\r\n}\r\n\r\nprocessNodeModules(system: NodeSystem, jsPathFile: Path, packagePath: Path, info: PackageInfo) {\r\n if(info.includes.any {_.path == \"node_modules\"}) {\r\n let includePath = packagePath.slash(\".firefly\").slash(\"include\")\r\n let nodeModules = includePath.slash(\"node_modules\")\r\n let packageJson = includePath.slash(\"package.json\")\r\n if(!nodeModules.exists() && packageJson.exists()) {\r\n system.writeErrorLine(\"Running npm install --no-bin-links in \" + includePath.absolute())\r\n let result = system.execute(\"npm\", [\r\n \"install\", \"--no-bin-links\"\r\n ], directory = Some(includePath), shell = True)\r\n if(result.exitCode != 0) {\r\n system.writeErrorLine(\"Running npm failed with exit code \" + result.exitCode + \":\")\r\n system.writeErrorBuffer(result.standardOut)\r\n system.writeErrorBuffer(result.standardError)\r\n }\r\n }\r\n }\r\n}\r\n\r\nbuildViaBuildSystem(system: NodeSystem, fireflyPath: Path, mainFiles: List[Path], target: String) {\r\n let resolvedDependencies = Dependencies.process(\r\n system.httpClient()\r\n DependencyLock.new(system.mainTask())\r\n mainFiles.grabFirst()\r\n )\r\n let fixedPackagePaths = if(resolvedDependencies.packagePaths.contains(PackagePair(\"ff\", \"core\"))) {\r\n resolvedDependencies.packagePaths\r\n } else {\r\n resolvedDependencies.packagePaths.add(PackagePair(\"ff\", \"core\"), fireflyPath.slash(\"core\"))\r\n }\r\n let packageRoot = resolvedDependencies.packagePaths.grab(resolvedDependencies.mainPackagePair)\r\n let mainModuleKeys = mainFiles.map {mainFile =>\r\n resolvedDependencies.mainPackagePair.moduleKey(packageRoot, mainFile).else {\r\n panic(\r\n \"Can't build multiple main files in different packages: \" + \r\n mainFile.absolute() + \" isn't part of \" + packageRoot.absolute()\r\n )\r\n }\r\n }\r\n if(target != \"browser\") {\r\n panic(\"buildViaBuildSystem is currently limited to browser target only - the restriction can be lifted\")\r\n }\r\n build(\r\n system = system\r\n emitTarget = EmitBrowser\r\n mainModules = mainModuleKeys\r\n resolvedDependencies = resolvedDependencies.ResolvedDependencies(packagePaths = fixedPackagePaths)\r\n compilerModulePath = None\r\n tempPath = system.path(\".firefly/temporary\")\r\n jsOutputPath = system.path(\".firefly/output\").slash(target)\r\n printMeasurements = False\r\n moduleCache = ModuleCache.new(0)\r\n )\r\n}\r\n\r\ncheck(\r\n system: NodeSystem\r\n fireflyPath: Path\r\n path: Path\r\n mustContain: Option[String]\r\n skipFiles: Set[String]\r\n virtualFiles: Map[String, String]\r\n cache: ModuleCache\r\n dependencyLock: DependencyLock\r\n newVersion: Int\r\n lspHook: LspHook\r\n infer: Bool\r\n): List[CompileError] {\r\n let packages = path.isDirectory().{\r\n | False {path.endsWith([\".firefly\", \"package.ff\"])} => [PackageFiles(path.parent().grab(), Some(path), [])]\r\n | True => findPackageFilesForDirectory(path, virtualFiles, mustContain, skipFiles)\r\n | False => findPackageFilesForFile(path).toList()\r\n }\r\n let errors = Array.new()\r\n\r\n let filteredPackages = packages.filter {!_.root.contains([\".firefly\", \"dependencies\"])}\r\n filteredPackages.filter {!_.files.isEmpty()}.each {package => \r\n let firstFile = package.files.grabFirst()\r\n try {\r\n Some(Dependencies.process(system.httpClient(), dependencyLock, firstFile))\r\n } tryCatch {| CompileError(_, _) @ c, error =>\r\n errors.push(c)\r\n None\r\n } catch {| CompileErrors(compileErrors), error =>\r\n errors.pushList(compileErrors)\r\n None\r\n }.each: resolvedDependencies => \r\n let fixedPackagePaths = if(resolvedDependencies.packagePaths.contains(PackagePair(\"ff\", \"core\"))) {\r\n resolvedDependencies.packagePaths\r\n } else {\r\n resolvedDependencies.packagePaths.add(PackagePair(\"ff\", \"core\"), fireflyPath.slash(\"core\"))\r\n }\r\n let fixedResolvedDependencies = resolvedDependencies.ResolvedDependencies(packagePaths = fixedPackagePaths)\r\n let newCache = cache.without(newVersion, path)\r\n let compiler = Compiler.new(\r\n EmitBuild\r\n system.mainTask() \r\n None\r\n package.root.slash(\".firefly\").slash(\"temporary\")\r\n fixedResolvedDependencies\r\n virtualFiles\r\n newCache\r\n lspHook\r\n )\r\n package.files.each {file =>\r\n let packagePair = resolvedDependencies.mainPackagePair\r\n let folders = file.parent().grab().relativeListTo(package.root)\r\n let name = file.base().removeLast(\".ff\").grab()\r\n let moduleKey = ModuleKey(packagePair, folders, name)\r\n try {\r\n if(infer) {\r\n compiler.infer(moduleKey)\r\n } else {\r\n compiler.resolve(moduleKey)\r\n }\r\n } tryCatch {| CompileError(_, _) @ c, error =>\r\n errors.push(c)\r\n } catch {| CompileErrors(compileErrors), error =>\r\n errors.pushList(compileErrors)\r\n }\r\n }\r\n cache.mergeVersions(compiler.cache)\r\n }\r\n errors.drain()\r\n\r\n}\r\n\r\ncapability PackageFiles(\r\n root: Path\r\n packageFile: Option[Path]\r\n files: List[Path]\r\n)\r\n\r\n\r\nfindPackageFilesForFile(file: Path): Option[PackageFiles] {\r\n if(file.extension() == \".ff\"):\r\n mutable packageFile = None\r\n mutable currentDirectory = file.parent()\r\n while {!currentDirectory.isEmpty() && packageFile.isEmpty()} {\r\n packageFile = currentDirectory.map {_.slash(\".firefly\").slash(\"package.ff\")}.filter {_.exists()}\r\n currentDirectory = currentDirectory.grab().parent()\r\n }\r\n let projectRoot = packageFile.map {_.parent().grab().parent().grab()}.else {file.parent().grab()}\r\n PackageFiles(projectRoot, packageFile, [file])\r\n}\r\n\r\nfindPackageFilesForDirectory(\r\n directory: Path\r\n virtualFiles: Map[String, String]\r\n mustContain: Option[String]\r\n skipFiles: Set[String]\r\n): List[PackageFiles] {\r\n let files = findFireflyFiles(directory, virtualFiles, mustContain, skipFiles)\r\n let split = files.partition {_.endsWith([\".firefly\", \"package.ff\"])}\r\n let packageFiles = split.first\r\n mutable singleFiles = split.second\r\n let multiFileProjects = packageFiles.map {packageFile => \r\n let projectRoot = packageFile.parent().grab().parent().grab()\r\n let files = singleFiles.partition {_.isInsideOf(projectRoot)}\r\n singleFiles = files.second\r\n let packageFiles = files.first\r\n PackageFiles(projectRoot, Some(packageFile), packageFiles)\r\n }\r\n let singleFileProjects = singleFiles.map {file => \r\n let projectRoot = file.parent().grab()\r\n PackageFiles(projectRoot, None, [file])\r\n }\r\n [...multiFileProjects, ...singleFileProjects]\r\n}\r\n\r\nfindFireflyFiles(\r\n path: Path\r\n virtualFiles: Map[String, String]\r\n mustContain: Option[String]\r\n skipFiles: Set[String]\r\n): List[Path] {\r\n let split = path.entries().toList().partition {_.isDirectory()}\r\n let directories = split.first\r\n let files = split.second\r\n let relevantDirectories = directories.map {_.path()}.filter {_.base().all {c => \r\n c == '.' || c.isAsciiLower() || c.isAsciiDigit()\r\n }}\r\n let fireflyFiles = files.map {_.path()}.filter {file => \r\n file.extension() == \".ff\" && !skipFiles.contains(file.absolute()) && (\r\n file.endsWith([\".firefly\", \"package.ff\"]) || mustContain.all {s => \r\n let code = virtualFiles.get(file.absolute()).else {file.readText()}\r\n code.contains(s)\r\n }\r\n )\r\n }\r\n [...fireflyFiles, ...relevantDirectories.flatMap {findFireflyFiles(_, virtualFiles, mustContain, skipFiles)}]\r\n}\r\n\r\ninternalCreateExecutable(\r\n self: BuildSystem\r\n mainJsFile: Path = \".firefly/output/executable/Main.bundle.js\"\r\n outputPath: Path = \".firefly/output\"\r\n targets: List[String] = [\"host\"]\r\n assets: AssetSystem = AssetSystem.create()\r\n): Unit {\r\n let assetOutputPath = outputPath.slash(\"assets\")\r\n assets.files.pairs().each {| Pair(path, makeStream) =>\r\n let p = assetOutputPath.slash(path)\r\n p.parent().grab().createDirectory(createParentDirectories = True)\r\n p.writeStream(makeStream())\r\n }\r\n let json = \"\"\"{\r\n \"name\": \"main\",\r\n \"bin\": {\r\n \"firefly-main\": \"Main.bundle.js\"\r\n },\r\n \"devDependencies\": {\r\n \"pkg\": \"^5.8.0\"\r\n },\r\n \"pkg\": {\r\n \"scripts\": \"Main.bundle.js\",\r\n \"outputPath\": \"bin\",\r\n \"assets\": [\"../assets/**/*\"],\r\n \"targets\": [\r\n \"node18-linux-x64\",\r\n \"node18-macos-x64\",\r\n \"node18-win-x64\"\r\n ]\r\n }\r\n }\"\"\"\r\n let packageFile = outputPath.slash(\"executable/package.json\")\r\n packageFile.writeText(json)\r\n internalCallPkg(self, packageFile, outputPath, targets)\r\n}\r\n\r\ninternalCallPkg(\r\n self: BuildSystem\r\n packageFile: Path\r\n outputPath: Path\r\n targets: List[String]\r\n): Unit {\r\n let pkg = Js.import(\"pkg\")\r\n Js.await(pkg->exec([\r\n packageFile.absolutePath\r\n \"--out-path\", outputPath.absolutePath\r\n \"--target\", targets.join(\",\")\r\n ]))\r\n}\r\n"
8
+ ],
9
+ "names": [
10
+ "PackageFiles",
11
+ "root",
12
+ "packageFile",
13
+ "files",
14
+ "build",
15
+ "system",
16
+ "emitTarget",
17
+ "mainModules",
18
+ "resolvedDependencies",
19
+ "compilerModulePath",
20
+ "tempPath",
21
+ "jsOutputPath",
22
+ "printMeasurements",
23
+ "moduleCache",
24
+ "exists",
25
+ "delete",
26
+ "createDirectory",
27
+ "jsPathFile",
28
+ "slash",
29
+ "success",
30
+ "do",
31
+ "compiler",
32
+ "new",
33
+ "mainTask",
34
+ "disabled",
35
+ "emit",
36
+ "moduleKey",
37
+ "each",
38
+ "packagePaths",
39
+ "packagePair",
40
+ "packagePath",
41
+ "get",
42
+ "packages",
43
+ "packageInfo",
44
+ "processNodeModules",
45
+ "notEquals",
46
+ "EmitBrowser",
47
+ "processIncludes",
48
+ "renameTo",
49
+ "info",
50
+ "includes",
51
+ "fromPath",
52
+ "include",
53
+ "path",
54
+ "toPath",
55
+ "groupName",
56
+ "package",
57
+ "createSymlinkTo",
58
+ "any",
59
+ "w1",
60
+ "includePath",
61
+ "nodeModules",
62
+ "packageJson",
63
+ "writeErrorLine",
64
+ "absolute",
65
+ "result",
66
+ "execute",
67
+ "Some",
68
+ "None",
69
+ "exitCode",
70
+ "writeErrorBuffer",
71
+ "standardOut",
72
+ "standardError",
73
+ "buildViaBuildSystem",
74
+ "fireflyPath",
75
+ "mainFiles",
76
+ "target",
77
+ "process",
78
+ "httpClient",
79
+ "grabFirst",
80
+ "fixedPackagePaths",
81
+ "contains",
82
+ "PackagePair",
83
+ "add",
84
+ "packageRoot",
85
+ "grab",
86
+ "mainPackagePair",
87
+ "mainModuleKeys",
88
+ "map",
89
+ "mainFile",
90
+ "else",
91
+ "panic",
92
+ "c",
93
+ "ResolvedDependencies",
94
+ "singleFilePackages",
95
+ "check",
96
+ "mustContain",
97
+ "skipFiles",
98
+ "virtualFiles",
99
+ "cache",
100
+ "dependencyLock",
101
+ "newVersion",
102
+ "lspHook",
103
+ "infer",
104
+ "endsWith",
105
+ "parent",
106
+ "findPackageFilesForDirectory",
107
+ "toList",
108
+ "findPackageFilesForFile",
109
+ "isDirectory",
110
+ "errors",
111
+ "filteredPackages",
112
+ "filter",
113
+ "isEmpty",
114
+ "firstFile",
115
+ "catch",
116
+ "tryCatch",
117
+ "try",
118
+ "error",
119
+ "compileErrors",
120
+ "pushList",
121
+ "fixedResolvedDependencies",
122
+ "newCache",
123
+ "without",
124
+ "EmitBuild",
125
+ "folders",
126
+ "relativeListTo",
127
+ "file",
128
+ "name",
129
+ "removeLast",
130
+ "base",
131
+ "ModuleKey",
132
+ "resolve",
133
+ "mergeVersions",
134
+ "drain",
135
+ "extension",
136
+ "currentDirectory",
137
+ "projectRoot",
138
+ "directory",
139
+ "findFireflyFiles",
140
+ "split",
141
+ "partition",
142
+ "packageFiles",
143
+ "first",
144
+ "singleFiles",
145
+ "second",
146
+ "multiFileProjects",
147
+ "isInsideOf",
148
+ "singleFileProjects",
149
+ "entries",
150
+ "directories",
151
+ "relevantDirectories",
152
+ "all",
153
+ "isAsciiLower",
154
+ "isAsciiDigit",
155
+ "fireflyFiles",
156
+ "s",
157
+ "code",
158
+ "readText",
159
+ "flatMap",
160
+ "internalCreateExecutable",
161
+ "self",
162
+ "mainJsFile",
163
+ "outputPath",
164
+ "targets",
165
+ "assets",
166
+ "create",
167
+ "assetOutputPath",
168
+ "pairs",
169
+ "makeStream",
170
+ "p",
171
+ "writeStream",
172
+ "json",
173
+ "writeText",
174
+ "internalCallPkg",
175
+ "pkg",
176
+ "exec",
177
+ "absolutePath",
178
+ "join"
179
+ ],
180
+ "mappings": "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"
181
+ }