firefly-compiler 0.5.77 → 0.5.79

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. package/bin/firefly.mjs +1 -1
  2. package/compiler/Builder.ff +1 -1
  3. package/compiler/Compiler.ff +7 -3
  4. package/compiler/JsEmitter.ff +1573 -623
  5. package/compiler/Main.ff +7 -2
  6. package/compiler/SourceMap.ff +149 -0
  7. package/core/Buffer.ff +2 -1
  8. package/core/BuildSystem.ff +3 -1
  9. package/core/Core.ff +4 -4
  10. package/core/Error.ff +7 -1
  11. package/core/Js.ff +17 -0
  12. package/firefly.sh +1 -1
  13. package/fireflysite/Html.ff +15 -2
  14. package/fireflysite/Main.ff +2 -1
  15. package/output/js/ff/compiler/Builder.mjs +5 -46
  16. package/output/js/ff/compiler/Builder.mjs.map +181 -0
  17. package/output/js/ff/compiler/Compiler.mjs +23 -16
  18. package/output/js/ff/compiler/Compiler.mjs.map +155 -0
  19. package/output/js/ff/compiler/Dependencies.mjs +12 -14
  20. package/output/js/ff/compiler/Dependencies.mjs.map +128 -0
  21. package/output/js/ff/compiler/DependencyLock.mjs +1 -4
  22. package/output/js/ff/compiler/DependencyLock.mjs.map +22 -0
  23. package/output/js/ff/compiler/Deriver.mjs +10 -11
  24. package/output/js/ff/compiler/Deriver.mjs.map +204 -0
  25. package/output/js/ff/compiler/Dictionaries.mjs +12 -13
  26. package/output/js/ff/compiler/Dictionaries.mjs.map +183 -0
  27. package/output/js/ff/compiler/Environment.mjs +24 -27
  28. package/output/js/ff/compiler/Environment.mjs.map +141 -0
  29. package/output/js/ff/compiler/Inference.mjs +85 -94
  30. package/output/js/ff/compiler/Inference.mjs.map +355 -0
  31. package/output/js/ff/compiler/JsEmitter.mjs +3730 -1682
  32. package/output/js/ff/compiler/JsEmitter.mjs.map +423 -0
  33. package/output/js/ff/compiler/JsImporter.mjs +9 -12
  34. package/output/js/ff/compiler/JsImporter.mjs.map +52 -0
  35. package/output/js/ff/compiler/LspHook.mjs +17 -18
  36. package/output/js/ff/compiler/LspHook.mjs.map +140 -0
  37. package/output/js/ff/compiler/Main.mjs +69 -69
  38. package/output/js/ff/compiler/Main.mjs.map +231 -0
  39. package/output/js/ff/compiler/ModuleCache.mjs +1 -4
  40. package/output/js/ff/compiler/ModuleCache.mjs.map +82 -0
  41. package/output/js/ff/compiler/Parser.mjs +58 -61
  42. package/output/js/ff/compiler/Parser.mjs.map +406 -0
  43. package/output/js/ff/compiler/Patterns.mjs +19 -22
  44. package/output/js/ff/compiler/Patterns.mjs.map +119 -0
  45. package/output/js/ff/compiler/Resolver.mjs +42 -41
  46. package/output/js/ff/compiler/Resolver.mjs.map +294 -0
  47. package/output/js/ff/compiler/SourceMap.mjs +402 -0
  48. package/output/js/ff/compiler/SourceMap.mjs.map +83 -0
  49. package/output/js/ff/compiler/Substitution.mjs +1 -4
  50. package/output/js/ff/compiler/Substitution.mjs.map +138 -0
  51. package/output/js/ff/compiler/Syntax.mjs +252 -251
  52. package/output/js/ff/compiler/Syntax.mjs.map +351 -0
  53. package/output/js/ff/compiler/Token.mjs +17 -22
  54. package/output/js/ff/compiler/Token.mjs.map +113 -0
  55. package/output/js/ff/compiler/Tokenizer.mjs +5 -12
  56. package/output/js/ff/compiler/Tokenizer.mjs.map +101 -0
  57. package/output/js/ff/compiler/Unification.mjs +32 -33
  58. package/output/js/ff/compiler/Unification.mjs.map +135 -0
  59. package/output/js/ff/compiler/Wildcards.mjs +1 -4
  60. package/output/js/ff/compiler/Wildcards.mjs.map +69 -0
  61. package/output/js/ff/compiler/Workspace.mjs +17 -16
  62. package/output/js/ff/compiler/Workspace.mjs.map +96 -0
  63. package/output/js/ff/core/Any.mjs +1 -4
  64. package/output/js/ff/core/Any.mjs.map +21 -0
  65. package/output/js/ff/core/Array.mjs +14 -15
  66. package/output/js/ff/core/Array.mjs.map +90 -0
  67. package/output/js/ff/core/AssetSystem.mjs +1 -4
  68. package/output/js/ff/core/AssetSystem.mjs.map +56 -0
  69. package/output/js/ff/core/Atomic.mjs +1 -4
  70. package/output/js/ff/core/Atomic.mjs.map +24 -0
  71. package/output/js/ff/core/Bool.mjs +4 -9
  72. package/output/js/ff/core/Bool.mjs.map +19 -0
  73. package/output/js/ff/core/BrowserSystem.mjs +1 -8
  74. package/output/js/ff/core/BrowserSystem.mjs.map +47 -0
  75. package/output/js/ff/core/Buffer.mjs +18 -17
  76. package/output/js/ff/core/Buffer.mjs.map +123 -0
  77. package/output/js/ff/core/BuildSystem.mjs +7 -10
  78. package/output/js/ff/core/BuildSystem.mjs.map +87 -0
  79. package/output/js/ff/core/Channel.mjs +1 -4
  80. package/output/js/ff/core/Channel.mjs.map +67 -0
  81. package/output/js/ff/core/Char.mjs +1 -8
  82. package/output/js/ff/core/Char.mjs.map +21 -0
  83. package/output/js/ff/core/Core.mjs +9 -16
  84. package/output/js/ff/core/Core.mjs.map +38 -0
  85. package/output/js/ff/core/Crypto.mjs +1 -4
  86. package/output/js/ff/core/Crypto.mjs.map +65 -0
  87. package/output/js/ff/core/Date.mjs +8 -7
  88. package/output/js/ff/core/Date.mjs.map +168 -0
  89. package/output/js/ff/core/Duration.mjs +4 -9
  90. package/output/js/ff/core/Duration.mjs.map +18 -0
  91. package/output/js/ff/core/Equal.mjs +9 -14
  92. package/output/js/ff/core/Equal.mjs.map +22 -0
  93. package/output/js/ff/core/Error.mjs +33 -10
  94. package/output/js/ff/core/Error.mjs.map +34 -0
  95. package/output/js/ff/core/FileHandle.mjs +1 -8
  96. package/output/js/ff/core/FileHandle.mjs.map +32 -0
  97. package/output/js/ff/core/Float.mjs +4 -5
  98. package/output/js/ff/core/Float.mjs.map +93 -0
  99. package/output/js/ff/core/HttpClient.mjs +1 -4
  100. package/output/js/ff/core/HttpClient.mjs.map +62 -0
  101. package/output/js/ff/core/Int.mjs +4 -9
  102. package/output/js/ff/core/Int.mjs.map +49 -0
  103. package/output/js/ff/core/IntMap.mjs +3 -6
  104. package/output/js/ff/core/IntMap.mjs.map +52 -0
  105. package/output/js/ff/core/Js.mjs +29 -8
  106. package/output/js/ff/core/Js.mjs.map +125 -0
  107. package/output/js/ff/core/JsSystem.mjs +1 -8
  108. package/output/js/ff/core/JsSystem.mjs.map +59 -0
  109. package/output/js/ff/core/JsValue.mjs +23 -42
  110. package/output/js/ff/core/JsValue.mjs.map +155 -0
  111. package/output/js/ff/core/Json.mjs +25 -26
  112. package/output/js/ff/core/Json.mjs.map +134 -0
  113. package/output/js/ff/core/List.mjs +11 -12
  114. package/output/js/ff/core/List.mjs.map +123 -0
  115. package/output/js/ff/core/Lock.mjs +7 -14
  116. package/output/js/ff/core/Lock.mjs.map +52 -0
  117. package/output/js/ff/core/Log.mjs +1 -8
  118. package/output/js/ff/core/Log.mjs.map +26 -0
  119. package/output/js/ff/core/Map.mjs +6 -7
  120. package/output/js/ff/core/Map.mjs.map +67 -0
  121. package/output/js/ff/core/NodeSystem.mjs +11 -14
  122. package/output/js/ff/core/NodeSystem.mjs.map +137 -0
  123. package/output/js/ff/core/Nothing.mjs +1 -10
  124. package/output/js/ff/core/Nothing.mjs.map +11 -0
  125. package/output/js/ff/core/Option.mjs +10 -15
  126. package/output/js/ff/core/Option.mjs.map +67 -0
  127. package/output/js/ff/core/Ordering.mjs +12 -13
  128. package/output/js/ff/core/Ordering.mjs.map +48 -0
  129. package/output/js/ff/core/Pair.mjs +8 -13
  130. package/output/js/ff/core/Pair.mjs.map +48 -0
  131. package/output/js/ff/core/Path.mjs +5 -14
  132. package/output/js/ff/core/Path.mjs.map +178 -0
  133. package/output/js/ff/core/Queue.mjs +1 -4
  134. package/output/js/ff/core/Queue.mjs.map +45 -0
  135. package/output/js/ff/core/Random.mjs +1 -4
  136. package/output/js/ff/core/Random.mjs.map +79 -0
  137. package/output/js/ff/core/RbMap.mjs +1 -16
  138. package/output/js/ff/core/RbMap.mjs.map +92 -0
  139. package/output/js/ff/core/Serializable.mjs +17 -22
  140. package/output/js/ff/core/Serializable.mjs.map +73 -0
  141. package/output/js/ff/core/Set.mjs +6 -7
  142. package/output/js/ff/core/Set.mjs.map +45 -0
  143. package/output/js/ff/core/Show.mjs +11 -20
  144. package/output/js/ff/core/Show.mjs.map +29 -0
  145. package/output/js/ff/core/SourceLocation.mjs +7 -8
  146. package/output/js/ff/core/SourceLocation.mjs.map +41 -0
  147. package/output/js/ff/core/Stream.mjs +1 -4
  148. package/output/js/ff/core/Stream.mjs.map +92 -0
  149. package/output/js/ff/core/String.mjs +14 -19
  150. package/output/js/ff/core/String.mjs.map +106 -0
  151. package/output/js/ff/core/StringMap.mjs +3 -6
  152. package/output/js/ff/core/StringMap.mjs.map +52 -0
  153. package/output/js/ff/core/Task.mjs +1 -8
  154. package/output/js/ff/core/Task.mjs.map +79 -0
  155. package/output/js/ff/core/Try.mjs +3 -6
  156. package/output/js/ff/core/Try.mjs.map +41 -0
  157. package/output/js/ff/core/Unit.mjs +5 -12
  158. package/output/js/ff/core/Unit.mjs.map +18 -0
  159. package/package.json +1 -2
  160. package/vscode/package.json +1 -1
  161. package/webserver/WebServer.ff +1 -1
package/bin/firefly.mjs CHANGED
@@ -1,2 +1,2 @@
1
- #!/usr/bin/env -S node --harmony-temporal
1
+ #!/usr/bin/env -S node --harmony-temporal --enable-source-maps
2
2
  import * as firefly from '../output/js/ff/compiler/Main.run.mjs';
@@ -303,7 +303,7 @@ internalCallPkg(
303
303
  outputPath: Path
304
304
  targets: List[String]
305
305
  ): Unit {
306
- let pkg = Js.import("pkg")
306
+ let pkg = Js.null() //Js.import("pkg")
307
307
  Js.await(pkg->exec([
308
308
  packageFile.absolutePath
309
309
  "--out-path", outputPath.absolutePath
@@ -222,14 +222,18 @@ extend self: Compiler {
222
222
  compilerModuleFileUrl = self.compilerModulePath.map {_.url()}
223
223
  moduleKey = moduleKey
224
224
  )
225
- let js = emitter.emitModule(module)
225
+ emitter.emitModule(module)
226
226
  let packagePath = self.jsOutputPath.slash(moduleKey.packagePair.group).slash(moduleKey.packagePair.name)
227
227
  let jsPath = moduleKey.folders.foldLeft(packagePath) {p, f => p.slash(f)}
228
228
  let jsFile = jsPath.slash(moduleKey.name + ".mjs")
229
+ let sourceMapFile = jsPath.slash(moduleKey.name + ".mjs.map")
230
+ let source = Some(path.readText())
231
+ let jsAndSourceMap = emitter.makeOutputAndSourceMap(path.relativeListTo(jsPath).join("/"), source)
229
232
  jsPath.createDirectory(createParentDirectories = True)
230
- jsFile.writeText(js)
233
+ jsFile.writeText(jsAndSourceMap.first + "\n\n//# sourceMappingURL=" + sourceMapFile.base())
234
+ sourceMapFile.writeText(jsAndSourceMap.second.write(Some(" ")))
231
235
  if(isMainModule) {
232
- let runJs = emitter.emitRun(
236
+ let runJs = emitter.makeRun(
233
237
  moduleKey.name
234
238
  module.functions
235
239
  moduleKey.packagePair