diff options
Diffstat (limited to '')
200 files changed, 1053 insertions, 810 deletions
diff --git a/lux-jvm/source/program.lux b/lux-jvm/source/program.lux index a6c07bbd4..a597ce394 100644 --- a/lux-jvm/source/program.lux +++ b/lux-jvm/source/program.lux @@ -17,12 +17,12 @@ [collection [array (.only Array)]]] [meta - ["@" target (.only) - ["[0]" jvm - [bytecode (.only Bytecode)] - ["[1]/[0]" type - ["[1]/[0]" box]]]] - [compiler (.only) + [compiler + ["@" target (.only) + ["[0]" jvm + [bytecode (.only Bytecode)] + ["[1]/[0]" type + ["[1]/[0]" box]]]] [default ["[0]" platform (.only Platform)]] [meta @@ -157,16 +157,12 @@ (-> Any (Async Any)) (async.future (of world/environment.default exit +0))) -(def lux_compiler - (-> Any platform.Custom) - (|>> as_expected)) - (def _ (program [service cli.service] (let [context (context.jvm (cli.target service))] (exec (do async.monad [[loader host platform] (async.future ..platform) - _ (compositor.compiler ..lux_compiler + _ (compositor.compiler (|>> (as platform.Custom)) context ..expander (analysis.bundle loader host) diff --git a/stdlib/source/library/lux/abstract/apply.lux b/stdlib/source/library/lux/abstract/apply.lux index 69526ae86..df1e73a45 100644 --- a/stdlib/source/library/lux/abstract/apply.lux +++ b/stdlib/source/library/lux/abstract/apply.lux @@ -2,7 +2,8 @@ [library [lux (.except) [meta - ["@" target]]]] + [compiler + ["@" target]]]]] [// [monad (.only Monad do)] ["[0]" functor (.only Functor)]]) diff --git a/stdlib/source/library/lux/control/concurrency/atom.lux b/stdlib/source/library/lux/control/concurrency/atom.lux index 962149143..8068f29db 100644 --- a/stdlib/source/library/lux/control/concurrency/atom.lux +++ b/stdlib/source/library/lux/control/concurrency/atom.lux @@ -13,7 +13,8 @@ ["[0]" array ["[1]" \\unsafe]]]] [meta - ["@" target] + [compiler + ["@" target]] [type ["[0]" nominal (.except def)] ["[0]" variance (.only Mutable)]]]]]) diff --git a/stdlib/source/library/lux/control/concurrency/thread.lux b/stdlib/source/library/lux/control/concurrency/thread.lux index b30444a54..16ecebb90 100644 --- a/stdlib/source/library/lux/control/concurrency/thread.lux +++ b/stdlib/source/library/lux/control/concurrency/thread.lux @@ -17,8 +17,9 @@ ["n" nat] ["f" frac]]] [meta - ["@" target] - ["[0]" configuration]] + ["[0]" configuration] + [compiler + ["@" target]]] [world [time ["[0]" instant (.only Instant) (.use "[1]#[0]" order)] diff --git a/stdlib/source/library/lux/control/parser.lux b/stdlib/source/library/lux/control/parser.lux index c3c87c59f..9f2083573 100644 --- a/stdlib/source/library/lux/control/parser.lux +++ b/stdlib/source/library/lux/control/parser.lux @@ -13,11 +13,13 @@ [collection ["[0]" list (.use "[1]#[0]" functor monoid)]]]]]) -(type .public (Parser s a) - (-> s (Try [s a]))) +(type .public (Parser state of) + (-> state + (Try [state of]))) (def .public functor - (All (_ s) (Functor (Parser s))) + (All (_ state) + (Functor (Parser state))) (implementation (def (each f ma) (function (_ input) @@ -29,7 +31,8 @@ {try.#Failure msg}))))) (def .public apply - (All (_ s) (Apply (Parser s))) + (All (_ state) + (Apply (Parser state))) (implementation (def functor ..functor) @@ -48,7 +51,8 @@ {try.#Failure msg}))))) (def .public monad - (All (_ s) (Monad (Parser s))) + (All (_ state) + (Monad (Parser state))) (implementation (def functor ..functor) @@ -66,15 +70,18 @@ {try.#Failure msg}))))) (def .public (assertion message test) - (All (_ s) (-> Text Bit (Parser s Any))) + (All (_ state) + (-> Text Bit + (Parser state Any))) (function (_ input) (if test {try.#Success [input []]} {try.#Failure message}))) (def .public (maybe parser) - (All (_ s a) - (-> (Parser s a) (Parser s (Maybe a)))) + (All (_ state of) + (-> (Parser state of) + (Parser state (Maybe of)))) (function (_ input) (when (parser input) {try.#Success [input' x]} @@ -84,20 +91,23 @@ {try.#Success [input {.#None}]}))) (def .public (result parser input) - (All (_ s a) - (-> (Parser s a) s (Try [s a]))) + (All (_ state of) + (-> (Parser state of) state + (Try [state of]))) (parser input)) -(def .public (and first second) - (All (_ s a b) - (-> (Parser s a) (Parser s b) (Parser s [a b]))) +(def .public (and left right) + (All (_ state left right) + (-> (Parser state left) (Parser state right) + (Parser state (And left right)))) (do [! ..monad] - [head first] - (of ! each (|>> [head]) second))) + [head left] + (of ! each (|>> [head]) right))) (def .public (or left right) - (All (_ s a b) - (-> (Parser s a) (Parser s b) (Parser s (Or a b)))) + (All (_ state left right) + (-> (Parser state left) (Parser state right) + (Parser state (Or left right)))) (function (_ tokens) (when (left tokens) {try.#Success [tokens' output]} @@ -112,8 +122,9 @@ {try.#Failure error})))) (def .public (either this that) - (All (_ s a) - (-> (Parser s a) (Parser s a) (Parser s a))) + (All (_ state of) + (-> (Parser state of) (Parser state of) + (Parser state of))) (function (_ tokens) (when (this tokens) {try.#Failure _} @@ -123,8 +134,9 @@ success))) (def .public (some parser) - (All (_ s a) - (-> (Parser s a) (Parser s (List a)))) + (All (_ state of) + (-> (Parser state of) + (Parser state (List of)))) (function (_ input) (when (parser input) {try.#Success [input' head]} @@ -136,14 +148,17 @@ {try.#Success [input (list)]}))) (def .public (many parser) - (All (_ s a) - (-> (Parser s a) (Parser s (List a)))) + (All (_ state of) + (-> (Parser state of) + (Parser state (List of)))) (|> (..some parser) (..and parser) (of ..monad each (|>> {.#Item})))) (def .public (exactly amount parser) - (All (_ s a) (-> Nat (Parser s a) (Parser s (List a)))) + (All (_ state of) + (-> Nat (Parser state of) + (Parser state (List of)))) (when amount 0 (of ..monad in (list)) _ (do [! ..monad] @@ -153,13 +168,17 @@ (of ! each (|>> {.#Item x})))))) (def .public (at_least amount parser) - (All (_ s a) (-> Nat (Parser s a) (Parser s (List a)))) + (All (_ state of) + (-> Nat (Parser state of) + (Parser state (List of)))) (do [! ..monad] [minimum (..exactly amount parser)] (of ! each (list#composite minimum) (..some parser)))) (def .public (at_most amount parser) - (All (_ s a) (-> Nat (Parser s a) (Parser s (List a)))) + (All (_ state of) + (-> Nat (Parser state of) + (Parser state (List of)))) (when amount 0 (of ..monad in (list)) _ (function (_ input) @@ -173,7 +192,9 @@ {try.#Success [input (list)]})))) (def .public (between minimum additional parser) - (All (_ s a) (-> Nat Nat (Parser s a) (Parser s (List a)))) + (All (_ state of) + (-> Nat Nat (Parser state of) + (Parser state (List of)))) (do [! ..monad] [minimum (..exactly minimum parser)] (when additional @@ -182,7 +203,9 @@ (..at_most additional parser))))) (def .public (separated_by separator parser) - (All (_ s a b) (-> (Parser s b) (Parser s a) (Parser s (List a)))) + (All (_ state separator of) + (-> (Parser state separator) (Parser state of) + (Parser state (List of)))) (do [! ..monad] [?x (..maybe parser)] (when ?x @@ -196,7 +219,9 @@ (in {.#End})))) (def .public (not parser) - (All (_ s a) (-> (Parser s a) (Parser s Any))) + (All (_ state of) + (-> (Parser state of) + (Parser state Any))) (function (_ input) (when (parser input) {try.#Failure msg} @@ -206,7 +231,9 @@ {try.#Failure "Expected to fail; yet succeeded."}))) (def .public (failure message) - (All (_ s a) (-> Text (Parser s a))) + (All (_ state of) + (-> Text + (Parser state of))) (function (_ input) {try.#Failure message})) @@ -223,7 +250,9 @@ {try.#Failure error}))) (def .public (else value parser) - (All (_ s a) (-> a (Parser s a) (Parser s a))) + (All (_ state of) + (-> of (Parser state of) + (Parser state of))) (function (_ input) (when (parser input) {try.#Failure error} @@ -233,37 +262,49 @@ success))) (def .public remaining - (All (_ s) (Parser s s)) + (All (_ state) + (Parser state state)) (function (_ inputs) {try.#Success [inputs inputs]})) (def .public (rec parser) - (All (_ s a) (-> (-> (Parser s a) (Parser s a)) (Parser s a))) + (All (_ state of) + (-> (-> (Parser state of) + (Parser state of)) + (Parser state of))) (function (_ inputs) (..result (parser (rec parser)) inputs))) (def .public (after param subject) - (All (_ s _ a) (-> (Parser s _) (Parser s a) (Parser s a))) + (All (_ state _ of) + (-> (Parser state _) (Parser state of) + (Parser state of))) (do ..monad [_ param] subject)) (def .public (before param subject) - (All (_ s _ a) (-> (Parser s _) (Parser s a) (Parser s a))) + (All (_ state _ of) + (-> (Parser state _) (Parser state of) + (Parser state of))) (do ..monad [output subject _ param] (in output))) (def .public (only test parser) - (All (_ s a) (-> (-> a Bit) (Parser s a) (Parser s a))) + (All (_ state of) + (-> (-> of Bit) (Parser state of) + (Parser state of))) (do ..monad [output parser _ (..assertion "Constraint failed." (test output))] (in output))) (def .public (parses? parser) - (All (_ s a) (-> (Parser s a) (Parser s Bit))) + (All (_ state of) + (-> (Parser state of) + (Parser state Bit))) (function (_ input) (when (parser input) {try.#Success [input' _]} @@ -273,7 +314,9 @@ {try.#Success [input false]}))) (def .public (parses parser) - (All (_ s a) (-> (Parser s a) (Parser s Any))) + (All (_ state of) + (-> (Parser state of) + (Parser state Any))) (function (_ input) (when (parser input) {try.#Success [input' _]} @@ -283,7 +326,9 @@ {try.#Failure error}))) (def .public (speculative parser) - (All (_ s a) (-> (Parser s a) (Parser s a))) + (All (_ state of) + (-> (Parser state of) + (Parser state of))) (function (_ input) (when (parser input) {try.#Success [input' output]} @@ -293,7 +338,9 @@ failure))) (def .public (codec codec parser) - (All (_ s a z) (-> (Codec a z) (Parser s a) (Parser s z))) + (All (_ state medium of) + (-> (Codec medium of) (Parser state medium) + (Parser state of))) (function (_ input) (when (parser input) {try.#Success [input' to_decode]} diff --git a/stdlib/source/library/lux/control/reader.lux b/stdlib/source/library/lux/control/reader.lux index 245fb0077..0edf8ca10 100644 --- a/stdlib/source/library/lux/control/reader.lux +++ b/stdlib/source/library/lux/control/reader.lux @@ -4,9 +4,7 @@ [abstract [apply (.only Apply)] ["[0]" functor (.only Functor)] - ["[0]" monad (.only Monad do)]] - [meta - ["@" target]]]]) + ["[0]" monad (.only Monad do)]]]]) (type .public (Reader r a) (-> r a)) diff --git a/stdlib/source/library/lux/control/thread.lux b/stdlib/source/library/lux/control/thread.lux index 222ea8b2c..1d600628d 100644 --- a/stdlib/source/library/lux/control/thread.lux +++ b/stdlib/source/library/lux/control/thread.lux @@ -12,7 +12,6 @@ ["[0]" array ["[1]" \\unsafe (.only Array)]]]] [meta - ["@" target] [type ["[0]" nominal (.except def)] ["[0]" variance (.only Mutable)]]]]]) diff --git a/stdlib/source/library/lux/control/try.lux b/stdlib/source/library/lux/control/try.lux index c9ed542d7..136ebc486 100644 --- a/stdlib/source/library/lux/control/try.lux +++ b/stdlib/source/library/lux/control/try.lux @@ -7,7 +7,6 @@ ["[0]" functor (.only Functor)] ["[0]" monad (.only Monad do)]] [meta - ["@" target] ["[0]" location]]]]) (type .public (Try a) diff --git a/stdlib/source/library/lux/control/writer.lux b/stdlib/source/library/lux/control/writer.lux index 2f5069f46..3253320d2 100644 --- a/stdlib/source/library/lux/control/writer.lux +++ b/stdlib/source/library/lux/control/writer.lux @@ -7,7 +7,8 @@ ["[0]" functor (.only Functor)] ["[0]" monad (.only Monad do)]] [meta - ["@" target]]]]) + [compiler + ["@" target]]]]]) (type .public (Writer log value) (Record diff --git a/stdlib/source/library/lux/data/collection/list.lux b/stdlib/source/library/lux/data/collection/list.lux index 3ec1cd2c8..e88a8d798 100644 --- a/stdlib/source/library/lux/data/collection/list.lux +++ b/stdlib/source/library/lux/data/collection/list.lux @@ -20,7 +20,8 @@ [number ["n" nat]]] [meta - ["@" target]]]]) + [compiler + ["@" target]]]]]) ... (type (List a) ... #End diff --git a/stdlib/source/library/lux/data/collection/sequence.lux b/stdlib/source/library/lux/data/collection/sequence.lux index 2d114ca91..0863ef0dd 100644 --- a/stdlib/source/library/lux/data/collection/sequence.lux +++ b/stdlib/source/library/lux/data/collection/sequence.lux @@ -29,7 +29,6 @@ ["n" nat] ["[0]" i64]]] [meta - ["@" target] ["[0]" code (.only) ["<[1]>" \\parser (.only Parser)]] [macro diff --git a/stdlib/source/library/lux/data/collection/tree/zipper.lux b/stdlib/source/library/lux/data/collection/tree/zipper.lux index b06a5c591..28d4f66bb 100644 --- a/stdlib/source/library/lux/data/collection/tree/zipper.lux +++ b/stdlib/source/library/lux/data/collection/tree/zipper.lux @@ -15,7 +15,8 @@ [collection ["[0]" list (.use "[1]#[0]" functor monoid)]]] [meta - ["@" target]]]] + [compiler + ["@" target]]]]] ["[0]" // (.only Tree) (.use "[1]#[0]" functor)]) (type (Family Zipper a) diff --git a/stdlib/source/library/lux/data/text.lux b/stdlib/source/library/lux/data/text.lux index a2fe70b35..9d9c43e69 100644 --- a/stdlib/source/library/lux/data/text.lux +++ b/stdlib/source/library/lux/data/text.lux @@ -18,7 +18,8 @@ ["n" nat] ["[0]" i64]]] [meta - ["@" target]]]] + [compiler + ["@" target]]]]] [/ ["[0]" char (.only Char)]]) diff --git a/stdlib/source/library/lux/data/text/buffer.lux b/stdlib/source/library/lux/data/text/buffer.lux index 5b1bf4a6f..54adf6087 100644 --- a/stdlib/source/library/lux/data/text/buffer.lux +++ b/stdlib/source/library/lux/data/text/buffer.lux @@ -15,9 +15,10 @@ [number ["n" nat]]] [meta - ["@" target] [type - ["[0]" nominal (.except def)]]]]] + ["[0]" nominal (.except def)]] + [compiler + ["@" target]]]]] ["[0]" //]) (with_expansions [<jvm> (these (import java/lang/CharSequence diff --git a/stdlib/source/library/lux/data/text/encoding/utf8.lux b/stdlib/source/library/lux/data/text/encoding/utf8.lux index e6db26578..f03d07cfb 100644 --- a/stdlib/source/library/lux/data/text/encoding/utf8.lux +++ b/stdlib/source/library/lux/data/text/encoding/utf8.lux @@ -9,7 +9,8 @@ [data ["[0]" binary (.only Binary)]] [meta - ["@" target]]]] + [compiler + ["@" target]]]]] ["[0]" //]) (with_expansions [<jvm> (these (ffi.import java/lang/String diff --git a/stdlib/source/library/lux/debug.lux b/stdlib/source/library/lux/debug.lux index 5ee1ddbdf..39caa6c5e 100644 --- a/stdlib/source/library/lux/debug.lux +++ b/stdlib/source/library/lux/debug.lux @@ -26,7 +26,6 @@ ["n" nat] ["i" int]]] ["[0]" meta (.only) - ["@" target] ["[0]" code (.only) ["<[1]>" \\parser]] [macro @@ -34,7 +33,9 @@ ["[0]" template] ["[0]" syntax (.only syntax)]] ["[0]" type (.only) - ["<[1]>" \\parser (.only Parser)]]] + ["<[1]>" \\parser (.only Parser)]] + [compiler + ["@" target]]] [world [time (.only Time) [instant (.only Instant)] diff --git a/stdlib/source/library/lux/ffi.jvm.lux b/stdlib/source/library/lux/ffi.jvm.lux index b8c9650d4..b38df79d8 100644 --- a/stdlib/source/library/lux/ffi.jvm.lux +++ b/stdlib/source/library/lux/ffi.jvm.lux @@ -31,17 +31,18 @@ ["[0]" context]] ["[0]" type (.use "[1]#[0]" equivalence) ["[0]" check]] - [target - ["[0]" jvm - [encoding - ["[0]" name (.only External)]] - ["[1]" type (.only Type Argument Typed) - ["[0]" category (.only Void Value' Value Return' Return Method Primitive Object Class Array Var Parameter Declaration)] - ["[0]" box] - ["[0]" descriptor] - ["[0]" signature] - ["[0]" reflection] - ["[0]" parser]]]]]]]) + [compiler + [target + ["[0]" jvm + [encoding + ["[0]" name (.only External)]] + ["[1]" type (.only Type Argument Typed) + ["[0]" category (.only Void Value' Value Return' Return Method Primitive Object Class Array Var Parameter Declaration)] + ["[0]" box] + ["[0]" descriptor] + ["[0]" signature] + ["[0]" reflection] + ["[0]" parser]]]]]]]]) (def internal (-> External Text) diff --git a/stdlib/source/library/lux/ffi.lux b/stdlib/source/library/lux/ffi.lux index 8afc76f04..b0aa3cd6b 100644 --- a/stdlib/source/library/lux/ffi.lux +++ b/stdlib/source/library/lux/ffi.lux @@ -23,10 +23,10 @@ ["[0]" template]] [type (.only sharing) ["[0]" nominal (.except #name def)]] - ["@" target (.only) - ["[0]" js] - ["[0]" python]] [compiler + ["@" target (.only) + ["[0]" js] + ["[0]" python]] [arity (.only Arity)] [reference (.only Reference) [variable (.only Register)]] diff --git a/stdlib/source/library/lux/ffi.php.lux b/stdlib/source/library/lux/ffi.php.lux index 7eaa7b31a..578f57a5f 100644 --- a/stdlib/source/library/lux/ffi.php.lux +++ b/stdlib/source/library/lux/ffi.php.lux @@ -14,7 +14,6 @@ [collection ["[0]" list (.use "[1]#[0]" functor)]]] ["[0]" meta (.only) - ["@" target] [type ["[0]" nominal (.except def)]] ["[0]" code (.only) diff --git a/stdlib/source/library/lux/ffi.scm.lux b/stdlib/source/library/lux/ffi.scm.lux index 8db541680..585bf4e2f 100644 --- a/stdlib/source/library/lux/ffi.scm.lux +++ b/stdlib/source/library/lux/ffi.scm.lux @@ -14,7 +14,6 @@ [collection ["[0]" list (.use "[1]#[0]" functor)]]] ["[0]" meta (.only) - ["@" target] [type ["[0]" nominal (.except def)]] ["[0]" code (.only) diff --git a/stdlib/source/library/lux/math.lux b/stdlib/source/library/lux/math.lux index de44e4d21..c19059e81 100644 --- a/stdlib/source/library/lux/math.lux +++ b/stdlib/source/library/lux/math.lux @@ -13,7 +13,6 @@ ["[0]" list (.use "[1]#[0]" mix)]]] [meta [extension (.only analysis)] - ["@" target] ["[0]" location] ["[0]" code ["<[1]>" \\parser]] @@ -22,6 +21,7 @@ [type ["[0]" check]] [compiler + ["@" target] [language [lux ["[0]" phase (.use "[1]#[0]" monad)] diff --git a/stdlib/source/library/lux/math/number/frac.lux b/stdlib/source/library/lux/math/number/frac.lux index 6dcac2a10..60c730835 100644 --- a/stdlib/source/library/lux/math/number/frac.lux +++ b/stdlib/source/library/lux/math/number/frac.lux @@ -16,7 +16,8 @@ [data ["[0]" text]] [meta - ["@" target]]]] + [compiler + ["@" target]]]]] ["[0]" // ["[1][0]" i64] ["[1][0]" nat] diff --git a/stdlib/source/library/lux/math/number/i32.lux b/stdlib/source/library/lux/math/number/i32.lux index 3fc667291..3d88a04e4 100644 --- a/stdlib/source/library/lux/math/number/i32.lux +++ b/stdlib/source/library/lux/math/number/i32.lux @@ -8,10 +8,11 @@ ["[0]" maybe] ["[0]" try]] [meta - ["@" target] ["[0]" static] ["[0]" type (.only) - ["?[1]" \\parser]]]]] + ["?[1]" \\parser]] + [compiler + ["@" target]]]]] [// ["[0]" i64]]) diff --git a/stdlib/source/library/lux/meta/compiler/default/init.lux b/stdlib/source/library/lux/meta/compiler/default/init.lux index 8c12039a6..af5497d49 100644 --- a/stdlib/source/library/lux/meta/compiler/default/init.lux +++ b/stdlib/source/library/lux/meta/compiler/default/init.lux @@ -17,9 +17,10 @@ ["[0]" set] ["[0]" sequence (.use "[1]#[0]" functor)]]] ["[0]" meta (.only) - ["@" target (.only Target)] ["[0]" configuration (.only Configuration)] - ["[0]" version]] + ["[0]" version] + [compiler + [target (.only Target)]]] [world ["[0]" file]]]] ["[0]" // diff --git a/stdlib/source/library/lux/meta/compiler/default/platform.lux b/stdlib/source/library/lux/meta/compiler/default/platform.lux index a17939fe9..15bc9ed0a 100644 --- a/stdlib/source/library/lux/meta/compiler/default/platform.lux +++ b/stdlib/source/library/lux/meta/compiler/default/platform.lux @@ -26,11 +26,12 @@ ["[0]" set (.only Set)] ["[0]" list (.use "[1]#[0]" monoid functor mix)]]] ["[0]" meta (.only) - ["@" target] ["[0]" static] ["[0]" configuration (.only Configuration)] [type (.only sharing) - ["[0]" check]]] + ["[0]" check]] + [compiler + ["@" target]]] [world ["[0]" file (.only Path)] ["[0]" console]]]] @@ -759,7 +760,9 @@ (def .public Custom Type - (type_literal (-> (List Text) (Try ///.Custom)))) + (type_literal + (-> (List Text) + (Try ///.Custom)))) (exception.def .public (invalid_custom_compiler [definition type]) (Exception [Symbol Type]) diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/analysis/js.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/analysis/js.lux index a703fba70..da1d3845d 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/analysis/js.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/analysis/js.lux @@ -12,8 +12,9 @@ ["[0]" dictionary] ["[0]" list]]] ["[0]" meta (.only) - ["@" target (.only) - ["_" js]] + [compiler + ["@" target (.only) + ["_" js]]] ["[0]" code ["<[1]>" \\parser (.only Parser)]] ["[0]" type (.only) diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/analysis/jvm.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/analysis/jvm.lux index 420daefdb..51108b50d 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/analysis/jvm.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/analysis/jvm.lux @@ -34,29 +34,30 @@ [macro ["^" pattern] ["[0]" template]] - [target - ["[0]" jvm - ["_" bytecode (.only Bytecode) (.use "[1]#[0]" monad)] - ["[0]!" reflection] - ["[0]" modifier (.only Modifier) (.use "[1]#[0]" monoid)] - ["[0]" attribute] - ["[0]" field] - ["[0]" version] - ["[0]" method] - ["[0]" class] - ["[0]" constant (.only) - ["[0]" pool (.only Resource)]] - [encoding - ["[0]" name (.only External)]] - ["[1]" type (.only Type Argument Typed) (.use "[1]#[0]" equivalence) - ["[0]" category (.only Void Value' Value Return' Return Primitive Object Class Array Var Parameter Method)] - ["[0]" box] - ["[0]" reflection] - ["[0]" descriptor] - ["[0]" signature] - ["[0]" parser] - ["[0]" alias (.only Aliasing)] - ["[0]T" lux (.only Mapping)]]]] + [compiler + [target + ["[0]" jvm + ["_" bytecode (.only Bytecode) (.use "[1]#[0]" monad)] + ["[0]!" reflection] + ["[0]" modifier (.only Modifier) (.use "[1]#[0]" monoid)] + ["[0]" attribute] + ["[0]" field] + ["[0]" version] + ["[0]" method] + ["[0]" class] + ["[0]" constant (.only) + ["[0]" pool (.only Resource)]] + [encoding + ["[0]" name (.only External)]] + ["[1]" type (.only Type Argument Typed) (.use "[1]#[0]" equivalence) + ["[0]" category (.only Void Value' Value Return' Return Primitive Object Class Array Var Parameter Method)] + ["[0]" box] + ["[0]" reflection] + ["[0]" descriptor] + ["[0]" signature] + ["[0]" parser] + ["[0]" alias (.only Aliasing)] + ["[0]T" lux (.only Mapping)]]]]] ["[0]" type (.use "[1]#[0]" equivalence) ["[0]" check (.only Check) (.use "[1]#[0]" monad)]]]]] ["[0]" // diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/analysis/lua.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/analysis/lua.lux index 092ca0575..bfa27b8ed 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/analysis/lua.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/analysis/lua.lux @@ -12,8 +12,9 @@ ["[0]" dictionary] ["[0]" list]]] ["[0]" meta (.only) - ["@" target (.only) - ["_" lua]] + [compiler + ["@" target (.only) + ["_" lua]]] ["[0]" code ["<[1]>" \\parser (.only Parser)]] ["[0]" type (.only) diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/analysis/python.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/analysis/python.lux index 49721e9df..48e7cfc4d 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/analysis/python.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/analysis/python.lux @@ -12,8 +12,9 @@ ["[0]" dictionary] ["[0]" list]]] ["[0]" meta (.only) - ["@" target (.only) - ["_" python]] + [compiler + ["@" target (.only) + ["_" python]]] ["[0]" code ["<[1]>" \\parser (.only Parser)]] ["[0]" type (.only) diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/analysis/ruby.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/analysis/ruby.lux index 9e85ce56b..6f1931791 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/analysis/ruby.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/analysis/ruby.lux @@ -12,8 +12,9 @@ ["[0]" dictionary] ["[0]" list]]] ["[0]" meta (.only) - ["@" target (.only) - ["_" ruby]] + [compiler + ["@" target (.only) + ["_" ruby]]] ["[0]" code ["<[1]>" \\parser (.only Parser)]] ["[0]" type (.only) diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/declaration/jvm.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/declaration/jvm.lux index c99eb4832..8e342547b 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/declaration/jvm.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/declaration/jvm.lux @@ -33,27 +33,27 @@ ["[0]" template]] [type ["[0]" check (.only Check)]] - [target - [jvm - ["_" bytecode (.only Bytecode) (.use "[1]#[0]" monad)] - ["[0]" modifier (.only Modifier) (.use "[1]#[0]" monoid)] - ["[0]" attribute] - ["[0]" field] - ["[0]" version] - ["[0]" method (.only Method)] - ["[0]" class] - ["[0]" constant (.only) - ["[0]" pool (.only Resource)]] - [encoding - ["[0]" name (.only External)]] - ["[0]" type (.only Type Constraint Argument Typed) - [category (.only Void Value Return Primitive Object Class Array Var Parameter)] - ["[0]T" lux (.only Mapping)] - ["[0]" signature] - ["[0]" reflection] - ["[0]" descriptor (.only Descriptor)] - ["[0]" parser]]]] [compiler + [target + [jvm + ["_" bytecode (.only Bytecode) (.use "[1]#[0]" monad)] + ["[0]" modifier (.only Modifier) (.use "[1]#[0]" monoid)] + ["[0]" attribute] + ["[0]" field] + ["[0]" version] + ["[0]" method (.only Method)] + ["[0]" class] + ["[0]" constant (.only) + ["[0]" pool (.only Resource)]] + [encoding + ["[0]" name (.only External)]] + ["[0]" type (.only Type Constraint Argument Typed) + [category (.only Void Value Return Primitive Object Class Array Var Parameter)] + ["[0]T" lux (.only Mapping)] + ["[0]" signature] + ["[0]" reflection] + ["[0]" descriptor (.only Descriptor)] + ["[0]" parser]]]] [reference [variable (.only Register)]] [meta @@ -426,7 +426,7 @@ [[(n.+ <shift> jvm_register) (all _.composite (<load> jvm_register) - (value.wrap <type>) + (value.boxed <type>) (_.astore lux_register))]]] (`` (cond (,, (with_template [<shift> <load> <type>] [(of type.equivalence = <type> argumentT) @@ -510,7 +510,7 @@ {.#Right returnT} (template.let [(unwrap_primitive <return> <type>) [(all _.composite - (value.unwrap <type>) + (value.primitive <type>) <return>)]] (`` (cond (,, (with_template [<return> <type>] [(of type.equivalence = <type> returnT) diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/declaration/lux.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/declaration/lux.lux index e4d405e2c..590ae56c6 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/declaration/lux.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/declaration/lux.lux @@ -23,7 +23,6 @@ [number ["n" nat]]] ["[0]" meta (.only) - ["@" target] ["[0]" code ["<[1]>" \\parser (.only Parser)]] [macro diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/js/common.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/js/common.lux index 407f22b4f..5a3e679ac 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/js/common.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/js/common.lux @@ -16,11 +16,11 @@ [number ["f" frac]]] [meta - ["@" target (.only) - ["_" js (.only Literal Expression Statement)]] [macro ["^" pattern]] [compiler + ["@" target (.only) + ["_" js (.only Literal Expression Statement)]] [meta [archive (.only Archive)]]]]]] [///// diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/js/host.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/js/host.lux index cae36908d..f34f3f25f 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/js/host.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/js/host.lux @@ -11,8 +11,9 @@ ["[0]" dictionary] ["[0]" list]]] [meta - [target - ["_" js (.only Var Expression)]]]]] + [compiler + [target + ["_" js (.only Var Expression)]]]]]] [// [common (.only custom)] [//// diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/jvm/common.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/jvm/common.lux index 654f1b008..4b6b3a259 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/jvm/common.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/jvm/common.lux @@ -18,13 +18,14 @@ ["f" frac] ["[0]" i32]]] [meta - [target - [jvm - ["_" bytecode (.only Label Bytecode) (.use "[1]#[0]" monad)] - [encoding - ["[0]" signed (.only S4)]] - ["[0]" type (.only Type) - [category (.only Primitive Class)]]]]]]] + [compiler + [target + [jvm + ["_" bytecode (.only Label Bytecode) (.use "[1]#[0]" monad)] + [encoding + ["[0]" signed (.only S4)]] + ["[0]" type (.only Type) + [category (.only Primitive Class)]]]]]]]] ["[0]" ///// ["[0]" extension] [translation @@ -70,12 +71,12 @@ (Bytecode Any) (all _.composite _.i2l - (///value.wrap type.long))) + (///value.boxed type.long))) (def jvm_int (Bytecode Any) (all _.composite - (///value.unwrap type.long) + (///value.primitive type.long) _.l2i)) (def (predicate bytecode) @@ -129,7 +130,7 @@ (in (do _.monad [@else _.new_label] (all _.composite - inputG (///value.unwrap type.long) _.l2i + inputG (///value.primitive type.long) _.l2i (_.lookupswitch @else table) conditionalsG (_.set_label @else) @@ -162,9 +163,9 @@ [(def (<name> [maskG inputG]) (Binary (Bytecode Any)) (all _.composite - inputG (///value.unwrap type.long) - maskG (///value.unwrap type.long) - <op> (///value.wrap type.long)))] + inputG (///value.primitive type.long) + maskG (///value.primitive type.long) + <op> (///value.boxed type.long)))] [i64::and _.land] [i64::or _.lor] @@ -175,9 +176,9 @@ [(def (<name> [shiftG inputG]) (Binary (Bytecode Any)) (all _.composite - inputG (///value.unwrap type.long) + inputG (///value.primitive type.long) shiftG ..jvm_int - <op> (///value.wrap type.long)))] + <op> (///value.boxed type.long)))] [i64::left_shifted _.lshl] [i64::right_shifted _.lushr] @@ -187,9 +188,9 @@ [(def (<name> [paramG subjectG]) (Binary (Bytecode Any)) (all _.composite - subjectG (///value.unwrap <type>) - paramG (///value.unwrap <type>) - <op> (///value.wrap <type>)))] + subjectG (///value.primitive <type>) + paramG (///value.primitive <type>) + <op> (///value.boxed <type>)))] [i64::+ type.long _.ladd] [i64::- type.long _.lsub] @@ -209,8 +210,8 @@ [(def (<name> [paramG subjectG]) (Binary (Bytecode Any)) (all _.composite - subjectG (///value.unwrap <type>) - paramG (///value.unwrap <type>) + subjectG (///value.primitive <type>) + paramG (///value.primitive <type>) <cmp> <reference> (..predicate _.if_icmpeq)))] @@ -235,26 +236,26 @@ <transform>))] [i64::f64 - (///value.unwrap type.long) + (///value.primitive type.long) (all _.composite _.l2d - (///value.wrap type.double))] + (///value.boxed type.double))] [i64::char - (///value.unwrap type.long) + (///value.primitive type.long) (all _.composite _.l2i _.i2c (..::toString ..$Character type.char))] [f64::i64 - (///value.unwrap type.double) + (///value.primitive type.double) (all _.composite _.d2l - (///value.wrap type.long))] + (///value.boxed type.long))] [f64::encode - (///value.unwrap type.double) + (///value.primitive type.double) (..::toString ..$Double type.double)] [f64::decode @@ -322,7 +323,7 @@ [text::= ..no_op ..no_op (_.invokevirtual ..$Object "equals" (type.method [(list) (list ..$Object) type.boolean (list)])) - (///value.wrap type.boolean)] + (///value.boxed type.boolean)] [text::< (_.checkcast $String) (_.checkcast $String) (_.invokevirtual ..$String "compareTo" (type.method [(list) (list ..$String) type.int (list)])) (..predicate _.iflt)] diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/jvm/host.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/jvm/host.lux index 522cf231b..e6d606ce9 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/jvm/host.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/jvm/host.lux @@ -28,24 +28,25 @@ [macro ["^" pattern] ["[0]" template]] - [target - [jvm - ["[0]" version] - ["[0]" modifier (.use "[1]#[0]" monoid)] - ["[0]" method (.only Method)] - ["[0]" class (.only Class)] - [constant - [pool (.only Resource)]] - [encoding - ["[0]" name]] - ["_" bytecode (.only Bytecode) (.use "[1]#[0]" monad) - ["__" instruction (.only Primitive_Array_Type)]] - ["[0]" type (.only Type Typed Argument) - ["[0]" category (.only Void Value' Value Return' Return Primitive Object Array Var Parameter)] - ["[0]" box] - ["[0]" reflection] - ["[0]" signature] - ["[0]" parser]]]]]]] + [compiler + [target + [jvm + ["[0]" version] + ["[0]" modifier (.use "[1]#[0]" monoid)] + ["[0]" method (.only Method)] + ["[0]" class (.only Class)] + [constant + [pool (.only Resource)]] + [encoding + ["[0]" name]] + ["_" bytecode (.only Bytecode) (.use "[1]#[0]" monad) + ["__" instruction (.only Primitive_Array_Type)]] + ["[0]" type (.only Type Typed Argument) + ["[0]" category (.only Void Value' Value Return' Return Primitive Object Array Var Parameter)] + ["[0]" box] + ["[0]" reflection] + ["[0]" signature] + ["[0]" parser]]]]]]]] ["[0]" // [common (.only custom)] ["///[1]" //// @@ -592,7 +593,7 @@ (in (all _.composite objectG (_.instanceof (type.class class (list))) - (///value.wrap type.boolean)))))])) + (///value.boxed type.boolean)))))])) (def object::cast Handler @@ -606,13 +607,13 @@ (text#= <object> to)) (all _.composite valueG - (///value.wrap <type>)) + (///value.boxed <type>)) (and (text#= <object> from) (text#= (..reflection <type>) to)) (all _.composite valueG - (///value.unwrap <type>))] + (///value.primitive <type>))] [box.boolean type.boolean] [box.byte type.byte] @@ -1099,7 +1100,7 @@ (list#each (function (_ [register [type term]]) (let [then! (when (type.primitive? type) {.#Right type} - (///value.unwrap type) + (///value.primitive type) {.#Left type} (_.checkcast type))] @@ -1161,7 +1162,7 @@ {.#Right returnT} (template.let [(unwrap_primitive <return> <type>) [(all _.composite - (///value.unwrap <type>) + (///value.primitive <type>) <return>)]] (`` (cond (,, (with_template [<return> <type>] [(of type.equivalence = <type> returnT) @@ -1216,7 +1217,7 @@ [[(n.+ <shift> jvm_register) (all _.composite (<load> jvm_register) - (///value.wrap <type>) + (///value.boxed <type>) (_.astore lux_register))]]] (`` (cond (,, (with_template [<shift> <load> <type>] [(of type.equivalence = <type> argumentT) diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/lua/common.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/lua/common.lux index e9a458146..84afea3dd 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/lua/common.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/lua/common.lux @@ -21,9 +21,9 @@ [meta [macro ["^" pattern]] - ["@" target (.only) - ["_" lua (.only Expression Statement)]] [compiler + ["@" target (.only) + ["_" lua (.only Expression Statement)]] [meta [archive (.only Archive)]]]]]] [///// diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/lua/host.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/lua/host.lux index d27a45487..a57d8122f 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/lua/host.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/lua/host.lux @@ -13,8 +13,9 @@ [text ["%" \\format (.only format)]]] [meta - [target - ["_" lua (.only Var Expression)]]]]] + [compiler + [target + ["_" lua (.only Var Expression)]]]]]] ["[0]" // ["[1][0]" common (.only custom)] ["///[1]" //// diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/python/common.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/python/common.lux index ad59ba175..8a6993af0 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/python/common.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/python/common.lux @@ -21,9 +21,9 @@ [meta [macro ["^" pattern]] - [target - ["_" python (.only Expression Statement)]] [compiler + [target + ["_" python (.only Expression Statement)]] [meta [archive (.only Archive)]]]]]] [///// diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/python/host.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/python/host.lux index 8257f1fb1..10bec9e24 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/python/host.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/python/host.lux @@ -13,8 +13,9 @@ ["[0]" dictionary] ["[0]" list]]] [meta - [target - ["_" python (.only Expression SVar)]]]]] + [compiler + [target + ["_" python (.only Expression SVar)]]]]]] [// [common (.only custom)] [//// diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/ruby/common.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/ruby/common.lux index f5facd483..96ffcb0c6 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/ruby/common.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/ruby/common.lux @@ -21,9 +21,9 @@ [meta [macro ["^" pattern]] - [target - ["_" ruby (.only Expression Statement)]] [compiler + [target + ["_" ruby (.only Expression Statement)]] [meta [archive (.only Archive)]]]]]] [///// diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/ruby/host.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/ruby/host.lux index aebe5f445..b8321b637 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/ruby/host.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/extension/translation/ruby/host.lux @@ -13,8 +13,9 @@ [text ["%" \\format (.only format)]]] [meta - [target - ["_" ruby (.only Var Expression)]]]]] + [compiler + [target + ["_" ruby (.only Var Expression)]]]]]] [// [common (.only custom)] [//// diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/c++/primitive.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/c++/primitive.lux index 6deddbdd5..a3e90178d 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/c++/primitive.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/c++/primitive.lux @@ -2,8 +2,9 @@ [library [lux (.except i64) [meta - [target - ["_" c++ (.only Literal Expression)]]]]]) + [compiler + [target + ["_" c++ (.only Literal Expression)]]]]]]) (def .public bit (-> Bit diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/c++/runtime.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/c++/runtime.lux index 7e29191ac..c03a1a813 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/c++/runtime.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/c++/runtime.lux @@ -8,8 +8,9 @@ ["[0]" code] [macro [syntax (.only syntax)]] - [target - ["_" c++]]]]]) + [compiler + [target + ["_" c++]]]]]]) (def .public (host_value of it) (-> _.Type _.Expression diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/c++/type.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/c++/type.lux index f091e288f..9aac0541c 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/c++/type.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/c++/type.lux @@ -2,8 +2,9 @@ [library [lux (.except i64) [meta - [target - ["_" c++]]]]]) + [compiler + [target + ["_" c++]]]]]]) (def .public bit _.Type diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/js/function.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/js/function.lux index dadd86f24..9216b36ec 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/js/function.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/js/function.lux @@ -10,8 +10,9 @@ [collection ["[0]" list (.use "[1]#[0]" functor mix)]]] [meta - [target - ["_" js (.only Expression Computation Var Statement)]]]]] + [compiler + [target + ["_" js (.only Expression Computation Var Statement)]]]]]] ["[0]" // ["[1][0]" runtime (.only Operation Phase Phase! Translator)] ["[1][0]" reference] diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/js/loop.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/js/loop.lux index 012c47d7e..364c5476f 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/js/loop.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/js/loop.lux @@ -13,8 +13,9 @@ [number ["n" nat]]] [meta - [target - ["_" js (.only Computation Var Expression Statement)]]]]] + [compiler + [target + ["_" js (.only Computation Var Expression Statement)]]]]]] ["[0]" // [runtime (.only Operation Phase Phase! Translator Translator!)] ["[1][0]" when] diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/js/primitive.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/js/primitive.lux index 509108682..3f44bf974 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/js/primitive.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/js/primitive.lux @@ -2,8 +2,9 @@ [library [lux (.except i64) [meta - [target - ["_" js (.only Computation)]]]]] + [compiler + [target + ["_" js (.only Computation)]]]]]] ["[0]" // ["[1][0]" runtime]]) diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/js/reference.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/js/reference.lux index 95393bf91..d24f3b328 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/js/reference.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/js/reference.lux @@ -2,8 +2,9 @@ [library [lux (.except) [meta - [target - ["_" js (.only Expression)]]]]] + [compiler + [target + ["_" js (.only Expression)]]]]]] [/// [reference (.only System)]]) diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/js/runtime.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/js/runtime.lux index 13790c910..8957e7b7f 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/js/runtime.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/js/runtime.lux @@ -23,8 +23,9 @@ ["<[1]>" \\parser]] ["[0]" macro (.only) [syntax (.only syntax)]] - [target - ["_" js (.only Expression Var Computation Statement)]]]]] + [compiler + [target + ["_" js (.only Expression Var Computation Statement)]]]]]] ["[0]" /// ["[1][0]" reference] ["//[1]" /// diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/js/structure.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/js/structure.lux index 081afea98..3d960d4ef 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/js/structure.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/js/structure.lux @@ -4,8 +4,9 @@ [abstract ["[0]" monad (.only do)]] [meta - [target - ["_" js (.only Expression)]]]]] + [compiler + [target + ["_" js (.only Expression)]]]]]] ["[0]" // ["[1][0]" runtime (.only Operation Phase Translator)] ["[1][0]" primitive] diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/js/when.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/js/when.lux index a8fc6674f..a5b9e024f 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/js/when.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/js/when.lux @@ -15,8 +15,9 @@ [meta [macro ["^" pattern]] - [target - ["_" js (.only Expression Computation Var Statement)]]]]] + [compiler + [target + ["_" js (.only Expression Computation Var Statement)]]]]]] ["[0]" // ["[1][0]" runtime (.only Operation Phase Phase! Translator Translator!)] ["[1][0]" reference] diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm.lux index a3ca297a4..056229af4 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm.lux @@ -12,12 +12,12 @@ ["[0]" meta (.only) [macro ["^" pattern]] - [target - [jvm - ["_" bytecode (.only Bytecode)]]] [type ["[0]" check]] [compiler + [target + [jvm + ["_" bytecode (.only Bytecode)]]] [meta ["[0]" archive (.only Archive)] ["[0]" cache diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function.lux index ec4ad62bf..cacd56250 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function.lux @@ -17,23 +17,24 @@ ["n" nat] ["[0]" i32]]] [meta - [target - [jvm - ["_" bytecode (.only Label Bytecode) (.use "[1]#[0]" monad)] - ["[0]" version] - ["[0]" modifier (.only Modifier) (.use "[1]#[0]" monoid)] - ["[0]" field (.only Field)] - ["[0]" method (.only Method)] - ["[0]" class (.only Class)] - ["[0]" attribute] - ["[0]" type (.only Type) - [category (.only Return' Value')] - ["[0]" reflection]] - ["[0]" constant (.only) - [pool (.only Resource)]] - [encoding - ["[0]" name (.only External Internal)] - ["[0]" unsigned]]]] + [compiler + [target + [jvm + ["_" bytecode (.only Label Bytecode) (.use "[1]#[0]" monad)] + ["[0]" version] + ["[0]" modifier (.only Modifier) (.use "[1]#[0]" monoid)] + ["[0]" field (.only Field)] + ["[0]" method (.only Method)] + ["[0]" class (.only Class)] + ["[0]" attribute] + ["[0]" type (.only Type) + [category (.only Return' Value')] + ["[0]" reflection]] + ["[0]" constant (.only) + [pool (.only Resource)]] + [encoding + ["[0]" name (.only External Internal)] + ["[0]" unsigned]]]]] [compiler [meta ["[0]" archive (.only Archive)] diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/abstract.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/abstract.lux index ea783b42a..e5fe2d05b 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/abstract.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/abstract.lux @@ -5,10 +5,11 @@ [text ["%" \\format]]] [meta - [target - [jvm - ["[0]" type (.only Type) - [category (.only Method)]]]]]]] + [compiler + [target + [jvm + ["[0]" type (.only Type) + [category (.only Method)]]]]]]]] [// [field [constant diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/field/constant.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/field/constant.lux index cd54bb0f8..46939d297 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/field/constant.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/field/constant.lux @@ -5,14 +5,15 @@ [collection ["[0]" sequence]]] [meta - [target - [jvm - ["[0]" field (.only Field)] - ["[0]" modifier (.only Modifier) (.use "[1]#[0]" monoid)] - [type (.only Type) - [category (.only Value)]] - [constant - [pool (.only Resource)]]]]]]]) + [compiler + [target + [jvm + ["[0]" field (.only Field)] + ["[0]" modifier (.only Modifier) (.use "[1]#[0]" monoid)] + [type (.only Type) + [category (.only Value)]] + [constant + [pool (.only Resource)]]]]]]]]) (def modifier (Modifier Field) diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/field/constant/arity.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/field/constant/arity.lux index 0f7856172..a3b14eb57 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/field/constant/arity.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/field/constant/arity.lux @@ -2,11 +2,12 @@ [library [lux (.except type) [meta - [target - [jvm - ["[0]" type] - [constant - [pool (.only Resource)]]]]]]] + [compiler + [target + [jvm + ["[0]" type] + [constant + [pool (.only Resource)]]]]]]]] ["[0]" // [///////// [arity (.only Arity)]]]) diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/field/variable.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/field/variable.lux index 17ef0b605..f4db0d370 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/field/variable.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/field/variable.lux @@ -6,15 +6,16 @@ ["[0]" list (.use "[1]#[0]" functor)] ["[0]" sequence]]] [meta - [target - [jvm - ["_" bytecode (.only Bytecode)] - ["[0]" modifier (.only Modifier) (.use "[1]#[0]" monoid)] - ["[0]" field (.only Field)] - [type (.only Type) - [category (.only Value Class)]] - [constant - [pool (.only Resource)]]]]]]] + [compiler + [target + [jvm + ["_" bytecode (.only Bytecode)] + ["[0]" modifier (.only Modifier) (.use "[1]#[0]" monoid)] + ["[0]" field (.only Field)] + [type (.only Type) + [category (.only Value Class)]] + [constant + [pool (.only Resource)]]]]]]]] ["[0]" //// ["[1][0]" type] ["[1][0]" reference] diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/field/variable/count.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/field/variable/count.lux index c58fad6cf..182361228 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/field/variable/count.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/field/variable/count.lux @@ -4,13 +4,14 @@ [control ["[0]" try]] [meta - [target - [jvm - ["_" bytecode (.only Bytecode)] - ["[0]" type] - [encoding - [name (.only External)] - ["[0]" signed]]]]]]] + [compiler + [target + [jvm + ["_" bytecode (.only Bytecode)] + ["[0]" type] + [encoding + [name (.only External)] + ["[0]" signed]]]]]]]] ["[0]" //// ["[1][0]" abstract]]) diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/field/variable/foreign.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/field/variable/foreign.lux index ae7170923..362cc7fe9 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/field/variable/foreign.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/field/variable/foreign.lux @@ -5,14 +5,15 @@ [collection ["[0]" list]]] [meta - [target - [jvm - ["_" bytecode (.only Bytecode)] - ["[0]" field (.only Field)] - [constant - [pool (.only Resource)]] - [type (.only Type) - [category (.only Value Class)]]]]]]] + [compiler + [target + [jvm + ["_" bytecode (.only Bytecode)] + ["[0]" field (.only Field)] + [constant + [pool (.only Resource)]] + [type (.only Type) + [category (.only Value Class)]]]]]]]] ["[0]" // (.only) ["///[1]" //// ["[1][0]" reference] diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/field/variable/partial.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/field/variable/partial.lux index 7310e30ce..76f169327 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/field/variable/partial.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/field/variable/partial.lux @@ -10,14 +10,15 @@ [number ["n" nat]]] [meta - [target - [jvm - ["_" bytecode (.only Bytecode) (.use "[1]#[0]" monad)] - ["[0]" field (.only Field)] - [type (.only Type) - [category (.only Class)]] - [constant - [pool (.only Resource)]]]]]]] + [compiler + [target + [jvm + ["_" bytecode (.only Bytecode) (.use "[1]#[0]" monad)] + ["[0]" field (.only Field)] + [type (.only Type) + [category (.only Class)]] + [constant + [pool (.only Resource)]]]]]]]] ["[0]" // (.only) ["[1][0]" count] ["/[1]" // diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/method.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/method.lux index b00454753..ec3edccb4 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/method.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/method.lux @@ -2,10 +2,11 @@ [library [lux (.except) [meta - [target - [jvm - ["[0]" modifier (.only Modifier) (.use "[1]#[0]" monoid)] - ["[0]" method (.only Method)]]]]]]) + [compiler + [target + [jvm + ["[0]" modifier (.only Modifier) (.use "[1]#[0]" monoid)] + ["[0]" method (.only Method)]]]]]]]) (def .public modifier (Modifier Method) diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/method/apply.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/method/apply.lux index 34a552ba6..29259d702 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/method/apply.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/method/apply.lux @@ -14,16 +14,17 @@ ["i" int] ["[0]" i32]]] [meta - [target - [jvm - ["_" bytecode (.only Label Bytecode) (.use "[1]#[0]" monad)] - ["[0]" method (.only Method)] - [constant - [pool (.only Resource)]] - [encoding - ["[0]" signed]] - ["[0]" type (.only Type) - ["[0]" category (.only Class)]]]]]]] + [compiler + [target + [jvm + ["_" bytecode (.only Label Bytecode) (.use "[1]#[0]" monad)] + ["[0]" method (.only Method)] + [constant + [pool (.only Resource)]] + [encoding + ["[0]" signed]] + ["[0]" type (.only Type) + ["[0]" category (.only Class)]]]]]]]] ["[0]" // (.only) ["[1][0]" reset] ["[1][0]" implementation] @@ -85,75 +86,75 @@ over_extent (i.- (.int apply_arity) (.int function_arity))] (method.method //.modifier ////runtime.apply::name - false (////runtime.apply::type apply_arity) - (list) - {.#Some (when num_partials - 0 (all _.composite - ////reference.this - (..inputs ..this_offset apply_arity) - (//implementation.call class function_arity) - _.areturn) - _ (do _.monad - [@default _.new_label - @labelsH _.new_label - @labelsT (|> _.new_label - (list.repeated (-- num_partials)) - (monad.all _.monad)) - .let [cases (|> (list#composite {.#Item [@labelsH @labelsT]} - (list @default)) - list.enumeration - (list#each (function (_ [stage @case]) - (let [current_partials (|> (list.indices stage) - (list#each (///partial.get class)) - (monad.all _.monad)) - already_partial? (n.> 0 stage) - exact_match? (i.= over_extent (.int stage)) - has_more_than_necessary? (i.> over_extent (.int stage))] + false (////runtime.apply::type apply_arity) + (list) + {.#Some (when num_partials + 0 (all _.composite + ////reference.this + (..inputs ..this_offset apply_arity) + (//implementation.call class function_arity) + _.areturn) + _ (do _.monad + [@default _.new_label + @labelsH _.new_label + @labelsT (|> _.new_label + (list.repeated (-- num_partials)) + (monad.all _.monad)) + .let [cases (|> (list#composite {.#Item [@labelsH @labelsT]} + (list @default)) + list.enumeration + (list#each (function (_ [stage @case]) + (let [current_partials (|> (list.indices stage) + (list#each (///partial.get class)) + (monad.all _.monad)) + already_partial? (n.> 0 stage) + exact_match? (i.= over_extent (.int stage)) + has_more_than_necessary? (i.> over_extent (.int stage))] + (all _.composite + (_.set_label @case) + (cond exact_match? + (all _.composite + ////reference.this + (if already_partial? + (_.invokevirtual class //reset.name (//reset.type class)) + (_#in [])) + current_partials + (..inputs ..this_offset apply_arity) + (//implementation.call class function_arity) + _.areturn) + + has_more_than_necessary? + (let [arity_inputs (|> function_arity (n.- stage)) + additional_inputs (|> apply_arity (n.- arity_inputs))] (all _.composite - (_.set_label @case) - (cond exact_match? - (all _.composite - ////reference.this - (if already_partial? - (_.invokevirtual class //reset.name (//reset.type class)) - (_#in [])) - current_partials - (..inputs ..this_offset apply_arity) - (//implementation.call class function_arity) - _.areturn) - - has_more_than_necessary? - (let [arity_inputs (|> function_arity (n.- stage)) - additional_inputs (|> apply_arity (n.- arity_inputs))] - (all _.composite - ////reference.this - (_.invokevirtual class //reset.name (//reset.type class)) - current_partials - (..inputs ..this_offset arity_inputs) - (//implementation.call class function_arity) - (apply (n.+ ..this_offset arity_inputs) additional_inputs) - _.areturn)) + ////reference.this + (_.invokevirtual class //reset.name (//reset.type class)) + current_partials + (..inputs ..this_offset arity_inputs) + (//implementation.call class function_arity) + (apply (n.+ ..this_offset arity_inputs) additional_inputs) + _.areturn)) - ... (i.< over_extent (.int stage)) - (let [current_environment (|> (list.indices (list.size environment)) - (list#each (///foreign.get class)) - (monad.all _.monad)) - missing_partials (|> _.aconst_null - (list.repeated (|> num_partials (n.- apply_arity) (n.- stage))) - (monad.all _.monad))] - (all _.composite - (_.new class) - _.dup - current_environment - ///count.value - (..increment apply_arity) - current_partials - (..inputs ..this_offset apply_arity) - missing_partials - (_.invokespecial class //init.name (//init.type environment function_arity)) - _.areturn))))))) - (monad.all _.monad))]] - (all _.composite - ///count.value - (_.tableswitch (try.trusted (signed.s4 +0)) @default [@labelsH @labelsT]) - cases)))}))) + ... (i.< over_extent (.int stage)) + (let [current_environment (|> (list.indices (list.size environment)) + (list#each (///foreign.get class)) + (monad.all _.monad)) + missing_partials (|> _.aconst_null + (list.repeated (|> num_partials (n.- apply_arity) (n.- stage))) + (monad.all _.monad))] + (all _.composite + (_.new class) + _.dup + current_environment + ///count.value + (..increment apply_arity) + current_partials + (..inputs ..this_offset apply_arity) + missing_partials + (_.invokespecial class //init.name (//init.type environment function_arity)) + _.areturn))))))) + (monad.all _.monad))]] + (all _.composite + ///count.value + (_.tableswitch (try.trusted (signed.s4 +0)) @default [@labelsH @labelsT]) + cases)))}))) diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/method/implementation.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/method/implementation.lux index 420872a39..9b961beab 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/method/implementation.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/method/implementation.lux @@ -8,15 +8,16 @@ [number ["n" nat]]] [meta - [target - [jvm - ["_" bytecode (.only Label Bytecode)] - ["[0]" modifier (.only Modifier) (.use "[1]#[0]" monoid)] - ["[0]" method (.only Method)] - [constant - [pool (.only Resource)]] - ["[0]" type (.only Type) - ["[0]" category (.only Class)]]]]]]] + [compiler + [target + [jvm + ["_" bytecode (.only Label Bytecode)] + ["[0]" modifier (.only Modifier) (.use "[1]#[0]" monoid)] + ["[0]" method (.only Method)] + [constant + [pool (.only Resource)]] + ["[0]" type (.only Type) + ["[0]" category (.only Class)]]]]]]]] ["[0]" // (.only) ["//[1]" /// ["[0]" runtime] @@ -45,14 +46,14 @@ (def .public (method :it: arity @begin body) (-> (Type Class) Arity Label (Bytecode Any) (Resource Method)) (method.method ..modifier - ..name - false (..type :it: arity) - (list) - {.#Some (all _.composite - (_.set_label @begin) - body - (_.when_continuous _.areturn) - )})) + ..name + false (..type :it: arity) + (list) + {.#Some (all _.composite + (_.set_label @begin) + body + (_.when_continuous _.areturn) + )})) (def .public (call :it: arity) (-> (Type Class) Arity (Bytecode Any)) diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/method/init.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/method/init.lux index 220755282..ced39ffd6 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/method/init.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/method/init.lux @@ -12,16 +12,17 @@ [number ["n" nat]]] [meta - [target - [jvm - ["_" bytecode (.only Bytecode)] - ["[0]" method (.only Method)] - [encoding - ["[0]" signed]] - [constant - [pool (.only Resource)]] - ["[0]" type (.only Type) - ["[0]" category (.only Class Value)]]]]]]] + [compiler + [target + [jvm + ["_" bytecode (.only Bytecode)] + ["[0]" method (.only Method)] + [encoding + ["[0]" signed]] + [constant + [pool (.only Resource)]] + ["[0]" type (.only Type) + ["[0]" category (.only Class Value)]]]]]]]] ["[0]" // (.only) ["[1][0]" implementation] ["/[1]" // @@ -95,11 +96,11 @@ offset_partial (is (-> Register Register) (|>> offset_arity (n.+ 1)))] (method.method //.modifier ..name - false (..type environment arity) - (list) - {.#Some (all _.composite - ////reference.this - (..super environment_size arity) - (store_all environment_size (///foreign.put class) offset_foreign) - (store_all (-- arity) (///partial.put class) offset_partial) - _.return)}))) + false (..type environment arity) + (list) + {.#Some (all _.composite + ////reference.this + (..super environment_size arity) + (store_all environment_size (///foreign.put class) offset_foreign) + (store_all (-- arity) (///partial.put class) offset_partial) + _.return)}))) diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/method/new.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/method/new.lux index 5429d603f..79d7bcde0 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/method/new.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/method/new.lux @@ -10,15 +10,16 @@ [number ["n" nat]]] [meta - [target - [jvm - ["_" bytecode (.only Bytecode)] - ["[0]" field (.only Field)] - ["[0]" method (.only Method)] - ["[0]" constant (.only) - [pool (.only Resource)]] - [type (.only Type) - ["[0]" category (.only Class Value Return)]]]] + [compiler + [target + [jvm + ["_" bytecode (.only Bytecode)] + ["[0]" field (.only Field)] + ["[0]" method (.only Method)] + ["[0]" constant (.only) + [pool (.only Resource)]] + [type (.only Type) + ["[0]" category (.only Class Value Return)]]]]] [compiler [meta ["[0]" archive (.only Archive)]]]]]] diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/method/reset.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/method/reset.lux index 7f8154ed8..76d29acde 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/method/reset.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/function/method/reset.lux @@ -5,14 +5,15 @@ [collection ["[0]" list (.use "[1]#[0]" functor)]]] [meta - [target - [jvm - ["_" bytecode (.only Bytecode)] - ["[0]" method (.only Method)] - [constant - [pool (.only Resource)]] - ["[0]" type (.only Type) - ["[0]" category (.only Class)]]]]]]] + [compiler + [target + [jvm + ["_" bytecode (.only Bytecode)] + ["[0]" method (.only Method)] + [constant + [pool (.only Resource)]] + ["[0]" type (.only Type) + ["[0]" category (.only Class)]]]]]]]] ["[0]" // (.only) ["[1][0]" new] ["/[1]" // @@ -42,10 +43,10 @@ (def .public (method class environment arity) (-> (Type Class) (Environment Synthesis) Arity (Resource Method)) (method.method //.modifier ..name - false (..type class) - (list) - {.#Some (all _.composite - (if (arity.multiary? arity) - (//new.instance' (..current_environment class environment) class environment arity) - ////reference.this) - _.areturn)})) + false (..type class) + (list) + {.#Some (all _.composite + (if (arity.multiary? arity) + (//new.instance' (..current_environment class environment) class environment arity) + ////reference.this) + _.areturn)})) diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/host.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/host.lux index 04ebfa62a..092af306d 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/host.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/host.lux @@ -22,19 +22,20 @@ ["[0]" dictionary (.only Dictionary)] ["[0]" sequence]]] [meta - [target - [jvm - ["_" bytecode (.only Bytecode)] - ["[0]" loader (.only Library)] - ["[0]" modifier (.only Modifier) (.use "[1]#[0]" monoid)] - ["[0]" field (.only Field)] - ["[0]" method (.only Method)] - ["[0]" version] - ["[0]" class (.only Class)] - ["[0]" encoding - ["[1]/[0]" name]] - ["[0]" type (.only) - ["[0]" descriptor]]]] + [compiler + [target + [jvm + ["_" bytecode (.only Bytecode)] + ["[0]" loader (.only Library)] + ["[0]" modifier (.only Modifier) (.use "[1]#[0]" monoid)] + ["[0]" field (.only Field)] + ["[0]" method (.only Method)] + ["[0]" version] + ["[0]" class (.only Class)] + ["[0]" encoding + ["[1]/[0]" name]] + ["[0]" type (.only) + ["[0]" descriptor]]]]] [compiler [meta [archive diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/loop.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/loop.lux index 98a58a08d..4ddcb2166 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/loop.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/loop.lux @@ -13,9 +13,10 @@ [number ["n" nat]]] [meta - [target - [jvm - ["_" bytecode (.only Bytecode) (.use "[1]#[0]" monad)]]]]]] + [compiler + [target + [jvm + ["_" bytecode (.only Bytecode) (.use "[1]#[0]" monad)]]]]]]] ["[0]" // ["[1][0]" runtime (.only Operation Phase Translator)] ["[1][0]" value] diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/primitive.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/primitive.lux index db64e3fa0..8be9200a9 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/primitive.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/primitive.lux @@ -12,12 +12,13 @@ [meta [macro ["^" pattern]] - [target - [jvm - ["_" bytecode (.only Bytecode)] - ["[0]" type] - [encoding - ["[0]" signed]]]]]]]) + [compiler + [target + [jvm + ["_" bytecode (.only Bytecode)] + ["[0]" type] + [encoding + ["[0]" signed]]]]]]]]) (def $Boolean (type.class "java.lang.Boolean" (list))) (def $Long (type.class "java.lang.Long" (list))) diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/program.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/program.lux index de928bd0b..1c5701621 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/program.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/program.lux @@ -11,17 +11,18 @@ [collection ["[0]" sequence]]] [meta - [target - [jvm - ["_" bytecode (.only Bytecode)] - ["[0]" modifier (.only Modifier) (.use "[1]#[0]" monoid)] - ["[0]" method (.only Method)] - ["[0]" version] - ["[0]" class (.only Class)] - [encoding - ["[0]" name]] - ["[0]" type (.only) - ["[0]" reflection]]]] + [compiler + [target + [jvm + ["_" bytecode (.only Bytecode)] + ["[0]" modifier (.only Modifier) (.use "[1]#[0]" monoid)] + ["[0]" method (.only Method)] + ["[0]" version] + ["[0]" class (.only Class)] + [encoding + ["[0]" name]] + ["[0]" type (.only) + ["[0]" reflection]]]]] [compiler [language [lux @@ -145,14 +146,14 @@ (-> (-> unit.ID Text) (Program (Bytecode Any) Definition)) (let [super_class (|> ..^Object type.reflection reflection.reflection name.internal) main (method.method ..main::modifier "main" - false ..main::type - (list) - {.#Some (all _.composite - program - ..input_list - ..feed_inputs - ..run_io - _.return)}) + false ..main::type + (list) + {.#Some (all _.composite + program + ..input_list + ..feed_inputs + ..run_io + _.return)}) class (artifact_name context)] [class (<| (\\format.result class.format) diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/reference.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/reference.lux index ac72e04a1..d336069d7 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/reference.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/reference.lux @@ -7,12 +7,13 @@ [text ["%" \\format (.only format)]]] [meta - [target - [jvm - ["_" bytecode (.only Bytecode)] - ["[0]" type] - [encoding - ["[0]" unsigned]]]]]]] + [compiler + [target + [jvm + ["_" bytecode (.only Bytecode)] + ["[0]" type] + [encoding + ["[0]" unsigned]]]]]]]] ["[0]" // ["[1][0]" runtime (.only Operation)] ["[1][0]" value] diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/runtime.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/runtime.lux index af848be72..cfdf7ac2a 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/runtime.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/runtime.lux @@ -22,21 +22,22 @@ ["[0]" i64]]] [meta ["[0]" version] - [target - ["[0]" jvm - ["_" bytecode (.only Label Bytecode)] - ["[0]" modifier (.only Modifier) (.use "[1]#[0]" monoid)] - ["[0]" field (.only Field)] - ["[0]" method (.only Method)] - ["[1]/[0]" version] - ["[0]" class (.only Class)] - ["[0]" constant (.only) - [pool (.only Resource)]] - [encoding - ["[0]" name]] - ["[0]" type (.only Type) - ["[0]" category (.only Return' Value')] - ["[0]" reflection]]]]]]] + [compiler + [target + ["[0]" jvm + ["_" bytecode (.only Label Bytecode)] + ["[0]" modifier (.only Modifier) (.use "[1]#[0]" monoid)] + ["[0]" field (.only Field)] + ["[0]" method (.only Method)] + ["[1]/[0]" version] + ["[0]" class (.only Class)] + ["[0]" constant (.only) + [pool (.only Resource)]] + [encoding + ["[0]" name]] + ["[0]" type (.only Type) + ["[0]" category (.only Return' Value')] + ["[0]" reflection]]]]]]]] ["[0]" // ["[1][0]" type] ["[1][0]" value] @@ -155,7 +156,7 @@ (_.anewarray //type.value)) $lefts (all _.composite _.iload_0 - (//value.wrap type.int)) + (//value.boxed type.int)) $right? _.aload_1 $value _.aload_2] (method.method ..modifier ..variant::name @@ -228,7 +229,7 @@ (all _.composite _.aload_0 (_.invokestatic //type.frac "parseDouble" (type.method [(list) (list //type.text) type.double (list)])) - (//value.wrap type.double) + (//value.boxed type.double) ))})) (def .public log! @@ -315,7 +316,7 @@ ::lefts (all _.composite (..get ..variant_lefts) - (//value.unwrap type.int)) + (//value.primitive type.int)) ::right? (..get ..variant_right?) ::value (..get ..variant_value) diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/structure.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/structure.lux index d9bca3484..c877aa0b8 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/structure.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/structure.lux @@ -12,12 +12,13 @@ [number ["[0]" i32]]] [meta - [target - [jvm - ["_" bytecode (.only Bytecode)] - ["[0]" type] - [encoding - ["[0]" signed]]]]]]] + [compiler + [target + [jvm + ["_" bytecode (.only Bytecode)] + ["[0]" type] + [encoding + ["[0]" signed]]]]]]]] ["[0]" // ["[1][0]" type] ["[1][0]" runtime (.only Operation Phase Translator)] diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/type.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/type.lux index 329c0a02f..37ba4209c 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/type.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/type.lux @@ -2,9 +2,10 @@ [library [lux (.except) [meta - [target - [jvm - ["[0]" type]]]]]]) + [compiler + [target + [jvm + ["[0]" type]]]]]]]) (def .public frac (type.class "java.lang.Double" (list))) (def .public text (type.class "java.lang.String" (list))) diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/value.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/value.lux index 70adbaaf3..ad51ce9c4 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/value.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/value.lux @@ -2,18 +2,20 @@ [library [lux (.except Type) [meta - [target - [jvm - ["_" bytecode (.only Bytecode)] - ["[0]" type (.only Type) (.use "[1]#[0]" equivalence) - [category (.only Primitive)] - ["[0]" box]]]]]]]) + [compiler + [target + [jvm + ["_" bytecode (.only Bytecode)] + ["[0]" type (.only Type) (.use "[1]#[0]" equivalence) + [category (.only Primitive)] + ["[0]" box]]]]]]]]) (def .public field "value") (with_template [<name> <boolean> <byte> <short> <int> <long> <float> <double> <char>] [(def (<name> type) - (-> (Type Primitive) Text) + (-> (Type Primitive) + Text) (`` (cond (,, (with_template [<type> <output>] [(type#= <type> type) <output>] @@ -23,28 +25,29 @@ [type.int <int>] [type.long <long>] [type.float <float>] - [type.double <double>] - [type.char <char>])) - ... else - (undefined))))] + [type.double <double>])) + ... type.char + <char>)))] - [primitive_wrapper + [box box.boolean box.byte box.short box.int box.long box.float box.double box.char] - [primitive_unwrap + [value_method "booleanValue" "byteValue" "shortValue" "intValue" "longValue" "floatValue" "doubleValue" "charValue"] ) -(def .public (wrap type) - (-> (Type Primitive) (Bytecode Any)) - (let [wrapper (type.class (primitive_wrapper type) (list))] +(def .public (boxed type) + (-> (Type Primitive) + (Bytecode Any)) + (let [wrapper (type.class (box type) (list))] (_.invokestatic wrapper "valueOf" (type.method [(list) (list type) wrapper (list)])))) -(def .public (unwrap type) - (-> (Type Primitive) (Bytecode Any)) - (let [wrapper (type.class (primitive_wrapper type) (list))] +(def .public (primitive type) + (-> (Type Primitive) + (Bytecode Any)) + (let [wrapper (type.class (box type) (list))] (all _.composite (_.checkcast wrapper) - (_.invokevirtual wrapper (primitive_unwrap type) (type.method [(list) (list) type (list)]))))) + (_.invokevirtual wrapper (value_method type) (type.method [(list) (list) type (list)]))))) diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/when.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/when.lux index 4be90b358..d16e62582 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/when.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/jvm/when.lux @@ -17,14 +17,15 @@ [meta [macro ["^" pattern]] - [target - [jvm - ["_" bytecode (.only Label Bytecode) (.use "[1]#[0]" monad) - [environment - [limit - ["[0]" stack]]]] - ["[0]" type (.only Type) - [category (.only Method)]]]]]]] + [compiler + [target + [jvm + ["_" bytecode (.only Label Bytecode) (.use "[1]#[0]" monad) + [environment + [limit + ["[0]" stack]]]] + ["[0]" type (.only Type) + [category (.only Method)]]]]]]]] ["[0]" // ["[1][0]" type] ["[1][0]" runtime (.only Operation Phase Translator)] @@ -118,7 +119,7 @@ [@else _.new_label] (all _.composite ..peek - (//value.unwrap type.boolean) + (//value.primitive type.boolean) (if! @else) then! (_.set_label @else) @@ -153,8 +154,8 @@ <unwrap> fork!))))] - [path|i64_fork (I64 Any) (//value.unwrap type.long) _.dup2 _.pop2 ..long _.lcmp _.ifne] - [path|f64_fork Frac (//value.unwrap type.double) _.dup2 _.pop2 _.double _.dcmpl _.ifne] + [path|i64_fork (I64 Any) (//value.primitive type.long) _.dup2 _.pop2 ..long _.lcmp _.ifne] + [path|f64_fork Frac (//value.primitive type.double) _.dup2 _.pop2 _.double _.dcmpl _.ifne] [path|text_fork Text (of _.monad in []) _.dup _.pop _.string ..equals@Object _.ifeq] ) @@ -269,7 +270,7 @@ @end _.new_label] (all _.composite test! - (//value.unwrap type.boolean) + (//value.primitive type.boolean) (_.ifeq @else) then! (_.when_continuous (_.goto @end)) diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/lua/function.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/lua/function.lux index 8a0b43ac5..e0ad98469 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/lua/function.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/lua/function.lux @@ -10,8 +10,9 @@ [collection ["[0]" list (.use "[1]#[0]" functor mix)]]] [meta - [target - ["_" lua (.only Var Expression Label Statement)]]]]] + [compiler + [target + ["_" lua (.only Var Expression Label Statement)]]]]]] ["[0]" // ["[1][0]" runtime (.only Operation Phase Phase! Translator)] ["[1][0]" reference] diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/lua/loop.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/lua/loop.lux index 6b008d307..bf236869e 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/lua/loop.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/lua/loop.lux @@ -14,8 +14,9 @@ [number ["n" nat]]] [meta - [target - ["_" lua (.only Var Expression Label Statement)]]]]] + [compiler + [target + ["_" lua (.only Var Expression Label Statement)]]]]]] ["[0]" // [runtime (.only Operation Phase Phase! Translator Translator!)] ["[1][0]" when] diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/lua/primitive.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/lua/primitive.lux index 48c05d948..3a961c192 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/lua/primitive.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/lua/primitive.lux @@ -2,8 +2,9 @@ [library [lux (.except i64) [meta - [target - ["_" lua (.only Literal)]]]]]) + [compiler + [target + ["_" lua (.only Literal)]]]]]]) (with_template [<name> <type> <implementation>] [(def .public <name> diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/lua/reference.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/lua/reference.lux index f7309bb8c..5f7023011 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/lua/reference.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/lua/reference.lux @@ -2,8 +2,9 @@ [library [lux (.except) [meta - [target - ["_" lua (.only Expression)]]]]] + [compiler + [target + ["_" lua (.only Expression)]]]]]] [/// [reference (.only System)]]) diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/lua/runtime.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/lua/runtime.lux index 78741fe06..22b4680fe 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/lua/runtime.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/lua/runtime.lux @@ -23,8 +23,9 @@ ["<[1]>" \\parser]] ["[0]" macro (.only) [syntax (.only syntax)]] - ["@" target (.only) - ["_" lua (.only Expression Location Var Computation Literal Label Statement)]]]]] + [compiler + ["@" target (.only) + ["_" lua (.only Expression Location Var Computation Literal Label Statement)]]]]]] ["[0]" /// ["[1][0]" reference] ["//[1]" /// diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/lua/structure.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/lua/structure.lux index a15f0833a..5e9ac29f9 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/lua/structure.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/lua/structure.lux @@ -4,8 +4,9 @@ [abstract ["[0]" monad (.only do)]] [meta - [target - ["_" lua (.only Expression)]]]]] + [compiler + [target + ["_" lua (.only Expression)]]]]]] ["[0]" // ["[1][0]" runtime (.only Operation Phase Translator)] ["[1][0]" primitive] diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/lua/when.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/lua/when.lux index 1bb6d979f..3fc103d8b 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/lua/when.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/lua/when.lux @@ -12,8 +12,9 @@ [meta [macro ["^" pattern]] - [target - ["_" lua (.only Expression Var Statement)]]]]] + [compiler + [target + ["_" lua (.only Expression Var Statement)]]]]]] ["[0]" // ["[1][0]" runtime (.only Operation Phase Phase! Translator Translator!)] ["[1][0]" reference] diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/python/function.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/python/function.lux index 49a43f19c..93a026558 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/python/function.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/python/function.lux @@ -10,8 +10,9 @@ [collection ["[0]" list (.use "[1]#[0]" functor mix)]]] [meta - [target - ["_" python (.only SVar Expression Statement)]]]]] + [compiler + [target + ["_" python (.only SVar Expression Statement)]]]]]] ["[0]" // [runtime (.only Operation Phase Translator Phase! Translator!)] ["[1][0]" reference] diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/python/loop.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/python/loop.lux index 8fa93362b..d453a4daf 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/python/loop.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/python/loop.lux @@ -14,8 +14,9 @@ [number ["n" nat]]] [meta - [target - ["_" python (.only Expression SVar Statement)]]]]] + [compiler + [target + ["_" python (.only Expression SVar Statement)]]]]]] ["[0]" // [runtime (.only Operation Phase Translator Phase! Translator!)] ["[1][0]" when] diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/python/primitive.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/python/primitive.lux index b50c2c965..88c0ec4d2 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/python/primitive.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/python/primitive.lux @@ -2,8 +2,9 @@ [library [lux (.except i64) [meta - [target - ["_" python (.only Expression)]]]]] + [compiler + [target + ["_" python (.only Expression)]]]]]] ["[0]" // ["[1][0]" runtime]]) diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/python/reference.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/python/reference.lux index 9b105605e..a9f05d739 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/python/reference.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/python/reference.lux @@ -2,8 +2,9 @@ [library [lux (.except) [meta - [target - ["_" python (.only Expression)]]]]] + [compiler + [target + ["_" python (.only Expression)]]]]]] [/// [reference (.only System)]]) diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/python/runtime.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/python/runtime.lux index 4a82f30f1..a3a1278ec 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/python/runtime.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/python/runtime.lux @@ -25,8 +25,9 @@ ["<[1]>" \\parser]] ["[0]" macro (.only) [syntax (.only syntax)]] - ["@" target (.only) - ["_" python (.only Expression SVar Computation Literal Statement)]]]]] + [compiler + ["@" target (.only) + ["_" python (.only Expression SVar Computation Literal Statement)]]]]]] ["[0]" /// ["[1][0]" reference] ["//[1]" /// diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/python/structure.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/python/structure.lux index 747404963..4ac9f1446 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/python/structure.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/python/structure.lux @@ -4,8 +4,9 @@ [abstract ["[0]" monad (.only do)]] [meta - [target - ["_" python (.only Expression)]]]]] + [compiler + [target + ["_" python (.only Expression)]]]]]] ["[0]" // ["[1][0]" runtime (.only Operation Phase Translator)] ["[1][0]" primitive] diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/python/when.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/python/when.lux index a8555492d..2294ae08a 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/python/when.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/python/when.lux @@ -16,8 +16,9 @@ [meta [macro ["^" pattern]] - [target - ["_" python (.only Expression SVar Statement)]]]]] + [compiler + [target + ["_" python (.only Expression SVar Statement)]]]]]] ["[0]" // ["[1][0]" runtime (.only Operation Phase Translator Phase! Translator!)] ["[1][0]" reference] diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/reference.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/reference.lux index 4190683b5..bb5ba85e6 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/reference.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/reference.lux @@ -5,8 +5,9 @@ [text ["%" \\format (.only format)]]] [meta - ["@" target] - ["[0]" version]]]] + ["[0]" version] + [compiler + ["@" target]]]]] [//// ["[0]" phase (.use "[1]#[0]" monad)] ["[0]" translation] diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/ruby/function.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/ruby/function.lux index ea8a104a3..41e0cbc42 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/ruby/function.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/ruby/function.lux @@ -10,8 +10,9 @@ [collection ["[0]" list (.use "[1]#[0]" functor mix)]]] [meta - [target - ["_" ruby (.only LVar GVar Expression Statement)]]]]] + [compiler + [target + ["_" ruby (.only LVar GVar Expression Statement)]]]]]] ["[0]" // [runtime (.only Operation Phase Translator Phase! Translator!)] ["[1][0]" reference] diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/ruby/loop.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/ruby/loop.lux index a670b4b4b..a5cf36131 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/ruby/loop.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/ruby/loop.lux @@ -14,8 +14,9 @@ [number ["n" nat]]] [meta - [target - ["_" ruby (.only Expression LVar Statement)]]]]] + [compiler + [target + ["_" ruby (.only Expression LVar Statement)]]]]]] ["[0]" // [runtime (.only Operation Phase Translator Phase! Translator!)] ["[1][0]" when] diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/ruby/primitive.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/ruby/primitive.lux index 06b100bc5..a103cb4ad 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/ruby/primitive.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/ruby/primitive.lux @@ -2,8 +2,9 @@ [library [lux (.except i64) [meta - [target - ["_" ruby (.only Literal)]]]]]) + [compiler + [target + ["_" ruby (.only Literal)]]]]]]) (with_template [<type> <name> <implementation>] [(def .public <name> diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/ruby/reference.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/ruby/reference.lux index 28629dc19..05ea2cc78 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/ruby/reference.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/ruby/reference.lux @@ -2,8 +2,9 @@ [library [lux (.except) [meta - [target - ["_" ruby (.only Expression)]]]]] + [compiler + [target + ["_" ruby (.only Expression)]]]]]] [/// [reference (.only System)]]) diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/ruby/runtime.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/ruby/runtime.lux index 8be246d69..c252a29b1 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/ruby/runtime.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/ruby/runtime.lux @@ -24,8 +24,9 @@ ["<[1]>" \\parser]] ["[0]" macro (.only) [syntax (.only syntax)]] - ["@" target (.only) - ["_" ruby (.only Expression LVar Computation Literal Statement)]]]]] + [compiler + ["@" target (.only) + ["_" ruby (.only Expression LVar Computation Literal Statement)]]]]]] ["[0]" /// ["[1][0]" reference] ["//[1]" /// diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/ruby/structure.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/ruby/structure.lux index 100ebd54f..18acf6b50 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/ruby/structure.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/ruby/structure.lux @@ -4,8 +4,9 @@ [abstract ["[0]" monad (.only do)]] [meta - [target - ["_" ruby (.only Expression)]]]]] + [compiler + [target + ["_" ruby (.only Expression)]]]]]] ["[0]" // ["[1][0]" runtime (.only Operation Phase Translator)] ["[1][0]" primitive] diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/ruby/when.lux b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/ruby/when.lux index f2f982e09..546cce489 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/ruby/when.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/phase/translation/ruby/when.lux @@ -16,8 +16,9 @@ [meta [macro ["^" pattern]] - [target - ["_" ruby (.only Expression LVar Statement)]]]]] + [compiler + [target + ["_" ruby (.only Expression LVar Statement)]]]]]] ["[0]" // ["[1][0]" runtime (.only Operation Phase Translator Phase! Translator!)] ["[1][0]" reference] diff --git a/stdlib/source/library/lux/meta/compiler/language/lux/syntax.lux b/stdlib/source/library/lux/meta/compiler/language/lux/syntax.lux index 85a28c8f7..381f3d579 100644 --- a/stdlib/source/library/lux/meta/compiler/language/lux/syntax.lux +++ b/stdlib/source/library/lux/meta/compiler/language/lux/syntax.lux @@ -41,13 +41,14 @@ ["[0]" list] ["[0]" dictionary (.only Dictionary)]]] [meta - ["@" target] ["[0]" symbol] ["[0]" code ["<[1]>" \\parser]] [macro [syntax (.only syntax)] - ["[0]" template]]] + ["[0]" template]] + [compiler + ["@" target]]] [math [number ["n" nat] diff --git a/stdlib/source/library/lux/meta/compiler/meta/cache/artifact.lux b/stdlib/source/library/lux/meta/compiler/meta/cache/artifact.lux index e404e3e4d..2c8458abc 100644 --- a/stdlib/source/library/lux/meta/compiler/meta/cache/artifact.lux +++ b/stdlib/source/library/lux/meta/compiler/meta/cache/artifact.lux @@ -10,7 +10,8 @@ [text ["%" \\format (.only format)]]] [meta - [target (.only Target)]] + [compiler + [target (.only Target)]]] [world ["[0]" file]]]] ["[0]" // diff --git a/stdlib/source/library/lux/meta/compiler/meta/cache/module.lux b/stdlib/source/library/lux/meta/compiler/meta/cache/module.lux index 7b3a122bb..3245f2ead 100644 --- a/stdlib/source/library/lux/meta/compiler/meta/cache/module.lux +++ b/stdlib/source/library/lux/meta/compiler/meta/cache/module.lux @@ -16,7 +16,8 @@ ["[0]" list (.use "[1]#[0]" functor)] ["[0]" dictionary (.only Dictionary)]]] [meta - ["@" target]] + [compiler + ["@" target]]] [world ["[0]" file]]]] ["[0]" // (.only) diff --git a/stdlib/source/library/lux/meta/compiler/meta/context.lux b/stdlib/source/library/lux/meta/compiler/meta/context.lux index ef520917a..f65ba71b8 100644 --- a/stdlib/source/library/lux/meta/compiler/meta/context.lux +++ b/stdlib/source/library/lux/meta/compiler/meta/context.lux @@ -2,7 +2,8 @@ [library [lux (.except #host #target) [meta - ["@" target (.only Target)]] + [compiler + ["@" target (.only Target)]]] [world [file (.only Path)]]]]) diff --git a/stdlib/source/library/lux/meta/compiler/meta/io/archive.lux b/stdlib/source/library/lux/meta/compiler/meta/io/archive.lux index b62fa4307..92c9c99a4 100644 --- a/stdlib/source/library/lux/meta/compiler/meta/io/archive.lux +++ b/stdlib/source/library/lux/meta/compiler/meta/io/archive.lux @@ -20,11 +20,12 @@ ["[0]" dictionary (.only Dictionary)] ["[0]" sequence (.only Sequence)]]] [meta - ["@" target (.only Target)] ["[0]" configuration (.only Configuration)] ["[0]" version] [macro - ["^" pattern]]] + ["^" pattern]] + [compiler + ["@" target (.only Target)]]] [world ["[0]" file]]]] ["[0]" // (.only) diff --git a/stdlib/source/library/lux/meta/compiler/meta/io/context.lux b/stdlib/source/library/lux/meta/compiler/meta/io/context.lux index 471ffe6f0..bd6cd284f 100644 --- a/stdlib/source/library/lux/meta/compiler/meta/io/context.lux +++ b/stdlib/source/library/lux/meta/compiler/meta/io/context.lux @@ -20,8 +20,6 @@ [collection ["[0]" dictionary (.only Dictionary)] ["[0]" list]]] - [meta - ["@" target]] [world ["[0]" file]]]] ["[0]" // (.only Context) diff --git a/stdlib/source/library/lux/meta/compiler/meta/packager/jvm.lux b/stdlib/source/library/lux/meta/compiler/meta/packager/jvm.lux index 18577f342..d83ae1caf 100644 --- a/stdlib/source/library/lux/meta/compiler/meta/packager/jvm.lux +++ b/stdlib/source/library/lux/meta/compiler/meta/packager/jvm.lux @@ -21,10 +21,11 @@ ["n" nat] ["i" int]]] [meta - [target - [jvm - [encoding - ["[0]" name]]]]] + [compiler + [target + [jvm + [encoding + ["[0]" name]]]]]] [world ["[0]" file]]]] ["[0]" // (.only Packager) diff --git a/stdlib/source/library/lux/meta/compiler/meta/packager/ruby.lux b/stdlib/source/library/lux/meta/compiler/meta/packager/ruby.lux index 04e3ef0a3..8ef41f448 100644 --- a/stdlib/source/library/lux/meta/compiler/meta/packager/ruby.lux +++ b/stdlib/source/library/lux/meta/compiler/meta/packager/ruby.lux @@ -22,8 +22,9 @@ ["[0]" nat]]] [meta [type (.only sharing)] - [target - ["_" ruby]]] + [compiler + [target + ["_" ruby]]]] [world ["[0]" file]]]] ["[0]" // (.only Packager) diff --git a/stdlib/source/library/lux/meta/compiler/meta/packager/scheme.lux b/stdlib/source/library/lux/meta/compiler/meta/packager/scheme.lux index e36749bb3..df317cf47 100644 --- a/stdlib/source/library/lux/meta/compiler/meta/packager/scheme.lux +++ b/stdlib/source/library/lux/meta/compiler/meta/packager/scheme.lux @@ -21,8 +21,9 @@ ["[0]" tar]]] [meta [type (.only sharing)] - [target - ["_" scheme]]] + [compiler + [target + ["_" scheme]]]] [world ["[0]" file] [time diff --git a/stdlib/source/library/lux/meta/target.lux b/stdlib/source/library/lux/meta/compiler/target.lux index 11094325d..11094325d 100644 --- a/stdlib/source/library/lux/meta/target.lux +++ b/stdlib/source/library/lux/meta/compiler/target.lux diff --git a/stdlib/source/library/lux/meta/target/c++.lux b/stdlib/source/library/lux/meta/compiler/target/c++.lux index 952cc0c0b..952cc0c0b 100644 --- a/stdlib/source/library/lux/meta/target/c++.lux +++ b/stdlib/source/library/lux/meta/compiler/target/c++.lux diff --git a/stdlib/source/library/lux/meta/target/common_lisp.lux b/stdlib/source/library/lux/meta/compiler/target/common_lisp.lux index 60f46f514..60f46f514 100644 --- a/stdlib/source/library/lux/meta/target/common_lisp.lux +++ b/stdlib/source/library/lux/meta/compiler/target/common_lisp.lux diff --git a/stdlib/source/library/lux/meta/target/js.lux b/stdlib/source/library/lux/meta/compiler/target/js.lux index c158d9651..c158d9651 100644 --- a/stdlib/source/library/lux/meta/target/js.lux +++ b/stdlib/source/library/lux/meta/compiler/target/js.lux diff --git a/stdlib/source/library/lux/meta/target/jvm/attribute.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/attribute.lux index 04d68cb41..04d68cb41 100644 --- a/stdlib/source/library/lux/meta/target/jvm/attribute.lux +++ b/stdlib/source/library/lux/meta/compiler/target/jvm/attribute.lux diff --git a/stdlib/source/library/lux/meta/target/jvm/attribute/code.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/attribute/code.lux index a350fde0f..a350fde0f 100644 --- a/stdlib/source/library/lux/meta/target/jvm/attribute/code.lux +++ b/stdlib/source/library/lux/meta/compiler/target/jvm/attribute/code.lux diff --git a/stdlib/source/library/lux/meta/target/jvm/attribute/code/exception.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/attribute/code/exception.lux index 08c7cc129..08c7cc129 100644 --- a/stdlib/source/library/lux/meta/target/jvm/attribute/code/exception.lux +++ b/stdlib/source/library/lux/meta/compiler/target/jvm/attribute/code/exception.lux diff --git a/stdlib/source/library/lux/meta/target/jvm/attribute/constant.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/attribute/constant.lux index 830632337..830632337 100644 --- a/stdlib/source/library/lux/meta/target/jvm/attribute/constant.lux +++ b/stdlib/source/library/lux/meta/compiler/target/jvm/attribute/constant.lux diff --git a/stdlib/source/library/lux/meta/target/jvm/attribute/line_number_table.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/attribute/line_number_table.lux index 1a3e73ece..1a3e73ece 100644 --- a/stdlib/source/library/lux/meta/target/jvm/attribute/line_number_table.lux +++ b/stdlib/source/library/lux/meta/compiler/target/jvm/attribute/line_number_table.lux diff --git a/stdlib/source/library/lux/meta/target/jvm/bytecode.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/bytecode.lux index dc51330fa..dc51330fa 100644 --- a/stdlib/source/library/lux/meta/target/jvm/bytecode.lux +++ b/stdlib/source/library/lux/meta/compiler/target/jvm/bytecode.lux diff --git a/stdlib/source/library/lux/meta/target/jvm/bytecode/address.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/bytecode/address.lux index 6bcb3655a..6bcb3655a 100644 --- a/stdlib/source/library/lux/meta/target/jvm/bytecode/address.lux +++ b/stdlib/source/library/lux/meta/compiler/target/jvm/bytecode/address.lux diff --git a/stdlib/source/library/lux/meta/target/jvm/bytecode/environment.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/bytecode/environment.lux index 9fd4d7250..9fd4d7250 100644 --- a/stdlib/source/library/lux/meta/target/jvm/bytecode/environment.lux +++ b/stdlib/source/library/lux/meta/compiler/target/jvm/bytecode/environment.lux diff --git a/stdlib/source/library/lux/meta/target/jvm/bytecode/environment/limit.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/bytecode/environment/limit.lux index ce5801345..ce5801345 100644 --- a/stdlib/source/library/lux/meta/target/jvm/bytecode/environment/limit.lux +++ b/stdlib/source/library/lux/meta/compiler/target/jvm/bytecode/environment/limit.lux diff --git a/stdlib/source/library/lux/meta/target/jvm/bytecode/environment/limit/registry.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/bytecode/environment/limit/registry.lux index 9737de12c..9737de12c 100644 --- a/stdlib/source/library/lux/meta/target/jvm/bytecode/environment/limit/registry.lux +++ b/stdlib/source/library/lux/meta/compiler/target/jvm/bytecode/environment/limit/registry.lux diff --git a/stdlib/source/library/lux/meta/target/jvm/bytecode/environment/limit/stack.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/bytecode/environment/limit/stack.lux index 7517c2b60..7517c2b60 100644 --- a/stdlib/source/library/lux/meta/target/jvm/bytecode/environment/limit/stack.lux +++ b/stdlib/source/library/lux/meta/compiler/target/jvm/bytecode/environment/limit/stack.lux diff --git a/stdlib/source/library/lux/meta/target/jvm/bytecode/instruction.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/bytecode/instruction.lux index d8a6963ae..d8a6963ae 100644 --- a/stdlib/source/library/lux/meta/target/jvm/bytecode/instruction.lux +++ b/stdlib/source/library/lux/meta/compiler/target/jvm/bytecode/instruction.lux diff --git a/stdlib/source/library/lux/meta/target/jvm/bytecode/jump.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/bytecode/jump.lux index 13c5f8f07..13c5f8f07 100644 --- a/stdlib/source/library/lux/meta/target/jvm/bytecode/jump.lux +++ b/stdlib/source/library/lux/meta/compiler/target/jvm/bytecode/jump.lux diff --git a/stdlib/source/library/lux/meta/target/jvm/class.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/class.lux index 5ffb48007..5ffb48007 100644 --- a/stdlib/source/library/lux/meta/target/jvm/class.lux +++ b/stdlib/source/library/lux/meta/compiler/target/jvm/class.lux diff --git a/stdlib/source/library/lux/meta/target/jvm/constant.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/constant.lux index 8039a7b47..f5cdd6cf8 100644 --- a/stdlib/source/library/lux/meta/target/jvm/constant.lux +++ b/stdlib/source/library/lux/meta/compiler/target/jvm/constant.lux @@ -18,12 +18,13 @@ ["[0]" int] ["[0]" frac]]] [meta - ["@" target] [macro ["^" pattern] ["[0]" template]] [type - ["[0]" nominal (.except def #name)]]]]] + ["[0]" nominal (.except def #name)]] + [compiler + ["@" target]]]]] ["[0]" / ["[1][0]" tag] ["/[1]" // diff --git a/stdlib/source/library/lux/meta/target/jvm/constant/pool.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/constant/pool.lux index 46adfd870..46adfd870 100644 --- a/stdlib/source/library/lux/meta/target/jvm/constant/pool.lux +++ b/stdlib/source/library/lux/meta/compiler/target/jvm/constant/pool.lux diff --git a/stdlib/source/library/lux/meta/target/jvm/constant/tag.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/constant/tag.lux index 66a66f48a..66a66f48a 100644 --- a/stdlib/source/library/lux/meta/target/jvm/constant/tag.lux +++ b/stdlib/source/library/lux/meta/compiler/target/jvm/constant/tag.lux diff --git a/stdlib/source/library/lux/meta/target/jvm/encoding/name.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/encoding/name.lux index 108ad8752..108ad8752 100644 --- a/stdlib/source/library/lux/meta/target/jvm/encoding/name.lux +++ b/stdlib/source/library/lux/meta/compiler/target/jvm/encoding/name.lux diff --git a/stdlib/source/library/lux/meta/target/jvm/encoding/signed.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/encoding/signed.lux index 428f5ef8a..428f5ef8a 100644 --- a/stdlib/source/library/lux/meta/target/jvm/encoding/signed.lux +++ b/stdlib/source/library/lux/meta/compiler/target/jvm/encoding/signed.lux diff --git a/stdlib/source/library/lux/meta/target/jvm/encoding/unsigned.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/encoding/unsigned.lux index afd21a166..afd21a166 100644 --- a/stdlib/source/library/lux/meta/target/jvm/encoding/unsigned.lux +++ b/stdlib/source/library/lux/meta/compiler/target/jvm/encoding/unsigned.lux diff --git a/stdlib/source/library/lux/meta/target/jvm/field.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/field.lux index 443d34f16..443d34f16 100644 --- a/stdlib/source/library/lux/meta/target/jvm/field.lux +++ b/stdlib/source/library/lux/meta/compiler/target/jvm/field.lux diff --git a/stdlib/source/library/lux/meta/target/jvm/index.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/index.lux index 522684c1c..522684c1c 100644 --- a/stdlib/source/library/lux/meta/target/jvm/index.lux +++ b/stdlib/source/library/lux/meta/compiler/target/jvm/index.lux diff --git a/stdlib/source/library/lux/meta/target/jvm/loader.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/loader.lux index 689fab421..70c85cc93 100644 --- a/stdlib/source/library/lux/meta/target/jvm/loader.lux +++ b/stdlib/source/library/lux/meta/compiler/target/jvm/loader.lux @@ -18,7 +18,8 @@ ["[0]" array] ["[0]" dictionary (.only Dictionary)]]] [meta - ["@" target]]]]) + [compiler + ["@" target]]]]]) (type .public Library (Atom (Dictionary Text Binary))) diff --git a/stdlib/source/library/lux/meta/target/jvm/magic.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/magic.lux index e5fc0a09d..e5fc0a09d 100644 --- a/stdlib/source/library/lux/meta/target/jvm/magic.lux +++ b/stdlib/source/library/lux/meta/compiler/target/jvm/magic.lux diff --git a/stdlib/source/library/lux/meta/target/jvm/method.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/method.lux index a4689017a..a4689017a 100644 --- a/stdlib/source/library/lux/meta/target/jvm/method.lux +++ b/stdlib/source/library/lux/meta/compiler/target/jvm/method.lux diff --git a/stdlib/source/library/lux/meta/target/jvm/modifier.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/modifier.lux index 59359f103..59359f103 100644 --- a/stdlib/source/library/lux/meta/target/jvm/modifier.lux +++ b/stdlib/source/library/lux/meta/compiler/target/jvm/modifier.lux diff --git a/stdlib/source/library/lux/meta/target/jvm/modifier/inner.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/modifier/inner.lux index 6a2a188fe..6a2a188fe 100644 --- a/stdlib/source/library/lux/meta/target/jvm/modifier/inner.lux +++ b/stdlib/source/library/lux/meta/compiler/target/jvm/modifier/inner.lux diff --git a/stdlib/source/library/lux/meta/target/jvm/reflection.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/reflection.lux index d62ce7c3f..d62ce7c3f 100644 --- a/stdlib/source/library/lux/meta/target/jvm/reflection.lux +++ b/stdlib/source/library/lux/meta/compiler/target/jvm/reflection.lux diff --git a/stdlib/source/library/lux/meta/target/jvm/type.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/type.lux index e1cbb4374..e1cbb4374 100644 --- a/stdlib/source/library/lux/meta/target/jvm/type.lux +++ b/stdlib/source/library/lux/meta/compiler/target/jvm/type.lux diff --git a/stdlib/source/library/lux/meta/target/jvm/type/alias.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/type/alias.lux index 8bc4f29e8..8bc4f29e8 100644 --- a/stdlib/source/library/lux/meta/target/jvm/type/alias.lux +++ b/stdlib/source/library/lux/meta/compiler/target/jvm/type/alias.lux diff --git a/stdlib/source/library/lux/meta/target/jvm/type/box.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/type/box.lux index 367efa5ed..367efa5ed 100644 --- a/stdlib/source/library/lux/meta/target/jvm/type/box.lux +++ b/stdlib/source/library/lux/meta/compiler/target/jvm/type/box.lux diff --git a/stdlib/source/library/lux/meta/target/jvm/type/category.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/type/category.lux index 5ab489d09..5ab489d09 100644 --- a/stdlib/source/library/lux/meta/target/jvm/type/category.lux +++ b/stdlib/source/library/lux/meta/compiler/target/jvm/type/category.lux diff --git a/stdlib/source/library/lux/meta/target/jvm/type/descriptor.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/type/descriptor.lux index 2327f07b2..2327f07b2 100644 --- a/stdlib/source/library/lux/meta/target/jvm/type/descriptor.lux +++ b/stdlib/source/library/lux/meta/compiler/target/jvm/type/descriptor.lux diff --git a/stdlib/source/library/lux/meta/target/jvm/type/lux.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/type/lux.lux index 5e9b87242..5e9b87242 100644 --- a/stdlib/source/library/lux/meta/target/jvm/type/lux.lux +++ b/stdlib/source/library/lux/meta/compiler/target/jvm/type/lux.lux diff --git a/stdlib/source/library/lux/meta/target/jvm/type/parser.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/type/parser.lux index 2ad5b09a2..2ad5b09a2 100644 --- a/stdlib/source/library/lux/meta/target/jvm/type/parser.lux +++ b/stdlib/source/library/lux/meta/compiler/target/jvm/type/parser.lux diff --git a/stdlib/source/library/lux/meta/target/jvm/type/reflection.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/type/reflection.lux index 1478a0494..1478a0494 100644 --- a/stdlib/source/library/lux/meta/target/jvm/type/reflection.lux +++ b/stdlib/source/library/lux/meta/compiler/target/jvm/type/reflection.lux diff --git a/stdlib/source/library/lux/meta/target/jvm/type/signature.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/type/signature.lux index 1f7eb3a53..1f7eb3a53 100644 --- a/stdlib/source/library/lux/meta/target/jvm/type/signature.lux +++ b/stdlib/source/library/lux/meta/compiler/target/jvm/type/signature.lux diff --git a/stdlib/source/library/lux/meta/target/jvm/version.lux b/stdlib/source/library/lux/meta/compiler/target/jvm/version.lux index 8e8b82dcc..8e8b82dcc 100644 --- a/stdlib/source/library/lux/meta/target/jvm/version.lux +++ b/stdlib/source/library/lux/meta/compiler/target/jvm/version.lux diff --git a/stdlib/source/library/lux/meta/target/lua.lux b/stdlib/source/library/lux/meta/compiler/target/lua.lux index bc5ead9aa..32aec9b08 100644 --- a/stdlib/source/library/lux/meta/target/lua.lux +++ b/stdlib/source/library/lux/meta/compiler/target/lua.lux @@ -18,7 +18,6 @@ ["i" int] ["f" frac]]] [meta - ["@" target] ["[0]" code (.only) ["<[1]>" \\parser]] [macro diff --git a/stdlib/source/library/lux/meta/target/php.lux b/stdlib/source/library/lux/meta/compiler/target/php.lux index cb4d0a622..98c95a5aa 100644 --- a/stdlib/source/library/lux/meta/target/php.lux +++ b/stdlib/source/library/lux/meta/compiler/target/php.lux @@ -17,7 +17,6 @@ ["n" nat] ["f" frac]]] [meta - ["@" target] ["[0]" code (.only) ["<[1]>" \\parser]] [macro diff --git a/stdlib/source/library/lux/meta/target/python.lux b/stdlib/source/library/lux/meta/compiler/target/python.lux index c1c8fe105..c1c8fe105 100644 --- a/stdlib/source/library/lux/meta/target/python.lux +++ b/stdlib/source/library/lux/meta/compiler/target/python.lux diff --git a/stdlib/source/library/lux/meta/target/r.lux b/stdlib/source/library/lux/meta/compiler/target/r.lux index e95eff6df..e95eff6df 100644 --- a/stdlib/source/library/lux/meta/target/r.lux +++ b/stdlib/source/library/lux/meta/compiler/target/r.lux diff --git a/stdlib/source/library/lux/meta/target/ruby.lux b/stdlib/source/library/lux/meta/compiler/target/ruby.lux index c47ea733c..f9e92db02 100644 --- a/stdlib/source/library/lux/meta/target/ruby.lux +++ b/stdlib/source/library/lux/meta/compiler/target/ruby.lux @@ -17,7 +17,6 @@ ["n" nat] ["f" frac]]] [meta - ["@" target] ["[0]" code (.only) ["<[1]>" \\parser]] [macro diff --git a/stdlib/source/library/lux/meta/target/scheme.lux b/stdlib/source/library/lux/meta/compiler/target/scheme.lux index 4c8049fce..da0e850c0 100644 --- a/stdlib/source/library/lux/meta/target/scheme.lux +++ b/stdlib/source/library/lux/meta/compiler/target/scheme.lux @@ -16,7 +16,6 @@ ["n" nat] ["f" frac]]] [meta - ["@" target] [macro ["[0]" template]] [type diff --git a/stdlib/source/library/lux/meta/extension.lux b/stdlib/source/library/lux/meta/extension.lux index e44345492..d9379061f 100644 --- a/stdlib/source/library/lux/meta/extension.lux +++ b/stdlib/source/library/lux/meta/extension.lux @@ -10,19 +10,19 @@ [collection ["[0]" list (.use "[1]#[0]" functor)]]] [meta - ["@" target (.only) - (.,, (.for "JVM" - [jvm - ["_" bytecode (.only Bytecode)]] - - ... else - [/]))] ["[0]" code (.only) ["<c>" \\parser (.only Parser)]] [macro (.only with_symbols) [syntax (.only syntax)] ["[0]" template]] [compiler + ["@" target (.only) + (.,, (.for "JVM" + [jvm + ["_" bytecode (.only Bytecode)]] + + ... else + [/]))] [language [lux ["[0]" phase] diff --git a/stdlib/source/library/lux/meta/type.lux b/stdlib/source/library/lux/meta/type.lux index 8413debc3..68bfbb5bd 100644 --- a/stdlib/source/library/lux/meta/type.lux +++ b/stdlib/source/library/lux/meta/type.lux @@ -18,14 +18,15 @@ [number ["n" nat (.use "[1]#[0]" decimal)]]] ["[0]" meta (.only) - ["@" target] ["[0]" location] ["[0]" symbol (.use "[1]#[0]" equivalence codec)] ["[0]" code (.only) ["<[1]>" \\parser (.only Parser)]] ["[0]" macro (.only) [syntax (.only syntax)] - ["[0]" expansion]]]]]) + ["[0]" expansion]] + [compiler + ["@" target]]]]]) (with_template [<name> <tag>] [(def .public (<name> type) diff --git a/stdlib/source/library/lux/meta/type/check.lux b/stdlib/source/library/lux/meta/type/check.lux index f5e596bd2..0a962dabf 100644 --- a/stdlib/source/library/lux/meta/type/check.lux +++ b/stdlib/source/library/lux/meta/type/check.lux @@ -19,9 +19,10 @@ [number ["n" nat (.use "[1]#[0]" decimal)]]] [meta - ["@" target] [macro - ["^" pattern]]]]] + ["^" pattern]] + [compiler + ["@" target]]]]] ["[0]" // (.use "[1]#[0]" equivalence)]) (def !n#= diff --git a/stdlib/source/library/lux/program.lux b/stdlib/source/library/lux/program.lux index 9c9e5148a..58befea91 100644 --- a/stdlib/source/library/lux/program.lux +++ b/stdlib/source/library/lux/program.lux @@ -9,11 +9,12 @@ [concurrency ["[0]" thread]]] [meta - ["@" target] ["[0]" code (.only) ["<[1]>" \\parser]] [macro (.only with_symbols) - [syntax (.only syntax)]]]]] + [syntax (.only syntax)]] + [compiler + ["@" target]]]]] ["</>" \\parser]) (type .public Program diff --git a/stdlib/source/library/lux/test/property.lux b/stdlib/source/library/lux/test/property.lux index 592c8fce3..7469f0442 100644 --- a/stdlib/source/library/lux/test/property.lux +++ b/stdlib/source/library/lux/test/property.lux @@ -28,10 +28,11 @@ ["n" nat] ["f" frac]]] [meta - ["@" target] ["[0]" symbol] ["[0]" code ["<[1]>" \\parser]] + [compiler + ["@" target]] [macro [syntax (.only syntax)]]] [world diff --git a/stdlib/source/library/lux/web/html.lux b/stdlib/source/library/lux/web/html.lux index a9191443c..4a78edf04 100644 --- a/stdlib/source/library/lux/web/html.lux +++ b/stdlib/source/library/lux/web/html.lux @@ -15,8 +15,9 @@ [meta [macro ["[0]" template]] - [target - ["[0]" js]] + [compiler + [target + ["[0]" js]]] [type ["[0]" nominal (.except def)]]] [world diff --git a/stdlib/source/library/lux/world/console.lux b/stdlib/source/library/lux/world/console.lux index ca2224585..de09925d3 100644 --- a/stdlib/source/library/lux/world/console.lux +++ b/stdlib/source/library/lux/world/console.lux @@ -17,7 +17,8 @@ [char (.only Char)] ["%" \\format (.only format)]]] [meta - ["@" target]]]]) + [compiler + ["@" target]]]]]) (type .public (Console !) (Interface diff --git a/stdlib/source/library/lux/world/environment.lux b/stdlib/source/library/lux/world/environment.lux index 9e6ff9657..53c05aa3c 100644 --- a/stdlib/source/library/lux/world/environment.lux +++ b/stdlib/source/library/lux/world/environment.lux @@ -28,9 +28,10 @@ [number ["i" int]]] [meta - ["@" target] ["[0]" macro (.only) - ["[0]" template]]]]] + ["[0]" template]] + [compiler + ["@" target]]]]] ["[0]" \\parser] [// [file (.only Path)] diff --git a/stdlib/source/library/lux/world/file.lux b/stdlib/source/library/lux/world/file.lux index 997330d7f..d3ec7994a 100644 --- a/stdlib/source/library/lux/world/file.lux +++ b/stdlib/source/library/lux/world/file.lux @@ -32,9 +32,10 @@ ["i" int] ["f" frac]]] [meta - ["@" target] [macro - ["[0]" template]]]]] + ["[0]" template]] + [compiler + ["@" target]]]]] [// [time ["[0]" instant (.only Instant)] diff --git a/stdlib/source/library/lux/world/file/watch.lux b/stdlib/source/library/lux/world/file/watch.lux index 89abd42b1..8e727668d 100644 --- a/stdlib/source/library/lux/world/file/watch.lux +++ b/stdlib/source/library/lux/world/file/watch.lux @@ -27,9 +27,10 @@ [number ["n" nat]]] [meta - ["@" target] [type - ["[0]" nominal (.only representation abstraction)]]] + ["[0]" nominal (.only representation abstraction)]] + [compiler + ["@" target]]] [world [time ["[0]" instant (.only Instant) (.use "[1]#[0]" equivalence)]]]]] diff --git a/stdlib/source/library/lux/world/net/http/client.lux b/stdlib/source/library/lux/world/net/http/client.lux index 827fd4c72..8367aab1b 100644 --- a/stdlib/source/library/lux/world/net/http/client.lux +++ b/stdlib/source/library/lux/world/net/http/client.lux @@ -21,12 +21,13 @@ ["n" nat] ["i" int]]] [meta - ["@" target] ["[0]" code (.only) ["<[1]>" \\parser]] [macro [syntax (.only syntax)] - ["[0]" template]]]]] + ["[0]" template]] + [compiler + ["@" target]]]]] ["[0]" // (.only) [response (.only Response)] ["[0]" header (.only Headers)] diff --git a/stdlib/source/library/lux/world/shell.lux b/stdlib/source/library/lux/world/shell.lux index d74bdc120..7ea914772 100644 --- a/stdlib/source/library/lux/world/shell.lux +++ b/stdlib/source/library/lux/world/shell.lux @@ -28,7 +28,8 @@ [number (.only hex) ["n" nat]]] [meta - ["@" target]]]] + [compiler + ["@" target]]]]] [// [file (.only Path)] [environment diff --git a/stdlib/source/library/lux/world/time/instant.lux b/stdlib/source/library/lux/world/time/instant.lux index b6a5589fa..10fd96d57 100644 --- a/stdlib/source/library/lux/world/time/instant.lux +++ b/stdlib/source/library/lux/world/time/instant.lux @@ -21,9 +21,10 @@ ["i" int (.use "[1]#[0]" interval)] ["f" frac]]] [meta - ["@" target] [type - ["[0]" nominal (.except def)]]]]] + ["[0]" nominal (.except def)]] + [compiler + ["@" target]]]]] ["[0]" // (.only Time) ["[0]" duration (.only Duration)] ["[0]" year (.only Year)] diff --git a/stdlib/source/library/lux/world/time/solar.lux b/stdlib/source/library/lux/world/time/solar.lux index 0cac56e36..41ee560c7 100644 --- a/stdlib/source/library/lux/world/time/solar.lux +++ b/stdlib/source/library/lux/world/time/solar.lux @@ -14,9 +14,10 @@ ["i" int] ["f" frac]]] [meta - ["@" target] [type - ["[0]" nominal (.except def)]]]]] + ["[0]" nominal (.except def)]] + [compiler + ["@" target]]]]] ["[0]" // ["[1]" instant] ["[0]" duration (.only Duration)]]) diff --git a/stdlib/source/program/compositor.lux b/stdlib/source/program/compositor.lux index 6b59e88ca..3fd6a0ea9 100644 --- a/stdlib/source/program/compositor.lux +++ b/stdlib/source/program/compositor.lux @@ -23,8 +23,8 @@ ["[0]" tar (.only Tar)]]] [meta [type (.only sharing)] - ["@" target] ["[0]" compiler + ["@" target] [default ["[0]" platform (.only Platform)]] [language diff --git a/stdlib/source/test/aedifex/cli.lux b/stdlib/source/test/aedifex/cli.lux index 90550b004..6afd9a84c 100644 --- a/stdlib/source/test/aedifex/cli.lux +++ b/stdlib/source/test/aedifex/cli.lux @@ -106,7 +106,11 @@ (def .public test Test (<| (_.covering /._) - (_.for [/.Compilation /.Command] + (_.for [/.Compilation + /.#Build /.#Test + + /.Command + /.#Version /.#Clean /.#POM /.#Dependencies /.#Install /.#Deploy /.#Compilation /.#Auto] (all _.and (_.for [/.equivalence] (equivalenceT.spec /.equivalence ..command)) diff --git a/stdlib/source/test/lux.lux b/stdlib/source/test/lux.lux index be6350aa8..7fe85af8e 100644 --- a/stdlib/source/test/lux.lux +++ b/stdlib/source/test/lux.lux @@ -29,7 +29,6 @@ ["f" frac] ["[0]" i64]]] ["[0]" meta (.use "[1]#[0]" monad) - ["@" target] ["[0]" static] ["[0]" location (.use "[1]#[0]" equivalence)] ["[0]" code (.use "[1]#[0]" equivalence) @@ -37,7 +36,9 @@ ["[0]" macro (.only) [syntax (.only syntax)] ["^" pattern] - ["[0]" template]]] + ["[0]" template]] + [compiler + ["@" target]]] [test ["_" property (.only Test)]]]] ... TODO: Must have 100% coverage on tests. diff --git a/stdlib/source/test/lux/abstract/equivalence.lux b/stdlib/source/test/lux/abstract/equivalence.lux index fffb537ad..56e22b921 100644 --- a/stdlib/source/test/lux/abstract/equivalence.lux +++ b/stdlib/source/test/lux/abstract/equivalence.lux @@ -19,7 +19,8 @@ ["n" nat] ["i" int]]] [meta - ["@" target]] + [compiler + ["@" target]]] [test ["_" property (.only Test)]]]] ["[0]" \\polytypic] diff --git a/stdlib/source/test/lux/abstract/functor.lux b/stdlib/source/test/lux/abstract/functor.lux index da06b6eaf..c30a974b2 100644 --- a/stdlib/source/test/lux/abstract/functor.lux +++ b/stdlib/source/test/lux/abstract/functor.lux @@ -17,7 +17,8 @@ [number ["n" nat]]] [meta - ["@" target]] + [compiler + ["@" target]]] [test ["_" property (.only Test)]]]] ["[0]" \\polytypic] diff --git a/stdlib/source/test/lux/control/concurrency/async.lux b/stdlib/source/test/lux/control/concurrency/async.lux index efa1e26dc..b043efcff 100644 --- a/stdlib/source/test/lux/control/concurrency/async.lux +++ b/stdlib/source/test/lux/control/concurrency/async.lux @@ -17,7 +17,8 @@ ["i" int] ["[0]" i64]]] [meta - ["@" target]] + [compiler + ["@" target]]] [world [time ["[0]" instant] diff --git a/stdlib/source/test/lux/control/concurrency/semaphore.lux b/stdlib/source/test/lux/control/concurrency/semaphore.lux index c14ddba68..4ff4babdc 100644 --- a/stdlib/source/test/lux/control/concurrency/semaphore.lux +++ b/stdlib/source/test/lux/control/concurrency/semaphore.lux @@ -23,9 +23,10 @@ ["n" nat] ["[0]" i64]]] [meta - ["@" target] [type - ["[0]" refinement]]] + ["[0]" refinement]] + [compiler + ["@" target]]] [test ["_" property (.only Test)] ["[0]" unit]]]] diff --git a/stdlib/source/test/lux/data/format/json.lux b/stdlib/source/test/lux/data/format/json.lux index b97cb1afe..ee48081e4 100644 --- a/stdlib/source/test/lux/data/format/json.lux +++ b/stdlib/source/test/lux/data/format/json.lux @@ -32,13 +32,14 @@ ["[0]" i64] ["[0]" frac]]] ["[0]" meta (.only) - ["@" target] ["[0]" code] ["[0]" macro (.only) ["^" pattern] ["[0]" syntax (.only syntax)]] [type - ["[0]" unit]]] + ["[0]" unit]] + [compiler + ["@" target]]] [world [time ["[0]" date] diff --git a/stdlib/source/test/lux/debug.lux b/stdlib/source/test/lux/debug.lux index 870809042..ed4e44d29 100644 --- a/stdlib/source/test/lux/debug.lux +++ b/stdlib/source/test/lux/debug.lux @@ -23,12 +23,13 @@ [number [ratio (.only Ratio)]]] [meta - ["@" target] ["[0]" code (.only) ["<[1]>" \\parser]] [macro [syntax (.only syntax)] - ["[0]" expansion]]] + ["[0]" expansion]] + [compiler + ["@" target]]] [world [time (.only Time) [instant (.only Instant)] diff --git a/stdlib/source/test/lux/ffi.jvm.lux b/stdlib/source/test/lux/ffi.jvm.lux index a80a7f63b..651989969 100644 --- a/stdlib/source/test/lux/ffi.jvm.lux +++ b/stdlib/source/test/lux/ffi.jvm.lux @@ -31,9 +31,10 @@ [syntax (.only syntax)] ["[0]" template] ["[0]" expansion]] - [target - ["[0]" jvm - ["[1]" type (.use "[1]#[0]" equivalence)]]]] + [compiler + [target + ["[0]" jvm + ["[1]" type (.use "[1]#[0]" equivalence)]]]]] [test ["_" property (.only Test)]]]] [\\library diff --git a/stdlib/source/test/lux/math/number/frac.lux b/stdlib/source/test/lux/math/number/frac.lux index 30fd2d64c..75b68ea26 100644 --- a/stdlib/source/test/lux/math/number/frac.lux +++ b/stdlib/source/test/lux/math/number/frac.lux @@ -21,9 +21,10 @@ ["[0]" arithmetic ["[1]T" \\test]]] [meta - ["@" target] [macro - ["[0]" template]]] + ["[0]" template]] + [compiler + ["@" target]]] [test ["_" property (.only Test)]]]] [\\library diff --git a/stdlib/source/test/lux/meta.lux b/stdlib/source/test/lux/meta.lux index fe12454a0..bb5da38b8 100644 --- a/stdlib/source/test/lux/meta.lux +++ b/stdlib/source/test/lux/meta.lux @@ -1,63 +1,56 @@ -(.`` (.`` (.require - [library - [lux (.except) - [abstract - [equivalence (.only Equivalence)] - ["[0]" monad (.only do) - ["[1]T" \\test]] - ["[0]" functor - ["[1]T" \\test (.only Injection Comparison)]] - ["[0]" apply - ["[1]T" \\test]]] - [control - ["[0]" maybe] - ["[0]" try (.only Try) (.use "[1]#[0]" functor)]] - [data - ["[0]" product] - ["[0]" bit (.use "[1]#[0]" equivalence)] - ["[0]" text (.use "[1]#[0]" equivalence) - ["%" \\format (.only format)]] - [collection - ["[0]" list (.use "[1]#[0]" functor monoid)] - ["[0]" set]]] - [math - ["[0]" random (.only Random)] - [number - ["n" nat]]] - [meta - ["@" target] - ["[0]" location] - ["[0]" symbol (.use "[1]#[0]" equivalence)] - [macro - ["^" pattern]]] - [test - ["_" property (.only Test)]]]] - [\\library - ["[0]" / (.only) - ["[0]" type (.use "[1]#[0]" equivalence)]]] - ["[0]" / - ["[1][0]" code] - ["[1][0]" location] - ["[1][0]" symbol] - ["[1][0]" configuration] - ["[1][0]" version] - ["[1][0]" type] - ["[1][0]" macro] - ["[1][0]" static] - ["[1][0]" extension] - ["[1][0]" global] - ["[1][0]" target (.only) - (.,, (.for "{old}" (.,, (.these ["[1]/[0]" jvm])) - "JVM" (.,, (.these ["[1]/[0]" jvm])) - "JavaScript" (.,, (.these ["[1]/[0]" js])) - "Lua" (.,, (.these ["[1]/[0]" lua])) - "Python" (.,, (.these ["[1]/[0]" python])) - "Ruby" (.,, (.these ["[1]/[0]" ruby])) - (.,, (.these))))] - ["[1][0]" compiler - ... ["[1]/[0]" phase] - ] - ]))) +(.require + [library + [lux (.except) + [abstract + [equivalence (.only Equivalence)] + ["[0]" monad (.only do) + ["[1]T" \\test]] + ["[0]" functor + ["[1]T" \\test (.only Injection Comparison)]] + ["[0]" apply + ["[1]T" \\test]]] + [control + ["[0]" maybe] + ["[0]" try (.only Try) (.use "[1]#[0]" functor)]] + [data + ["[0]" product] + ["[0]" bit (.use "[1]#[0]" equivalence)] + ["[0]" text (.use "[1]#[0]" equivalence) + ["%" \\format (.only format)]] + [collection + ["[0]" list (.use "[1]#[0]" functor monoid)] + ["[0]" set]]] + [math + ["[0]" random (.only Random)] + [number + ["n" nat]]] + [meta + ["[0]" location] + ["[0]" symbol (.use "[1]#[0]" equivalence)] + [macro + ["^" pattern]] + [compiler + ["@" target]]] + [test + ["_" property (.only Test)]]]] + [\\library + ["[0]" / (.only) + ["[0]" type (.use "[1]#[0]" equivalence)]]] + ["[0]" / + ["[1][0]" code] + ["[1][0]" location] + ["[1][0]" symbol] + ["[1][0]" configuration] + ["[1][0]" version] + ["[1][0]" type] + ["[1][0]" macro] + ["[1][0]" static] + ["[1][0]" extension] + ["[1][0]" global] + ["[1][0]" compiler + ... ["[1]/[0]" phase] + ] + ]) (def !expect (template (_ <pattern> <value>) @@ -1049,13 +1042,6 @@ /type.test /macro.test /static.test - /target.test - (,, (for @.jvm (,, (these /target/jvm.test)) - @.old (,, (these /target/jvm.test)) - @.js (,, (these /target/js.test)) - @.lua (,, (these /target/lua.test)) - @.python (,, (these /target/python.test)) - @.ruby (,, (these /target/ruby.test)))) (,, (for @.old (,, (these)) (,, (these /extension.test)))) /global.test diff --git a/stdlib/source/test/lux/meta/compiler.lux b/stdlib/source/test/lux/meta/compiler.lux index 58ac3c8a3..1f60bd4f4 100644 --- a/stdlib/source/test/lux/meta/compiler.lux +++ b/stdlib/source/test/lux/meta/compiler.lux @@ -1,36 +1,55 @@ -(.require - [library - [lux (.except) - [abstract - [monad (.only do)]] - [math - ["[0]" random (.only Random)]] - [test - ["_" property (.only Test)]]]] - [\\library - ["[0]" /]] - ["[0]" / - ["[1][0]" arity] - ["[1][0]" version] - ["[1][0]" reference] - ["[1][0]" language - ["[1]/[0]" lux]] - ["[1][0]" meta]]) +(.`` (.`` (.require + [library + [lux (.except) + [abstract + [monad (.only do)]] + [math + ["[0]" random (.only Random)]] + [meta + [compiler + ["@" target]]] + [test + ["_" property (.only Test)]]]] + [\\library + ["[0]" /]] + ["[0]" / + ["[1][0]" arity] + ["[1][0]" version] + ["[1][0]" reference] + ["[1][0]" language + ["[1]/[0]" lux]] + ["[1][0]" meta] + ["[1][0]" target (.only) + (.,, (.for "{old}" (.,, (.these ["[1]/[0]" jvm])) + "JVM" (.,, (.these ["[1]/[0]" jvm])) + "JavaScript" (.,, (.these ["[1]/[0]" js])) + "Lua" (.,, (.these ["[1]/[0]" lua])) + "Python" (.,, (.these ["[1]/[0]" python])) + "Ruby" (.,, (.these ["[1]/[0]" ruby])) + (.,, (.these))))]]))) -(def .public test - Test - (<| (_.covering /._) - (do [! random.monad] - []) - (all _.and - (_.coverage [/.Code /.Parameter /.Input] - true) +(`` (`` (def .public test + Test + (<| (_.covering /._) + (do [! random.monad] + []) + (all _.and + (_.coverage [/.Code /.Parameter /.Input] + true) - /arity.test - /version.test - /reference.test - - /language/lux.test + /arity.test + /version.test + /reference.test + + /language/lux.test - /meta.test - ))) + /meta.test + + /target.test + (,, (for @.jvm (,, (these /target/jvm.test)) + @.old (,, (these /target/jvm.test)) + @.js (,, (these /target/js.test)) + @.lua (,, (these /target/lua.test)) + @.python (,, (these /target/python.test)) + @.ruby (,, (these /target/ruby.test)))) + ))))) diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/phase.lux b/stdlib/source/test/lux/meta/compiler/language/lux/phase.lux index 922290058..ba39fe79e 100644 --- a/stdlib/source/test/lux/meta/compiler/language/lux/phase.lux +++ b/stdlib/source/test/lux/meta/compiler/language/lux/phase.lux @@ -30,7 +30,8 @@ ["[1]/[0]" jvm ["[1]/[0]" host] ["[1]/[0]" primitive] - ["[1]/[0]" type]]]]) + ["[1]/[0]" type] + ["[1]/[0]" value]]]]) (def (injection value) (All (_ of) @@ -217,4 +218,5 @@ /translation/jvm/host.test /translation/jvm/primitive.test /translation/jvm/type.test + /translation/jvm/value.test ))) diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/host.lux b/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/host.lux index 698a6d326..a1553a89d 100644 --- a/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/host.lux +++ b/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/host.lux @@ -12,9 +12,10 @@ [math ["[0]" random (.only Random)]] [meta - [target - [jvm - ["[0]" bytecode]]]] + [compiler + [target + [jvm + ["[0]" bytecode]]]]] [test ["_" property (.only Test)]]]] [\\library diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/type.lux b/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/type.lux index e99233eca..e33aad2ab 100644 --- a/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/type.lux +++ b/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/type.lux @@ -6,10 +6,11 @@ [math ["[0]" random (.only Random)]] [meta - [target - [jvm - ["[0]" type (.only Type) (.use "[1]#[0]" equivalence) - [category (.only Primitive Array Class)]]]]] + [compiler + [target + [jvm + ["[0]" type (.only Type) (.use "[1]#[0]" equivalence) + [category (.only Primitive Array Class)]]]]]] [test ["_" property (.only Test)]]]] [\\library diff --git a/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/value.lux b/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/value.lux new file mode 100644 index 000000000..f54f596cd --- /dev/null +++ b/stdlib/source/test/lux/meta/compiler/language/lux/phase/translation/jvm/value.lux @@ -0,0 +1,64 @@ +(.require + [library + [lux (.except) + [abstract + [monad (.only do)]] + [control + ["[0]" io] + ["[0]" try]] + [data + ["[0]" bit (.use "[1]#[0]" equivalence)] + ["[0]" text]] + [math + ["[0]" random (.only Random)] + [number + ["[0]" int (.use "[1]#[0]" equivalence)] + ["[0]" frac (.use "[1]#[0]" equivalence)]]] + [meta + [compiler + [target + [jvm + ["//" bytecode] + ["[0]" type]]]]] + [test + ["_" property (.only Test)]]]] + [\\library + ["[0]" / (.only) + [// + ["[0]" host] + ["[0]" primitive]]]]) + +(def .public test + Test + (<| (_.covering /._) + (do [! random.monad] + [expected_bit random.bit + expected_i64 random.i64 + expected_f64 random.frac + expected_text (random.lower_cased 1) + + .let [$unit [0 0]]]) + (`` (all _.and + (_.coverage [/.field] + (not (text.empty? /.field))) + (_.coverage [/.boxed /.primitive] + (and (,, (with_template [<constructor> <expected> <lux_type> <=> <jvm_type>] + [(io.run! (do io.monad + [[class_loader host] host.host] + (in (when (of host evaluate $unit [{.#None} + (all //.composite + (<constructor> <expected>) + (/.primitive <jvm_type>) + (/.boxed <jvm_type>) + )]) + {try.#Success actual} + (<=> <expected> (as <lux_type> actual)) + + {try.#Failure error} + false))))] + + [primitive.bit expected_bit Bit bit#= type.boolean] + [primitive.i64 expected_i64 Int int#= type.long] + [primitive.f64 expected_f64 Frac frac#= type.double] + )))) + )))) diff --git a/stdlib/source/test/lux/meta/compiler/meta/cli.lux b/stdlib/source/test/lux/meta/compiler/meta/cli.lux index 77f39c97b..73cbe0155 100644 --- a/stdlib/source/test/lux/meta/compiler/meta/cli.lux +++ b/stdlib/source/test/lux/meta/compiler/meta/cli.lux @@ -32,7 +32,10 @@ (def .public test Test (<| (_.covering /._) - (_.for [/.Service /.service]) + (_.for [/.Service + /.#Compilation /.#Interpretation /.#Export + + /.service]) (let [(open "list#[0]") (list.equivalence text.equivalence)]) (do [! random.monad] [amount (of ! each (|>> (n.% 5) ++) random.nat) @@ -56,7 +59,8 @@ (list#conjoint (list#each (|>> (list "--source")) sources)) (list "--target" target))]] (all _.and - (_.for [/.Compilation] + (_.for [/.Compilation + /.#host_dependencies /.#libraries /.#compilers /.#sources /.#target /.#module /.#program /.#configuration] (`` (all _.and (,, (with_template [<type> <slot> <?>] [(_.coverage [<type>] diff --git a/stdlib/source/test/lux/meta/target.lux b/stdlib/source/test/lux/meta/compiler/target.lux index 322f270e9..322f270e9 100644 --- a/stdlib/source/test/lux/meta/target.lux +++ b/stdlib/source/test/lux/meta/compiler/target.lux diff --git a/stdlib/source/test/lux/meta/target/js.lux b/stdlib/source/test/lux/meta/compiler/target/js.lux index 2ad2b03ad..2ad2b03ad 100644 --- a/stdlib/source/test/lux/meta/target/js.lux +++ b/stdlib/source/test/lux/meta/compiler/target/js.lux diff --git a/stdlib/source/test/lux/meta/target/jvm.lux b/stdlib/source/test/lux/meta/compiler/target/jvm.lux index dffacdfaa..2fed717cd 100644 --- a/stdlib/source/test/lux/meta/target/jvm.lux +++ b/stdlib/source/test/lux/meta/compiler/target/jvm.lux @@ -32,7 +32,8 @@ ["[0]" i32 (.only I32)] ["[0]" i64]]] [meta - ["@" target]] + [compiler + ["@" target]]] [test ["_" property (.only Test)]]]] [\\library diff --git a/stdlib/source/test/lux/meta/target/lua.lux b/stdlib/source/test/lux/meta/compiler/target/lua.lux index 8aa357f30..8aa357f30 100644 --- a/stdlib/source/test/lux/meta/target/lua.lux +++ b/stdlib/source/test/lux/meta/compiler/target/lua.lux diff --git a/stdlib/source/test/lux/meta/target/python.lux b/stdlib/source/test/lux/meta/compiler/target/python.lux index ac5ba6d0b..ac5ba6d0b 100644 --- a/stdlib/source/test/lux/meta/target/python.lux +++ b/stdlib/source/test/lux/meta/compiler/target/python.lux diff --git a/stdlib/source/test/lux/meta/target/ruby.lux b/stdlib/source/test/lux/meta/compiler/target/ruby.lux index 900e630e7..900e630e7 100644 --- a/stdlib/source/test/lux/meta/target/ruby.lux +++ b/stdlib/source/test/lux/meta/compiler/target/ruby.lux diff --git a/stdlib/source/test/lux/meta/extension.lux b/stdlib/source/test/lux/meta/extension.lux index f98359d94..2d3064c95 100644 --- a/stdlib/source/test/lux/meta/extension.lux +++ b/stdlib/source/test/lux/meta/extension.lux @@ -24,21 +24,21 @@ ["[0]" location] ["[0]" code ["<[1]>" \\parser]] - ["@" target (.only) - ["[0]" js] - ["[0]" python] - ["[0]" lua] - ["[0]" ruby] - ["[0]" php] - ["[0]" scheme] - (.,, (.for "JVM" (.,, (.these ["[0]" jvm - ["[1]" bytecode] - ["[0]" class] - ["[0]" version] - [encoding - ["[0]" name]]])) - (.,, (.these))))] [compiler + ["@" target (.only) + ["[0]" js] + ["[0]" python] + ["[0]" lua] + ["[0]" ruby] + ["[0]" php] + ["[0]" scheme] + (.,, (.for "JVM" (.,, (.these ["[0]" jvm + ["[1]" bytecode] + ["[0]" class] + ["[0]" version] + [encoding + ["[0]" name]]])) + (.,, (.these))))] [meta [archive ["[0]" unit]]] diff --git a/stdlib/source/test/lux/meta/static.lux b/stdlib/source/test/lux/meta/static.lux index 2b69d4cb6..07b45a09e 100644 --- a/stdlib/source/test/lux/meta/static.lux +++ b/stdlib/source/test/lux/meta/static.lux @@ -15,8 +15,9 @@ ["r" rev] ["f" frac]]] ["[0]" meta (.only) - ["@" target] - ["[0]" code]] + ["[0]" code] + [compiler + ["@" target]]] [test ["_" property (.only Test)]]]] [\\library diff --git a/stdlib/source/test/lux/world/finance/market/analysis/pivot_point.lux b/stdlib/source/test/lux/world/finance/market/analysis/pivot_point.lux index 79eb95766..e9ef7baee 100644 --- a/stdlib/source/test/lux/world/finance/market/analysis/pivot_point.lux +++ b/stdlib/source/test/lux/world/finance/market/analysis/pivot_point.lux @@ -36,13 +36,23 @@ it) (money.>= (the session.#low session) it)))) - (_.coverage [/.Central_Pivot_Range /.central_pivot_range - /.#pivot_point /.#top_central /.#bottom_central] - (let [it (/.central_pivot_range session)] - (and (money.= (/.typical_price session) - (the /.#pivot_point it)) - (money.< (the /.#top_central it) - (the /.#pivot_point it)) - (money.> (the /.#bottom_central it) - (the /.#pivot_point it))))) + (_.coverage [/.Central_Pivot_Range + /.#pivot_point /.#top_central /.#bottom_central + + /.central_pivot_range] + (let [it (/.central_pivot_range session) + + pivot_is_typical! + (money.= (/.typical_price session) + (the /.#pivot_point it)) + + all_values_are_different! + (and (not (money.= (the /.#bottom_central it) + (the /.#pivot_point it))) + (not (money.= (the /.#top_central it) + (the /.#pivot_point it))) + (not (money.= (the /.#bottom_central it) + (the /.#top_central it))))] + (and pivot_is_typical! + all_values_are_different!))) ))) diff --git a/stdlib/source/test/lux/world/time/solar.lux b/stdlib/source/test/lux/world/time/solar.lux index 069470205..5611d4d5d 100644 --- a/stdlib/source/test/lux/world/time/solar.lux +++ b/stdlib/source/test/lux/world/time/solar.lux @@ -17,7 +17,8 @@ ["n" nat] ["i" int]]] [meta - ["@" target]] + [compiler + ["@" target]]] [test ["_" property (.only Test)]]]] [\\library diff --git a/stdlib/source/unsafe/lux/data/binary.lux b/stdlib/source/unsafe/lux/data/binary.lux index 7895f0f55..b6ab0519b 100644 --- a/stdlib/source/unsafe/lux/data/binary.lux +++ b/stdlib/source/unsafe/lux/data/binary.lux @@ -13,7 +13,8 @@ [number (.only hex) ["[0]" i64]]] [meta - ["@" target]]]]) + [compiler + ["@" target]]]]]) (with_expansions [<jvm> (these (type .public Binary (ffi.type [byte])) diff --git a/stdlib/source/unsafe/lux/data/collection/array.lux b/stdlib/source/unsafe/lux/data/collection/array.lux index 6fcd99736..3261481d3 100644 --- a/stdlib/source/unsafe/lux/data/collection/array.lux +++ b/stdlib/source/unsafe/lux/data/collection/array.lux @@ -7,9 +7,10 @@ [collection ["[0]" list]]] [meta - ["@" target] [type - ["[0]" variance]]]]]) + ["[0]" variance]] + [compiler + ["@" target]]]]]) (def .public nominal "#Array") |