diff options
Diffstat (limited to '')
113 files changed, 905 insertions, 904 deletions
diff --git a/new-luxc/source/luxc/io.jvm.lux b/new-luxc/source/luxc/io.jvm.lux index a4049de3a..79a4ecfc5 100644 --- a/new-luxc/source/luxc/io.jvm.lux +++ b/new-luxc/source/luxc/io.jvm.lux @@ -8,7 +8,7 @@ (data ["e" error] [text "text/" Eq<Text>] text/format) - [meta] + [macro] [host] (world [file #+ File] [blob #+ Blob]))) diff --git a/new-luxc/source/luxc/lang.lux b/new-luxc/source/luxc/lang.lux index 45a8b1860..4aa47754a 100644 --- a/new-luxc/source/luxc/lang.lux +++ b/new-luxc/source/luxc/lang.lux @@ -8,8 +8,8 @@ [text "text/" Eq<Text>] text/format (coll [list])) - [meta] - (meta ["s" syntax #+ syntax:]) + [macro] + (macro ["s" syntax #+ syntax:]) (lang (type ["tc" check]))) (luxc (lang ["la" analysis]))) @@ -23,13 +23,13 @@ (def: #export (fail message) (All [a] (-> Text (Meta a))) - (do meta;Monad<Meta> - [[file line col] meta;cursor + (do macro;Monad<Meta> + [[file line col] macro;cursor #let [location (format file "," (|> line nat-to-int %i) "," (|> col nat-to-int %i))]] - (meta;fail (format message "\n\n" - "@ " location)))) + (macro;fail (format message "\n\n" + "@ " location)))) (def: #export (throw exception message) (All [a] (-> ex;Exception Text (Meta a))) @@ -37,7 +37,7 @@ (syntax: #export (assert exception message test) (wrap (list (` (if (~ test) - (:: meta;Monad<Meta> (~' wrap) []) + (:: macro;Monad<Meta> (~' wrap) []) (;;throw (~ exception) (~ message))))))) (def: #export (with-type expected action) @@ -77,8 +77,8 @@ (def: #export (infer actualT) (-> Type (Meta Unit)) - (do meta;Monad<Meta> - [expectedT meta;expected-type] + (do macro;Monad<Meta> + [expectedT macro;expected-type] (with-type-env (tc;check expectedT actualT)))) diff --git a/new-luxc/source/luxc/lang/analysis.lux b/new-luxc/source/luxc/lang/analysis.lux index 03e4c867f..f6163feb1 100644 --- a/new-luxc/source/luxc/lang/analysis.lux +++ b/new-luxc/source/luxc/lang/analysis.lux @@ -2,7 +2,7 @@ lux (lux [function] (data (coll [list "list/" Fold<List>])) - (meta [code])) + (macro [code])) (luxc (lang [";L" variable #+ Variable]))) (type: #export Pattern Code) diff --git a/new-luxc/source/luxc/lang/analysis/case.lux b/new-luxc/source/luxc/lang/analysis/case.lux index 69a975b52..5d4c592aa 100644 --- a/new-luxc/source/luxc/lang/analysis/case.lux +++ b/new-luxc/source/luxc/lang/analysis/case.lux @@ -11,8 +11,8 @@ [text] text/format (coll [list "list/" Fold<List> Monoid<List> Functor<List>])) - [meta] - (meta [code]) + [macro] + (macro [code]) (lang [type] (type ["tc" check]))) (luxc ["&" lang] @@ -46,7 +46,7 @@ (-> Type (Meta Type)) (case caseT (#;Var id) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [?caseT' (&;with-type-env (tc;read id))] (case ?caseT' @@ -60,7 +60,7 @@ (simplify-case-type unnamedT) (^or (#;UnivQ _) (#;ExQ _)) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [[ex-id exT] (&;with-type-env tc;existential)] (simplify-case-type (maybe;assume (type;apply (list exT) caseT)))) @@ -68,7 +68,7 @@ (#;Apply inputT funcT) (case funcT (#;Var funcT-id) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [funcT' (&;with-type-env (do tc;Monad<Check> [?funct' (tc;read funcT-id)] @@ -83,13 +83,13 @@ _ (case (type;apply (list inputT) funcT) (#;Some outputT) - (:: meta;Monad<Meta> wrap outputT) + (:: macro;Monad<Meta> wrap outputT) #;None (&;throw Cannot-Simplify-Type-For-Pattern-Matching (%type caseT)))) _ - (:: meta;Monad<Meta> wrap caseT))) + (:: macro;Monad<Meta> wrap caseT))) ## This function handles several concerns at once, but it must be that ## way because those concerns are interleaved when doing @@ -112,7 +112,7 @@ (case pattern [cursor (#;Symbol ["" name])] (&;with-cursor cursor - (do meta;Monad<Meta> + (do macro;Monad<Meta> [outputA (&scope;with-local [name inputT] next) idx &scope;next-local] @@ -125,7 +125,7 @@ (^template [<type> <code-tag>] [cursor (<code-tag> test)] (&;with-cursor cursor - (do meta;Monad<Meta> + (do macro;Monad<Meta> [_ (&;with-type-env (tc;check inputT <type>)) outputA next] @@ -139,7 +139,7 @@ (^ [cursor (#;Tuple (list))]) (&;with-cursor cursor - (do meta;Monad<Meta> + (do macro;Monad<Meta> [_ (&;with-type-env (tc;check inputT Unit)) outputA next] @@ -150,7 +150,7 @@ [cursor (#;Tuple sub-patterns)] (&;with-cursor cursor - (do meta;Monad<Meta> + (do macro;Monad<Meta> [inputT' (simplify-case-type inputT)] (case inputT' (#;Product _) @@ -191,7 +191,7 @@ ))) [cursor (#;Record record)] - (do meta;Monad<Meta> + (do macro;Monad<Meta> [record (structureA;normalize record) [members recordT] (structureA;order record) _ (&;with-type-env @@ -204,7 +204,7 @@ (^ [cursor (#;Form (list& [_ (#;Nat idx)] values))]) (&;with-cursor cursor - (do meta;Monad<Meta> + (do macro;Monad<Meta> [inputT' (simplify-case-type inputT)] (case inputT' (#;Sum _) @@ -216,14 +216,14 @@ (n.< num-cases idx)) (if (and (n.> num-cases size-sum) (n.= (n.dec num-cases) idx)) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [[testP nextA] (analyse-pattern #;None (type;variant (list;drop (n.dec num-cases) flat-sum)) (` [(~@ values)]) next)] (wrap [(` ("lux case variant" (~ (code;nat idx)) (~ (code;nat num-cases)) (~ testP))) nextA])) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [[testP nextA] (analyse-pattern #;None case-type (` [(~@ values)]) next)] (wrap [(` ("lux case variant" (~ (code;nat idx)) (~ (code;nat num-cases)) (~ testP))) nextA]))) @@ -238,9 +238,9 @@ (^ [cursor (#;Form (list& [_ (#;Tag tag)] values))]) (&;with-cursor cursor - (do meta;Monad<Meta> - [tag (meta;normalize tag) - [idx group variantT] (meta;resolve-tag tag) + (do macro;Monad<Meta> + [tag (macro;normalize tag) + [idx group variantT] (macro;resolve-tag tag) _ (&;with-type-env (tc;check inputT variantT))] (analyse-pattern (#;Some (list;size group)) inputT (` ((~ (code;nat idx)) (~@ values))) next))) @@ -256,7 +256,7 @@ (&;throw Cannot-Have-Empty-Branches "") (#;Cons [patternH bodyH] branchesT) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [[inputT inputA] (commonA;with-unknown-type (analyse inputC)) outputH (analyse-pattern #;None inputT patternH (analyse bodyH)) diff --git a/new-luxc/source/luxc/lang/analysis/case/coverage.lux b/new-luxc/source/luxc/lang/analysis/case/coverage.lux index c41cfb2a4..283e21d02 100644 --- a/new-luxc/source/luxc/lang/analysis/case/coverage.lux +++ b/new-luxc/source/luxc/lang/analysis/case/coverage.lux @@ -9,7 +9,7 @@ text/format (coll [list "list/" Fold<List>] [dict #+ Dict])) - [meta "meta/" Monad<Meta>]) + [macro "macro/" Monad<Meta>]) (luxc ["&" lang] (lang ["la" analysis]))) @@ -52,7 +52,7 @@ ## Unit [] amounts to exhaustive coverage because there is only one ## possible value, so matching against it covers all cases. (^or (^code ("lux case bind" (~ _))) (^code ("lux case tuple" []))) - (meta/wrap #Exhaustive) + (macro/wrap #Exhaustive) (^code ("lux case tuple" [(~ singleton)])) (determine singleton) @@ -61,13 +61,13 @@ ## are too many possibilities as far as values go. (^or [_ (#;Nat _)] [_ (#;Int _)] [_ (#;Deg _)] [_ (#;Frac _)] [_ (#;Text _)]) - (meta/wrap #Partial) + (macro/wrap #Partial) ## Bools are the exception, since there is only "true" and ## "false", which means it is possible for boolean ## pattern-matching to become exhaustive if complementary parts meet. [_ (#;Bool value)] - (meta/wrap (#Bool value)) + (macro/wrap (#Bool value)) ## Tuple patterns can be exhaustive if there is exhaustiveness for all of ## their sub-patterns. @@ -75,10 +75,10 @@ (loop [subs subs] (case subs #;Nil - (meta/wrap #Exhaustive) + (macro/wrap #Exhaustive) (#;Cons sub subs') - (do meta;Monad<Meta> + (do macro;Monad<Meta> [pre (determine sub) post (recur subs')] (if (exhaustive? post) @@ -88,7 +88,7 @@ ## Variant patterns can be shown to be exhaustive if all the possible ## cases are handled exhaustively. (^code ("lux case variant" (~ [_ (#;Nat tag-id)]) (~ [_ (#;Nat num-tags)]) (~ sub))) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [=sub (determine sub)] (wrap (#Variant num-tags (|> (dict;new number;Hash<Nat>) diff --git a/new-luxc/source/luxc/lang/analysis/common.lux b/new-luxc/source/luxc/lang/analysis/common.lux index b67e8e268..c1a2a4f5b 100644 --- a/new-luxc/source/luxc/lang/analysis/common.lux +++ b/new-luxc/source/luxc/lang/analysis/common.lux @@ -4,7 +4,7 @@ ["ex" exception #+ exception:]) (data text/format [product]) - [meta] + [macro] (lang [type] (type ["tc" check]))) (luxc ["&" lang] @@ -12,7 +12,7 @@ (def: #export (with-unknown-type action) (All [a] (-> (Meta a) (Meta [Type a]))) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [[_ varT] (&;with-type-env tc;var) analysis (&;with-type varT action) diff --git a/new-luxc/source/luxc/lang/analysis/expression.lux b/new-luxc/source/luxc/lang/analysis/expression.lux index 98addd197..5157848ec 100644 --- a/new-luxc/source/luxc/lang/analysis/expression.lux +++ b/new-luxc/source/luxc/lang/analysis/expression.lux @@ -5,7 +5,7 @@ (data ["e" error] [product] text/format) - [meta] + [macro] (lang [type] (type ["tc" check])) [host]) @@ -30,8 +30,8 @@ (-> &;Eval &;Analyser) (: (-> Code (Meta la;Analysis)) (function analyse [ast] - (do meta;Monad<Meta> - [expectedT meta;expected-type] + (do macro;Monad<Meta> + [expectedT macro;expected-type] (let [[cursor ast'] ast] ## The cursor must be set in the compiler for the sake ## of having useful error messages. @@ -82,14 +82,14 @@ (structureA;analyse-tagged-sum analyse tag (' [])) (^ (#;Form (list& func args))) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [[funcT =func] (commonA;with-unknown-type (analyse func))] (case =func [_ (#;Symbol def-name)] (do @ - [[def-type def-anns def-value] (meta;find-def def-name)] - (if (meta;macro? def-anns) + [[def-type def-anns def-value] (macro;find-def def-name)] + (if (macro;macro? def-anns) (do @ [expansion (function [compiler] (case (macroH;expand (:! Macro def-value) args compiler) diff --git a/new-luxc/source/luxc/lang/analysis/function.lux b/new-luxc/source/luxc/lang/analysis/function.lux index 7f2787e6f..a2aa95c08 100644 --- a/new-luxc/source/luxc/lang/analysis/function.lux +++ b/new-luxc/source/luxc/lang/analysis/function.lux @@ -6,8 +6,8 @@ [text] text/format (coll [list "list/" Fold<List> Monoid<List> Monad<List>])) - [meta] - (meta [code]) + [macro] + (macro [code]) (lang [type] (type ["tc" check]))) (luxc ["&" lang] @@ -23,8 +23,8 @@ ## [Analysers] (def: #export (analyse-function analyse func-name arg-name body) (-> &;Analyser Text Text Code (Meta Analysis)) - (do meta;Monad<Meta> - [functionT meta;expected-type] + (do macro;Monad<Meta> + [functionT macro;expected-type] (loop [expectedT functionT] (&;with-stacked-errors (function [_] (Invalid-Function-Type (%type expectedT))) @@ -94,6 +94,6 @@ (list/map (function [[idx argC]] (format "\n " (%n idx) " " (%code argC)))) (text;join-with ""))))) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [[applyT argsA] (&inference;general analyse funcT args)] (wrap (la;apply argsA funcA))))) diff --git a/new-luxc/source/luxc/lang/analysis/inference.lux b/new-luxc/source/luxc/lang/analysis/inference.lux index 910d5093a..c6f0323f7 100644 --- a/new-luxc/source/luxc/lang/analysis/inference.lux +++ b/new-luxc/source/luxc/lang/analysis/inference.lux @@ -6,7 +6,7 @@ [text] text/format (coll [list "list/" Functor<List>])) - [meta "meta/" Monad<Meta>] + [macro "macro/" Monad<Meta>] (lang [type] (type ["tc" check]))) (luxc ["&" lang] @@ -71,7 +71,7 @@ (-> &;Analyser Type (List Code) (Meta [Type (List Analysis)])) (case args #;Nil - (do meta;Monad<Meta> + (do macro;Monad<Meta> [_ (&;infer inferT)] (wrap [inferT (list)])) @@ -81,12 +81,12 @@ (general analyse unnamedT args) (#;UnivQ _) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [[var-id varT] (&;with-type-env tc;var)] (general analyse (maybe;assume (type;apply (list varT) inferT)) args)) (#;ExQ _) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [[ex-id exT] (&;with-type-env tc;existential)] (general analyse (maybe;assume (type;apply (list exT) inferT)) args)) @@ -107,7 +107,7 @@ ## avoided in Lux code, since the inference algorithm can piece ## things together more easily. (#;Function inputT outputT) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [[outputT' args'A] (general analyse outputT args') argA (&;with-stacked-errors (function [_] (Cannot-Infer-Argument @@ -118,7 +118,7 @@ (wrap [outputT' (list& argA args'A)])) (#;Var infer-id) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [?inferT' (&;with-type-env (tc;read infer-id))] (case ?inferT' (#;Some inferT') @@ -140,14 +140,14 @@ (^template [<tag>] (<tag> env bodyT) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [bodyT+ (record bodyT)] (wrap (<tag> env bodyT+)))) ([#;UnivQ] [#;ExQ]) (#;Product _) - (meta/wrap (type;function (type;flatten-tuple type) type)) + (macro/wrap (type;function (type;flatten-tuple type) type)) _ (&;throw Not-A-Record-Type (%type type)))) @@ -159,13 +159,13 @@ currentT type] (case currentT (#;Named name unnamedT) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [unnamedT+ (recur depth unnamedT)] (wrap unnamedT+)) (^template [<tag>] (<tag> env bodyT) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [bodyT+ (recur (n.inc depth) bodyT)] (wrap (<tag> env bodyT+)))) ([#;UnivQ] @@ -180,11 +180,11 @@ (n.< boundary tag))) (case (list;nth tag cases) (#;Some caseT) - (meta/wrap (if (n.= +0 depth) - (type;function (list caseT) currentT) - (let [replace! (replace-bound (|> depth n.dec (n.* +2)) type)] - (type;function (list (replace! caseT)) - (replace! currentT))))) + (macro/wrap (if (n.= +0 depth) + (type;function (list caseT) currentT) + (let [replace! (replace-bound (|> depth n.dec (n.* +2)) type)] + (type;function (list (replace! caseT)) + (replace! currentT))))) #;None (&common;variant-out-of-bounds-error type expected-size tag)) @@ -196,11 +196,11 @@ (n.= boundary tag) (let [caseT (type;variant (list;drop boundary cases))] - (meta/wrap (if (n.= +0 depth) - (type;function (list caseT) currentT) - (let [replace! (replace-bound (|> depth n.dec (n.* +2)) type)] - (type;function (list (replace! caseT)) - (replace! currentT)))))) + (macro/wrap (if (n.= +0 depth) + (type;function (list caseT) currentT) + (let [replace! (replace-bound (|> depth n.dec (n.* +2)) type)] + (type;function (list (replace! caseT)) + (replace! currentT)))))) ## else (&common;variant-out-of-bounds-error type expected-size tag))) diff --git a/new-luxc/source/luxc/lang/analysis/primitive.lux b/new-luxc/source/luxc/lang/analysis/primitive.lux index 2a0fbfbe5..9124ca271 100644 --- a/new-luxc/source/luxc/lang/analysis/primitive.lux +++ b/new-luxc/source/luxc/lang/analysis/primitive.lux @@ -1,8 +1,8 @@ (;module: lux (lux (control monad) - [meta] - (meta [code]) + [macro] + (macro [code]) (lang (type ["tc" check]))) (luxc ["&" lang] (lang ["la" analysis #+ Analysis]))) @@ -11,7 +11,7 @@ (do-template [<name> <type> <tag>] [(def: #export (<name> value) (-> <type> (Meta Analysis)) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [_ (&;infer <type>)] (wrap (<tag> value))))] @@ -25,6 +25,6 @@ (def: #export analyse-unit (Meta Analysis) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [_ (&;infer Unit)] (wrap (` [])))) diff --git a/new-luxc/source/luxc/lang/analysis/procedure/common.lux b/new-luxc/source/luxc/lang/analysis/procedure/common.lux index a394c554c..747e9f61d 100644 --- a/new-luxc/source/luxc/lang/analysis/procedure/common.lux +++ b/new-luxc/source/luxc/lang/analysis/procedure/common.lux @@ -8,8 +8,8 @@ (coll [list "list/" Functor<List>] [array] [dict #+ Dict])) - [meta] - (meta [code]) + [macro] + (macro [code]) (lang (type ["tc" check])) [io]) (luxc ["&" lang] @@ -52,7 +52,7 @@ (function [analyse eval args] (let [num-actual (list;size args)] (if (n.= num-expected num-actual) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [_ (&;infer outputT) argsA (monad;map @ (function [[argT argC]] @@ -83,7 +83,7 @@ (def: (lux-is proc) (-> Text Proc) (function [analyse eval args] - (do meta;Monad<Meta> + (do macro;Monad<Meta> [[var-id varT] (&;with-type-env tc;var)] ((binary varT varT Bool proc) analyse eval args)))) @@ -95,7 +95,7 @@ (function [analyse eval args] (case args (^ (list opC)) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [[var-id varT] (&;with-type-env tc;var) _ (&;infer (type (Either Text varT))) opA (&;with-type (type (io;IO varT)) @@ -146,7 +146,7 @@ (function [analyse eval args] (case args (^ (list valueC)) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [_ (&;infer (type Type)) valueA (&;with-type Type (analyse valueC))] @@ -278,7 +278,7 @@ (def: (array-get proc) (-> Text Proc) (function [analyse eval args] - (do meta;Monad<Meta> + (do macro;Monad<Meta> [[var-id varT] (&;with-type-env tc;var)] ((binary Nat (type (Array varT)) varT proc) analyse eval args)))) @@ -286,7 +286,7 @@ (def: (array-put proc) (-> Text Proc) (function [analyse eval args] - (do meta;Monad<Meta> + (do macro;Monad<Meta> [[var-id varT] (&;with-type-env tc;var)] ((trinary Nat varT (type (Array varT)) (type (Array varT)) proc) analyse eval args)))) @@ -294,7 +294,7 @@ (def: (array-remove proc) (-> Text Proc) (function [analyse eval args] - (do meta;Monad<Meta> + (do macro;Monad<Meta> [[var-id varT] (&;with-type-env tc;var)] ((binary Nat (type (Array varT)) (type (Array varT)) proc) analyse eval args)))) @@ -339,7 +339,7 @@ (function [analyse eval args] (case args (^ (list initC)) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [[var-id varT] (&;with-type-env tc;var) _ (&;infer (type (Atom varT))) initA (&;with-type varT @@ -352,7 +352,7 @@ (def: (atom-read proc) (-> Text Proc) (function [analyse eval args] - (do meta;Monad<Meta> + (do macro;Monad<Meta> [[var-id varT] (&;with-type-env tc;var)] ((unary (type (Atom varT)) varT proc) analyse eval args)))) @@ -360,7 +360,7 @@ (def: (atom-compare-and-swap proc) (-> Text Proc) (function [analyse eval args] - (do meta;Monad<Meta> + (do macro;Monad<Meta> [[var-id varT] (&;with-type-env tc;var)] ((trinary varT varT (type (Atom varT)) Bool proc) analyse eval args)))) diff --git a/new-luxc/source/luxc/lang/analysis/procedure/host.jvm.lux b/new-luxc/source/luxc/lang/analysis/procedure/host.jvm.lux index 827f3213d..fad31eca0 100644 --- a/new-luxc/source/luxc/lang/analysis/procedure/host.jvm.lux +++ b/new-luxc/source/luxc/lang/analysis/procedure/host.jvm.lux @@ -14,9 +14,9 @@ (coll [list "list/" Fold<List> Functor<List> Monoid<List>] [array] [dict #+ Dict])) - [meta "meta/" Monad<Meta>] - (meta [code] - ["s" syntax]) + [macro "macro/" Monad<Meta>] + (macro [code] + ["s" syntax]) (lang [type] (type ["tc" check])) [host]) @@ -194,7 +194,7 @@ (function [analyse eval args] (case args (^ (list arrayC)) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [_ (&;infer Nat) [var-id varT] (&;with-type-env tc;var) arrayA (&;with-type (type (Array varT)) @@ -209,10 +209,10 @@ (function [analyse eval args] (case args (^ (list lengthC)) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [lengthA (&;with-type Nat (analyse lengthC)) - expectedT meta;expected-type + expectedT macro;expected-type [level elem-class] (: (Meta [Nat Text]) (loop [analysisT expectedT level +0] @@ -245,13 +245,13 @@ (-> Type (Meta Text)) (case objectT (#;Primitive name _) - (meta/wrap name) + (macro/wrap name) (#;Named name unnamed) (check-jvm unnamed) (#;Var id) - (meta/wrap "java.lang.Object") + (macro/wrap "java.lang.Object") (^template [<tag>] (<tag> env unquantified) @@ -272,11 +272,11 @@ (def: (check-object objectT) (-> Type (Meta Text)) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [name (check-jvm objectT)] (if (dict;contains? name boxes) (&;throw Primitives-Are-Not-Objects name) - (meta/wrap name)))) + (macro/wrap name)))) (def: (box-array-element-type elemT) (-> Type (Meta [Type Text])) @@ -284,13 +284,13 @@ (#;Primitive name #;Nil) (let [boxed-name (|> (dict;get name boxes) (maybe;default name))] - (meta/wrap [(#;Primitive boxed-name #;Nil) - boxed-name])) + (macro/wrap [(#;Primitive boxed-name #;Nil) + boxed-name])) (#;Primitive name _) (if (dict;contains? name boxes) (&;throw Primitives-Cannot-Have-Type-Parameters name) - (meta/wrap [elemT name])) + (macro/wrap [elemT name])) _ (&;throw Invalid-Type-For-Array-Element (%type elemT)))) @@ -300,7 +300,7 @@ (function [analyse eval args] (case args (^ (list arrayC idxC)) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [[var-id varT] (&;with-type-env tc;var) _ (&;infer varT) arrayA (&;with-type (type (Array varT)) @@ -320,7 +320,7 @@ (function [analyse eval args] (case args (^ (list arrayC idxC valueC)) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [[var-id varT] (&;with-type-env tc;var) _ (&;infer (type (Array varT))) arrayA (&;with-type (type (Array varT)) @@ -352,8 +352,8 @@ (function [analyse eval args] (case args (^ (list)) - (do meta;Monad<Meta> - [expectedT meta;expected-type + (do macro;Monad<Meta> + [expectedT macro;expected-type _ (check-object expectedT)] (wrap (la;procedure proc (list)))) @@ -365,7 +365,7 @@ (function [analyse eval args] (case args (^ (list objectC)) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [_ (&;infer Bool) [objectT objectA] (&common;with-unknown-type (analyse objectC)) @@ -380,7 +380,7 @@ (function [analyse eval args] (case args (^ (list monitorC exprC)) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [[monitorT monitorA] (&common;with-unknown-type (analyse monitorC)) _ (check-object monitorT) @@ -454,7 +454,7 @@ (def: (load-class name) (-> Text (Meta (Class Object))) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [class-loader &host;class-loader] (case (Class.forName [name false class-loader]) (#e;Success [class]) @@ -465,7 +465,7 @@ (def: (sub-class? super sub) (-> Text Text (Meta Bool)) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [super (load-class super) sub (load-class sub)] (wrap (Class.isAssignableFrom [sub] super)))) @@ -475,7 +475,7 @@ (function [analyse eval args] (case args (^ (list exceptionC)) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [_ (&;infer Bottom) [exceptionT exceptionA] (&common;with-unknown-type (analyse exceptionC)) @@ -497,7 +497,7 @@ (^ (list classC)) (case classC [_ (#;Text class)] - (do meta;Monad<Meta> + (do macro;Monad<Meta> [_ (&;infer (#;Primitive "java.lang.Class" (list (#;Primitive class (list))))) _ (load-class class)] (wrap (la;procedure proc (list (code;text class))))) @@ -515,7 +515,7 @@ (^ (list classC objectC)) (case classC [_ (#;Text class)] - (do meta;Monad<Meta> + (do macro;Monad<Meta> [_ (&;infer Bool) [objectT objectA] (&common;with-unknown-type (analyse objectC)) @@ -550,7 +550,7 @@ (def: (java-type-to-class type) (-> java.lang.reflect.Type (Meta Text)) (cond (host;instance? Class type) - (meta/wrap (Class.getName [] (:! Class type))) + (macro/wrap (Class.getName [] (:! Class type))) (host;instance? ParameterizedType type) (java-type-to-class (ParameterizedType.getRawType [] (:! ParameterizedType type))) @@ -569,7 +569,7 @@ (let [var-name (TypeVariable.getName [] (:! TypeVariable java-type))] (case (dict;get var-name mappings) (#;Some var-type) - (meta/wrap var-type) + (macro/wrap var-type) #;None (&;throw Unknown-Type-Var var-name))) @@ -582,37 +582,37 @@ (java-type-to-lux-type mappings bound) _ - (meta/wrap Top))) + (macro/wrap Top))) (host;instance? Class java-type) (let [java-type (:! (Class Object) java-type) class-name (Class.getName [] java-type)] - (meta/wrap (case (array;size (Class.getTypeParameters [] java-type)) - +0 - (#;Primitive class-name (list)) - - arity - (|> (list;n.range +0 (n.dec arity)) - list;reverse - (list/map (|>. (n.* +2) n.inc #;Bound)) - (#;Primitive class-name) - (type;univ-q arity))))) + (macro/wrap (case (array;size (Class.getTypeParameters [] java-type)) + +0 + (#;Primitive class-name (list)) + + arity + (|> (list;n.range +0 (n.dec arity)) + list;reverse + (list/map (|>. (n.* +2) n.inc #;Bound)) + (#;Primitive class-name) + (type;univ-q arity))))) (host;instance? ParameterizedType java-type) (let [java-type (:! ParameterizedType java-type) raw (ParameterizedType.getRawType [] java-type)] (if (host;instance? Class raw) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [paramsT (|> java-type (ParameterizedType.getActualTypeArguments []) array;to-list (monad;map @ (java-type-to-lux-type mappings)))] - (meta/wrap (#;Primitive (Class.getName [] (:! (Class Object) raw)) - paramsT))) + (macro/wrap (#;Primitive (Class.getName [] (:! (Class Object) raw)) + paramsT))) (&;throw JVM-Type-Is-Not-Class (type-descriptor raw)))) (host;instance? GenericArrayType java-type) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [innerT (|> (:! GenericArrayType java-type) (GenericArrayType.getGenericComponentType []) (java-type-to-lux-type mappings))] @@ -652,9 +652,9 @@ " Type: " (%type type))) ## else - (meta/wrap (|> params - (list;zip2 (list/map (TypeVariable.getName []) class-params)) - (dict;from-list text;Hash<Text>))) + (macro/wrap (|> params + (list;zip2 (list/map (TypeVariable.getName []) class-params)) + (dict;from-list text;Hash<Text>))) )) _ @@ -662,7 +662,7 @@ (def: (cast direction to from) (-> Direction Type Type (Meta [Text Type])) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [to-name (check-jvm to) from-name (check-jvm from)] (cond (dict;contains? to-name boxes) @@ -712,8 +712,8 @@ (def: (infer-out outputT) (-> Type (Meta [Text Type])) - (do meta;Monad<Meta> - [expectedT meta;expected-type + (do macro;Monad<Meta> + [expectedT macro;expected-type [unboxed castT] (cast #Out expectedT outputT) _ (&;with-type-env (tc;check expectedT castT))] @@ -721,7 +721,7 @@ (def: (find-field class-name field-name) (-> Text Text (Meta [(Class Object) Field])) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [class (load-class class-name)] (case (Class.getDeclaredField [field-name] class) (#e;Success field) @@ -738,7 +738,7 @@ (def: (static-field class-name field-name) (-> Text Text (Meta [Type Bool])) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [[class fieldJ] (find-field class-name field-name) #let [modifiers (Field.getModifiers [] fieldJ)]] (if (Modifier.isStatic [modifiers]) @@ -750,7 +750,7 @@ (def: (virtual-field class-name field-name objectT) (-> Text Text Type (Meta [Type Bool])) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [[class fieldJ] (find-field class-name field-name) #let [modifiers (Field.getModifiers [] fieldJ)]] (if (not (Modifier.isStatic [modifiers])) @@ -783,7 +783,7 @@ (def: (analyse-object class analyse sourceC) (-> Text &;Analyser Code (Meta [Type la;Analysis])) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [target-class (load-class class) targetT (java-type-to-lux-type fresh-mappings (:! java.lang.reflect.Type @@ -797,7 +797,7 @@ (def: (analyse-input analyse targetT sourceC) (-> &;Analyser Type Code (Meta [Type Text la;Analysis])) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [[sourceT sourceA] (&common;with-unknown-type (analyse sourceC)) [unboxed castT] (cast #In targetT sourceT)] @@ -810,7 +810,7 @@ (^ (list classC fieldC)) (case [classC fieldC] [[_ (#;Text class)] [_ (#;Text field)]] - (do meta;Monad<Meta> + (do macro;Monad<Meta> [[fieldT final?] (static-field class field) [unboxed castT] (infer-out fieldT)] (wrap (la;procedure proc (list (code;text class) (code;text field) @@ -829,7 +829,7 @@ (^ (list classC fieldC valueC)) (case [classC fieldC] [[_ (#;Text class)] [_ (#;Text field)]] - (do meta;Monad<Meta> + (do macro;Monad<Meta> [_ (&;infer Unit) [fieldT final?] (static-field class field) _ (&;assert Cannot-Set-Final-Field (format class "#" field) @@ -853,7 +853,7 @@ (^ (list classC fieldC objectC)) (case [classC fieldC] [[_ (#;Text class)] [_ (#;Text field)]] - (do meta;Monad<Meta> + (do macro;Monad<Meta> [[objectT objectA] (analyse-object class analyse objectC) [fieldT final?] (virtual-field class field objectT) [unboxed castT] (infer-out fieldT)] @@ -873,7 +873,7 @@ (^ (list classC fieldC valueC objectC)) (case [classC fieldC] [[_ (#;Text class)] [_ (#;Text field)]] - (do meta;Monad<Meta> + (do macro;Monad<Meta> [[objectT objectA] (analyse-object class analyse objectC) _ (&;infer objectT) [fieldT final?] (virtual-field class field objectT) @@ -891,17 +891,17 @@ (def: (java-type-to-parameter type) (-> java.lang.reflect.Type (Meta Text)) (cond (host;instance? Class type) - (meta/wrap (Class.getName [] (:! Class type))) + (macro/wrap (Class.getName [] (:! Class type))) (host;instance? ParameterizedType type) (java-type-to-parameter (ParameterizedType.getRawType [] (:! ParameterizedType type))) (or (host;instance? TypeVariable type) (host;instance? WildcardType type)) - (meta/wrap "java.lang.Object") + (macro/wrap "java.lang.Object") (host;instance? GenericArrayType type) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [componentP (java-type-to-parameter (GenericArrayType.getGenericComponentType [] (:! GenericArrayType type)))] (wrap (format componentP "[]"))) @@ -917,7 +917,7 @@ (def: (check-method class method-name method-type arg-classes method) (-> (Class Object) Text Method-Type (List Text) Method (Meta Bool)) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [parameters (|> (Method.getGenericParameterTypes [] method) array;to-list (monad;map @ java-type-to-parameter)) @@ -946,7 +946,7 @@ (def: (check-constructor class arg-classes constructor) (-> (Class Object) (List Text) (Constructor Object) (Meta Bool)) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [parameters (|> (Constructor.getGenericParameterTypes [] constructor) array;to-list (monad;map @ java-type-to-parameter))] @@ -997,7 +997,7 @@ list;reverse (list;zip2 all-tvars) (dict;from-list text;Hash<Text>))))] - (do meta;Monad<Meta> + (do macro;Monad<Meta> [inputsT (|> (Method.getGenericParameterTypes [] method) array;to-list (monad;map @ (java-type-to-lux-type mappings))) @@ -1018,7 +1018,7 @@ (def: (methods class-name method-name method-type arg-classes) (-> Text Text Method-Type (List Text) (Meta [Type (List Type)])) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [class (load-class class-name) candidates (|> class (Class.getDeclaredMethods []) @@ -1059,7 +1059,7 @@ list;reverse (list;zip2 all-tvars) (dict;from-list text;Hash<Text>))))] - (do meta;Monad<Meta> + (do macro;Monad<Meta> [inputsT (|> (Constructor.getGenericParameterTypes [] constructor) array;to-list (monad;map @ (java-type-to-lux-type mappings))) @@ -1074,7 +1074,7 @@ (def: (constructor-methods class-name arg-classes) (-> Text (List Text) (Meta [Type (List Type)])) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [class (load-class class-name) candidates (|> class (Class.getConstructors []) @@ -1103,10 +1103,10 @@ (def: (sub-type-analyser analyse) (-> &;Analyser &;Analyser) (function [argC] - (do meta;Monad<Meta> + (do macro;Monad<Meta> [[argT argA] (&common;with-unknown-type (analyse argC)) - expectedT meta;expected-type + expectedT macro;expected-type [unboxed castT] (cast #In expectedT argT)] (wrap argA)))) @@ -1116,7 +1116,7 @@ (case (: (e;Error [Text Text (List [Text Code])]) (s;run args ($_ p;seq s;text s;text (p;some (s;tuple (p;seq s;text s;any)))))) (#e;Success [class method argsTC]) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [#let [argsT (list/map product;left argsTC)] [methodT exceptionsT] (methods class method #Static argsT) [outputT argsA] (inferenceA;general (sub-type-analyser analyse) methodT (list/map product;right argsTC)) @@ -1133,7 +1133,7 @@ (case (: (e;Error [Text Text Code (List [Text Code])]) (s;run args ($_ p;seq s;text s;text s;any (p;some (s;tuple (p;seq s;text s;any)))))) (#e;Success [class method objectC argsTC]) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [#let [argsT (list/map product;left argsTC)] [methodT exceptionsT] (methods class method #Virtual argsT) [outputT allA] (inferenceA;general (sub-type-analyser analyse) methodT (list& objectC (list/map product;right argsTC))) @@ -1156,7 +1156,7 @@ (case (: (e;Error [(List Code) [Text Text Code (List [Text Code]) Unit]]) (p;run args ($_ p;seq s;text s;text s;any (p;some (s;tuple (p;seq s;text s;any))) s;end!))) (#e;Success [_ [class method objectC argsTC _]]) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [#let [argsT (list/map product;left argsTC)] [methodT exceptionsT] (methods class method #Special argsT) [outputT argsA] (inferenceA;general (sub-type-analyser analyse) methodT (list& objectC (list/map product;right argsTC))) @@ -1173,7 +1173,7 @@ (case (: (e;Error [Text Text Code (List [Text Code])]) (s;run args ($_ p;seq s;text s;text s;any (p;some (s;tuple (p;seq s;text s;any)))))) (#e;Success [class-name method objectC argsTC]) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [#let [argsT (list/map product;left argsTC)] class (load-class class-name) _ (&;assert Non-Interface class-name @@ -1194,7 +1194,7 @@ (case (: (e;Error [Text (List [Text Code])]) (s;run args ($_ p;seq s;text (p;some (s;tuple (p;seq s;text s;any)))))) (#e;Success [class argsTC]) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [#let [argsT (list/map product;left argsTC)] [methodT exceptionsT] (constructor-methods class argsT) [outputT argsA] (inferenceA;general (sub-type-analyser analyse) methodT (list/map product;right argsTC)) diff --git a/new-luxc/source/luxc/lang/analysis/reference.lux b/new-luxc/source/luxc/lang/analysis/reference.lux index c3ff3456b..25b33881c 100644 --- a/new-luxc/source/luxc/lang/analysis/reference.lux +++ b/new-luxc/source/luxc/lang/analysis/reference.lux @@ -1,8 +1,8 @@ (;module: lux (lux (control monad) - [meta] - (meta [code]) + [macro] + (macro [code]) (lang (type ["tc" check]))) (luxc ["&" lang] (lang ["&;" scope] @@ -12,14 +12,14 @@ ## [Analysers] (def: (analyse-definition def-name) (-> Ident (Meta Analysis)) - (do meta;Monad<Meta> - [actualT (meta;find-def-type def-name) + (do macro;Monad<Meta> + [actualT (macro;find-def-type def-name) _ (&;infer actualT)] (wrap (code;symbol def-name)))) (def: (analyse-variable var-name) (-> Text (Meta (Maybe Analysis))) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [?var (&scope;find var-name)] (case ?var (#;Some [actualT ref]) @@ -34,7 +34,7 @@ (-> Ident (Meta Analysis)) (case reference ["" simple-name] - (do meta;Monad<Meta> + (do macro;Monad<Meta> [?var (analyse-variable simple-name)] (case ?var (#;Some varA) @@ -42,7 +42,7 @@ #;None (do @ - [this-module meta;current-module-name] + [this-module macro;current-module-name] (analyse-definition [this-module simple-name])))) _ diff --git a/new-luxc/source/luxc/lang/analysis/structure.lux b/new-luxc/source/luxc/lang/analysis/structure.lux index 70744ba5b..2292d93cf 100644 --- a/new-luxc/source/luxc/lang/analysis/structure.lux +++ b/new-luxc/source/luxc/lang/analysis/structure.lux @@ -9,8 +9,8 @@ (coll [list "list/" Functor<List>] [dict #+ Dict]) text/format) - [meta] - (meta [code]) + [macro] + (macro [code]) (lang [type] (type ["tc" check]))) (luxc ["&" lang] @@ -32,8 +32,8 @@ (def: #export (analyse-sum analyse tag valueC) (-> &;Analyser Nat Code (Meta la;Analysis)) - (do meta;Monad<Meta> - [expectedT meta;expected-type] + (do macro;Monad<Meta> + [expectedT macro;expected-type] (&;with-stacked-errors (function [_] (Not-Variant-Type (format " Type: " (%type expectedT) "\n" "Value: " (%code valueC) "\n" @@ -115,8 +115,8 @@ (def: (analyse-typed-product analyse membersC+) (-> &;Analyser (List Code) (Meta la;Analysis)) - (do meta;Monad<Meta> - [expectedT meta;expected-type] + (do macro;Monad<Meta> + [expectedT macro;expected-type] (loop [expectedT expectedT membersC+ membersC+] (case [expectedT membersC+] @@ -154,7 +154,7 @@ ## and what was analysed. [tailT tailC] (do @ - [g!tail (meta;gensym "tail")] + [g!tail (macro;gensym "tail")] (&;with-type tailT (analyse (` ("lux case" [(~@ tailC)] (~ g!tail) @@ -163,8 +163,8 @@ (def: #export (analyse-product analyse membersC) (-> &;Analyser (List Code) (Meta la;Analysis)) - (do meta;Monad<Meta> - [expectedT meta;expected-type] + (do macro;Monad<Meta> + [expectedT macro;expected-type] (&;with-stacked-errors (function [_] (Not-Tuple-Type (format " Type: " (%type expectedT) "\n" "Value: " (%code (` [(~@ membersC)]))))) @@ -234,10 +234,10 @@ (def: #export (analyse-tagged-sum analyse tag valueC) (-> &;Analyser Ident Code (Meta la;Analysis)) - (do meta;Monad<Meta> - [tag (meta;normalize tag) - [idx group variantT] (meta;resolve-tag tag) - expectedT meta;expected-type] + (do macro;Monad<Meta> + [tag (macro;normalize tag) + [idx group variantT] (macro;resolve-tag tag) + expectedT macro;expected-type] (case expectedT (#;Var _) (do @ @@ -256,12 +256,12 @@ ## canonical form (with their corresponding module identified). (def: #export (normalize record) (-> (List [Code Code]) (Meta (List [Ident Code]))) - (monad;map meta;Monad<Meta> + (monad;map macro;Monad<Meta> (function [[key val]] (case key [_ (#;Tag key)] - (do meta;Monad<Meta> - [key (meta;normalize key)] + (do macro;Monad<Meta> + [key (macro;normalize key)] (wrap [key val])) _ @@ -277,12 +277,12 @@ (case record ## empty-record = empty-tuple = unit = [] #;Nil - (:: meta;Monad<Meta> wrap [(list) Unit]) + (:: macro;Monad<Meta> wrap [(list) Unit]) (#;Cons [head-k head-v] _) - (do meta;Monad<Meta> - [head-k (meta;normalize head-k) - [_ tag-set recordT] (meta;resolve-tag head-k) + (do macro;Monad<Meta> + [head-k (macro;normalize head-k) + [_ tag-set recordT] (macro;resolve-tag head-k) #let [size-record (list;size record) size-ts (list;size tag-set)] _ (if (n.= size-ts size-record) @@ -296,7 +296,7 @@ idx->val (monad;fold @ (function [[key val] idx->val] (do @ - [key (meta;normalize key)] + [key (macro;normalize key)] (case (dict;get key tag->idx) #;None (&;throw Tag-Does-Not-Belong-To-Record @@ -321,10 +321,10 @@ (def: #export (analyse-record analyse members) (-> &;Analyser (List [Code Code]) (Meta la;Analysis)) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [members (normalize members) [membersC recordT] (order members) - expectedT meta;expected-type] + expectedT macro;expected-type] (case expectedT (#;Var _) (do @ diff --git a/new-luxc/source/luxc/lang/analysis/type.lux b/new-luxc/source/luxc/lang/analysis/type.lux index c91fdab38..f85608e19 100644 --- a/new-luxc/source/luxc/lang/analysis/type.lux +++ b/new-luxc/source/luxc/lang/analysis/type.lux @@ -1,7 +1,7 @@ (;module: lux (lux (control monad) - [meta] + [macro] (lang (type ["tc" check]))) (luxc ["&" lang] (lang ["la" analysis #+ Analysis]))) @@ -11,7 +11,7 @@ ## computing Lux type values. (def: #export (analyse-check analyse eval type value) (-> &;Analyser &;Eval Code Code (Meta Analysis)) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [actualT (eval Type type) #let [actualT (:! Type actualT)] _ (&;infer actualT)] @@ -20,7 +20,7 @@ (def: #export (analyse-coerce analyse eval type value) (-> &;Analyser &;Eval Code Code (Meta Analysis)) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [actualT (eval Type type) _ (&;infer (:! Type actualT))] (&;with-type Top diff --git a/new-luxc/source/luxc/lang/eval.lux b/new-luxc/source/luxc/lang/eval.lux index 265320dbe..e691ec7a1 100644 --- a/new-luxc/source/luxc/lang/eval.lux +++ b/new-luxc/source/luxc/lang/eval.lux @@ -1,7 +1,7 @@ (;module: lux (lux (control [monad #+ do]) - [meta]) + [macro]) (luxc ["&" lang] (lang (analysis [";A" expression]) (synthesis [";S" expression]) @@ -10,7 +10,7 @@ (def: #export (eval type exprC) &;Eval - (do meta;Monad<Meta> + (do macro;Monad<Meta> [exprA (&;with-type type (expressionA;analyser eval exprC)) #let [exprS (expressionS;synthesize exprA)] diff --git a/new-luxc/source/luxc/lang/host.jvm.lux b/new-luxc/source/luxc/lang/host.jvm.lux index ae1d29387..726bb5bbc 100644 --- a/new-luxc/source/luxc/lang/host.jvm.lux +++ b/new-luxc/source/luxc/lang/host.jvm.lux @@ -9,7 +9,7 @@ text/format (coll [dict] [array])) - [meta #+ Monad<Meta>] + [macro #+ Monad<Meta>] [host #+ do-to object] [io]) (luxc ["&" lang] diff --git a/new-luxc/source/luxc/lang/host/jvm.lux b/new-luxc/source/luxc/lang/host/jvm.lux index 24d4a9ea9..f96b3e646 100644 --- a/new-luxc/source/luxc/lang/host/jvm.lux +++ b/new-luxc/source/luxc/lang/host/jvm.lux @@ -3,9 +3,9 @@ (lux (control monad ["p" parser]) (data (coll [list "list/" Functor<List>])) - [meta] - (meta [code] - ["s" syntax #+ syntax:]) + [macro] + (macro [code] + ["s" syntax #+ syntax:]) [host])) ## [Host] diff --git a/new-luxc/source/luxc/lang/host/jvm/inst.lux b/new-luxc/source/luxc/lang/host/jvm/inst.lux index 37ab75020..dc2909b69 100644 --- a/new-luxc/source/luxc/lang/host/jvm/inst.lux +++ b/new-luxc/source/luxc/lang/host/jvm/inst.lux @@ -7,9 +7,9 @@ text/format (coll [list "L/" Functor<List>])) [host #+ do-to] - [meta] - (meta [code] - ["s" syntax #+ syntax:])) + [macro] + (macro [code] + ["s" syntax #+ syntax:])) ["$" ..] (.. ["$t" type])) diff --git a/new-luxc/source/luxc/lang/host/macro.lux b/new-luxc/source/luxc/lang/host/macro.lux index 01f8c3bdb..d557b6750 100644 --- a/new-luxc/source/luxc/lang/host/macro.lux +++ b/new-luxc/source/luxc/lang/host/macro.lux @@ -2,7 +2,7 @@ lux (lux (control [monad #+ do]) (data ["e" error]) - [meta] + [macro] [host]) (luxc (lang (translation [";T" common]))) [..]) @@ -22,7 +22,7 @@ (host;array-write +1 _object-class))) (def: #export (expand macro inputs) (-> Macro (List Code) (Meta (List Code))) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [class (commonT;load-class ..;function-class)] (function [compiler] (do e;Monad<Error> diff --git a/new-luxc/source/luxc/lang/module.lux b/new-luxc/source/luxc/lang/module.lux index fba337cc3..2b855d927 100644 --- a/new-luxc/source/luxc/lang/module.lux +++ b/new-luxc/source/luxc/lang/module.lux @@ -6,8 +6,8 @@ text/format ["e" error] (coll [list "list/" Fold<List> Functor<List>])) - [meta] - (meta [code])) + [macro] + (macro [code])) (luxc ["&" lang] (lang ["&;" scope]))) @@ -61,11 +61,11 @@ (def: #export (with-module hash name action) (All [a] (-> Nat Text (Meta a) (Meta [Module a]))) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [_ (create hash name) output (&;with-current-module name (&scope;with-scope name action)) - module (meta;find-module name)] + module (macro;find-module name)] (wrap [module output]))) (do-template [<flagger> <asker> <tag>] @@ -114,7 +114,7 @@ (#e;Success [compiler (get@ <tag> module)]) #;None - (meta;run compiler (&;throw Unknown-Module module-name))) + (macro;run compiler (&;throw Unknown-Module module-name))) ))] [tags-by-module #;tags (List [Text [Nat (List Ident) Bool Type]])] @@ -124,7 +124,7 @@ (def: (ensure-undeclared-tags module-name tags) (-> Text (List Text) (Meta Unit)) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [bindings (tags-by-module module-name) _ (monad;map @ (function [tag] @@ -140,8 +140,8 @@ (def: #export (declare-tags tags exported? type) (-> (List Text) Bool Type (Meta Unit)) - (do meta;Monad<Meta> - [current-module meta;current-module-name + (do macro;Monad<Meta> + [current-module macro;current-module-name [type-module type-name] (case type (#;Named type-ident _) (wrap type-ident) @@ -170,4 +170,4 @@ compiler) []])) #;None - (meta;run compiler (&;throw Unknown-Module current-module)))))) + (macro;run compiler (&;throw Unknown-Module current-module)))))) diff --git a/new-luxc/source/luxc/lang/scope.lux b/new-luxc/source/luxc/lang/scope.lux index 435b8ef61..8bc61e722 100644 --- a/new-luxc/source/luxc/lang/scope.lux +++ b/new-luxc/source/luxc/lang/scope.lux @@ -7,7 +7,7 @@ [product] ["e" error] (coll [list "list/" Functor<List> Fold<List> Monoid<List>])) - [meta]) + [macro]) (luxc ["&" lang] (lang [";L" variable #+ Variable]))) @@ -102,8 +102,8 @@ (|>. (update@ #;counter n.inc) (update@ #;mappings (&;pl-put name [type new-var-id])))) head)] - (case (meta;run' (set@ #;scopes (#;Cons new-head tail) compiler) - action) + (case (macro;run' (set@ #;scopes (#;Cons new-head tail) compiler) + action) (#e;Success [compiler' output]) (case (get@ #;scopes compiler') (#;Cons head' tail') diff --git a/new-luxc/source/luxc/lang/synthesis/case.lux b/new-luxc/source/luxc/lang/synthesis/case.lux index 2fd6e19bb..dfe05e1bf 100644 --- a/new-luxc/source/luxc/lang/synthesis/case.lux +++ b/new-luxc/source/luxc/lang/synthesis/case.lux @@ -5,7 +5,7 @@ text/format [number] (coll [list "list/" Fold<List> Monoid<List>])) - (meta [code "code/" Eq<Code>])) + (macro [code "code/" Eq<Code>])) (luxc (lang [";L" variable #+ Variable] ["la" analysis] ["ls" synthesis] diff --git a/new-luxc/source/luxc/lang/synthesis/expression.lux b/new-luxc/source/luxc/lang/synthesis/expression.lux index 4571a8875..b9f5d56cc 100644 --- a/new-luxc/source/luxc/lang/synthesis/expression.lux +++ b/new-luxc/source/luxc/lang/synthesis/expression.lux @@ -8,8 +8,8 @@ text/format (coll [list "list/" Functor<List> Fold<List> Monoid<List>] [dict #+ Dict])) - (meta [code] - ["s" syntax])) + (macro [code] + ["s" syntax])) (luxc (lang ["la" analysis] ["ls" synthesis] (synthesis [";S" case] diff --git a/new-luxc/source/luxc/lang/synthesis/loop.lux b/new-luxc/source/luxc/lang/synthesis/loop.lux index 0070fcd5d..86c37a3f0 100644 --- a/new-luxc/source/luxc/lang/synthesis/loop.lux +++ b/new-luxc/source/luxc/lang/synthesis/loop.lux @@ -4,8 +4,8 @@ ["p" parser]) (data [maybe] (coll [list "list/" Functor<List>])) - (meta [code] - [syntax])) + (macro [code] + [syntax])) (luxc (lang ["ls" synthesis] [";L" variable #+ Variable Register]))) diff --git a/new-luxc/source/luxc/lang/translation.lux b/new-luxc/source/luxc/lang/translation.lux index 1e631205d..9b59e5341 100644 --- a/new-luxc/source/luxc/lang/translation.lux +++ b/new-luxc/source/luxc/lang/translation.lux @@ -7,7 +7,7 @@ [text "text/" Hash<Text>] text/format (coll [dict])) - [meta] + [macro] (lang [syntax] (type ["tc" check])) [host] @@ -39,7 +39,7 @@ (def: (process-annotations annsC) (-> Code (Meta [$;Inst Code])) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [[_ annsA] (&;with-scope (&;with-type Code (analyse annsC))) @@ -53,10 +53,10 @@ (^code ("lux def" (~ [_ (#;Symbol ["" def-name])]) (~ valueC) (~ annsC))) (hostL;with-context def-name (&;with-fresh-type-env - (do meta;Monad<Meta> + (do macro;Monad<Meta> [[annsI annsV] (process-annotations annsC) [_ valueT valueA] (&;with-scope - (if (meta;type? (:! Code annsV)) + (if (macro;type? (:! Code annsV)) (do @ [valueA (&;with-type Type (analyse valueC))] @@ -71,7 +71,7 @@ (wrap [])))) (^code ("lux program" (~ [_ (#;Symbol ["" program-args])]) (~ programC))) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [[_ programA] (&;with-scope (&;with-type (type (io;IO Unit)) (analyse programC))) @@ -79,15 +79,15 @@ (statementT;translate-program program-args programI)) (^code ("lux module" (~ annsC))) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [[annsI annsV] (process-annotations annsC)] (&;fail (%code annsV))) (^code ((~ [_ (#;Symbol macro-name)]) (~@ args))) - (do meta;Monad<Meta> - [macro-name (meta;normalize macro-name) - [def-type def-anns def-value] (meta;find-def macro-name)] - (if (meta;macro? def-anns) + (do macro;Monad<Meta> + [macro-name (macro;normalize macro-name) + [def-type def-anns def-value] (macro;find-def macro-name)] + (if (macro;macro? def-anns) (do @ [expansion (function [compiler] (case (macroH;expand (:! Macro def-value) args compiler) @@ -119,7 +119,7 @@ (def: (with-active-compilation [module-name file-name source-code] action) (All [a] (-> [Text Text Text] (Meta a) (Meta a))) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [#let [init-cursor [file-name +1 +0]] output (&;with-source-code [init-cursor +0 source-code] action) @@ -143,20 +143,20 @@ [_ (&io;prepare-module target-dir module-name) [file-name file-content] (&io;read-module source-dirs module-name) #let [module-hash (text/hash file-content)]] - (case (meta;run' compiler - (do meta;Monad<Meta> - [[_ artifacts _] (moduleL;with-module module-hash module-name - (commonT;with-artifacts - (with-active-compilation [module-name - file-name - file-content] - (exhaust - (do @ - [code (parse module-name) - #let [[cursor _] code]] - (&;with-cursor cursor - (translate code)))))))] - (wrap artifacts))) + (case (macro;run' compiler + (do macro;Monad<Meta> + [[_ artifacts _] (moduleL;with-module module-hash module-name + (commonT;with-artifacts + (with-active-compilation [module-name + file-name + file-content] + (exhaust + (do @ + [code (parse module-name) + #let [[cursor _] code]] + (&;with-cursor cursor + (translate code)))))))] + (wrap artifacts))) (#e;Success [compiler artifacts]) (do @ [_ (monad;map @ (function [[class-name class-bytecode]] diff --git a/new-luxc/source/luxc/lang/translation/case.jvm.lux b/new-luxc/source/luxc/lang/translation/case.jvm.lux index e3052c77d..cf2cdb7f1 100644 --- a/new-luxc/source/luxc/lang/translation/case.jvm.lux +++ b/new-luxc/source/luxc/lang/translation/case.jvm.lux @@ -3,7 +3,7 @@ (lux (control [monad #+ do] ["ex" exception #+ exception:]) (data text/format) - [meta "meta/" Monad<Meta>]) + [macro "macro/" Monad<Meta>]) (luxc ["_" lang] (lang [";L" host] (host ["$" jvm] @@ -59,111 +59,111 @@ Nat $;Label $;Label ls;Path (Meta $;Inst)) (case path (^ [_ (#;Form (list [_ (#;Text "lux case exec")] bodyS))]) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [bodyI (translate bodyS)] (wrap (|>. (pop-altI stack-depth) bodyI ($i;GOTO @end)))) (^ [_ (#;Form (list [_ (#;Text "lux case pop")]))]) - (meta/wrap popI) + (macro/wrap popI) (^ [_ (#;Form (list [_ (#;Text "lux case bind")] [_ (#;Nat register)]))]) - (meta/wrap (|>. peekI - ($i;ASTORE register))) + (macro/wrap (|>. peekI + ($i;ASTORE register))) [_ (#;Bool value)] - (meta/wrap (let [jumpI (if value $i;IFEQ $i;IFNE)] - (|>. peekI - ($i;unwrap #$;Boolean) - (jumpI @else)))) + (macro/wrap (let [jumpI (if value $i;IFEQ $i;IFNE)] + (|>. peekI + ($i;unwrap #$;Boolean) + (jumpI @else)))) (^template [<tag> <prep>] [_ (<tag> value)] - (meta/wrap (|>. peekI - ($i;unwrap #$;Long) - ($i;long (|> value <prep>)) - $i;LCMP - ($i;IFNE @else)))) + (macro/wrap (|>. peekI + ($i;unwrap #$;Long) + ($i;long (|> value <prep>)) + $i;LCMP + ($i;IFNE @else)))) ([#;Nat (:! Int)] [#;Int (: Int)] [#;Deg (:! Int)]) [_ (#;Frac value)] - (meta/wrap (|>. peekI - ($i;unwrap #$;Double) - ($i;double value) - $i;DCMPL - ($i;IFNE @else))) + (macro/wrap (|>. peekI + ($i;unwrap #$;Double) + ($i;double value) + $i;DCMPL + ($i;IFNE @else))) [_ (#;Text value)] - (meta/wrap (|>. peekI - ($i;string value) - ($i;INVOKEVIRTUAL "java.lang.Object" - "equals" - ($t;method (list $Object) - (#;Some $t;boolean) - (list)) - false) - ($i;IFEQ @else))) + (macro/wrap (|>. peekI + ($i;string value) + ($i;INVOKEVIRTUAL "java.lang.Object" + "equals" + ($t;method (list $Object) + (#;Some $t;boolean) + (list)) + false) + ($i;IFEQ @else))) (^template [<special> <method>] (^ [_ (#;Form (list [_ (#;Text <special>)] [_ (#;Nat idx)]))]) - (meta/wrap (case idx - +0 - (|>. peekI - ($i;CHECKCAST ($t;descriptor ../runtime;$Tuple)) - ($i;int 0) - $i;AALOAD - pushI) - - _ - (|>. peekI - ($i;CHECKCAST ($t;descriptor ../runtime;$Tuple)) - ($i;int (nat-to-int idx)) - ($i;INVOKESTATIC hostL;runtime-class - <method> - ($t;method (list ../runtime;$Tuple $t;int) - (#;Some $Object) - (list)) - false) - pushI)))) + (macro/wrap (case idx + +0 + (|>. peekI + ($i;CHECKCAST ($t;descriptor ../runtime;$Tuple)) + ($i;int 0) + $i;AALOAD + pushI) + + _ + (|>. peekI + ($i;CHECKCAST ($t;descriptor ../runtime;$Tuple)) + ($i;int (nat-to-int idx)) + ($i;INVOKESTATIC hostL;runtime-class + <method> + ($t;method (list ../runtime;$Tuple $t;int) + (#;Some $Object) + (list)) + false) + pushI)))) (["lux case tuple left" "pm_left"] ["lux case tuple right" "pm_right"]) (^template [<special> <flag>] (^ [_ (#;Form (list [_ (#;Text <special>)] [_ (#;Nat idx)]))]) - (meta/wrap (<| $i;with-label (function [@success]) - $i;with-label (function [@fail]) - (|>. peekI - ($i;CHECKCAST ($t;descriptor ../runtime;$Variant)) - ($i;int (nat-to-int idx)) - <flag> - ($i;INVOKESTATIC hostL;runtime-class "pm_variant" - ($t;method (list ../runtime;$Variant ../runtime;$Tag ../runtime;$Flag) - (#;Some ../runtime;$Datum) - (list)) - false) - $i;DUP - ($i;IFNULL @fail) - ($i;GOTO @success) - ($i;label @fail) - $i;POP - ($i;GOTO @else) - ($i;label @success) - pushI)))) + (macro/wrap (<| $i;with-label (function [@success]) + $i;with-label (function [@fail]) + (|>. peekI + ($i;CHECKCAST ($t;descriptor ../runtime;$Variant)) + ($i;int (nat-to-int idx)) + <flag> + ($i;INVOKESTATIC hostL;runtime-class "pm_variant" + ($t;method (list ../runtime;$Variant ../runtime;$Tag ../runtime;$Flag) + (#;Some ../runtime;$Datum) + (list)) + false) + $i;DUP + ($i;IFNULL @fail) + ($i;GOTO @success) + ($i;label @fail) + $i;POP + ($i;GOTO @else) + ($i;label @success) + pushI)))) (["lux case variant left" $i;NULL] ["lux case variant right" ($i;string "")]) (^ [_ (#;Form (list [_ (#;Text "lux case seq")] leftP rightP))]) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [leftI (translate-path' translate stack-depth @else @end leftP) rightI (translate-path' translate stack-depth @else @end rightP)] (wrap (|>. leftI rightI))) (^ [_ (#;Form (list [_ (#;Text "lux case alt")] leftP rightP))]) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [@alt-else $i;make-label leftI (translate-path' translate (n.inc stack-depth) @alt-else @end leftP) rightI (translate-path' translate stack-depth @else @end rightP)] @@ -179,7 +179,7 @@ (def: (translate-path translate path @end) (-> (-> ls;Synthesis (Meta $;Inst)) ls;Path $;Label (Meta $;Inst)) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [@else $i;make-label pathI (translate-path' translate +1 @else @end path)] (wrap (|>. pathI @@ -208,7 +208,7 @@ (def: #export (translate-case translate valueS path) (-> (-> ls;Synthesis (Meta $;Inst)) ls;Synthesis ls;Path (Meta $;Inst)) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [@end $i;make-label valueI (translate valueS) pathI (translate-path translate path @end)] @@ -222,7 +222,7 @@ (def: #export (translate-let translate register inputS exprS) (-> (-> ls;Synthesis (Meta $;Inst)) Nat ls;Synthesis ls;Synthesis (Meta $;Inst)) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [inputI (translate inputS) exprI (translate exprS)] (wrap (|>. inputI diff --git a/new-luxc/source/luxc/lang/translation/eval.jvm.lux b/new-luxc/source/luxc/lang/translation/eval.jvm.lux index 3c4eea048..11baa3856 100644 --- a/new-luxc/source/luxc/lang/translation/eval.jvm.lux +++ b/new-luxc/source/luxc/lang/translation/eval.jvm.lux @@ -2,7 +2,7 @@ lux (lux (control monad) (data text/format) - [meta] + [macro] [host #+ do-to]) (luxc ["&" lang] (lang (host ["$" jvm] @@ -55,8 +55,8 @@ (def: #export (eval valueI) (-> $;Inst (Meta Top)) - (do meta;Monad<Meta> - [class-name (:: @ map %code (meta;gensym "eval")) + (do macro;Monad<Meta> + [class-name (:: @ map %code (macro;gensym "eval")) #let [writer (|> (do-to (ClassWriter.new ClassWriter.COMPUTE_MAXS) (ClassWriter.visit [commonT;bytecode-version (i.+ Opcodes.ACC_PUBLIC Opcodes.ACC_SUPER) diff --git a/new-luxc/source/luxc/lang/translation/expression.jvm.lux b/new-luxc/source/luxc/lang/translation/expression.jvm.lux index d592c5001..65bb5b772 100644 --- a/new-luxc/source/luxc/lang/translation/expression.jvm.lux +++ b/new-luxc/source/luxc/lang/translation/expression.jvm.lux @@ -5,8 +5,8 @@ ["p" parser]) (data ["e" error] text/format) - [meta] - (meta ["s" syntax])) + [macro] + (macro ["s" syntax])) (luxc ["&" lang] (lang [";L" variable #+ Variable Register] (host ["$" jvm]) diff --git a/new-luxc/source/luxc/lang/translation/function.jvm.lux b/new-luxc/source/luxc/lang/translation/function.jvm.lux index d12eca16e..d8a2077bc 100644 --- a/new-luxc/source/luxc/lang/translation/function.jvm.lux +++ b/new-luxc/source/luxc/lang/translation/function.jvm.lux @@ -4,7 +4,7 @@ (data [text] text/format (coll [list "list/" Functor<List> Monoid<List>])) - [meta]) + [macro]) (luxc ["&" lang] (lang [";L" host] (host ["$" jvm] @@ -103,7 +103,7 @@ (def: (instance class arity env) (-> Text ls;Arity (List Variable) (Meta $;Inst)) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [captureI+ (monad;map @ referenceT;translate-variable env) #let [argsI (if (poly-arg? arity) (|> (nullsI (n.dec arity)) @@ -278,7 +278,7 @@ (with-reset class arity env) applyD ))] - (do meta;Monad<Meta> + (do macro;Monad<Meta> [instanceI (instance class arity env)] (wrap [functionD instanceI])))) @@ -286,7 +286,7 @@ (-> (-> ls;Synthesis (Meta $;Inst)) (List Variable) ls;Arity ls;Synthesis (Meta $;Inst)) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [@begin $i;make-label [function-class bodyI] (hostL;with-sub-context (hostL;with-anchor [@begin +1] @@ -310,7 +310,7 @@ (-> (-> ls;Synthesis (Meta $;Inst)) ls;Synthesis (List ls;Synthesis) (Meta $;Inst)) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [functionI (translate functionS) argsI (monad;map @ translate argsS) #let [applyI (|> (segment runtimeT;num-apply-variants argsI) diff --git a/new-luxc/source/luxc/lang/translation/loop.jvm.lux b/new-luxc/source/luxc/lang/translation/loop.jvm.lux index b5497236f..f5830bf9e 100644 --- a/new-luxc/source/luxc/lang/translation/loop.jvm.lux +++ b/new-luxc/source/luxc/lang/translation/loop.jvm.lux @@ -4,7 +4,7 @@ (data [text] text/format (coll [list "list/" Functor<List> Monoid<List>])) - [meta]) + [macro]) (luxc ["&" lang] (lang [";L" host] (host ["$" jvm] @@ -22,7 +22,7 @@ (-> (-> ls;Synthesis (Meta $;Inst)) (List ls;Synthesis) (Meta $;Inst)) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [[@begin offset] hostL;anchor argsI (monad;map @ (function [[register argS]] (let [register' (|> register (n.+ offset))] @@ -47,7 +47,7 @@ (-> (-> ls;Synthesis (Meta $;Inst)) Nat (List ls;Synthesis) ls;Synthesis (Meta $;Inst)) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [@begin $i;make-label initsI+ (monad;map @ translate initsS+) bodyI (hostL;with-anchor [@begin (n.inc offset)] diff --git a/new-luxc/source/luxc/lang/translation/primitive.jvm.lux b/new-luxc/source/luxc/lang/translation/primitive.jvm.lux index f059aa8da..e8522ebfc 100644 --- a/new-luxc/source/luxc/lang/translation/primitive.jvm.lux +++ b/new-luxc/source/luxc/lang/translation/primitive.jvm.lux @@ -2,7 +2,7 @@ lux (lux (control monad) (data text/format) - [meta "meta/" Monad<Meta>]) + [macro "macro/" Monad<Meta>]) (luxc ["&" lang] (lang [";L" host] (host ["$" jvm] @@ -15,18 +15,18 @@ (def: #export translate-unit (Meta $;Inst) - (meta/wrap ($i;string hostL;unit))) + (macro/wrap ($i;string hostL;unit))) (def: #export (translate-bool value) (-> Bool (Meta $;Inst)) - (meta/wrap ($i;GETSTATIC "java.lang.Boolean" - (if value "TRUE" "FALSE") - ($t;class "java.lang.Boolean" (list))))) + (macro/wrap ($i;GETSTATIC "java.lang.Boolean" + (if value "TRUE" "FALSE") + ($t;class "java.lang.Boolean" (list))))) (do-template [<name> <type> <load> <wrap>] [(def: #export (<name> value) (-> <type> (Meta $;Inst)) - (meta/wrap (|>. (<load> value) <wrap>)))] + (macro/wrap (|>. (<load> value) <wrap>)))] [translate-nat Nat (|>. (:! Int) $i;long) ($i;wrap #$;Long)] [translate-int Int $i;long ($i;wrap #$;Long)] diff --git a/new-luxc/source/luxc/lang/translation/procedure/common.jvm.lux b/new-luxc/source/luxc/lang/translation/procedure/common.jvm.lux index 3cab88e48..0e17f99a6 100644 --- a/new-luxc/source/luxc/lang/translation/procedure/common.jvm.lux +++ b/new-luxc/source/luxc/lang/translation/procedure/common.jvm.lux @@ -8,9 +8,9 @@ text/format (coll [list "list/" Functor<List>] [dict #+ Dict])) - [meta #+ with-gensyms] - (meta [code] - ["s" syntax #+ syntax:]) + [macro #+ with-gensyms] + (macro [code] + ["s" syntax #+ syntax:]) [host]) (luxc ["&" lang] (lang [";L" host] @@ -84,7 +84,7 @@ (syntax: (arity: [name s;local-symbol] [arity s;nat]) (with-gensyms [g!proc g!name g!translate g!inputs] (do @ - [g!input+ (monad;seq @ (list;repeat arity (meta;gensym "input")))] + [g!input+ (monad;seq @ (list;repeat arity (macro;gensym "input")))] (wrap (list (` (def: #export ((~ (code;local-symbol name)) (~ g!proc)) (-> (-> (;;Vector (~ (code;nat arity)) $;Inst) $;Inst) (-> Text ;;Proc)) @@ -92,7 +92,7 @@ (function [(~ g!translate) (~ g!inputs)] (case (~ g!inputs) (^ (list (~@ g!input+))) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [(~@ (|> g!input+ (list/map (function [g!input] (list g!input (` ((~ g!translate) (~ g!input)))))) @@ -100,7 +100,7 @@ ((~' wrap) ((~ g!proc) [(~@ g!input+)]))) (~' _) - (meta;fail (wrong-arity (~ g!name) +1 (list;size (~ g!inputs)))))))))))))) + (macro;fail (wrong-arity (~ g!name) +1 (list;size (~ g!inputs)))))))))))))) (arity: nullary +0) (arity: unary +1) @@ -111,7 +111,7 @@ (-> Variadic (-> Text Proc)) (function [proc-name] (function [translate inputsS] - (do meta;Monad<Meta> + (do macro;Monad<Meta> [inputsI (monad;map @ translate inputsS)] (wrap (proc inputsI)))))) diff --git a/new-luxc/source/luxc/lang/translation/procedure/host.jvm.lux b/new-luxc/source/luxc/lang/translation/procedure/host.jvm.lux index 8a28e3cf7..b020fed7b 100644 --- a/new-luxc/source/luxc/lang/translation/procedure/host.jvm.lux +++ b/new-luxc/source/luxc/lang/translation/procedure/host.jvm.lux @@ -10,9 +10,9 @@ ["l" lexer]) (coll [list "list/" Functor<List>] [dict #+ Dict])) - [meta "meta/" Monad<Meta>] - (meta [code] - ["s" syntax #+ syntax:]) + [macro "macro/" Monad<Meta>] + (macro [code] + ["s" syntax #+ syntax:]) [host]) (luxc ["&" lang] (lang [";L" host] @@ -280,7 +280,7 @@ (-> Text @;Proc) (case inputs (^ (list [_ (#;Nat level)] [_ (#;Text class)] lengthS)) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [lengthI (translate lengthS) #let [arrayJT ($t;array level (case class "boolean" $t;boolean @@ -304,7 +304,7 @@ (-> Text @;Proc) (case inputs (^ (list [_ (#;Text class)] idxS arrayS)) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [arrayI (translate arrayS) idxI (translate idxS) #let [loadI (case class @@ -330,7 +330,7 @@ (-> Text @;Proc) (case inputs (^ (list [_ (#;Text class)] idxS valueS arrayS)) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [arrayI (translate arrayS) idxI (translate idxS) valueI (translate valueS) @@ -399,7 +399,7 @@ (-> Text @;Proc) (case inputs (^ (list [_ (#;Text class)])) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [] (wrap (|>. ($i;string class) ($i;INVOKESTATIC "java.lang.Class" "forName" @@ -415,7 +415,7 @@ (-> Text @;Proc) (case inputs (^ (list [_ (#;Text class)] objectS)) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [objectI (translate objectS)] (wrap (|>. objectI ($i;INSTANCEOF class) @@ -452,7 +452,7 @@ (-> Text @;Proc) (case inputs (^ (list [_ (#;Text class)] [_ (#;Text field)] [_ (#;Text unboxed)])) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [] (case (dict;get unboxed primitives) (#;Some primitive) @@ -479,7 +479,7 @@ (-> Text @;Proc) (case inputs (^ (list [_ (#;Text class)] [_ (#;Text field)] [_ (#;Text unboxed)] valueS)) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [valueI (translate valueS)] (case (dict;get unboxed primitives) (#;Some primitive) @@ -511,7 +511,7 @@ (-> Text @;Proc) (case inputs (^ (list [_ (#;Text class)] [_ (#;Text field)] [_ (#;Text unboxed)] objectS)) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [objectI (translate objectS)] (case (dict;get unboxed primitives) (#;Some primitive) @@ -542,7 +542,7 @@ (-> Text @;Proc) (case inputs (^ (list [_ (#;Text class)] [_ (#;Text field)] [_ (#;Text unboxed)] valueS objectS)) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [valueI (translate valueS) objectI (translate objectS)] (case (dict;get unboxed primitives) @@ -605,7 +605,7 @@ (&;throw Invalid-Syntax-For-JVM-Type argD) (#e;Success type) - (meta/wrap type))) + (macro/wrap type))) (def: (prepare-input inputT inputI) (-> $;Type $;Inst $;Inst) @@ -629,10 +629,10 @@ (Meta (List [$;Type $;Inst]))) (case argsS #;Nil - (meta/wrap #;Nil) + (macro/wrap #;Nil) (^ (list& [_ (#;Tuple (list [_ (#;Text argD)] argS))] tail)) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [argT (translate-type argD) argI (:: @ map (prepare-input argT) (translate argS)) =tail (translate-args translate tail)] @@ -645,10 +645,10 @@ (-> Text (Meta (Maybe $;Type))) (case description "void" - (meta/wrap #;None) + (macro/wrap #;None) _ - (meta/map (|>. #;Some) (translate-type description)))) + (macro/map (|>. #;Some) (translate-type description)))) (def: (prepare-return returnT returnI) (-> (Maybe $;Type) $;Inst $;Inst) @@ -670,7 +670,7 @@ (case inputs (^ (list& [_ (#;Text class)] [_ (#;Text method)] [_ (#;Text unboxed)] argsS)) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [argsTI (translate-args translate argsS) returnT (method-return-type unboxed) #let [callI (|>. ($i;fuse (list/map product;right argsTI)) @@ -688,7 +688,7 @@ (case inputs (^ (list& [_ (#;Text class)] [_ (#;Text method)] [_ (#;Text unboxed)] objectS argsS)) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [objectI (translate objectS) argsTI (translate-args translate argsS) returnT (method-return-type unboxed) @@ -712,7 +712,7 @@ (-> Text @;Proc) (case inputs (^ (list& [_ (#;Text class)] argsS)) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [argsTI (translate-args translate argsS)] (wrap (|>. ($i;NEW class) $i;DUP diff --git a/new-luxc/source/luxc/lang/translation/reference.jvm.lux b/new-luxc/source/luxc/lang/translation/reference.jvm.lux index b714558b8..9d0cc91e4 100644 --- a/new-luxc/source/luxc/lang/translation/reference.jvm.lux +++ b/new-luxc/source/luxc/lang/translation/reference.jvm.lux @@ -3,7 +3,7 @@ (lux (control [monad #+ do]) (data [text "text/" Hash<Text>] text/format) - [meta "meta/" Monad<Meta>]) + [macro "macro/" Monad<Meta>]) (luxc ["&" lang] (lang [";L" host] (host ["$" jvm] @@ -24,7 +24,7 @@ (def: #export (translate-captured variable) (-> Variable (Meta $;Inst)) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [function-class hostL;context] (wrap (|>. ($i;ALOAD +0) ($i;GETFIELD function-class @@ -33,7 +33,7 @@ (def: #export (translate-local variable) (-> Variable (Meta $;Inst)) - (meta/wrap ($i;ALOAD (int-to-nat variable)))) + (macro/wrap ($i;ALOAD (int-to-nat variable)))) (def: #export (translate-variable variable) (-> Variable (Meta $;Inst)) @@ -44,4 +44,4 @@ (def: #export (translate-definition [def-module def-name]) (-> Ident (Meta $;Inst)) (let [bytecode-name (format def-module "/" (&;normalize-name def-name) (%n (text/hash def-name)))] - (meta/wrap ($i;GETSTATIC bytecode-name commonT;value-field commonT;$Object)))) + (macro/wrap ($i;GETSTATIC bytecode-name commonT;value-field commonT;$Object)))) diff --git a/new-luxc/source/luxc/lang/translation/runtime.jvm.lux b/new-luxc/source/luxc/lang/translation/runtime.jvm.lux index fa6d6dcad..87174b192 100644 --- a/new-luxc/source/luxc/lang/translation/runtime.jvm.lux +++ b/new-luxc/source/luxc/lang/translation/runtime.jvm.lux @@ -4,7 +4,7 @@ (data text/format (coll [list "list/" Functor<List>])) [math] - [meta] + [macro] [host]) (luxc ["&" lang] (lang [";L" host] @@ -579,7 +579,7 @@ (def: translate-runtime (Meta commonT;Bytecode) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [_ (wrap []) #let [bytecode ($d;class #$;V1.6 #$;Public $;finalC hostL;runtime-class (list) ["java.lang.Object" (list)] (list) (|>. adt-methods @@ -594,7 +594,7 @@ (def: translate-function (Meta commonT;Bytecode) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [_ (wrap []) #let [applyI (|> (list;n.range +2 num-apply-variants) (list/map (function [arity] @@ -625,7 +625,7 @@ (def: #export translate (Meta [commonT;Bytecode commonT;Bytecode]) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [runtime-bc translate-runtime function-bc translate-function] (wrap [runtime-bc function-bc]))) diff --git a/new-luxc/source/luxc/lang/translation/statement.jvm.lux b/new-luxc/source/luxc/lang/translation/statement.jvm.lux index 232519d8b..387181f98 100644 --- a/new-luxc/source/luxc/lang/translation/statement.jvm.lux +++ b/new-luxc/source/luxc/lang/translation/statement.jvm.lux @@ -7,7 +7,7 @@ [text "text/" Monoid<Text> Hash<Text>] text/format (coll [list "list/" Functor<List> Fold<List>])) - [meta] + [macro] [host]) (luxc ["&" lang] ["&;" io] @@ -34,8 +34,8 @@ (def: #export (translate-def def-name valueT valueI metaI metaV) (-> Text Type $;Inst $;Inst Code (Meta Unit)) - (do meta;Monad<Meta> - [current-module meta;current-module-name + (do macro;Monad<Meta> + [current-module macro;current-module-name #let [def-ident [current-module def-name] normal-name (format (&;normalize-name def-name) (%n (text/hash def-name))) bytecode-name (format current-module "/" normal-name) @@ -68,13 +68,13 @@ "Error:\n" error)))) _ (&module;define def-ident [valueT metaV valueV]) - _ (if (meta;type? metaV) - (case (meta;declared-tags metaV) + _ (if (macro;type? metaV) + (case (macro;declared-tags metaV) #;Nil (wrap []) tags - (&module;declare-tags tags (meta;export? metaV) (:! Type valueV))) + (&module;declare-tags tags (macro;export? metaV) (:! Type valueV))) (wrap [])) #let [_ (log! (format "DEF " (%ident def-ident)))]] (commonT;record-artifact (format bytecode-name ".class") bytecode))) diff --git a/new-luxc/source/luxc/lang/translation/structure.jvm.lux b/new-luxc/source/luxc/lang/translation/structure.jvm.lux index 2c04eaa0c..21d72b34b 100644 --- a/new-luxc/source/luxc/lang/translation/structure.jvm.lux +++ b/new-luxc/source/luxc/lang/translation/structure.jvm.lux @@ -4,7 +4,7 @@ ["ex" exception #+ exception:]) (data text/format (coll [list])) - [meta] + [macro] [host #+ do-to]) (luxc ["&" lang] (lang [";L" host] @@ -23,7 +23,7 @@ (def: #export (translate-tuple translate members) (-> (-> ls;Synthesis (Meta $;Inst)) (List ls;Synthesis) (Meta $;Inst)) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [#let [size (list;size members)] _ (&;assert Not-A-Tuple (%code (` [(~@ members)])) (n.>= +2 size)) @@ -49,7 +49,7 @@ (def: #export (translate-variant translate tag tail? member) (-> (-> ls;Synthesis (Meta $;Inst)) Nat Bool ls;Synthesis (Meta $;Inst)) - (do meta;Monad<Meta> + (do macro;Monad<Meta> [memberI (translate member)] (wrap (|>. ($i;int (nat-to-int tag)) (flagI tail?) diff --git a/new-luxc/test/test/luxc/lang/analysis/case.lux b/new-luxc/test/test/luxc/lang/analysis/case.lux index bffa99bce..f99c034e8 100644 --- a/new-luxc/test/test/luxc/lang/analysis/case.lux +++ b/new-luxc/test/test/luxc/lang/analysis/case.lux @@ -12,8 +12,8 @@ (coll [list "L/" Monad<List>] ["S" set])) ["r" math/random "r/" Monad<Random>] - [meta #+ Monad<Meta>] - (meta [code]) + [macro #+ Monad<Meta>] + (macro [code]) (lang [type "type/" Eq<Type>] (type ["tc" check])) test) diff --git a/new-luxc/test/test/luxc/lang/analysis/common.lux b/new-luxc/test/test/luxc/lang/analysis/common.lux index 086a0bd31..e7b9dc486 100644 --- a/new-luxc/test/test/luxc/lang/analysis/common.lux +++ b/new-luxc/test/test/luxc/lang/analysis/common.lux @@ -3,8 +3,8 @@ (lux (control pipe) ["r" math/random "r/" Monad<Random>] (data ["e" error]) - [meta] - (meta [code])) + [macro] + (macro [code])) (luxc ["&" lang] (lang (analysis [";A" expression]) [eval])) @@ -40,7 +40,7 @@ [(def: #export (<name> analysis) (All [a] (-> (Meta a) Bool)) (|> analysis - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success _) <on-success> diff --git a/new-luxc/test/test/luxc/lang/analysis/function.lux b/new-luxc/test/test/luxc/lang/analysis/function.lux index 5b84d3dd0..b99e5e2ee 100644 --- a/new-luxc/test/test/luxc/lang/analysis/function.lux +++ b/new-luxc/test/test/luxc/lang/analysis/function.lux @@ -10,8 +10,8 @@ text/format (coll [list "list/" Functor<List>])) ["r" math/random "r/" Monad<Random>] - [meta] - (meta [code]) + [macro] + (macro [code]) (lang [type "type/" Eq<Type>]) test) (luxc ["&" lang] @@ -54,7 +54,7 @@ (def: (check-apply expectedT num-args analysis) (-> Type Nat (Meta [Type la;Analysis]) Bool) (|> analysis - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success [applyT applyA]) (let [[funcA argsA] (flatten-apply applyA)] (and (type/= expectedT applyT) @@ -74,31 +74,31 @@ (test "Can analyse function." (|> (&;with-type (type (All [a] (-> a outputT))) (@;analyse-function analyse func-name arg-name outputC)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) succeeds?)) (test "Generic functions can always be specialized." (and (|> (&;with-type (-> inputT outputT) (@;analyse-function analyse func-name arg-name outputC)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) succeeds?) (|> (&;with-type (-> inputT inputT) (@;analyse-function analyse func-name arg-name (code;symbol ["" arg-name]))) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) succeeds?))) (test "Can infer function (constant output and unused input)." (|> (@common;with-unknown-type (@;analyse-function analyse func-name arg-name outputC)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (check-type (type (All [a] (-> a outputT)))))) (test "Can infer function (output = input)." (|> (@common;with-unknown-type (@;analyse-function analyse func-name arg-name (code;symbol ["" arg-name]))) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (check-type (type (All [a] (-> a a)))))) (test "The function's name is bound to the function's type." (|> (&;with-type (type (Rec self (-> inputT self))) (@;analyse-function analyse func-name arg-name (code;symbol ["" func-name]))) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) succeeds?)) )))) diff --git a/new-luxc/test/test/luxc/lang/analysis/primitive.lux b/new-luxc/test/test/luxc/lang/analysis/primitive.lux index 7c2e8b123..cf60d64fe 100644 --- a/new-luxc/test/test/luxc/lang/analysis/primitive.lux +++ b/new-luxc/test/test/luxc/lang/analysis/primitive.lux @@ -6,8 +6,8 @@ (data (text format) ["e" error]) ["r" math/random] - [meta] - (meta [code]) + [macro] + (macro [code]) (lang [type "type/" Eq<Type>]) test) (luxc ["&" lang] @@ -32,7 +32,7 @@ (test "Can analyse unit." (|> (@common;with-unknown-type @;analyse-unit) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (^ (#e;Success [_type (^code [])])) (type/= Unit _type) @@ -43,7 +43,7 @@ [(test (format "Can analyse " <desc> ".") (|> (@common;with-unknown-type (<analyser> <value>)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success [_type [_ (<tag> value)]]) (and (type/= <type> _type) (is <value> value)) diff --git a/new-luxc/test/test/luxc/lang/analysis/procedure/common.lux b/new-luxc/test/test/luxc/lang/analysis/procedure/common.lux index f5b1feb71..91e5267f8 100644 --- a/new-luxc/test/test/luxc/lang/analysis/procedure/common.lux +++ b/new-luxc/test/test/luxc/lang/analysis/procedure/common.lux @@ -9,8 +9,8 @@ [product] (coll [array])) ["r" math/random "r/" Monad<Random>] - [meta #+ Monad<Meta>] - (meta [code]) + [macro #+ Monad<Meta>] + (macro [code]) (lang [type "type/" Eq<Type>]) test) (luxc ["&" lang] @@ -30,7 +30,7 @@ (|> (&;with-scope (&;with-type output-type (@;analyse-procedure analyse evalL;eval procedure params))) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success _) <success> @@ -266,7 +266,7 @@ (@;analyse-procedure analyse evalL;eval "lux array get" (list idxC (code;symbol ["" var-name])))))) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success _) true @@ -280,7 +280,7 @@ (list idxC elemC (code;symbol ["" var-name])))))) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success _) true @@ -293,7 +293,7 @@ (@;analyse-procedure analyse evalL;eval "lux array remove" (list idxC (code;symbol ["" var-name])))))) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success _) true @@ -305,7 +305,7 @@ (&;with-type Nat (@;analyse-procedure analyse evalL;eval "lux array size" (list (code;symbol ["" var-name])))))) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success _) true @@ -365,7 +365,7 @@ (&;with-type elemT (@;analyse-procedure analyse evalL;eval "lux atom read" (list (code;symbol ["" var-name])))))) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success _) true @@ -379,7 +379,7 @@ (list elemC elemC (code;symbol ["" var-name])))))) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success _) true diff --git a/new-luxc/test/test/luxc/lang/analysis/procedure/host.jvm.lux b/new-luxc/test/test/luxc/lang/analysis/procedure/host.jvm.lux index b82eb8206..13645840e 100644 --- a/new-luxc/test/test/luxc/lang/analysis/procedure/host.jvm.lux +++ b/new-luxc/test/test/luxc/lang/analysis/procedure/host.jvm.lux @@ -13,8 +13,8 @@ [list "list/" Fold<List>] [dict])) ["r" math/random "r/" Monad<Random>] - [meta #+ Monad<Meta>] - (meta [code]) + [macro #+ Monad<Meta>] + (macro [code]) (lang [type]) test) (luxc ["&" lang] @@ -38,7 +38,7 @@ (&;with-scope (&;with-type output-type (@;analyse-procedure analyse evalL;eval procedure params)))) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success _) <success> diff --git a/new-luxc/test/test/luxc/lang/analysis/reference.lux b/new-luxc/test/test/luxc/lang/analysis/reference.lux index 16cfb9a38..14079c6b8 100644 --- a/new-luxc/test/test/luxc/lang/analysis/reference.lux +++ b/new-luxc/test/test/luxc/lang/analysis/reference.lux @@ -5,7 +5,7 @@ pipe) (data ["e" error]) ["r" math/random] - [meta #+ Monad<Meta>] + [macro #+ Monad<Meta>] (lang [type "type/" Eq<Type>]) test) (luxc (lang ["&;" scope] @@ -30,7 +30,7 @@ (&scope;with-local [var-name ref-type] (@common;with-unknown-type (@;analyse-reference ["" var-name])))) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (^ (#e;Success [_type (^code ((~ [_ (#;Int var)])))])) (type/= ref-type _type) @@ -43,7 +43,7 @@ [ref-type (' {}) (:! Void [])])] (@common;with-unknown-type (@;analyse-reference [module-name var-name]))) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success [_type [_ (#;Symbol def-name)]]) (type/= ref-type _type) diff --git a/new-luxc/test/test/luxc/lang/analysis/structure.lux b/new-luxc/test/test/luxc/lang/analysis/structure.lux index cc31622a1..58212359e 100644 --- a/new-luxc/test/test/luxc/lang/analysis/structure.lux +++ b/new-luxc/test/test/luxc/lang/analysis/structure.lux @@ -12,8 +12,8 @@ (coll [list "list/" Functor<List>] ["S" set])) ["r" math/random "r/" Monad<Random>] - [meta] - (meta [code]) + [macro] + (macro [code]) (lang [type "type/" Eq<Type>] (type ["tc" check])) test) @@ -47,7 +47,7 @@ (|> (&;with-scope (&;with-type variantT (@;analyse-sum analyse choice valueC))) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (^multi (#e;Success [_ sumA]) [(la;unfold-variant sumA) (#;Some [tag last? valueA])]) @@ -58,13 +58,13 @@ false))) (test "Can analyse sum through bound type-vars." (|> (&;with-scope - (do meta;Monad<Meta> + (do macro;Monad<Meta> [[_ varT] (&;with-type-env tc;var) _ (&;with-type-env (tc;check varT variantT))] (&;with-type varT (@;analyse-sum analyse choice valueC)))) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (^multi (#e;Success [_ sumA]) [(la;unfold-variant sumA) (#;Some [tag last? valueA])]) @@ -75,11 +75,11 @@ false))) (test "Cannot analyse sum through unbound type-vars." (|> (&;with-scope - (do meta;Monad<Meta> + (do macro;Monad<Meta> [[_ varT] (&;with-type-env tc;var)] (&;with-type varT (@;analyse-sum analyse choice valueC)))) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success _) false @@ -89,7 +89,7 @@ (|> (&;with-scope (&;with-type (type;ex-q +1 +variantT) (@;analyse-sum analyse +choice +valueC))) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success _) true @@ -99,7 +99,7 @@ (|> (&;with-scope (&;with-type (type;univ-q +1 +variantT) (@;analyse-sum analyse +choice +valueC))) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success _) (not (n.= choice +choice)) @@ -123,7 +123,7 @@ (test "Can analyse product." (|> (&;with-type (type;tuple (list/map product;left primitives)) (@;analyse-product analyse (list/map product;right primitives))) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success tupleA) (n.= size (list;size (la;unfold-tuple tupleA))) @@ -132,7 +132,7 @@ (test "Can infer product." (|> (@common;with-unknown-type (@;analyse-product analyse (list/map product;right primitives))) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success [_type tupleA]) (and (type/= (type;tuple (list/map product;left primitives)) _type) @@ -143,7 +143,7 @@ (test "Can analyse pseudo-product (singleton tuple)" (|> (&;with-type singletonT (analyse (` [(~ singletonC)]))) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success singletonA) true @@ -151,13 +151,13 @@ false))) (test "Can analyse product through bound type-vars." (|> (&;with-scope - (do meta;Monad<Meta> + (do macro;Monad<Meta> [[_ varT] (&;with-type-env tc;var) _ (&;with-type-env (tc;check varT (type;tuple (list/map product;left primitives))))] (&;with-type varT (@;analyse-product analyse (list/map product;right primitives))))) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success [_ tupleA]) (n.= size (list;size (la;unfold-tuple tupleA))) @@ -167,7 +167,7 @@ (|> (&;with-scope (&;with-type (type;ex-q +1 +tupleT) (@;analyse-product analyse (list/map product;right +primitives)))) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success _) true @@ -177,7 +177,7 @@ (|> (&;with-scope (&;with-type (type;univ-q +1 +tupleT) (@;analyse-product analyse (list/map product;right +primitives)))) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success _) false @@ -188,7 +188,7 @@ (def: (check-variant-inference variantT choice size analysis) (-> Type Nat Nat (Meta [Module Scope Type la;Analysis]) Bool) (|> analysis - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (^multi (#e;Success [_ _ sumT sumA]) [(la;unfold-variant sumA) (#;Some [tag last? valueA])]) @@ -202,7 +202,7 @@ (def: (check-record-inference tupleT size analysis) (-> Type Nat (Meta [Module Scope Type la;Analysis]) Bool) (|> analysis - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (^multi (#e;Success [_ _ productT productA]) [(la;unfold-tuple productA) membersA]) @@ -238,7 +238,7 @@ ($_ seq (test "Can infer tagged sum." (|> (@module;with-module +0 module-name - (do meta;Monad<Meta> + (do macro;Monad<Meta> [_ (@module;declare-tags tags false namedT)] (&;with-scope (@common;with-unknown-type @@ -246,7 +246,7 @@ (check-variant-inference variantT choice size))) (test "Tagged sums specialize when type-vars get bound." (|> (@module;with-module +0 module-name - (do meta;Monad<Meta> + (do macro;Monad<Meta> [_ (@module;declare-tags tags false named-polyT)] (&;with-scope (@common;with-unknown-type @@ -254,7 +254,7 @@ (check-variant-inference variantT choice size))) (test "Tagged sum inference retains universal quantification when type-vars are not bound." (|> (@module;with-module +0 module-name - (do meta;Monad<Meta> + (do macro;Monad<Meta> [_ (@module;declare-tags tags false named-polyT)] (&;with-scope (@common;with-unknown-type @@ -262,12 +262,12 @@ (check-variant-inference polyT other-choice size))) (test "Can specialize generic tagged sums." (|> (@module;with-module +0 module-name - (do meta;Monad<Meta> + (do macro;Monad<Meta> [_ (@module;declare-tags tags false named-polyT)] (&;with-scope (&;with-type variantT (@;analyse-tagged-sum analyse [module-name other-choice-tag] other-choiceC))))) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (^multi (#e;Success [_ _ sumA]) [(la;unfold-variant sumA) (#;Some [tag last? valueA])]) @@ -302,7 +302,7 @@ ($_ seq (test "Can infer record." (|> (@module;with-module +0 module-name - (do meta;Monad<Meta> + (do macro;Monad<Meta> [_ (@module;declare-tags tags false namedT)] (&;with-scope (@common;with-unknown-type @@ -310,7 +310,7 @@ (check-record-inference tupleT size))) (test "Records specialize when type-vars get bound." (|> (@module;with-module +0 module-name - (do meta;Monad<Meta> + (do macro;Monad<Meta> [_ (@module;declare-tags tags false named-polyT)] (&;with-scope (@common;with-unknown-type @@ -318,12 +318,12 @@ (check-record-inference tupleT size))) (test "Can specialize generic records." (|> (@module;with-module +0 module-name - (do meta;Monad<Meta> + (do macro;Monad<Meta> [_ (@module;declare-tags tags false named-polyT)] (&;with-scope (&;with-type tupleT (@;analyse-record analyse recordC))))) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (^multi (#e;Success [_ _ productA]) [(la;unfold-tuple productA) membersA]) diff --git a/new-luxc/test/test/luxc/lang/analysis/type.lux b/new-luxc/test/test/luxc/lang/analysis/type.lux index ed75f4d6c..b159870c8 100644 --- a/new-luxc/test/test/luxc/lang/analysis/type.lux +++ b/new-luxc/test/test/luxc/lang/analysis/type.lux @@ -12,8 +12,8 @@ [product] (coll [list "list/" Functor<List> Fold<List>])) ["r" math/random "r/" Monad<Random>] - [meta #+ Monad<Meta>] - (meta [code]) + [macro #+ Monad<Meta>] + (macro [code]) (lang [type "type/" Eq<Type>]) test) (luxc ["&" lang] @@ -57,7 +57,7 @@ (&;with-scope (@common;with-unknown-type (@;analyse-check analyse eval;eval typeC exprC)))) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success [_ [analysisT analysisA]]) (and (type/= codeT analysisT) (case [exprC analysisA] @@ -82,7 +82,7 @@ (&;with-scope (@common;with-unknown-type (@;analyse-coerce analyse eval;eval typeC exprC)))) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success [_ [analysisT analysisA]]) (type/= codeT analysisT) diff --git a/new-luxc/test/test/luxc/lang/synthesis/case/special.lux b/new-luxc/test/test/luxc/lang/synthesis/case/special.lux index 585c7d349..1ae6ad030 100644 --- a/new-luxc/test/test/luxc/lang/synthesis/case/special.lux +++ b/new-luxc/test/test/luxc/lang/synthesis/case/special.lux @@ -3,7 +3,7 @@ (lux [io] (control [monad #+ do] pipe) - (meta [code]) + (macro [code]) ["r" math/random "r/" Monad<Random>] test) (luxc (lang ["la" analysis] diff --git a/new-luxc/test/test/luxc/lang/synthesis/common.lux b/new-luxc/test/test/luxc/lang/synthesis/common.lux index a74c64402..caa2d09dc 100644 --- a/new-luxc/test/test/luxc/lang/synthesis/common.lux +++ b/new-luxc/test/test/luxc/lang/synthesis/common.lux @@ -2,7 +2,7 @@ lux (lux (data [bool "bool/" Eq<Bool>] [text "text/" Eq<Text>]) - (meta [code]) + (macro [code]) ["r" math/random "r/" Monad<Random>]) (luxc (lang ["la" analysis] ["ls" synthesis]))) diff --git a/new-luxc/test/test/luxc/lang/synthesis/function.lux b/new-luxc/test/test/luxc/lang/synthesis/function.lux index f364536cb..259bf5a4e 100644 --- a/new-luxc/test/test/luxc/lang/synthesis/function.lux +++ b/new-luxc/test/test/luxc/lang/synthesis/function.lux @@ -10,7 +10,7 @@ (coll [list "list/" Functor<List> Fold<List>] [dict #+ Dict] [set])) - (meta [code]) + (macro [code]) ["r" math/random "r/" Monad<Random>] test) (luxc (lang ["la" analysis] diff --git a/new-luxc/test/test/luxc/lang/synthesis/loop.lux b/new-luxc/test/test/luxc/lang/synthesis/loop.lux index 90b303857..386b06dcd 100644 --- a/new-luxc/test/test/luxc/lang/synthesis/loop.lux +++ b/new-luxc/test/test/luxc/lang/synthesis/loop.lux @@ -7,7 +7,7 @@ (coll [list "list/" Functor<List> Fold<List>] ["s" set]) text/format) - (meta [code]) + (macro [code]) ["r" math/random "r/" Monad<Random>] test) (luxc (lang ["la" analysis] diff --git a/new-luxc/test/test/luxc/lang/synthesis/primitive.lux b/new-luxc/test/test/luxc/lang/synthesis/primitive.lux index d907a4c04..47f394117 100644 --- a/new-luxc/test/test/luxc/lang/synthesis/primitive.lux +++ b/new-luxc/test/test/luxc/lang/synthesis/primitive.lux @@ -4,7 +4,7 @@ (control [monad #+ do] pipe) (data text/format) - (meta [code]) + (macro [code]) ["r" math/random] test) (luxc (lang ["la" analysis] diff --git a/new-luxc/test/test/luxc/lang/translation/case.lux b/new-luxc/test/test/luxc/lang/translation/case.lux index ace2e0290..d843e6e1c 100644 --- a/new-luxc/test/test/luxc/lang/translation/case.lux +++ b/new-luxc/test/test/luxc/lang/translation/case.lux @@ -7,8 +7,8 @@ text/format (coll [list])) ["r" math/random "r/" Monad<Random>] - [meta] - (meta [code]) + [macro] + (macro [code]) test) (luxc (lang ["ls" synthesis] (translation ["@" case] @@ -63,13 +63,14 @@ )))) (context: "Pattern-matching." - (<| (times +100) + (<| (seed +517905247826) + ## (times +100) (do @ [[valueS pathS] gen-case to-bind r;nat] ($_ seq (test "Can translate pattern-matching." - (|> (do meta;Monad<Meta> + (|> (do macro;Monad<Meta> [runtime-bytecode @runtime;translate sampleI (@;translate-case expressionT;translate valueS @@ -79,21 +80,21 @@ ("lux case seq" ("lux case bind" +0) ("lux case exec" false)))))] (@eval;eval sampleI)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success valueT) (:! Bool valueT) (#e;Error error) false))) (test "Can bind values." - (|> (do meta;Monad<Meta> + (|> (do macro;Monad<Meta> [runtime-bytecode @runtime;translate sampleI (@;translate-case expressionT;translate (code;nat to-bind) (` ("lux case seq" ("lux case bind" +0) ("lux case exec" (0)))))] (@eval;eval sampleI)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success valueT) (n.= to-bind (:! Nat valueT)) diff --git a/new-luxc/test/test/luxc/lang/translation/function.lux b/new-luxc/test/test/luxc/lang/translation/function.lux index 999f4f432..726b51b58 100644 --- a/new-luxc/test/test/luxc/lang/translation/function.lux +++ b/new-luxc/test/test/luxc/lang/translation/function.lux @@ -9,8 +9,8 @@ (coll ["a" array] [list "list/" Functor<List>])) ["r" math/random "r/" Monad<Random>] - [meta] - (meta [code]) + [macro] + (macro [code]) [host] test) (luxc (lang ["ls" synthesis] @@ -47,11 +47,11 @@ cut-off (|> cut-off (n.min (n.dec last-arg)))]] ($_ seq (test "Can read arguments." - (|> (do meta;Monad<Meta> + (|> (do macro;Monad<Meta> [runtime-bytecode @runtime;translate sampleI (expressionT;translate (` ("lux call" (~ functionS) (~@ argsS))))] (@eval;eval sampleI)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success valueT) (n.= arg-value (:! Nat valueT)) @@ -59,7 +59,7 @@ false))) (test "Can partially apply functions." (or (n.= +1 arity) - (|> (do meta;Monad<Meta> + (|> (do macro;Monad<Meta> [#let [partial-arity (n.inc cut-off) preS (list;take partial-arity argsS) postS (list;drop partial-arity argsS)] @@ -68,7 +68,7 @@ ("lux call" (~ functionS) (~@ preS)) (~@ postS))))] (@eval;eval sampleI)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success valueT) (n.= arg-value (:! Nat valueT)) @@ -76,7 +76,7 @@ false)))) (test "Can read environment." (or (n.= +1 arity) - (|> (do meta;Monad<Meta> + (|> (do macro;Monad<Meta> [#let [env (|> (list;n.range +0 cut-off) (list/map (|>. n.inc nat-to-int))) super-arity (n.inc cut-off) @@ -90,7 +90,7 @@ runtime-bytecode @runtime;translate sampleI (expressionT;translate (` ("lux call" (~ functionS) (~@ argsS))))] (@eval;eval sampleI)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success valueT) (n.= arg-value (:! Nat valueT)) diff --git a/new-luxc/test/test/luxc/lang/translation/primitive.lux b/new-luxc/test/test/luxc/lang/translation/primitive.lux index 40e98f109..ad4f57107 100644 --- a/new-luxc/test/test/luxc/lang/translation/primitive.lux +++ b/new-luxc/test/test/luxc/lang/translation/primitive.lux @@ -8,8 +8,8 @@ [bool "B/" Eq<Bool>] [text "T/" Eq<Text>]) ["r" math/random] - [meta] - (meta [code]) + [macro] + (macro [code]) test) (luxc (lang [";L" host] ["ls" synthesis] @@ -31,10 +31,10 @@ (with-expansions [<tests> (do-template [<desc> <type> <synthesis> <sample> <test>] [(test (format "Can translate " <desc> ".") - (|> (do meta;Monad<Meta> + (|> (do macro;Monad<Meta> [sampleI (expressionT;translate (<synthesis> <sample>))] (@eval;eval sampleI)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success valueT) (<test> <sample> (:! <type> valueT)) @@ -49,10 +49,10 @@ ["text" Text code;text %text% T/=])] ($_ seq (test "Can translate unit." - (|> (do meta;Monad<Meta> + (|> (do macro;Monad<Meta> [sampleI (expressionT;translate (' []))] (@eval;eval sampleI)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success valueT) (is hostL;unit (:! Text valueT)) diff --git a/new-luxc/test/test/luxc/lang/translation/procedure/common.jvm.lux b/new-luxc/test/test/luxc/lang/translation/procedure/common.jvm.lux index 38036e420..9eb5050bb 100644 --- a/new-luxc/test/test/luxc/lang/translation/procedure/common.jvm.lux +++ b/new-luxc/test/test/luxc/lang/translation/procedure/common.jvm.lux @@ -12,8 +12,8 @@ (coll ["a" array] [list])) ["r" math/random] - [meta] - (meta [code]) + [macro] + (macro [code]) [host] test) (luxc (lang ["ls" synthesis] @@ -30,11 +30,11 @@ subject r;nat] (with-expansions [<binary> (do-template [<name> <reference>] [(test <name> - (|> (do meta;Monad<Meta> + (|> (do macro;Monad<Meta> [sampleI (expressionT;translate (` (<name> (~ (code;nat subject)) (~ (code;nat param)))))] (@eval;eval sampleI)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success valueT) (n.= (<reference> param subject) (:! Nat valueT)) @@ -49,10 +49,10 @@ )] ($_ seq (test "bit count" - (|> (do meta;Monad<Meta> + (|> (do macro;Monad<Meta> [sampleI (expressionT;translate (` ("lux bit count" (~ (code;nat subject)))))] (@eval;eval sampleI)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success valueT) (n.= (bit;count subject) (:! Nat valueT)) @@ -61,12 +61,12 @@ <binary> (test "bit shift-right" - (|> (do meta;Monad<Meta> + (|> (do macro;Monad<Meta> [sampleI (expressionT;translate (` ("lux bit shift-right" (~ (code;int (nat-to-int subject))) (~ (code;nat param)))))] (@eval;eval sampleI)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success valueT) (i.= (bit;signed-shift-right param (nat-to-int subject)) (:! Int valueT)) @@ -83,10 +83,10 @@ (`` ($_ seq (~~ (do-template [<name> <reference>] [(test <name> - (|> (do meta;Monad<Meta> + (|> (do macro;Monad<Meta> [sampleI (expressionT;translate (` (<name>)))] (@eval;eval sampleI)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success valueT) (n.= <reference> (:! Nat valueT)) @@ -98,10 +98,10 @@ )) (~~ (do-template [<name> <type> <prepare> <comp>] [(test <name> - (|> (do meta;Monad<Meta> + (|> (do macro;Monad<Meta> [sampleI (expressionT;translate (` (<name> (~ (code;nat subject)))))] (@eval;eval sampleI)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success valueT) (<comp> (<prepare> subject) (:! <type> valueT)) @@ -113,11 +113,11 @@ )) (~~ (do-template [<name> <reference> <outputT> <comp>] [(test <name> - (|> (do meta;Monad<Meta> + (|> (do macro;Monad<Meta> [runtime-bytecode @runtime;translate sampleI (expressionT;translate (` (<name> (~ (code;nat subject)) (~ (code;nat param)))))] (@eval;eval sampleI)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success valueT) (<comp> (<reference> param subject) (:! <outputT> valueT)) @@ -141,10 +141,10 @@ subject r;int] (with-expansions [<nullary> (do-template [<name> <reference>] [(test <name> - (|> (do meta;Monad<Meta> + (|> (do macro;Monad<Meta> [sampleI (expressionT;translate (` (<name>)))] (@eval;eval sampleI)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success valueT) (i.= <reference> (:! Int valueT)) @@ -156,10 +156,10 @@ ) <unary> (do-template [<name> <type> <prepare> <comp>] [(test <name> - (|> (do meta;Monad<Meta> + (|> (do macro;Monad<Meta> [sampleI (expressionT;translate (` (<name> (~ (code;int subject)))))] (@eval;eval sampleI)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success valueT) (<comp> (<prepare> subject) (:! <type> valueT)) @@ -171,11 +171,11 @@ ) <binary> (do-template [<name> <reference> <outputT> <comp>] [(test <name> - (|> (do meta;Monad<Meta> + (|> (do macro;Monad<Meta> [runtime-bytecode @runtime;translate sampleI (expressionT;translate (` (<name> (~ (code;int subject)) (~ (code;int param)))))] (@eval;eval sampleI)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success valueT) (<comp> (<reference> param subject) (:! <outputT> valueT)) @@ -203,11 +203,11 @@ subject r;frac] (with-expansions [<binary> (do-template [<name> <reference> <outputT> <comp>] [(test <name> - (|> (do meta;Monad<Meta> + (|> (do macro;Monad<Meta> [runtime-bytecode @runtime;translate sampleI (expressionT;translate (` (<name> (~ (code;frac subject)) (~ (code;frac param)))))] (@eval;eval sampleI)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success valueT) (<comp> (<reference> param subject) (:! <outputT> valueT)) @@ -233,10 +233,10 @@ subject r;frac] (with-expansions [<nullary> (do-template [<name> <test>] [(test <name> - (|> (do meta;Monad<Meta> + (|> (do macro;Monad<Meta> [sampleI (expressionT;translate (` (<name>)))] (@eval;eval sampleI)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success valueT) (<test> (:! Frac valueT)) @@ -252,11 +252,11 @@ ) <unary> (do-template [<name> <type> <prepare> <comp>] [(test <name> - (|> (do meta;Monad<Meta> + (|> (do macro;Monad<Meta> [runtime-bytecode @runtime;translate sampleI (expressionT;translate (` (<name> (~ (code;frac subject)))))] (@eval;eval sampleI)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success valueT) (<comp> (<prepare> subject) (:! <type> valueT)) @@ -270,11 +270,11 @@ <nullary> <unary> (test "frac encode|decode" - (|> (do meta;Monad<Meta> + (|> (do macro;Monad<Meta> [runtime-bytecode @runtime;translate sampleI (expressionT;translate (` ("lux frac decode" ("lux frac encode" (~ (code;frac subject))))))] (@eval;eval sampleI)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (^multi (#e;Success valueT) [(:! (Maybe Frac) valueT) (#;Some value)]) (f.= subject value) @@ -299,10 +299,10 @@ (`` ($_ seq (~~ (do-template [<name> <reference>] [(test <name> - (|> (do meta;Monad<Meta> + (|> (do macro;Monad<Meta> [sampleI (expressionT;translate (` (<name>)))] (@eval;eval sampleI)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success valueT) (d.= <reference> (:! Deg valueT)) @@ -314,11 +314,11 @@ )) (~~ (do-template [<name> <type> <prepare> <comp>] [(test <name> - (|> (do meta;Monad<Meta> + (|> (do macro;Monad<Meta> [runtime-bytecode @runtime;translate sampleI (expressionT;translate (` (<name> (~ (code;deg subject)))))] (@eval;eval sampleI)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success valueT) (<comp> (<prepare> subject) (:! <type> valueT)) @@ -329,11 +329,11 @@ )) (~~ (do-template [<name> <reference> <outputT> <comp>] [(test <name> - (|> (do meta;Monad<Meta> + (|> (do macro;Monad<Meta> [runtime-bytecode @runtime;translate sampleI (expressionT;translate (` (<name> (~ (code;deg subject)) (~ (code;deg param)))))] (@eval;eval sampleI)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success valueT) (<comp> (<reference> param subject) (:! <outputT> valueT)) @@ -350,11 +350,11 @@ )) (~~ (do-template [<name> <reference> <outputT> <comp>] [(test <name> - (|> (do meta;Monad<Meta> + (|> (do macro;Monad<Meta> [runtime-bytecode @runtime;translate sampleI (expressionT;translate (` (<name> (~ (code;deg subject)) (~ (code;nat special)))))] (@eval;eval sampleI)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success valueT) (<comp> (<reference> special subject) (:! <outputT> valueT)) diff --git a/new-luxc/test/test/luxc/lang/translation/procedure/host.jvm.lux b/new-luxc/test/test/luxc/lang/translation/procedure/host.jvm.lux index c2b699ff2..f5b1e97df 100644 --- a/new-luxc/test/test/luxc/lang/translation/procedure/host.jvm.lux +++ b/new-luxc/test/test/luxc/lang/translation/procedure/host.jvm.lux @@ -12,8 +12,8 @@ text/format (coll [list])) ["r" math/random "r/" Monad<Random>] - [meta] - (meta [code]) + [macro] + (macro [code]) [host] test) (luxc (lang [";L" host] @@ -31,10 +31,10 @@ #let [frac-sample (int-to-frac int-sample)]] (with-expansions [<2step> (do-template [<step1> <step2> <tag> <sample> <cast> <test>] [(test (format <step1> " / " <step2>) - (|> (do meta;Monad<Meta> + (|> (do macro;Monad<Meta> [sampleI (expressionT;translate (|> (~ (<tag> <sample>)) <step1> <step2> (`)))] (@eval;eval sampleI)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success valueT) (<test> <sample> (:! <cast> valueT)) @@ -62,10 +62,10 @@ (`` ($_ seq (~~ (do-template [<step1> <step2> <step3> <tag> <sample> <cast> <test>] [(test (format <step1> " / " <step2> " / " <step3>) - (|> (do meta;Monad<Meta> + (|> (do macro;Monad<Meta> [sampleI (expressionT;translate (|> (~ (<tag> <sample>)) <step1> <step2> <step3> (`)))] (@eval;eval sampleI)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success valueT) (<test> <sample> (:! <cast> valueT)) @@ -88,10 +88,10 @@ (`` ($_ seq (~~ (do-template [<step1> <step2> <step3> <step4> <tag> <sample> <cast> <test>] [(test (format <step1> " / " <step2> " / " <step3>) - (|> (do meta;Monad<Meta> + (|> (do macro;Monad<Meta> [sampleI (expressionT;translate (|> (~ (<tag> <sample>)) <step1> <step2> <step3> <step4> (`)))] (@eval;eval sampleI)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success valueT) (<test> <sample> (:! <cast> valueT)) @@ -126,12 +126,12 @@ #let [subject (<augmentation> param)]] (with-expansions [<tests> (do-template [<procedure> <reference>] [(test <procedure> - (|> (do meta;Monad<Meta> + (|> (do macro;Monad<Meta> [sampleI (expressionT;translate (` (<post> ((~ (code;text <procedure>)) (<pre> (~ (<tag> subject))) (<pre> (~ (<tag> param)))))))] (@eval;eval sampleI)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success valueT) (<test> (<reference> param subject) (:! <type> valueT)) @@ -164,12 +164,12 @@ (`` ($_ seq (~~ (do-template [<procedure> <reference>] [(test <procedure> - (|> (do meta;Monad<Meta> + (|> (do macro;Monad<Meta> [sampleI (expressionT;translate (` (<post> ((~ (code;text <procedure>)) (<convert> (~ (code;nat subject))) (<convert> (~ (code;nat param)))))))] (@eval;eval sampleI)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success valueT) (n.= (<reference> param subject) (:! Nat valueT)) @@ -197,12 +197,12 @@ (`` ($_ seq (~~ (do-template [<procedure> <reference> <type> <test> <pre-subject> <pre>] [(test <procedure> - (|> (do meta;Monad<Meta> + (|> (do macro;Monad<Meta> [sampleI (expressionT;translate (` (<post> ((~ (code;text <procedure>)) (<convert> (~ (<pre> subject))) ("jvm convert long-to-int" (~ (code;nat shift)))))))] (@eval;eval sampleI)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success valueT) (<test> (<reference> shift (<pre-subject> subject)) (:! <type> valueT)) @@ -228,12 +228,12 @@ subject <generator>] (with-expansions [<tests> (do-template [<procedure> <reference>] [(test <procedure> - (|> (do meta;Monad<Meta> + (|> (do macro;Monad<Meta> [sampleI (expressionT;translate (` ((~ (code;text <procedure>)) (<pre> (~ (<tag> subject))) (<pre> (~ (<tag> param))))))] (@eval;eval sampleI)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success valueT) (bool/= (<reference> param subject) (:! Bool valueT)) @@ -282,7 +282,7 @@ valueC gen-int] (with-expansions [<array> (do-template [<class> <type> <value> <test> <input> <post>] [(test <class> - (|> (do meta;Monad<Meta> + (|> (do macro;Monad<Meta> [sampleI (expressionT;translate (|> (jvm//array//new +0 <class> size) (jvm//array//write <class> idx <input>) (jvm//array//read <class> idx) @@ -290,7 +290,7 @@ <post> (`)))] (@eval;eval sampleI)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success outputZ) (<test> <value> (:! <type> outputZ)) @@ -331,7 +331,7 @@ valueC gen-int] (with-expansions [<array> (do-template [<class> <type> <value> <test> <input> <post>] [(test <class> - (|> (do meta;Monad<Meta> + (|> (do macro;Monad<Meta> [sampleI (expressionT;translate (|> (jvm//array//new +0 <class> size) (jvm//array//write <class> idx <input>) (jvm//array//read <class> idx) @@ -339,7 +339,7 @@ <post> (`)))] (@eval;eval sampleI)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success outputT) (<test> <value> (:! <type> outputT)) @@ -356,7 +356,7 @@ ($_ seq <array> (test "java.lang.Double (level 1)" - (|> (do meta;Monad<Meta> + (|> (do macro;Monad<Meta> [#let [inner (|> ("jvm array new" +0 "java.lang.Double" (~ (code;nat size))) ("jvm array write" "java.lang.Double" (~ (code;nat idx)) (~ (code;frac valueD))) (`))] @@ -366,17 +366,17 @@ ("jvm array read" "java.lang.Double" (~ (code;nat idx))) (`)))] (@eval;eval sampleI)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success outputT) (f.= valueD (:! Frac outputT)) (#e;Error error) false))) (test "jvm array length" - (|> (do meta;Monad<Meta> + (|> (do macro;Monad<Meta> [sampleI (expressionT;translate (` ("jvm array length" ("jvm array new" +0 "java.lang.Object" (~ (code;nat size))))))] (@eval;eval sampleI)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success outputT) (n.= size (:! Nat outputT)) @@ -423,44 +423,44 @@ instance instance-gen] ($_ seq (test "jvm object null" - (|> (do meta;Monad<Meta> + (|> (do macro;Monad<Meta> [sampleI (expressionT;translate (` ("jvm object null?" ("jvm object null"))))] (@eval;eval sampleI)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success outputT) (:! Bool outputT) (#e;Error error) false))) (test "jvm object null?" - (|> (do meta;Monad<Meta> + (|> (do macro;Monad<Meta> [sampleI (expressionT;translate (` ("jvm object null?" (~ (code;int sample)))))] (@eval;eval sampleI)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success outputT) (not (:! Bool outputT)) (#e;Error error) false))) (test "jvm object synchronized" - (|> (do meta;Monad<Meta> + (|> (do macro;Monad<Meta> [sampleI (expressionT;translate (` ("jvm object synchronized" (~ (code;int monitor)) (~ (code;int sample)))))] (@eval;eval sampleI)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success outputT) (i.= sample (:! Int outputT)) (#e;Error error) false))) (test "jvm object throw" - (|> (do meta;Monad<Meta> + (|> (do macro;Monad<Meta> [_ @runtime;translate sampleI (expressionT;translate (` ("lux try" ("lux function" +1 [] ("jvm object throw" ("jvm member invoke constructor" "java.lang.Throwable" (~ exception-message$)))))))] (@eval;eval sampleI)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success outputT) (case (:! (e;Error Top) outputT) (#e;Error error) @@ -472,20 +472,20 @@ (#e;Error error) false))) (test "jvm object class" - (|> (do meta;Monad<Meta> + (|> (do macro;Monad<Meta> [sampleI (expressionT;translate (` ("jvm object class" (~ (code;text class)))))] (@eval;eval sampleI)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success outputT) (|> outputT (:! Class) (Class.getName []) (text/= class)) (#e;Error error) false))) (test "jvm object instance?" - (|> (do meta;Monad<Meta> + (|> (do macro;Monad<Meta> [sampleI (expressionT;translate (` ("jvm object instance?" (~ (code;text instance-class)) (~ instance))))] (@eval;eval sampleI)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success outputT) (:! Bool outputT) @@ -512,43 +512,43 @@ (~ type-codeS) (~ idl-typeS) (~ shortS)))]] ($_ seq (test "jvm member static get" - (|> (do meta;Monad<Meta> + (|> (do macro;Monad<Meta> [sampleI (expressionT;translate (` ("jvm convert int-to-long" ("jvm member static get" "java.util.GregorianCalendar" "AD" "int"))))] (@eval;eval sampleI)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success outputT) (i.= GregorianCalendar.AD (:! Int outputT)) (#e;Error error) false))) (test "jvm member static put" - (|> (do meta;Monad<Meta> + (|> (do macro;Monad<Meta> [sampleI (expressionT;translate (` ("jvm member static put" "java.awt.datatransfer.DataFlavor" "allHtmlFlavor" "java.awt.datatransfer.DataFlavor" ("jvm member static get" "java.awt.datatransfer.DataFlavor" "allHtmlFlavor" "java.awt.datatransfer.DataFlavor"))))] (@eval;eval sampleI)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success outputT) (is hostL;unit (:! Text outputT)) (#e;Error error) false))) (test "jvm member virtual get" - (|> (do meta;Monad<Meta> + (|> (do macro;Monad<Meta> [sampleI (expressionT;translate (` ("jvm member virtual get" "org.omg.CORBA.ValueMember" "name" "java.lang.String" (~ value-memberS))))] (@eval;eval sampleI)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success outputT) (text/= sample-string (:! Text outputT)) (#e;Error error) false))) (test "jvm member virtual put" - (|> (do meta;Monad<Meta> + (|> (do macro;Monad<Meta> [sampleI (expressionT;translate (` ("jvm member virtual get" "org.omg.CORBA.ValueMember" "name" "java.lang.String" ("jvm member virtual put" "org.omg.CORBA.ValueMember" "name" "java.lang.String" (~ (code;text other-sample-string)) (~ value-memberS)))))] (@eval;eval sampleI)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success outputT) (text/= other-sample-string (:! Text outputT)) @@ -570,42 +570,42 @@ array-listS (` ("jvm member invoke constructor" "java.util.ArrayList" (~ intS)))]] ($_ seq (test "jvm member invoke static" - (|> (do meta;Monad<Meta> + (|> (do macro;Monad<Meta> [sampleI (expressionT;translate (` ("jvm member invoke static" "java.lang.Long" "decode" "java.lang.Long" (~ coded-intS))))] (@eval;eval sampleI)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success outputT) (i.= sample (:! Int outputT)) (#e;Error error) false))) (test "jvm member invoke virtual" - (|> (do meta;Monad<Meta> + (|> (do macro;Monad<Meta> [sampleI (expressionT;translate (` ("jvm member invoke virtual" "java.lang.Object" "equals" "boolean" (~ (code;int sample)) (~ object-longS))))] (@eval;eval sampleI)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success outputT) (:! Bool outputT) (#e;Error error) false))) (test "jvm member invoke interface" - (|> (do meta;Monad<Meta> + (|> (do macro;Monad<Meta> [sampleI (expressionT;translate (` ("jvm member invoke interface" "java.util.Collection" "add" "boolean" (~ array-listS) (~ object-longS))))] (@eval;eval sampleI)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success outputT) (:! Bool outputT) (#e;Error error) false))) (test "jvm member invoke constructor" - (|> (do meta;Monad<Meta> + (|> (do macro;Monad<Meta> [sampleI (expressionT;translate array-listS)] (@eval;eval sampleI)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success outputT) (host;instance? ArrayList (:! Object outputT)) diff --git a/new-luxc/test/test/luxc/lang/translation/reference.lux b/new-luxc/test/test/luxc/lang/translation/reference.lux index 50d6cffbf..1ad68263d 100644 --- a/new-luxc/test/test/luxc/lang/translation/reference.lux +++ b/new-luxc/test/test/luxc/lang/translation/reference.lux @@ -6,8 +6,8 @@ (data ["e" error] [text]) ["r" math/random] - [meta] - (meta [code]) + [macro] + (macro [code]) test) (luxc (lang ["_;" module] (host ["$" jvm] @@ -45,12 +45,12 @@ #let [valueI (|>. ($i;long def-value) ($i;wrap #$;Long))]] ($_ seq (test "Can refer to definitions." - (|> (do meta;Monad<Meta> + (|> (do macro;Monad<Meta> [_ (_module;with-module +0 module-name (statementT;translate-def def-name Int valueI empty-metaI (' {}))) sampleI (expressionT;translate (code;symbol [module-name def-name]))] (evalT;eval sampleI)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success valueT) (i.= def-value (:! Int valueT)) @@ -65,13 +65,13 @@ value r;int] ($_ seq (test "Can refer to local variables/registers." - (|> (do meta;Monad<Meta> + (|> (do macro;Monad<Meta> [sampleI (caseT;translate-let expressionT;translate register (code;int value) (` ((~ (code;int (nat-to-int register))))))] (evalT;eval sampleI)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success outputT) (i.= value (:! Int outputT)) diff --git a/new-luxc/test/test/luxc/lang/translation/structure.lux b/new-luxc/test/test/luxc/lang/translation/structure.lux index d8f7bc98f..68a394261 100644 --- a/new-luxc/test/test/luxc/lang/translation/structure.lux +++ b/new-luxc/test/test/luxc/lang/translation/structure.lux @@ -11,8 +11,8 @@ (coll [array] [list])) ["r" math/random "r/" Monad<Random>] - [meta] - (meta [code]) + [macro] + (macro [code]) [host] test) (luxc (lang [";L" host] @@ -66,10 +66,10 @@ [size (|> r;nat (:: @ map (|>. (n.% +10) (n.max +2)))) members (r;list size gen-primitive)] (test "Can translate tuple." - (|> (do meta;Monad<Meta> + (|> (do macro;Monad<Meta> [sampleI (expressionT;translate (code;tuple members))] (@eval;eval sampleI)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success valueT) (let [valueT (:! (Array Top) valueT)] (and (n.= size (array;size valueT)) @@ -86,11 +86,11 @@ #let [last? (n.= (n.dec num-tags) tag)] member gen-primitive] (test "Can translate variant." - (|> (do meta;Monad<Meta> + (|> (do macro;Monad<Meta> [runtime-bytecode @runtime;translate sampleI (expressionT;translate (` ((~ (code;nat tag)) (~ (code;bool last?)) (~ member))))] (@eval;eval sampleI)) - (meta;run (init-compiler [])) + (macro;run (init-compiler [])) (case> (#e;Success valueT) (let [valueT (:! (Array Top) valueT)] (and (n.= +3 (array;size valueT)) diff --git a/stdlib/source/lux/cli.lux b/stdlib/source/lux/cli.lux index d7e296b2f..6d4036b18 100644 --- a/stdlib/source/lux/cli.lux +++ b/stdlib/source/lux/cli.lux @@ -7,9 +7,9 @@ text/format ["E" error]) [io] - [meta #+ with-gensyms] - (meta [code] - ["s" syntax #+ syntax: Syntax]))) + [macro #+ with-gensyms] + (macro [code] + ["s" syntax #+ syntax: Syntax]))) ## [Types] (type: #export (CLI a) diff --git a/stdlib/source/lux/concurrency/actor.lux b/stdlib/source/lux/concurrency/actor.lux index 7d5c41583..bdf0758c3 100644 --- a/stdlib/source/lux/concurrency/actor.lux +++ b/stdlib/source/lux/concurrency/actor.lux @@ -7,12 +7,12 @@ (data text/format (coll [list "list/" Monoid<List> Monad<List> Fold<List>]) [product]) - [meta #+ with-gensyms Monad<Meta>] - (meta [code] - ["s" syntax #+ syntax: Syntax] - (syntax ["cs" common] - (common ["csr" reader] - ["csw" writer]))) + [macro #+ with-gensyms Monad<Meta>] + (macro [code] + ["s" syntax #+ syntax: Syntax] + (syntax ["cs" common] + (common ["csr" reader] + ["csw" writer]))) (type opaque) (lang [type])) (.. ["A" atom] @@ -152,14 +152,14 @@ (def: #hidden (<resolve> name) (-> Ident (Meta Ident)) (do Monad<Meta> - [name (meta;normalize name) - [_ annotations _] (meta;find-def name)] - (case (meta;get-tag-ann (ident-for <tag>) annotations) + [name (macro;normalize name) + [_ annotations _] (macro;find-def name)] + (case (macro;get-tag-ann (ident-for <tag>) annotations) (#;Some actor-name) (wrap actor-name) _ - (meta;fail (format "Definition is not " <desc> ".")))))] + (macro;fail (format "Definition is not " <desc> ".")))))] [with-actor resolve-actor #;;actor "an actor"] [with-message resolve-message #;;message "a message"] @@ -224,7 +224,7 @@ (wrap output)))))} (with-gensyms [g!message g!self g!state g!init g!error g!return g!output] (do @ - [module meta;current-module-name + [module macro;current-module-name #let [g!type (code;local-symbol (state-name _name)) g!behavior (code;local-symbol (behavior-name _name)) g!actor (code;local-symbol _name) diff --git a/stdlib/source/lux/concurrency/frp.lux b/stdlib/source/lux/concurrency/frp.lux index 57789d708..d59b96563 100644 --- a/stdlib/source/lux/concurrency/frp.lux +++ b/stdlib/source/lux/concurrency/frp.lux @@ -8,8 +8,8 @@ [io #- run] (data (coll [list "L/" Monoid<List>]) text/format) - [meta] - (meta ["s" syntax #+ syntax: Syntax])) + [macro] + (macro ["s" syntax #+ syntax: Syntax])) (.. ["&" promise])) ## [Types] diff --git a/stdlib/source/lux/concurrency/promise.lux b/stdlib/source/lux/concurrency/promise.lux index 63cd88c77..115f60dc1 100644 --- a/stdlib/source/lux/concurrency/promise.lux +++ b/stdlib/source/lux/concurrency/promise.lux @@ -9,8 +9,8 @@ ["A" applicative] ["M" monad #+ do Monad] ["p" parser]) - [meta] - (meta ["s" syntax #+ syntax: Syntax]) + [macro] + (macro ["s" syntax #+ syntax: Syntax]) (concurrency [atom #+ Atom atom]) )) diff --git a/stdlib/source/lux/concurrency/space.lux b/stdlib/source/lux/concurrency/space.lux index df0ec47a9..8fe9fa583 100644 --- a/stdlib/source/lux/concurrency/space.lux +++ b/stdlib/source/lux/concurrency/space.lux @@ -9,12 +9,12 @@ (data [product] (coll [list "L/" Functor<List> Fold<List>])) [io #- run] - [meta #+ with-gensyms] - (meta [code] - ["s" syntax #+ syntax:] - (syntax ["cs" common] - (common ["csr" reader] - ["csw" writer]))))) + [macro #+ with-gensyms] + (macro [code] + ["s" syntax #+ syntax:] + (syntax ["cs" common] + (common ["csr" reader] + ["csw" writer]))))) (with-expansions [<Event> [e (A;Actor Top) (Space e)] diff --git a/stdlib/source/lux/concurrency/stm.lux b/stdlib/source/lux/concurrency/stm.lux index d1762ee01..7886dda36 100644 --- a/stdlib/source/lux/concurrency/stm.lux +++ b/stdlib/source/lux/concurrency/stm.lux @@ -12,9 +12,9 @@ maybe [number "Nat/" Codec<Text,Nat>] text/format) - [meta] - (meta [code] - ["s" syntax #+ syntax: Syntax]) + [macro] + (macro [code] + ["s" syntax #+ syntax: Syntax]) (concurrency [atom #+ Atom atom] ["P" promise] [frp]) diff --git a/stdlib/source/lux/concurrency/task.lux b/stdlib/source/lux/concurrency/task.lux index fbc3cbf1e..374acee46 100644 --- a/stdlib/source/lux/concurrency/task.lux +++ b/stdlib/source/lux/concurrency/task.lux @@ -6,8 +6,8 @@ monad ["ex" exception #+ Exception]) (concurrency ["P" promise]) - [meta] - (meta ["s" syntax #+ syntax: Syntax]) + [macro] + (macro ["s" syntax #+ syntax: Syntax]) )) (type: #export (Task a) diff --git a/stdlib/source/lux/control/concatenative.lux b/stdlib/source/lux/control/concatenative.lux index 549ac19b0..b0ed0f585 100644 --- a/stdlib/source/lux/control/concatenative.lux +++ b/stdlib/source/lux/control/concatenative.lux @@ -9,12 +9,12 @@ text/format [maybe "m/" Monad<Maybe>] (coll [list "L/" Fold<List> Functor<List>])) - [meta #+ with-gensyms Monad<Meta>] - (meta [code] - ["s" syntax #+ syntax:] - (syntax ["cs" common] - (common ["csr" reader] - ["csw" writer]))))) + [macro #+ with-gensyms Monad<Meta>] + (macro [code] + ["s" syntax #+ syntax:] + (syntax ["cs" common] + (common ["csr" reader] + ["csw" writer]))))) ## [Syntax] (type: Alias [Text Code]) @@ -57,8 +57,8 @@ (wrap singleton) _ - (meta;fail (format "Cannot expand to more than a single AST/Code node:\n" - (|> expansion (L/map %code) (text;join-with " "))))))) + (macro;fail (format "Cannot expand to more than a single AST/Code node:\n" + (|> expansion (L/map %code) (text;join-with " "))))))) (syntax: #export (=> [aliases aliases^] [inputs stack^] @@ -72,16 +72,16 @@ (|> outputs (get@ #bottom) (m/map (|>. code;nat (~) #;Bound (`))))] [(#;Some bottomI) (#;Some bottomO)] (monad;do @ - [inputC (singleton (meta;expand-all (stack-fold (get@ #top inputs) bottomI))) - outputC (singleton (meta;expand-all (stack-fold (get@ #top outputs) bottomO)))] + [inputC (singleton (macro;expand-all (stack-fold (get@ #top inputs) bottomI))) + outputC (singleton (macro;expand-all (stack-fold (get@ #top outputs) bottomO)))] (wrap (list (` (-> (~ (de-alias inputC)) (~ (de-alias outputC))))))) [?bottomI ?bottomO] (with-gensyms [g!stack] (monad;do @ - [inputC (singleton (meta;expand-all (stack-fold (get@ #top inputs) (maybe;default g!stack ?bottomI)))) - outputC (singleton (meta;expand-all (stack-fold (get@ #top outputs) (maybe;default g!stack ?bottomO))))] + [inputC (singleton (macro;expand-all (stack-fold (get@ #top inputs) (maybe;default g!stack ?bottomI)))) + outputC (singleton (macro;expand-all (stack-fold (get@ #top outputs) (maybe;default g!stack ?bottomO))))] (wrap (list (` (All [(~ g!stack)] (-> (~ (de-alias inputC)) (~ (de-alias outputC)))))))))))) @@ -124,7 +124,7 @@ (syntax: #export (apply [arity (|> s;nat (p;filter (;n.> +0)))]) (with-gensyms [g!func g!stack g!output] (monad;do @ - [g!inputs (|> (meta;gensym "input") (list;repeat arity) (monad;seq @))] + [g!inputs (|> (macro;gensym "input") (list;repeat arity) (monad;seq @))] (wrap (list (` (: (All [(~@ g!inputs) (~ g!output)] (-> (-> (~@ g!inputs) (~ g!output)) (=> [(~@ g!inputs)] [(~ g!output)]))) diff --git a/stdlib/source/lux/control/cont.lux b/stdlib/source/lux/control/cont.lux index 0db72d0fc..81f62eccb 100644 --- a/stdlib/source/lux/control/cont.lux +++ b/stdlib/source/lux/control/cont.lux @@ -4,9 +4,9 @@ ["A" applicative] monad) function - [meta #+ with-gensyms] - (meta [code] - [syntax #+ syntax:]))) + [macro #+ with-gensyms] + (macro [code] + [syntax #+ syntax:]))) (type: #export (Cont i o) {#;doc "Continuations."} diff --git a/stdlib/source/lux/control/contract.lux b/stdlib/source/lux/control/contract.lux index 5ff6309ec..cc3267715 100644 --- a/stdlib/source/lux/control/contract.lux +++ b/stdlib/source/lux/control/contract.lux @@ -2,9 +2,9 @@ lux (lux (control monad) (data text/format) - [meta] - (meta [code] - ["s" syntax #+ syntax:]))) + [macro] + (macro [code] + ["s" syntax #+ syntax:]))) (def: #export (assert! message test) (-> Text Bool []) @@ -30,7 +30,7 @@ (post i.even? (i.+ 2 2)))} (do @ - [g!output (meta;gensym "")] + [g!output (macro;gensym "")] (wrap (list (` (let [(~ g!output) (~ expr)] (exec (assert! (~ (code;text (format "Post-condition failed: " (%code test)))) ((~ test) (~ g!output))) diff --git a/stdlib/source/lux/control/exception.lux b/stdlib/source/lux/control/exception.lux index 9732cd185..010fb562f 100644 --- a/stdlib/source/lux/control/exception.lux +++ b/stdlib/source/lux/control/exception.lux @@ -4,12 +4,12 @@ (data ["e" error] [maybe] [text "text/" Monoid<Text>]) - [meta] - (meta [code] - ["s" syntax #+ syntax: Syntax] - (syntax ["cs" common] - (common ["csr" reader] - ["csw" writer]))))) + [macro] + (macro [code] + ["s" syntax #+ syntax: Syntax] + (syntax ["cs" common] + (common ["csr" reader] + ["csw" writer]))))) ## [Types] (type: #export Exception @@ -71,7 +71,7 @@ "It moslty just serves as a way to tag error messages for later catching." (exception: #export Some-Exception))} (do @ - [current-module meta;current-module-name + [current-module macro;current-module-name #let [descriptor ($_ text/compose "{" current-module ";" name "}" "\n") g!message (code;symbol ["" "message"])]] (wrap (list (` (def: (~@ (csw;export _ex-lev)) ((~ (code;symbol ["" name])) (~ g!message)) diff --git a/stdlib/source/lux/control/pipe.lux b/stdlib/source/lux/control/pipe.lux index f2a6950fb..6eb8e8156 100644 --- a/stdlib/source/lux/control/pipe.lux +++ b/stdlib/source/lux/control/pipe.lux @@ -3,9 +3,9 @@ (lux (control ["M" monad #+ do Monad] ["p" parser]) (data (coll [list #+ Monad<List> "L/" Fold<List> Monad<List>])) - [meta #+ with-gensyms] - (meta ["s" syntax #+ syntax: Syntax] - [code]) + [macro #+ with-gensyms] + (macro ["s" syntax #+ syntax: Syntax] + [code]) )) ## [Syntax] @@ -98,7 +98,7 @@ (exec> [int-to-nat %n log!]) (i.* 10)))} (do @ - [g!temp (meta;gensym "")] + [g!temp (macro;gensym "")] (wrap (list (` (let [(~ g!temp) (~ prev)] (exec (|> (~ g!temp) (~@ body)) (~ g!temp)))))))) @@ -112,7 +112,7 @@ [Int/encode])) "Will become: [50 2 \"5\"]")} (do @ - [g!temp (meta;gensym "")] + [g!temp (macro;gensym "")] (wrap (list (` (let [(~ g!temp) (~ prev)] [(~@ (L/map (function [body] (` (|> (~ g!temp) (~@ body)))) paths))])))))) diff --git a/stdlib/source/lux/data/coll/ordered/dict.lux b/stdlib/source/lux/data/coll/ordered/dict.lux index 1151a018b..24b6b7c3b 100644 --- a/stdlib/source/lux/data/coll/ordered/dict.lux +++ b/stdlib/source/lux/data/coll/ordered/dict.lux @@ -6,9 +6,9 @@ (data (coll [list "L/" Monad<List> Monoid<List> Fold<List>]) ["p" product] [maybe]) - [meta] - (meta [code] - ["s" syntax #+ syntax: Syntax]))) + [macro] + (macro [code] + ["s" syntax #+ syntax: Syntax]))) (def: error-message Text "Invariant violation") diff --git a/stdlib/source/lux/data/coll/ordered/set.lux b/stdlib/source/lux/data/coll/ordered/set.lux index 90026feab..376624033 100644 --- a/stdlib/source/lux/data/coll/ordered/set.lux +++ b/stdlib/source/lux/data/coll/ordered/set.lux @@ -7,9 +7,9 @@ (ordered ["d" dict])) ["p" product] ["M" maybe #+ Functor<Maybe>]) - [meta] - (meta [code] - ["s" syntax #+ syntax: Syntax]))) + [macro] + (macro [code] + ["s" syntax #+ syntax: Syntax]))) (type: #export (Set a) (d;Dict a a)) diff --git a/stdlib/source/lux/data/coll/sequence.lux b/stdlib/source/lux/data/coll/sequence.lux index c76735d3c..f85558c5e 100644 --- a/stdlib/source/lux/data/coll/sequence.lux +++ b/stdlib/source/lux/data/coll/sequence.lux @@ -12,9 +12,9 @@ [array "array/" Functor<Array> Fold<Array>]) [bit] [product]) - [meta #+ with-gensyms] - (meta [code] - ["s" syntax #+ syntax: Syntax]) + [macro #+ with-gensyms] + (macro [code] + ["s" syntax #+ syntax: Syntax]) )) ## [Utils] diff --git a/stdlib/source/lux/data/coll/stream.lux b/stdlib/source/lux/data/coll/stream.lux index 61e3b3e6c..43ed0087c 100644 --- a/stdlib/source/lux/data/coll/stream.lux +++ b/stdlib/source/lux/data/coll/stream.lux @@ -5,8 +5,8 @@ comonad [cont #+ pending Cont] ["p" parser]) - [meta #+ with-gensyms] - (meta ["s" syntax #+ syntax: Syntax]) + [macro #+ with-gensyms] + (macro ["s" syntax #+ syntax: Syntax]) (data (coll [list "List/" Monad<List>]) bool))) diff --git a/stdlib/source/lux/data/coll/tree/rose.lux b/stdlib/source/lux/data/coll/tree/rose.lux index b07f1ed84..546982dba 100644 --- a/stdlib/source/lux/data/coll/tree/rose.lux +++ b/stdlib/source/lux/data/coll/tree/rose.lux @@ -6,9 +6,9 @@ ["p" parser] fold) (data (coll [list "L/" Monad<List> Fold<List>])) - [meta] - (meta [code] - ["s" syntax #+ syntax: Syntax]))) + [macro] + (macro [code] + ["s" syntax #+ syntax: Syntax]))) ## [Types] (type: #export (Tree a) diff --git a/stdlib/source/lux/data/coll/tree/zipper.lux b/stdlib/source/lux/data/coll/tree/zipper.lux index ddab9d121..c8f9a9059 100644 --- a/stdlib/source/lux/data/coll/tree/zipper.lux +++ b/stdlib/source/lux/data/coll/tree/zipper.lux @@ -6,9 +6,9 @@ (tree [rose #+ Tree "T/" Functor<Tree>]) [stack #+ Stack]) [maybe "M/" Monad<Maybe>]) - [meta] - (meta [code] - ["s" syntax #+ syntax: Syntax]))) + [macro] + (macro [code] + ["s" syntax #+ syntax: Syntax]))) ## Adapted from the clojure.zip namespace in the Clojure standard library. diff --git a/stdlib/source/lux/data/format/json.lux b/stdlib/source/lux/data/format/json.lux index ddc2b48cf..029d8dde7 100644 --- a/stdlib/source/lux/data/format/json.lux +++ b/stdlib/source/lux/data/format/json.lux @@ -17,10 +17,10 @@ (coll [list "list/" Fold<List> Monad<List>] [sequence #+ Sequence sequence "sequence/" Monad<Sequence>] [dict #+ Dict])) - [meta #+ Monad<Meta> with-gensyms] - (meta ["s" syntax #+ syntax:] - [code] - [poly #+ poly:]) + [macro #+ Monad<Meta> with-gensyms] + (macro ["s" syntax #+ syntax:] + [code] + [poly #+ poly:]) (lang [type]) )) @@ -86,7 +86,7 @@ (wrap (` [(~ (code;text key-name)) (~ (wrapper value))])) _ - (meta;fail "Wrong syntax for JSON object."))) + (macro;fail "Wrong syntax for JSON object."))) pairs)] (wrap (list (` (: JSON (#Object (dict;from-list text;Hash<Text> (list (~@ pairs'))))))))) diff --git a/stdlib/source/lux/data/lazy.lux b/stdlib/source/lux/data/lazy.lux index 547418d51..e344c6a0a 100644 --- a/stdlib/source/lux/data/lazy.lux +++ b/stdlib/source/lux/data/lazy.lux @@ -5,8 +5,8 @@ ["A" applicative] monad) (concurrency ["a" atom]) - [meta] - (meta ["s" syntax #+ syntax:]) + [macro] + (macro ["s" syntax #+ syntax:]) (type opaque))) (opaque: #export (Lazy a) @@ -31,7 +31,7 @@ (syntax: #export (freeze expr) (do @ - [g!_ (meta;gensym "_")] + [g!_ (macro;gensym "_")] (wrap (list (` (freeze' (function [(~ g!_)] (~ expr)))))))) (struct: #export _ (F;Functor Lazy) diff --git a/stdlib/source/lux/data/number/complex.lux b/stdlib/source/lux/data/number/complex.lux index 870474890..7fc8af1dd 100644 --- a/stdlib/source/lux/data/number/complex.lux +++ b/stdlib/source/lux/data/number/complex.lux @@ -12,9 +12,9 @@ ["E" error] [maybe] (coll [list "L/" Monad<List>])) - [meta] - (meta [code] - ["s" syntax #+ syntax: Syntax]))) + [macro] + (macro [code] + ["s" syntax #+ syntax: Syntax]))) (type: #export Complex {#real Frac diff --git a/stdlib/source/lux/data/number/ratio.lux b/stdlib/source/lux/data/number/ratio.lux index d14e5e1f1..f3f9a1196 100644 --- a/stdlib/source/lux/data/number/ratio.lux +++ b/stdlib/source/lux/data/number/ratio.lux @@ -13,9 +13,9 @@ ["E" error] [product] [maybe]) - [meta] - (meta [code] - ["s" syntax #+ syntax: Syntax]))) + [macro] + (macro [code] + ["s" syntax #+ syntax: Syntax]))) (type: #export Ratio {#numerator Nat diff --git a/stdlib/source/lux/data/text/format.lux b/stdlib/source/lux/data/text/format.lux index 7fdd9f552..9f8d2b25f 100644 --- a/stdlib/source/lux/data/text/format.lux +++ b/stdlib/source/lux/data/text/format.lux @@ -12,9 +12,9 @@ (time [instant] [duration] [date]) - [meta] - (meta [code] - ["s" syntax #+ syntax: Syntax]) + [macro] + (macro [code] + ["s" syntax #+ syntax: Syntax]) (lang [type]))) ## [Syntax] diff --git a/stdlib/source/lux/data/text/lexer.lux b/stdlib/source/lux/data/text/lexer.lux index 9ae2bdd8f..5fc638354 100644 --- a/stdlib/source/lux/data/text/lexer.lux +++ b/stdlib/source/lux/data/text/lexer.lux @@ -7,7 +7,7 @@ [maybe] ["E" error] (coll [list])) - (meta [code]))) + (macro [code]))) (type: Offset Nat) diff --git a/stdlib/source/lux/data/text/regex.lux b/stdlib/source/lux/data/text/regex.lux index bcefa4331..07e2a6ea4 100644 --- a/stdlib/source/lux/data/text/regex.lux +++ b/stdlib/source/lux/data/text/regex.lux @@ -10,9 +10,9 @@ ["E" error] [maybe] (coll [list "L/" Fold<List> Monad<List>])) - [meta #- run] - (meta [code] - ["s" syntax #+ syntax:]))) + [macro #- run] + (macro [code] + ["s" syntax #+ syntax:]))) ## [Utils] (def: regex-char^ @@ -458,13 +458,13 @@ (regex "a(.)(.)|b(.)(.)") )} (do @ - [current-module meta;current-module-name] + [current-module macro;current-module-name] (case (|> (regex^ current-module) (p;before l;end) (l;run pattern)) (#E;Error error) - (meta;fail (format "Error while parsing regular-expression:\n" - error)) + (macro;fail (format "Error while parsing regular-expression:\n" + error)) (#E;Success regex) (wrap (list regex)) @@ -485,7 +485,7 @@ _ do-something-else))} (do @ - [g!temp (meta;gensym "temp")] + [g!temp (macro;gensym "temp")] (wrap (list& (` (^multi (~ g!temp) [(l;run (~ g!temp) (regex (~ (code;text pattern)))) (#E;Success (~ (maybe;default g!temp diff --git a/stdlib/source/lux/host.js.lux b/stdlib/source/lux/host.js.lux index e9c987532..fdbc752c4 100644 --- a/stdlib/source/lux/host.js.lux +++ b/stdlib/source/lux/host.js.lux @@ -3,9 +3,9 @@ (lux (control monad ["p" parser]) (data (coll [list #* "L/" Fold<List>])) - [meta #+ with-gensyms] - (meta [code] - ["s" syntax #+ syntax: Syntax]) + [macro #+ with-gensyms] + (macro [code] + ["s" syntax #+ syntax: Syntax]) )) (do-template [<name> <type>] diff --git a/stdlib/source/lux/host.jvm.lux b/stdlib/source/lux/host.jvm.lux index 1b77e3016..1298a56d1 100644 --- a/stdlib/source/lux/host.jvm.lux +++ b/stdlib/source/lux/host.jvm.lux @@ -11,9 +11,9 @@ [text "text/" Eq<Text> Monoid<Text>] text/format [bool "bool/" Codec<Text,Bool>]) - [meta #+ with-gensyms Functor<Meta> Monad<Meta>] - (meta [code] - ["s" syntax #+ syntax: Syntax]) + [macro #+ with-gensyms Functor<Meta> Monad<Meta>] + (macro [code] + ["s" syntax #+ syntax: Syntax]) (lang [type]) )) @@ -352,21 +352,21 @@ (def: (class-imports compiler) (-> Compiler ClassImports) - (case (meta;run compiler - (: (Meta ClassImports) - (do Monad<Meta> - [current-module meta;current-module-name - defs (meta;defs current-module)] - (wrap (list/fold (: (-> [Text Def] ClassImports ClassImports) - (function [[short-name [_ meta _]] imports] - (case (meta;get-text-ann (ident-for #;;jvm-class) meta) - (#;Some full-class-name) - (add-import [short-name full-class-name] imports) - - _ - imports))) - empty-imports - defs))))) + (case (macro;run compiler + (: (Meta ClassImports) + (do Monad<Meta> + [current-module macro;current-module-name + defs (macro;defs current-module)] + (wrap (list/fold (: (-> [Text Def] ClassImports ClassImports) + (function [[short-name [_ meta _]] imports] + (case (macro;get-text-ann (ident-for #;;jvm-class) meta) + (#;Some full-class-name) + (add-import [short-name full-class-name] imports) + + _ + imports))) + empty-imports + defs))))) (#;Left _) (list) (#;Right imports) imports)) @@ -1305,7 +1305,7 @@ "(.resolve! container [value]) for calling the \"resolve\" method." )} (do Monad<Meta> - [current-module meta;current-module-name + [current-module macro;current-module-name #let [fully-qualified-class-name (format (text;replace-all "/" "." current-module) "." full-class-name) field-parsers (list/map (field->parser fully-qualified-class-name) fields) method-parsers (list/map (method->parser (product;right class-decl) fully-qualified-class-name) methods) @@ -1435,7 +1435,7 @@ #;None (do @ - [g!obj (meta;gensym "obj")] + [g!obj (macro;gensym "obj")] (wrap (list (` (: (-> (primitive (~' java.lang.Object)) Bool) (function [(~ g!obj)] ((~ (code;text (format "jvm instanceof" ":" (simple-class$ (list) class)))) (~ g!obj)))))))) @@ -1540,7 +1540,7 @@ (:: Monad<Meta> wrap (class->type mode type-params (get@ #import-method-return method))) _ - (meta;fail "Only methods have return values."))) + (macro;fail "Only methods have return values."))) (def: (decorate-return-maybe member [return-type return-term]) (-> ImportMemberDecl [Code Code] [Code Code]) @@ -1842,7 +1842,7 @@ #Class)) (#;Left _) - (meta;fail (format "Unknown class: " class-name)))) + (macro;fail (format "Unknown class: " class-name)))) (syntax: #export (import [#let [imports (class-imports *compiler*)]] [long-name? (s;this? (' #long))] @@ -1937,7 +1937,7 @@ (#;Apply A F) (case (type;apply (list A) F) #;None - (meta;fail (format "Cannot apply type: " (type;to-text F) " to " (type;to-text A))) + (macro;fail (format "Cannot apply type: " (type;to-text F) " to " (type;to-text A))) (#;Some type') (type->class-name type')) @@ -1949,7 +1949,7 @@ (:: Monad<Meta> wrap "java.lang.Object") (^or #;Void (#;Var _) (#;Ex _) (#;Bound _) (#;Sum _) (#;Product _) (#;Function _) (#;UnivQ _) (#;ExQ _)) - (meta;fail (format "Cannot convert to JvmType: " (type;to-text type))) + (macro;fail (format "Cannot convert to JvmType: " (type;to-text type))) )) (syntax: #export (array-read idx array) @@ -1958,7 +1958,7 @@ (case array [_ (#;Symbol array-name)] (do Monad<Meta> - [array-type (meta;find-type array-name) + [array-type (macro;find-type array-name) array-jvm-type (type->class-name array-type)] (case array-jvm-type (^template [<type> <array-op>] @@ -1987,7 +1987,7 @@ (case array [_ (#;Symbol array-name)] (do Monad<Meta> - [array-type (meta;find-type array-name) + [array-type (macro;find-type array-name) array-jvm-type (type->class-name array-type)] (case array-jvm-type (^template [<type> <array-op>] @@ -2071,7 +2071,7 @@ (wrap fqcn) #;None - (meta;fail (text/compose "Unknown class: " class))))) + (macro;fail (text/compose "Unknown class: " class))))) (syntax: #export (type [#let [imports (class-imports *compiler*)]] [type (generic-type^ imports (list))]) diff --git a/stdlib/source/lux/lang/type.lux b/stdlib/source/lux/lang/type.lux index 9d6ed5162..974561605 100644 --- a/stdlib/source/lux/lang/type.lux +++ b/stdlib/source/lux/lang/type.lux @@ -7,7 +7,7 @@ [number "nat/" Codec<Text,Nat>] [maybe] (coll [list #+ "list/" Monad<List> Monoid<List> Fold<List>])) - (meta [code]) + (macro [code]) )) ## [Utils] diff --git a/stdlib/source/lux/meta.lux b/stdlib/source/lux/macro.lux index e65e09b58..e65e09b58 100644 --- a/stdlib/source/lux/meta.lux +++ b/stdlib/source/lux/macro.lux diff --git a/stdlib/source/lux/meta/code.lux b/stdlib/source/lux/macro/code.lux index d41dbe240..d41dbe240 100644 --- a/stdlib/source/lux/meta/code.lux +++ b/stdlib/source/lux/macro/code.lux diff --git a/stdlib/source/lux/meta/poly.lux b/stdlib/source/lux/macro/poly.lux index 08d91c5f0..7ed7fb2ee 100644 --- a/stdlib/source/lux/meta/poly.lux +++ b/stdlib/source/lux/macro/poly.lux @@ -13,12 +13,12 @@ [maybe] [ident "ident/" Eq<Ident> Codec<Text,Ident>] ["e" error]) - [meta #+ with-gensyms] - (meta [code] - ["s" syntax #+ syntax: Syntax] - (syntax ["cs" common] - (common ["csr" reader] - ["csw" writer]))) + [macro #+ with-gensyms] + (macro [code] + ["s" syntax #+ syntax: Syntax] + (syntax ["cs" common] + (common ["csr" reader] + ["csw" writer]))) (lang [type] (type [check])) )) @@ -343,8 +343,8 @@ (with-gensyms [g!type g!output] (let [g!name (code;symbol ["" name])] (wrap (;list (` (syntax: (~@ (csw;export export)) ((~ g!name) [(~ g!type) s;symbol]) - (do meta;Monad<Meta> - [(~ g!type) (meta;find-type-def (~ g!type))] + (do macro;Monad<Meta> + [(~ g!type) (macro;find-type-def (~ g!type))] (case (|> (~ body) (;function [(~ g!name)]) p;rec @@ -352,7 +352,7 @@ (;;run (~ g!type)) (: (;Either ;Text ;Code))) (#;Left (~ g!output)) - (meta;fail (~ g!output)) + (macro;fail (~ g!output)) (#;Right (~ g!output)) ((~' wrap) (;list (~ g!output)))))))))))) @@ -372,7 +372,7 @@ [[poly-func poly-args] (s;form (p;seq s;symbol (p;many s;symbol)))] [?custom-impl (p;maybe s;any)]) (do @ - [poly-args (monad;map @ meta;normalize poly-args) + [poly-args (monad;map @ macro;normalize poly-args) name (case ?name (#;Some name) (wrap name) diff --git a/stdlib/source/lux/meta/poly/eq.lux b/stdlib/source/lux/macro/poly/eq.lux index 0d63f0d35..099febb24 100644 --- a/stdlib/source/lux/meta/poly/eq.lux +++ b/stdlib/source/lux/macro/poly/eq.lux @@ -19,11 +19,11 @@ (time ["du" duration] ["da" date] ["i" instant]) - [meta] - (meta [code] - [syntax #+ syntax: Syntax] - (syntax [common]) - [poly #+ poly:]) + [macro] + (macro [code] + [syntax #+ syntax: Syntax] + (syntax [common]) + [poly #+ poly:]) (type [unit]) (lang [type]) )) diff --git a/stdlib/source/lux/meta/poly/functor.lux b/stdlib/source/lux/macro/poly/functor.lux index 0e140e9e4..ba847d35b 100644 --- a/stdlib/source/lux/meta/poly/functor.lux +++ b/stdlib/source/lux/macro/poly/functor.lux @@ -7,11 +7,11 @@ text/format (coll [list "L/" Monad<List> Monoid<List>]) [product]) - [meta] - (meta [code] - [syntax #+ syntax: Syntax] - (syntax [common]) - [poly #+ poly:]) + [macro] + (macro [code] + [syntax #+ syntax: Syntax] + (syntax [common]) + [poly #+ poly:]) (lang [type]) )) diff --git a/stdlib/source/lux/meta/poly/json.lux b/stdlib/source/lux/macro/poly/json.lux index 282c8ad7c..5c3a645ee 100644 --- a/stdlib/source/lux/meta/poly/json.lux +++ b/stdlib/source/lux/macro/poly/json.lux @@ -20,10 +20,10 @@ (time ["i" instant] ["du" duration] ["da" date]) - [meta #+ with-gensyms] - (meta ["s" syntax #+ syntax:] - [code] - [poly #+ poly:]) + [macro #+ with-gensyms] + (macro ["s" syntax #+ syntax:] + [code] + [poly #+ poly:]) (type [unit]) (lang [type]) )) diff --git a/stdlib/source/lux/meta/syntax.lux b/stdlib/source/lux/macro/syntax.lux index 5587693dd..917b7e094 100644 --- a/stdlib/source/lux/meta/syntax.lux +++ b/stdlib/source/lux/macro/syntax.lux @@ -1,6 +1,6 @@ (;module: lux - (lux [meta #+ with-gensyms] + (lux [macro #+ with-gensyms] (control [monad #+ do Monad] [eq #+ Eq] ["p" parser]) @@ -173,7 +173,7 @@ {#;doc "Run a Lux operation as if it was a Syntax parser."} (All [a] (-> Compiler (Meta a) (Syntax a))) (function [input] - (case (meta;run compiler action) + (case (macro;run compiler action) (#E;Error error) (#E;Error error) @@ -253,7 +253,7 @@ (case ?parts (#;Some [name args meta body]) (with-gensyms [g!tokens g!body g!msg] - (do meta;Monad<Meta> + (do macro;Monad<Meta> [vars+parsers (monad;map @ (: (-> Code (Meta [Code Code])) (function [arg] @@ -265,7 +265,7 @@ (wrap [(code;symbol var-name) (` any)]) _ - (meta;fail "Syntax pattern expects tuples or symbols.")))) + (macro;fail "Syntax pattern expects tuples or symbols.")))) args) #let [g!state (code;symbol ["" "*compiler*"]) error-msg (code;text (text/compose "Wrong syntax for " name)) @@ -284,7 +284,7 @@ (: (Syntax (Meta (List Code))) (do ;;_Monad<Parser>_ [(~@ (join-pairs vars+parsers))] - ((~' wrap) (do meta;Monad<Meta> + ((~' wrap) (do macro;Monad<Meta> [] (~ body)))))) {(#E;Success (~ g!body)) @@ -294,4 +294,4 @@ (#E;Error (text.join-with ": " (list (~ error-msg) (~ g!msg))))}))))))) _ - (meta;fail "Wrong syntax for syntax:")))) + (macro;fail "Wrong syntax for syntax:")))) diff --git a/stdlib/source/lux/meta/syntax/common.lux b/stdlib/source/lux/macro/syntax/common.lux index 72e52a4ab..72e52a4ab 100644 --- a/stdlib/source/lux/meta/syntax/common.lux +++ b/stdlib/source/lux/macro/syntax/common.lux diff --git a/stdlib/source/lux/meta/syntax/common/reader.lux b/stdlib/source/lux/macro/syntax/common/reader.lux index 83fdadc18..9ab6d6381 100644 --- a/stdlib/source/lux/meta/syntax/common/reader.lux +++ b/stdlib/source/lux/macro/syntax/common/reader.lux @@ -6,8 +6,8 @@ [ident "ident/" Eq<Ident>] [product] [maybe]) - [meta] - (meta ["s" syntax #+ syntax: Syntax])) + [macro] + (macro ["s" syntax #+ syntax: Syntax])) [.. #*]) ## Exports @@ -109,7 +109,7 @@ (do p;Monad<Parser> [definition-raw s;any me-definition-raw (s;on compiler - (meta;expand-all definition-raw))] + (macro;expand-all definition-raw))] (s;local me-definition-raw (s;form (do @ [_ (s;this (' "lux def")) diff --git a/stdlib/source/lux/meta/syntax/common/writer.lux b/stdlib/source/lux/macro/syntax/common/writer.lux index c7eaf6f00..72e4a11eb 100644 --- a/stdlib/source/lux/meta/syntax/common/writer.lux +++ b/stdlib/source/lux/macro/syntax/common/writer.lux @@ -2,7 +2,7 @@ lux (lux (data (coll [list "L/" Functor<List>]) [product]) - (meta [code])) + (macro [code])) [.. #*]) ## Exports diff --git a/stdlib/source/lux/math.lux b/stdlib/source/lux/math.lux index aa317368d..d1671537d 100644 --- a/stdlib/source/lux/math.lux +++ b/stdlib/source/lux/math.lux @@ -4,9 +4,9 @@ ["p" parser "p/" Functor<Parser>]) (data (coll [list "L/" Fold<List>]) [product]) - [meta] - (meta ["s" syntax #+ syntax: Syntax] - [code]))) + [macro] + (macro ["s" syntax #+ syntax: Syntax] + [code]))) ## [Values] (do-template [<name> <value>] diff --git a/stdlib/source/lux/test.lux b/stdlib/source/lux/test.lux index 3eae64eee..d296a9a2e 100644 --- a/stdlib/source/lux/test.lux +++ b/stdlib/source/lux/test.lux @@ -1,8 +1,8 @@ (;module: {#;doc "Tools for unit & property-based/generative testing."} lux - (lux [meta #+ Monad<Meta> with-gensyms] - (meta ["s" syntax #+ syntax: Syntax] - [code]) + (lux [macro #+ Monad<Meta> with-gensyms] + (macro ["s" syntax #+ syntax: Syntax] + [code]) (control [monad #+ do Monad] ["p" parser]) (concurrency [promise #+ Promise Monad<Promise>]) @@ -200,10 +200,10 @@ (def: (exported-tests module-name) (-> Text (Meta (List [Text Text Text]))) (do Monad<Meta> - [defs (meta;exports module-name)] + [defs (macro;exports module-name)] (wrap (|> defs (list/map (function [[def-name [_ def-anns _]]] - (case (meta;get-text-ann (ident-for #;;test) def-anns) + (case (macro;get-text-ann (ident-for #;;test) def-anns) (#;Some description) [true module-name def-name description] @@ -220,8 +220,8 @@ (run))} (with-gensyms [g!successes g!failures g!total-successes g!total-failures] (do @ - [current-module meta;current-module-name - modules (meta;imported-modules current-module) + [current-module macro;current-module-name + modules (macro;imported-modules current-module) tests (: (Meta (List [Text Text Text])) (|> (#;Cons current-module modules) list;reverse diff --git a/stdlib/source/lux/type/implicit.lux b/stdlib/source/lux/type/implicit.lux index 54fec2626..e23a5c8dd 100644 --- a/stdlib/source/lux/type/implicit.lux +++ b/stdlib/source/lux/type/implicit.lux @@ -11,9 +11,9 @@ [bool] [product] [maybe]) - [meta #+ Monad<Meta>] - (meta [code] - ["s" syntax #+ syntax: Syntax]) + [macro #+ Monad<Meta>] + (macro [code] + ["s" syntax #+ syntax: Syntax]) (lang [type] (type ["tc" check #+ Check Monad<Check>])) )) @@ -31,17 +31,17 @@ (:: Monad<Meta> wrap type)) (#;Some [_ #;None]) - (meta;fail (format "Unbound type-var " (%n id))) + (macro;fail (format "Unbound type-var " (%n id))) #;None - (meta;fail (format "Unknown type-var " (%n id))) + (macro;fail (format "Unknown type-var " (%n id))) )) (def: (resolve-type var-name) (-> Ident (Meta Type)) (do Monad<Meta> - [raw-type (meta;find-type var-name) - compiler meta;get-compiler] + [raw-type (macro;find-type var-name) + compiler macro;get-compiler] (case raw-type (#;Var id) (find-type-var id (get@ #;type-context compiler)) @@ -77,26 +77,26 @@ (-> Ident (Meta Ident)) (case member ["" simple-name] - (meta;either (do Monad<Meta> - [member (meta;normalize member) - _ (meta;resolve-tag member)] - (wrap member)) - (do Monad<Meta> - [this-module-name meta;current-module-name - imp-mods (meta;imported-modules this-module-name) - tag-lists (M;map @ meta;tag-lists imp-mods) - #let [tag-lists (|> tag-lists List/join (List/map product;left) List/join) - candidates (list;filter (. (Text/= simple-name) product;right) - tag-lists)]] - (case candidates - #;Nil - (meta;fail (format "Unknown tag: " (%ident member))) - - (#;Cons winner #;Nil) - (wrap winner) - - _ - (meta;fail (format "Too many candidate tags: " (%list %ident candidates)))))) + (macro;either (do Monad<Meta> + [member (macro;normalize member) + _ (macro;resolve-tag member)] + (wrap member)) + (do Monad<Meta> + [this-module-name macro;current-module-name + imp-mods (macro;imported-modules this-module-name) + tag-lists (M;map @ macro;tag-lists imp-mods) + #let [tag-lists (|> tag-lists List/join (List/map product;left) List/join) + candidates (list;filter (. (Text/= simple-name) product;right) + tag-lists)]] + (case candidates + #;Nil + (macro;fail (format "Unknown tag: " (%ident member))) + + (#;Cons winner #;Nil) + (wrap winner) + + _ + (macro;fail (format "Too many candidate tags: " (%list %ident candidates)))))) _ (:: Monad<Meta> wrap member))) @@ -105,21 +105,21 @@ (-> Ident (Meta [Nat Type])) (do Monad<Meta> [member (find-member-name member) - [idx tag-list sig-type] (meta;resolve-tag member)] + [idx tag-list sig-type] (macro;resolve-tag member)] (wrap [idx sig-type]))) (def: (prepare-defs this-module-name defs) (-> Text (List [Text Def]) (List [Ident Type])) (|> defs (list;filter (function [[name [def-type def-anns def-value]]] - (meta;struct? def-anns))) + (macro;struct? def-anns))) (List/map (function [[name [def-type def-anns def-value]]] [[this-module-name name] def-type])))) (def: local-env (Meta (List [Ident Type])) (do Monad<Meta> - [local-batches meta;locals + [local-batches macro;locals #let [total-locals (List/fold (function [[name type] table] (dict;put~ name type table)) (: (dict;Dict Text Type) @@ -132,18 +132,18 @@ (def: local-structs (Meta (List [Ident Type])) (do Monad<Meta> - [this-module-name meta;current-module-name - defs (meta;defs this-module-name)] + [this-module-name macro;current-module-name + defs (macro;defs this-module-name)] (wrap (prepare-defs this-module-name defs)))) (def: import-structs (Meta (List [Ident Type])) (do Monad<Meta> - [this-module-name meta;current-module-name - imp-mods (meta;imported-modules this-module-name) + [this-module-name macro;current-module-name + imp-mods (macro;imported-modules this-module-name) export-batches (M;map @ (function [imp-mod] (do @ - [exports (meta;exports imp-mod)] + [exports (macro;exports imp-mod)] (wrap (prepare-defs imp-mod exports)))) imp-mods)] (wrap (List/join export-batches)))) @@ -200,7 +200,7 @@ Type-Context Type (List [Ident Type]) (Meta (List Instance))) (do Monad<Meta> - [compiler meta;get-compiler] + [compiler macro;get-compiler] (case (|> alts (List/map (function [[alt-name alt-type]] (case (tc;run context @@ -218,18 +218,18 @@ (list [alt-name =deps])))) List/join) #;Nil - (meta;fail (format "No candidates for provisioning: " (%type dep))) + (macro;fail (format "No candidates for provisioning: " (%type dep))) found (wrap found)))) (def: (provision compiler context dep) (-> Compiler Type-Context Type (Check Instance)) - (case (meta;run compiler - ($_ meta;either - (do Monad<Meta> [alts local-env] (test-provision provision context dep alts)) - (do Monad<Meta> [alts local-structs] (test-provision provision context dep alts)) - (do Monad<Meta> [alts import-structs] (test-provision provision context dep alts)))) + (case (macro;run compiler + ($_ macro;either + (do Monad<Meta> [alts local-env] (test-provision provision context dep alts)) + (do Monad<Meta> [alts local-structs] (test-provision provision context dep alts)) + (do Monad<Meta> [alts import-structs] (test-provision provision context dep alts)))) (#;Left error) (tc;fail error) @@ -248,8 +248,8 @@ (def: (test-alternatives sig-type member-idx input-types output-type alts) (-> Type Nat (List Type) Type (List [Ident Type]) (Meta (List Instance))) (do Monad<Meta> - [compiler meta;get-compiler - context meta;type-context] + [compiler macro;get-compiler + context macro;type-context] (case (|> alts (List/map (function [[alt-name alt-type]] (case (tc;run context @@ -269,7 +269,7 @@ (list [alt-name =deps])))) List/join) #;Nil - (meta;fail (format "No alternatives for " (%type (type;function input-types output-type)))) + (macro;fail (format "No alternatives for " (%type (type;function input-types output-type)))) found (wrap found)))) @@ -277,7 +277,7 @@ (def: (find-alternatives sig-type member-idx input-types output-type) (-> Type Nat (List Type) Type (Meta (List Instance))) (let [test (test-alternatives sig-type member-idx input-types output-type)] - ($_ meta;either + ($_ macro;either (do Monad<Meta> [alts local-env] (test alts)) (do Monad<Meta> [alts local-structs] (test alts)) (do Monad<Meta> [alts import-structs] (test alts))))) @@ -335,11 +335,11 @@ (do @ [[member-idx sig-type] (resolve-member member) input-types (M;map @ resolve-type args) - output-type meta;expected-type + output-type macro;expected-type chosen-ones (find-alternatives sig-type member-idx input-types output-type)] (case chosen-ones #;Nil - (meta;fail (format "No structure option could be found for member: " (%ident member))) + (macro;fail (format "No structure option could be found for member: " (%ident member))) (#;Cons chosen #;Nil) (wrap (list (` (:: (~ (instance$ chosen)) @@ -347,16 +347,16 @@ (~@ (List/map code;symbol args)))))) _ - (meta;fail (format "Too many options available: " - (|> chosen-ones - (List/map (. %ident product;left)) - (text;join-with ", ")) - " --- for type: " (%type sig-type))))) + (macro;fail (format "Too many options available: " + (|> chosen-ones + (List/map (. %ident product;left)) + (text;join-with ", ")) + " --- for type: " (%type sig-type))))) (#;Right [args _]) (do @ [labels (M;seq @ (list;repeat (list;size args) - (meta;gensym ""))) + (macro;gensym ""))) #let [retry (` (let [(~@ (|> (list;zip2 labels args) (List/map join-pair) List/join))] (;;::: (~ (code;symbol member)) (~@ labels))))]] (wrap (list retry))) diff --git a/stdlib/source/lux/type/object.lux b/stdlib/source/lux/type/object.lux index 0eb354242..fc68dcdae 100644 --- a/stdlib/source/lux/type/object.lux +++ b/stdlib/source/lux/type/object.lux @@ -9,12 +9,12 @@ [ident #+ "Ident/" Eq<Ident>] (coll [list "L/" Functor<List> Fold<List> Monoid<List>] [set #+ Set])) - [meta #+ Monad<Meta> "Meta/" Monad<Meta>] - (meta [code] - ["s" syntax #+ syntax:] - (syntax ["cs" common] - (common ["csr" reader] - ["csw" writer]))) + [macro #+ Monad<Meta> "Macro/" Monad<Meta>] + (macro [code] + ["s" syntax #+ syntax:] + (syntax ["cs" common] + (common ["csr" reader] + ["csw" writer]))) (lang [type]))) ## [Common] @@ -143,10 +143,10 @@ [(def: (<name> name) (-> Ident (Meta [Ident (List Ident)])) (do Monad<Meta> - [name (meta;normalize name) - [_ annotations _] (meta;find-def name)] - (case [(meta;get-tag-ann (ident-for <name-tag>) annotations) - (meta;get-tag-ann (ident-for <parent-tag>) annotations)] + [name (macro;normalize name) + [_ annotations _] (macro;find-def name)] + (case [(macro;get-tag-ann (ident-for <name-tag>) annotations) + (macro;get-tag-ann (ident-for <parent-tag>) annotations)] [(#;Some real-name) (#;Some parent)] (if (Ident/= no-parent parent) (wrap [real-name (list)]) @@ -155,7 +155,7 @@ (wrap [real-name (#;Cons parent ancestors)]))) _ - (meta;fail (format "Wrong format for " <desc> " lineage.")))))] + (macro;fail (format "Wrong format for " <desc> " lineage.")))))] [interfaceN #;;interface-name #;;interface-parent "interface"] [classN #;;class-name #;;class-parent "class"] @@ -171,10 +171,10 @@ (#;Function inputT outputT) (let [[stateT+ objectT] (type;flatten-function currentT)] - (Meta/wrap [depth stateT+])) + (Macro/wrap [depth stateT+])) _ - (meta;fail (format "Cannot extract inheritance from type: " (type;to-text newT)))))) + (macro;fail (format "Cannot extract inheritance from type: " (type;to-text newT)))))) (def: (specialize mappings typeC) (-> (List Code) Code Code) @@ -319,10 +319,10 @@ (~@ paramsC+))))) #;Void - (Meta/wrap (` (;|))) + (Macro/wrap (` (;|))) #;Unit - (Meta/wrap (` (;&))) + (Macro/wrap (` (;&))) (^template [<tag> <macro> <flatten>] (<tag> _) @@ -341,7 +341,7 @@ (^template [<tag>] (<tag> idx) - (Meta/wrap (` (<tag> (~ (code;nat idx)))))) + (Macro/wrap (` (<tag> (~ (code;nat idx)))))) ([#;Bound] [#;Var] [#;Ex]) @@ -354,10 +354,10 @@ (wrap (` ((~ funcC) (~@ argsC+))))) (#;Named name unnamedT) - (Meta/wrap (code;symbol name)) + (Macro/wrap (code;symbol name)) _ - (meta;fail (format "Cannot convert type to code: " (type;to-text type))))) + (macro;fail (format "Cannot convert type to code: " (type;to-text type))))) (syntax: #export (interface: [export csr;export] [(^@ decl [interface parameters]) declarationS] @@ -365,9 +365,9 @@ [alias aliasS] [annotations (p;default cs;empty-annotations csr;annotations)] [methods (p;many (method (var-set parameters)))]) - (meta;with-gensyms [g!self-class g!child g!ext] + (macro;with-gensyms [g!self-class g!child g!ext] (do @ - [module meta;current-module-name + [module macro;current-module-name [parent ancestors mappings] (: (Meta [Ident (List Ident) (List Code)]) (case ?extends #;None @@ -433,9 +433,9 @@ [super (p;maybe inheritance)] state-type [impls (p;many s;any)]) - (meta;with-gensyms [g!init g!extension] + (macro;with-gensyms [g!init g!extension] (do @ - [module meta;current-module-name + [module macro;current-module-name [interface _] (interfaceN interface) [parent ancestors parent-mappings] (: (Meta [Ident (List Ident) (List Code)]) (case super @@ -450,7 +450,7 @@ (if (no-parent? parent) (wrap (list)) (do @ - [newT (meta;find-def-type (product;both id newN parent)) + [newT (macro;find-def-type (product;both id newN parent)) [depth rawT+] (extract newT) codeT+ (M;map @ type-to-code rawT+)] (wrap (L/map (specialize parent-mappings) codeT+))))) @@ -466,7 +466,7 @@ g!parent-structs (if (no-parent? parent) (list) (L/map (|>. (product;both id structN) code;symbol) (list& parent ancestors)))] - g!parent-inits (M;map @ (function [_] (meta;gensym "parent-init")) + g!parent-inits (M;map @ (function [_] (macro;gensym "parent-init")) g!parent-structs) #let [g!full-init (L/fold (function [[parent-struct parent-state] child] (` [(~ parent-struct) (~ parent-state) (~ child)])) diff --git a/stdlib/source/lux/type/opaque.lux b/stdlib/source/lux/type/opaque.lux index acd73d6a4..3b50fcbc2 100644 --- a/stdlib/source/lux/type/opaque.lux +++ b/stdlib/source/lux/type/opaque.lux @@ -6,12 +6,12 @@ (data [text "text/" Eq<Text> Monoid<Text>] ["E" error] (coll [list "list/" Functor<List> Monoid<List>])) - [meta] - (meta [code] - ["s" syntax #+ syntax:] - (syntax ["cs" common] - (common ["csr" reader] - ["csw" writer]))))) + [macro] + (macro [code] + ["s" syntax #+ syntax:] + (syntax ["cs" common] + (common ["csr" reader] + ["csw" writer]))))) (def: (get k plist) (All [a] @@ -60,8 +60,8 @@ (def: (install-casts' this-module-name name type-vars) (-> Text Text (List Text) (Meta Unit)) - (do meta;Monad<Meta> - [this-module (meta;find-module this-module-name) + (do macro;Monad<Meta> + [this-module (macro;find-module this-module-name) #let [type-varsC (list/map code;local-symbol type-vars) opaque-declaration (` ((~ (code;local-symbol name)) (~@ type-varsC))) representation-declaration (` ((~ (code;local-symbol (representation-name name))) (~@ type-varsC))) @@ -77,7 +77,7 @@ (~ value))))) _ - (meta;fail ($_ text/compose "Wrong syntax for " down-cast))))]))) + (macro;fail ($_ text/compose "Wrong syntax for " down-cast))))]))) (update@ #;defs (put up-cast (: Def [Macro macro-anns (function [tokens] @@ -89,15 +89,15 @@ (~ value))))) _ - (meta;fail ($_ text/compose "Wrong syntax for " up-cast))))]))))]] + (macro;fail ($_ text/compose "Wrong syntax for " up-cast))))]))))]] (function [compiler] (#E;Success [(update@ #;modules (put this-module-name this-module) compiler) []])))) (def: (un-install-casts' this-module-name) (-> Text (Meta Unit)) - (do meta;Monad<Meta> - [this-module (meta;find-module this-module-name) + (do macro;Monad<Meta> + [this-module (macro;find-module this-module-name) #let [this-module (|> this-module (update@ #;defs (remove down-cast)) (update@ #;defs (remove up-cast)))]] @@ -108,9 +108,9 @@ (syntax: #hidden (install-casts [name s;local-symbol] [type-vars (s;tuple (p;some s;local-symbol))]) (do @ - [this-module-name meta;current-module-name - ?down-cast (meta;find-macro [this-module-name down-cast]) - ?up-cast (meta;find-macro [this-module-name up-cast])] + [this-module-name macro;current-module-name + ?down-cast (macro;find-macro [this-module-name down-cast]) + ?up-cast (macro;find-macro [this-module-name up-cast])] (case [?down-cast ?up-cast] [#;None #;None] (do @ @@ -118,16 +118,16 @@ (wrap (list))) _ - (meta;fail ($_ text/compose - "Cannot temporarily define casting functions (" - down-cast " & " up-cast - ") because definitions like that already exist."))))) + (macro;fail ($_ text/compose + "Cannot temporarily define casting functions (" + down-cast " & " up-cast + ") because definitions like that already exist."))))) (syntax: #hidden (un-install-casts) - (do meta;Monad<Meta> - [this-module-name meta;current-module-name - ?down-cast (meta;find-macro [this-module-name down-cast]) - ?up-cast (meta;find-macro [this-module-name up-cast])] + (do macro;Monad<Meta> + [this-module-name macro;current-module-name + ?down-cast (macro;find-macro [this-module-name down-cast]) + ?up-cast (macro;find-macro [this-module-name up-cast])] (case [?down-cast ?up-cast] [(#;Some _) (#;Some _)] (do @ @@ -135,10 +135,10 @@ (wrap (list))) _ - (meta;fail ($_ text/compose - "Cannot un-define casting functions (" - down-cast " & " up-cast - ") because they do not exist."))))) + (macro;fail ($_ text/compose + "Cannot un-define casting functions (" + down-cast " & " up-cast + ") because they do not exist."))))) (def: declaration (s;Syntax [Text (List Text)]) diff --git a/stdlib/source/lux/type/unit.lux b/stdlib/source/lux/type/unit.lux index de00fb82d..ef8f5410a 100644 --- a/stdlib/source/lux/type/unit.lux +++ b/stdlib/source/lux/type/unit.lux @@ -7,12 +7,12 @@ [enum #+ Enum]) (data text/format (number ["r" ratio])) - [meta] - (meta [code] - ["s" syntax #+ syntax:] - (syntax ["cs" common] - (common ["csr" reader] - ["csw" writer]))))) + [macro] + (macro [code] + ["s" syntax #+ syntax:] + (syntax ["cs" common] + (common ["csr" reader] + ["csw" writer]))))) (type: #export (Qty unit) [Int unit]) diff --git a/stdlib/test/test/lux.lux b/stdlib/test/test/lux.lux index 4c0d1513f..22190bd93 100644 --- a/stdlib/test/test/lux.lux +++ b/stdlib/test/test/lux.lux @@ -8,8 +8,8 @@ (data [maybe] [text "text/" Eq<Text>] text/format) - [meta] - (meta ["s" syntax #+ syntax:]))) + [macro] + (macro ["s" syntax #+ syntax:]))) (context: "Value identity." (<| (times +100) diff --git a/stdlib/test/test/lux/control/parser.lux b/stdlib/test/test/lux/control/parser.lux index 3a2483f6b..0f6b4a4b1 100644 --- a/stdlib/test/test/lux/control/parser.lux +++ b/stdlib/test/test/lux/control/parser.lux @@ -12,9 +12,9 @@ [ident] ["E" error]) ["r" math/random] - [meta] - (meta [code] - ["s" syntax #+ syntax:])) + [macro] + (macro [code] + ["s" syntax #+ syntax:])) lux/test) ## [Utils] diff --git a/stdlib/test/test/lux/data/format/json.lux b/stdlib/test/test/lux/data/format/json.lux index ab18e047f..167e80555 100644 --- a/stdlib/test/test/lux/data/format/json.lux +++ b/stdlib/test/test/lux/data/format/json.lux @@ -16,12 +16,12 @@ (coll [sequence #+ sequence] ["d" dict] [list])) - [meta #+ with-gensyms] - (meta [code] - [syntax #+ syntax:] - [poly #+ derived:] - [poly/eq] - [poly/json]) + [macro #+ with-gensyms] + (macro [code] + [syntax #+ syntax:] + [poly #+ derived:] + [poly/eq] + [poly/json]) (type [unit]) ["r" math/random] (time ["ti" instant] @@ -144,23 +144,23 @@ _ false))] (and ## (:: bool;Eq<Bool> = (get@ #bool recL) (get@ #bool recR)) - ## (f.= (get@ #frac recL) (get@ #frac recR)) - ## (:: text;Eq<Text> = (get@ #text recL) (get@ #text recR)) - ## (:: (maybe;Eq<Maybe> number;Eq<Frac>) = (get@ #maybe recL) (get@ #maybe recR)) - ## (:: (list;Eq<List> number;Eq<Frac>) = (get@ #list recL) (get@ #list recR)) - ## (variant/= (get@ #variant recL) (get@ #variant recR)) - ## (let [[tL0 tL1 tL2] (get@ #tuple recL) - ## [tR0 tR1 tR2] (get@ #tuple recR)] - ## (and (:: bool;Eq<Bool> = tL0 tR0) - ## (f.= tL1 tR1) - ## (:: text;Eq<Text> = tL2 tR2))) - ## (:: (d;Eq<Dict> number;Eq<Frac>) = (get@ #dict recL) (get@ #dict recR)) - ## (:: Eq<Recursive> = (get@ #recursive recL) (get@ #recursive recR)) - (:: ti;Eq<Instant> = (get@ #instant recL) (get@ #instant recR)) - (:: tdu;Eq<Duration> = (get@ #duration recL) (get@ #duration recR)) - (:: tda;Eq<Date> = (get@ #date recL) (get@ #date recR)) - (:: unit;Eq<Unit> = (get@ #grams recL) (get@ #grams recR)) - )))) + ## (f.= (get@ #frac recL) (get@ #frac recR)) + ## (:: text;Eq<Text> = (get@ #text recL) (get@ #text recR)) + ## (:: (maybe;Eq<Maybe> number;Eq<Frac>) = (get@ #maybe recL) (get@ #maybe recR)) + ## (:: (list;Eq<List> number;Eq<Frac>) = (get@ #list recL) (get@ #list recR)) + ## (variant/= (get@ #variant recL) (get@ #variant recR)) + ## (let [[tL0 tL1 tL2] (get@ #tuple recL) + ## [tR0 tR1 tR2] (get@ #tuple recR)] + ## (and (:: bool;Eq<Bool> = tL0 tR0) + ## (f.= tL1 tR1) + ## (:: text;Eq<Text> = tL2 tR2))) + ## (:: (d;Eq<Dict> number;Eq<Frac>) = (get@ #dict recL) (get@ #dict recR)) + ## (:: Eq<Recursive> = (get@ #recursive recL) (get@ #recursive recR)) + (:: ti;Eq<Instant> = (get@ #instant recL) (get@ #instant recR)) + (:: tdu;Eq<Duration> = (get@ #duration recL) (get@ #duration recR)) + (:: tda;Eq<Date> = (get@ #date recL) (get@ #date recR)) + (:: unit;Eq<Unit> = (get@ #grams recL) (get@ #grams recR)) + )))) (context: "Polytypism" (<| (times +100) diff --git a/stdlib/test/test/lux/data/text/regex.lux b/stdlib/test/test/lux/data/text/regex.lux index ee34db931..34d752d5a 100644 --- a/stdlib/test/test/lux/data/text/regex.lux +++ b/stdlib/test/test/lux/data/text/regex.lux @@ -9,9 +9,9 @@ text/format (text [lexer] ["&" regex])) - [meta] - (meta [code] - ["s" syntax #+ syntax:]) + [macro] + (macro [code] + ["s" syntax #+ syntax:]) ["r" math/random]) lux/test) diff --git a/stdlib/test/test/lux/lang/syntax.lux b/stdlib/test/test/lux/lang/syntax.lux index 4db181cae..154e18a91 100644 --- a/stdlib/test/test/lux/lang/syntax.lux +++ b/stdlib/test/test/lux/lang/syntax.lux @@ -9,7 +9,7 @@ ["l" lexer]) (coll [list])) ["r" math/random "r/" Monad<Random>] - (meta [code]) + (macro [code]) (lang ["&" syntax]) test)) diff --git a/stdlib/test/test/lux/meta/code.lux b/stdlib/test/test/lux/macro/code.lux index 7c3706f13..64bdf5f1c 100644 --- a/stdlib/test/test/lux/meta/code.lux +++ b/stdlib/test/test/lux/macro/code.lux @@ -6,7 +6,7 @@ text/format [number]) ["r" math/random] - (meta ["&" code])) + (macro ["&" code])) lux/test) (context: "Code" diff --git a/stdlib/test/test/lux/meta/poly/eq.lux b/stdlib/test/test/lux/macro/poly/eq.lux index c0644a7fa..e1d7604e7 100644 --- a/stdlib/test/test/lux/meta/poly/eq.lux +++ b/stdlib/test/test/lux/macro/poly/eq.lux @@ -10,9 +10,9 @@ [maybe] (coll [list])) ["r" math/random] - [meta] - (meta [poly #+ derived:] - ["&" poly/eq])) + [macro] + (macro [poly #+ derived:] + ["&" poly/eq])) lux/test) ## [Utils] diff --git a/stdlib/test/test/lux/meta/poly/functor.lux b/stdlib/test/test/lux/macro/poly/functor.lux index 8ece07447..45e54bae7 100644 --- a/stdlib/test/test/lux/meta/poly/functor.lux +++ b/stdlib/test/test/lux/macro/poly/functor.lux @@ -11,9 +11,9 @@ [text] [identity]) ["r" math/random] - [meta] - (meta [poly #+ derived:] - ["&" poly/functor])) + [macro] + (macro [poly #+ derived:] + ["&" poly/functor])) lux/test) ## [Utils] diff --git a/stdlib/test/test/lux/meta/syntax.lux b/stdlib/test/test/lux/macro/syntax.lux index 511c56e68..b159bf999 100644 --- a/stdlib/test/test/lux/meta/syntax.lux +++ b/stdlib/test/test/lux/macro/syntax.lux @@ -11,9 +11,9 @@ [ident] ["E" error]) ["r" math/random] - [meta] - (meta [code] - ["s" syntax #+ syntax: Syntax])) + [macro] + (macro [code] + ["s" syntax #+ syntax: Syntax])) lux/test) ## [Utils] diff --git a/stdlib/test/tests.lux b/stdlib/test/tests.lux index 34f6ef8b0..3f02bf694 100644 --- a/stdlib/test/tests.lux +++ b/stdlib/test/tests.lux @@ -62,10 +62,10 @@ (math ["_;" random] (logic ["_;" continuous] ["_;" fuzzy])) - (meta ["_;" code] - ["_;" syntax] - (poly ["poly_;" eq] - ["poly_;" functor])) + (macro ["_;" code] + ["_;" syntax] + (poly ["poly_;" eq] + ["poly_;" functor])) (type ["_;" implicit] ["_;" object]) (lang ["lang_;" syntax] @@ -88,7 +88,7 @@ [css]) (coll (tree ["tree_;" parser]))) (math [random]) - [meta] + [macro] (type [unit]) [world/env]) ) |