aboutsummaryrefslogtreecommitdiff
path: root/stdlib
diff options
context:
space:
mode:
authorEduardo Julian2021-11-30 23:48:11 -0400
committerEduardo Julian2021-11-30 23:48:11 -0400
commit4334564a5e08956fbe382cdcc69c564f74c35d05 (patch)
treed130775a09e632fe1d3903ada15463728b026a7b /stdlib
parent872c097327c0a5b3baa69e88dacd09718ddfa793 (diff)
v0.6.5
Diffstat (limited to '')
-rw-r--r--stdlib/project.lux12
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/js/function.lux8
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/js/runtime.lux2
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/python/case.lux68
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/python/function.lux6
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/python/loop.lux8
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/python/runtime.lux2
-rw-r--r--stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/ruby/function.lux3
-rw-r--r--stdlib/source/library/lux/tool/compiler/meta/archive/dependency.lux11
-rw-r--r--stdlib/source/library/lux/tool/compiler/meta/packager/jvm.lux4
10 files changed, 75 insertions, 49 deletions
diff --git a/stdlib/project.lux b/stdlib/project.lux
index 1dfe84e5b..1f9e41d0e 100644
--- a/stdlib/project.lux
+++ b/stdlib/project.lux
@@ -2,7 +2,7 @@
[... An optional identity for the project.
... It can also be specified or overriden in a non-default profile.
... This will be the name given to the project when installed/deployed as a dependency.
- "identity" ["com.github.luxlang" "stdlib" "0.6.5-SNAPSHOT"]
+ "identity" ["com.github.luxlang" "stdlib" "0.6.5"]
... Every piece of information, and the whole "info" bundle, are optional.
"info" ["url" "https://github.com/LuxLang/lux"
@@ -41,7 +41,7 @@
... The following are alternative profiles to use in various situations.
"jvm"
[... "compiler" specifies the dependency to fetch and use as the compiler.
- "compiler" ["com.github.luxlang" "lux-jvm" "0.6.5-SNAPSHOT" "jar"]
+ "compiler" ["com.github.luxlang" "lux-jvm" "0.6.5" "jar"]
... "dependencies" is an optional list of dependencies to fetch.
... The dependencies have the same shape as when specifying the compiler.
... When omitting the packaging format of the dependency, "tar" will be assumed.
@@ -52,25 +52,25 @@
]
"js"
- ["compiler" ["com.github.luxlang" "lux-js" "0.6.4" "js"]
+ ["compiler" ["com.github.luxlang" "lux-js" "0.6.5" "js"]
... The OS command to use when running JS tests. The default is described below.
... "js" ["node" "--stack_size=8192"]
]
"lua"
- ["compiler" ["com.github.luxlang" "lux-lua" "0.6.4" "jar"]
+ ["compiler" ["com.github.luxlang" "lux-lua" "0.6.5" "jar"]
... The OS command to use when running Lua tests. The default is described below.
... "lua" ["lua"]
]
"python"
- ["compiler" ["com.github.luxlang" "lux-python" "0.6.4" "jar"]
+ ["compiler" ["com.github.luxlang" "lux-python" "0.6.5" "jar"]
... The OS command to use when running Python tests. The default is described below.
... "python" ["python3"]
]
"ruby"
- ["compiler" ["com.github.luxlang" "lux-ruby" "0.6.5-SNAPSHOT" "jar"]
+ ["compiler" ["com.github.luxlang" "lux-ruby" "0.6.5" "jar"]
... The OS command to use when running Ruby tests. The default is described below.
... "ruby" ["ruby"]
]
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/js/function.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/js/function.lux
index 91c0262ef..ca4b71fa0 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/js/function.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/js/function.lux
@@ -25,7 +25,10 @@
[arity {"+" Arity}]
["[1][0]" phase ("[1]#[0]" monad)]
[reference
- [variable {"+" Register Variable}]]]]]])
+ [variable {"+" Register Variable}]]
+ [meta
+ [archive
+ ["[0]" dependency]]]]]]])
(def: .public (apply expression archive [functionS argsS+])
(Generator (Application Synthesis))
@@ -68,7 +71,8 @@
(def: .public (function statement expression archive [environment arity bodyS])
(-> Phase! (Generator (Abstraction Synthesis)))
(do [! ///////phase.monad]
- [[function_name body!] (/////generation.with_new_context archive
+ [dependencies (dependency.dependencies archive bodyS)
+ [function_name body!] (/////generation.with_new_context archive dependencies
(do !
[scope (# ! each ..@scope
(/////generation.context archive))]
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/js/runtime.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/js/runtime.lux
index 1fdba6ac2..1bf29150f 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/js/runtime.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/js/runtime.lux
@@ -782,7 +782,7 @@
[_ (/////generation.execute! ..runtime)
_ (/////generation.save! ..module_id {.#None} ..runtime)]
(in [(|> artifact.empty
- artifact.resource
+ (artifact.resource true artifact.no_dependencies)
product.right)
(sequence.sequence [..module_id
{.#None}
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/python/case.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/python/case.lux
index 4be219e6f..d65324f5a 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/python/case.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/python/case.lux
@@ -1,38 +1,39 @@
(.using
- [library
- [lux {"-" case let if symbol}
- [abstract
- ["[0]" monad {"+" do}]]
- [data
- ["[0]" text
- ["%" format {"+" format}]]
- [collection
- ["[0]" list ("[1]#[0]" functor mix)]
- ["[0]" set]]]
- [math
- [number
- ["n" nat]
- ["i" int]]]
- [target
- ["_" python {"+" Expression SVar Statement}]]]]
- ["[0]" // "_"
- ["[1][0]" runtime {"+" Operation Phase Generator Phase! Generator!}]
+ [library
+ [lux {"-" case let if symbol}
+ [abstract
+ ["[0]" monad {"+" do}]]
+ [data
+ ["[0]" text
+ ["%" format {"+" format}]]
+ [collection
+ ["[0]" list ("[1]#[0]" functor mix)]
+ ["[0]" set]]]
+ [math
+ [number
+ ["n" nat]
+ ["i" int]]]
+ [target
+ ["_" python {"+" Expression SVar Statement}]]]]
+ ["[0]" // "_"
+ ["[1][0]" runtime {"+" Operation Phase Generator Phase! Generator!}]
+ ["[1][0]" reference]
+ ["[1][0]" primitive]
+ ["/[1]" // "_"
["[1][0]" reference]
- ["[1][0]" primitive]
["/[1]" // "_"
- ["[1][0]" reference]
+ [synthesis
+ ["[0]" case]]
["/[1]" // "_"
- [synthesis
- ["[0]" case]]
- ["/[1]" // "_"
- ["[1][0]" synthesis {"+" Member Synthesis Path}]
- ["[1][0]" generation]
- ["//[1]" /// "_"
- [reference
- ["[1][0]" variable {"+" Register}]]
- ["[1][0]" phase ("[1]#[0]" monad)]
- [meta
- [archive {"+" Archive}]]]]]]])
+ ["[1][0]" synthesis {"+" Member Synthesis Path}]
+ ["[1][0]" generation]
+ ["//[1]" /// "_"
+ [reference
+ ["[1][0]" variable {"+" Register}]]
+ ["[1][0]" phase ("[1]#[0]" monad)]
+ [meta
+ [archive {"+" Archive}
+ ["[0]" dependency]]]]]]]])
(def: .public (symbol prefix)
(-> Text (Operation SVar))
@@ -323,7 +324,10 @@
(def: .public (case statement expression archive [valueS pathP])
(-> Phase! (Generator [Synthesis Path]))
(do ///////phase.monad
- [[[case_module case_artifact] pattern_matching!] (/////generation.with_new_context archive
+ [dependencies (dependency.path_dependencies archive pathP)
+ [[case_module case_artifact] pattern_matching!] (/////generation.with_new_context
+ archive
+ dependencies
(case! true statement expression archive [valueS pathP]))
.let [@case (_.var (///reference.artifact [case_module case_artifact]))
@dependencies+ (..dependencies (/////synthesis.path/seq (/////synthesis.path/then valueS)
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/python/function.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/python/function.lux
index 773f28270..816353edd 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/python/function.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/python/function.lux
@@ -29,7 +29,8 @@
[variable {"+" Register Variable}]]
[meta
[archive {"+" Archive}
- ["[0]" artifact]]]]]]])
+ ["[0]" artifact]
+ ["[0]" dependency]]]]]]])
(def: .public (apply expression archive [functionS argsS+])
(Generator (Application Synthesis))
@@ -69,7 +70,8 @@
(def: .public (function statement expression archive [environment arity bodyS])
(-> Phase! (Generator (Abstraction Synthesis)))
(do [! ///////phase.monad]
- [[[function_module function_artifact] body!] (/////generation.with_new_context archive
+ [dependencies (dependency.dependencies archive bodyS)
+ [[function_module function_artifact] body!] (/////generation.with_new_context archive dependencies
(/////generation.with_anchor 1
(statement expression archive bodyS)))
environment (monad.each ! (expression archive) environment)
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/python/loop.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/python/loop.lux
index 304e5ef01..163ce3b9d 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/python/loop.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/python/loop.lux
@@ -28,6 +28,9 @@
["[1][0]" generation]
["//[1]" /// "_"
["[1][0]" phase]
+ [meta
+ [archive
+ ["[0]" dependency]]]
[reference
["[1][0]" variable {"+" Register}]]]]]]])
@@ -74,8 +77,9 @@
... true loop
_
(do [! ///////phase.monad]
- [initsO+ (monad.each ! (expression archive) initsS+)
- [[loop_module loop_artifact] body!] (/////generation.with_new_context archive
+ [dependencies (dependency.dependencies archive bodyS)
+ initsO+ (monad.each ! (expression archive) initsS+)
+ [[loop_module loop_artifact] body!] (/////generation.with_new_context archive dependencies
(/////generation.with_anchor start
(statement expression archive bodyS)))
.let [@loop (_.var (///reference.artifact [loop_module loop_artifact]))
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/python/runtime.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/python/runtime.lux
index 1b89fd694..2f99ad62b 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/python/runtime.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/python/runtime.lux
@@ -453,7 +453,7 @@
[_ (/////generation.execute! ..runtime)
_ (/////generation.save! ..module_id {.#None} ..runtime)]
(in [(|> artifact.empty
- artifact.resource
+ (artifact.resource true artifact.no_dependencies)
product.right)
(sequence.sequence [..module_id
{.#None}
diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/ruby/function.lux b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/ruby/function.lux
index 1c4bee276..ccad8ba2a 100644
--- a/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/ruby/function.lux
+++ b/stdlib/source/library/lux/tool/compiler/language/lux/phase/generation/ruby/function.lux
@@ -28,8 +28,7 @@
[reference
[variable {"+" Register Variable}]]
[meta
- [archive {"+" Archive}
- ["[0]" artifact]
+ [archive
["[0]" dependency]]]]]]])
(def: .public (apply expression archive [functionS argsS+])
diff --git a/stdlib/source/library/lux/tool/compiler/meta/archive/dependency.lux b/stdlib/source/library/lux/tool/compiler/meta/archive/dependency.lux
index 70f5b5744..5961a373f 100644
--- a/stdlib/source/library/lux/tool/compiler/meta/archive/dependency.lux
+++ b/stdlib/source/library/lux/tool/compiler/meta/archive/dependency.lux
@@ -164,6 +164,17 @@
(monad.each ! (generation.remember archive))
(# ! each (set.of_list context_hash)))))
+(def: .public (path_dependencies archive value)
+ (All (_ anchor expression directive)
+ (-> Archive Path (Operation anchor expression directive (Set artifact.Dependency))))
+ (let [! phase.monad]
+ (|> value
+ (..path_references ..references)
+ (set.of_list symbol.hash)
+ set.list
+ (monad.each ! (generation.remember archive))
+ (# ! each (set.of_list context_hash)))))
+
(def: .public all
(-> (List (Set artifact.Dependency))
(Set artifact.Dependency))
diff --git a/stdlib/source/library/lux/tool/compiler/meta/packager/jvm.lux b/stdlib/source/library/lux/tool/compiler/meta/packager/jvm.lux
index bab2f6ed9..b4b1df413 100644
--- a/stdlib/source/library/lux/tool/compiler/meta/packager/jvm.lux
+++ b/stdlib/source/library/lux/tool/compiler/meta/packager/jvm.lux
@@ -269,4 +269,6 @@
.let [_ (do_to sink
(java/io/Flushable::flush)
(java/io/Closeable::close))]]
- (in (java/io/ByteArrayOutputStream::toByteArray buffer)))))
+ (in (|> buffer
+ java/io/ByteArrayOutputStream::toByteArray
+ {.#Left})))))