From 88131ea520f1b2749c239227463d521930c08d0a Mon Sep 17 00:00:00 2001 From: Eduardo Julian Date: Wed, 6 Mar 2019 21:18:25 -0400 Subject: Removed the "translation/common" hierarchy. --- luxc/src/lux/analyser/module.clj | 2 +- luxc/src/lux/compiler/jvm/proc/common.clj | 10 +-- stdlib/source/lux/control/concatenative.lux | 3 +- stdlib/source/lux/control/concurrency/actor.lux | 3 +- stdlib/source/lux/control/exception.lux | 3 +- stdlib/source/lux/macro/poly.lux | 3 +- .../phase/translation/common/reference.lux | 82 ---------------------- .../tool/compiler/phase/translation/js/case.lux | 5 +- .../compiler/phase/translation/js/function.lux | 3 +- .../compiler/phase/translation/js/reference.lux | 3 +- .../tool/compiler/phase/translation/reference.lux | 81 +++++++++++++++++++++ .../compiler/phase/translation/scheme/case.jvm.lux | 3 +- .../phase/translation/scheme/function.jvm.lux | 3 +- stdlib/source/lux/type/abstract.lux | 3 +- stdlib/source/lux/type/unit.lux | 3 +- 15 files changed, 99 insertions(+), 111 deletions(-) delete mode 100644 stdlib/source/lux/tool/compiler/phase/translation/common/reference.lux create mode 100644 stdlib/source/lux/tool/compiler/phase/translation/reference.lux diff --git a/luxc/src/lux/analyser/module.clj b/luxc/src/lux/analyser/module.clj index 5d72d5e87..70e463432 100644 --- a/luxc/src/lux/analyser/module.clj +++ b/luxc/src/lux/analyser/module.clj @@ -273,7 +273,7 @@ (return* state (&/T [(&/T [module name]) $def])) _ - ((&/fail-with-loc (str "[Analyser Error @ find-def] Cannot use unexported definition: " (str module &/+name-separator+ name) + ((&/fail-with-loc (str "[Analyser Error @ find-def] Cannot use private definition: " (str module &/+name-separator+ name) " at module: " current-module)) state)))) ((&/fail-with-loc (str "[Analyser Error @ find-def] Definition does not exist: " (str module &/+name-separator+ name) diff --git a/luxc/src/lux/compiler/jvm/proc/common.clj b/luxc/src/lux/compiler/jvm/proc/common.clj index 5cff63d86..96b2dcc31 100644 --- a/luxc/src/lux/compiler/jvm/proc/common.clj +++ b/luxc/src/lux/compiler/jvm/proc/common.clj @@ -452,12 +452,12 @@ "int" (case proc - "*" (compile-int-mul compile ?values special-args) - "/" (compile-int-div compile ?values special-args) - "%" (compile-int-rem compile ?values special-args) - "<" (compile-int-lt compile ?values special-args) + "*" (compile-int-mul compile ?values special-args) + "/" (compile-int-div compile ?values special-args) + "%" (compile-int-rem compile ?values special-args) + "<" (compile-int-lt compile ?values special-args) "frac" (compile-int-frac compile ?values special-args) - "char" (compile-int-char compile ?values special-args) + "char" (compile-int-char compile ?values special-args) ) "frac" diff --git a/stdlib/source/lux/control/concatenative.lux b/stdlib/source/lux/control/concatenative.lux index 5806ec898..c99526fb6 100644 --- a/stdlib/source/lux/control/concatenative.lux +++ b/stdlib/source/lux/control/concatenative.lux @@ -17,8 +17,7 @@ ["." code] ["s" syntax (#+ syntax:)] [syntax - ["cs" common] - [common + ["cs" common ["csr" reader] ["csw" writer]]]]]) diff --git a/stdlib/source/lux/control/concurrency/actor.lux b/stdlib/source/lux/control/concurrency/actor.lux index b47785142..7cd6a8fe1 100644 --- a/stdlib/source/lux/control/concurrency/actor.lux +++ b/stdlib/source/lux/control/concurrency/actor.lux @@ -16,8 +16,7 @@ ["." code] ["s" syntax (#+ syntax: Syntax)] [syntax - ["cs" common] - [common + ["cs" common ["csr" reader] ["csw" writer]]]] [type diff --git a/stdlib/source/lux/control/exception.lux b/stdlib/source/lux/control/exception.lux index f5d0721e9..9a357d8a1 100644 --- a/stdlib/source/lux/control/exception.lux +++ b/stdlib/source/lux/control/exception.lux @@ -14,8 +14,7 @@ ["." code] ["s" syntax (#+ syntax: Syntax)] [syntax - ["cs" common] - [common + ["cs" common ["csr" reader] ["csw" writer]]]]]) diff --git a/stdlib/source/lux/macro/poly.lux b/stdlib/source/lux/macro/poly.lux index 200d507eb..a683fe50a 100644 --- a/stdlib/source/lux/macro/poly.lux +++ b/stdlib/source/lux/macro/poly.lux @@ -23,8 +23,7 @@ ["." code] ["s" syntax (#+ Syntax syntax:)] [syntax - ["cs" common] - [common + ["cs" common ["csr" reader] ["csw" writer]]]] ["." type ("#/." equivalence) diff --git a/stdlib/source/lux/tool/compiler/phase/translation/common/reference.lux b/stdlib/source/lux/tool/compiler/phase/translation/common/reference.lux deleted file mode 100644 index af676ad85..000000000 --- a/stdlib/source/lux/tool/compiler/phase/translation/common/reference.lux +++ /dev/null @@ -1,82 +0,0 @@ -(.module: - [lux #* - [control - pipe] - [data - [text - format]] - [type (#+ :share)]] - [// - ["/." // - ["//." // ("#/." monad) - [// - [synthesis (#+ Synthesis)] - ["." reference (#+ Register Variable Reference)]]]]]) - -(signature: #export (System expression) - (: (-> Register expression) - local) - (: (-> Register expression) - foreign) - (: (All [anchor statement] - (-> Variable (///.Operation anchor expression statement))) - variable) - (: (All [anchor statement] - (-> Name (///.Operation anchor expression statement))) - constant) - (: (All [anchor statement] - (-> Reference (///.Operation anchor expression statement))) - reference)) - -(def: (variable-maker prefix variable) - (All [expression] - (-> Text (-> Text expression) - (-> Register expression))) - (|>> %n (format prefix) variable)) - -(def: #export foreign - (All [expression] - (-> (-> Text expression) - (-> Register expression))) - (variable-maker "f")) - -(def: #export local - (All [expression] - (-> (-> Text expression) - (-> Register expression))) - (variable-maker "l")) - -(def: #export (system constant variable) - (All [expression] - (-> (-> Text expression) (-> Text expression) - (System expression))) - (let [local (..local variable) - foreign (..foreign variable) - variable (:share [expression] - {(-> Text expression) - variable} - {(All [anchor statement] - (-> Variable (///.Operation anchor expression statement))) - (|>> (case> (#reference.Local register) - (local register) - - (#reference.Foreign register) - (foreign register)) - /////wrap)}) - constant (:share [expression] - {(-> Text expression) - constant} - {(All [anchor statement] - (-> Name (///.Operation anchor expression statement))) - (|>> ///.remember (/////map constant))})] - (structure - (def: local local) - (def: foreign foreign) - (def: variable variable) - (def: constant constant) - (def: reference - (|>> (case> (#reference.Constant value) - (constant value) - - (#reference.Variable value) - (variable value))))))) diff --git a/stdlib/source/lux/tool/compiler/phase/translation/js/case.lux b/stdlib/source/lux/tool/compiler/phase/translation/js/case.lux index 25522f112..889ad471b 100644 --- a/stdlib/source/lux/tool/compiler/phase/translation/js/case.lux +++ b/stdlib/source/lux/tool/compiler/phase/translation/js/case.lux @@ -16,15 +16,14 @@ ["//." reference] ["//." primitive] [// - [common - ["common-." reference]] + ["." reference] ["//." // ("#/." monad) [// [reference (#+ Register)] ["." synthesis (#+ Synthesis Path)]]]]]) (def: #export register - (common-reference.local _.var)) + (reference.local _.var)) (def: #export (let translate [valueS register bodyS]) (-> Phase [Synthesis Register Synthesis] diff --git a/stdlib/source/lux/tool/compiler/phase/translation/js/function.lux b/stdlib/source/lux/tool/compiler/phase/translation/js/function.lux index 5727b737d..0d0d659ab 100644 --- a/stdlib/source/lux/tool/compiler/phase/translation/js/function.lux +++ b/stdlib/source/lux/tool/compiler/phase/translation/js/function.lux @@ -16,8 +16,7 @@ ["." reference] ["//." case] ["/." // - [common - ["common-." reference]] + ["common-." reference] ["//." // ("#/." monad) [// [reference (#+ Register Variable)] diff --git a/stdlib/source/lux/tool/compiler/phase/translation/js/reference.lux b/stdlib/source/lux/tool/compiler/phase/translation/js/reference.lux index 0e4cd1489..9f8555788 100644 --- a/stdlib/source/lux/tool/compiler/phase/translation/js/reference.lux +++ b/stdlib/source/lux/tool/compiler/phase/translation/js/reference.lux @@ -4,8 +4,7 @@ ["_" js (#+ Expression)]]] [// [// - [common - ["." reference]]]]) + ["." reference]]]) (def: #export system (reference.system (: (-> Text Expression) _.var) diff --git a/stdlib/source/lux/tool/compiler/phase/translation/reference.lux b/stdlib/source/lux/tool/compiler/phase/translation/reference.lux new file mode 100644 index 000000000..878d96e83 --- /dev/null +++ b/stdlib/source/lux/tool/compiler/phase/translation/reference.lux @@ -0,0 +1,81 @@ +(.module: + [lux #* + [control + pipe] + [data + [text + format]] + [type (#+ :share)]] + ["." // + ["/." // ("#/." monad) + [// + [synthesis (#+ Synthesis)] + ["." reference (#+ Register Variable Reference)]]]]) + +(signature: #export (System expression) + (: (-> Register expression) + local) + (: (-> Register expression) + foreign) + (: (All [anchor statement] + (-> Variable (//.Operation anchor expression statement))) + variable) + (: (All [anchor statement] + (-> Name (//.Operation anchor expression statement))) + constant) + (: (All [anchor statement] + (-> Reference (//.Operation anchor expression statement))) + reference)) + +(def: (variable-maker prefix variable) + (All [expression] + (-> Text (-> Text expression) + (-> Register expression))) + (|>> %n (format prefix) variable)) + +(def: #export foreign + (All [expression] + (-> (-> Text expression) + (-> Register expression))) + (variable-maker "f")) + +(def: #export local + (All [expression] + (-> (-> Text expression) + (-> Register expression))) + (variable-maker "l")) + +(def: #export (system constant variable) + (All [expression] + (-> (-> Text expression) (-> Text expression) + (System expression))) + (let [local (..local variable) + foreign (..foreign variable) + variable (:share [expression] + {(-> Text expression) + variable} + {(All [anchor statement] + (-> Variable (//.Operation anchor expression statement))) + (|>> (case> (#reference.Local register) + (local register) + + (#reference.Foreign register) + (foreign register)) + ////wrap)}) + constant (:share [expression] + {(-> Text expression) + constant} + {(All [anchor statement] + (-> Name (//.Operation anchor expression statement))) + (|>> //.remember (////map constant))})] + (structure + (def: local local) + (def: foreign foreign) + (def: variable variable) + (def: constant constant) + (def: reference + (|>> (case> (#reference.Constant value) + (constant value) + + (#reference.Variable value) + (variable value))))))) diff --git a/stdlib/source/lux/tool/compiler/phase/translation/scheme/case.jvm.lux b/stdlib/source/lux/tool/compiler/phase/translation/scheme/case.jvm.lux index c20fea5fe..6d5cf911b 100644 --- a/stdlib/source/lux/tool/compiler/phase/translation/scheme/case.jvm.lux +++ b/stdlib/source/lux/tool/compiler/phase/translation/scheme/case.jvm.lux @@ -16,8 +16,7 @@ ["//." primitive] ["." reference] [// - [common - ["common-." reference]] + ["common-." reference] ["//." // ("#/." monad) ["." synthesis (#+ Synthesis Path)] [// diff --git a/stdlib/source/lux/tool/compiler/phase/translation/scheme/function.jvm.lux b/stdlib/source/lux/tool/compiler/phase/translation/scheme/function.jvm.lux index cc2caf056..bef6af902 100644 --- a/stdlib/source/lux/tool/compiler/phase/translation/scheme/function.jvm.lux +++ b/stdlib/source/lux/tool/compiler/phase/translation/scheme/function.jvm.lux @@ -16,8 +16,7 @@ ["." reference] ["//." case] ["/." // - [common - ["common-." reference]] + ["common-." reference] ["//." // ("#/." monad) [analysis (#+ Variant Tuple Environment Arity Abstraction Application Analysis)] [synthesis (#+ Synthesis)] diff --git a/stdlib/source/lux/type/abstract.lux b/stdlib/source/lux/type/abstract.lux index ccaa294b7..e59596b4d 100644 --- a/stdlib/source/lux/type/abstract.lux +++ b/stdlib/source/lux/type/abstract.lux @@ -14,8 +14,7 @@ ["." code] ["s" syntax (#+ Syntax syntax:)] [syntax - ["cs" common] - [common + ["cs" common ["csr" reader] ["csw" writer]]]] [type (#+ :cast)]]) diff --git a/stdlib/source/lux/type/unit.lux b/stdlib/source/lux/type/unit.lux index 3aece5ff1..69ff261b2 100644 --- a/stdlib/source/lux/type/unit.lux +++ b/stdlib/source/lux/type/unit.lux @@ -16,8 +16,7 @@ ["." code] ["s" syntax (#+ syntax:)] [syntax - ["cs" common] - [common + ["cs" common ["csr" reader] ["csw" writer]]]] [type -- cgit v1.2.3