aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/lux/control
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--stdlib/source/lux/control/concatenative.lux25
-rw-r--r--stdlib/source/lux/control/concurrency/actor.lux18
-rw-r--r--stdlib/source/lux/control/concurrency/semaphore.lux3
-rw-r--r--stdlib/source/lux/control/continuation.lux3
-rw-r--r--stdlib/source/lux/control/exception.lux9
-rw-r--r--stdlib/source/lux/control/function/contract.lux3
-rw-r--r--stdlib/source/lux/control/io.lux3
-rw-r--r--stdlib/source/lux/control/parser/cli.lux3
-rw-r--r--stdlib/source/lux/control/pipe.lux3
-rw-r--r--stdlib/source/lux/control/remember.lux5
-rw-r--r--stdlib/source/lux/control/security/capability.lux9
11 files changed, 46 insertions, 38 deletions
diff --git a/stdlib/source/lux/control/concatenative.lux b/stdlib/source/lux/control/concatenative.lux
index 1ba47f1af..5f2b553d3 100644
--- a/stdlib/source/lux/control/concatenative.lux
+++ b/stdlib/source/lux/control/concatenative.lux
@@ -13,7 +13,8 @@
["i" int]
["r" rev]
["f" frac]]]
- ["." macro (#+ with-gensyms)
+ ["." meta (#+ with-gensyms)]
+ [macro
["." code]
[syntax (#+ syntax:)
["cs" common
@@ -56,15 +57,15 @@
(def: (singleton expander)
(-> (Meta (List Code)) (Meta Code))
- (monad.do macro.monad
+ (monad.do meta.monad
[expansion expander]
(case expansion
(#.Cons singleton #.Nil)
(wrap singleton)
_
- (macro.fail (format "Cannot expand to more than a single AST/Code node:" text.new-line
- (|> expansion (list@map %.code) (text.join-with " ")))))))
+ (meta.fail (format "Cannot expand to more than a single AST/Code node:" text.new-line
+ (|> expansion (list@map %.code) (text.join-with " ")))))))
(syntax: #export (=> {aliases aliases^}
{inputs stack^}
@@ -77,17 +78,17 @@
(case [(|> inputs (get@ #bottom) (maybe@map (|>> code.nat (~) #.Parameter (`))))
(|> outputs (get@ #bottom) (maybe@map (|>> code.nat (~) #.Parameter (`))))]
[(#.Some bottomI) (#.Some bottomO)]
- (monad.do macro.monad
- [inputC (singleton (macro.expand-all (stack-fold (get@ #top inputs) bottomI)))
- outputC (singleton (macro.expand-all (stack-fold (get@ #top outputs) bottomO)))]
+ (monad.do meta.monad
+ [inputC (singleton (meta.expand-all (stack-fold (get@ #top inputs) bottomI)))
+ outputC (singleton (meta.expand-all (stack-fold (get@ #top outputs) bottomO)))]
(wrap (list (` (-> (~ (de-alias inputC))
(~ (de-alias outputC)))))))
[?bottomI ?bottomO]
(with-gensyms [g!stack]
- (monad.do macro.monad
- [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))))]
+ (monad.do meta.monad
+ [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))))]
(wrap (list (` (All [(~ g!stack)]
(-> (~ (de-alias inputC))
(~ (de-alias outputC))))))))))))
@@ -115,8 +116,8 @@
(syntax: #export (apply {arity (|> <c>.nat (<>.filter (n.> 0)))})
(with-gensyms [g! g!func g!stack g!output]
- (monad.do {@ macro.monad}
- [g!inputs (|> (macro.gensym "input") (list.repeat arity) (monad.seq @))]
+ (monad.do {@ meta.monad}
+ [g!inputs (|> (meta.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/concurrency/actor.lux b/stdlib/source/lux/control/concurrency/actor.lux
index fb782b169..851a7c790 100644
--- a/stdlib/source/lux/control/concurrency/actor.lux
+++ b/stdlib/source/lux/control/concurrency/actor.lux
@@ -18,13 +18,13 @@
["%" format (#+ format)]]
[collection
["." list ("#@." monoid monad fold)]]]
- ["." macro (#+ with-gensyms monad)
+ [macro
["." code]
[syntax (#+ syntax:)
["cs" common
["csr" reader]
["csw" writer]]]]
- [meta
+ ["." meta (#+ with-gensyms monad)
["." annotation]]
[type
abstract]]
@@ -191,8 +191,8 @@
(def: (<resolve> name)
(-> Name (Meta Name))
- (do macro.monad
- [constant (macro.find-def name)]
+ (do meta.monad
+ [constant (meta.find-def name)]
(case constant
(#.Left de-aliased)
(<resolve> de-aliased)
@@ -203,7 +203,7 @@
(wrap actor-name)
_
- (macro.fail (format "Definition is not " <desc> "."))))))]
+ (meta.fail (format "Definition is not " <desc> "."))))))]
[with-actor resolve-actor #..actor "an actor"]
[with-message resolve-message #..message "a message"]
@@ -268,8 +268,8 @@
#let [_ (log! "AFTER")]]
(wrap output)))))}
(with-gensyms [g!_ g!init]
- (do macro.monad
- [module macro.current-module-name
+ (do meta.monad
+ [module meta.current-module-name
#let [g!type (code.local-identifier (state-name _name))
g!behavior (code.local-identifier (behavior-name _name))
g!actor (code.local-identifier _name)
@@ -358,8 +358,8 @@
(let [state' (#.Cons value state)]
(promise.resolved (#try.Success [state' state'])))))}
(with-gensyms [g!_ g!return g!error g!task g!sent? g!resolve]
- (do macro.monad
- [current-module macro.current-module-name
+ (do meta.monad
+ [current-module meta.current-module-name
actor-name (resolve-actor actor-name)
#let [message-name [current-module (get@ #name signature)]
g!type (code.identifier (product.both function.identity state-name actor-name))
diff --git a/stdlib/source/lux/control/concurrency/semaphore.lux b/stdlib/source/lux/control/concurrency/semaphore.lux
index 3edcbd332..83e5ad005 100644
--- a/stdlib/source/lux/control/concurrency/semaphore.lux
+++ b/stdlib/source/lux/control/concurrency/semaphore.lux
@@ -16,8 +16,7 @@
["." queue (#+ Queue)]]]
[type
abstract
- ["." refinement]]
- ["." macro]]
+ ["." refinement]]]
[//
["." atom (#+ Atom)]
["." promise (#+ Promise Resolver)]])
diff --git a/stdlib/source/lux/control/continuation.lux b/stdlib/source/lux/control/continuation.lux
index d53f103cf..ca5a4d183 100644
--- a/stdlib/source/lux/control/continuation.lux
+++ b/stdlib/source/lux/control/continuation.lux
@@ -8,7 +8,8 @@
["." function]
[parser
["s" code]]]
- [macro (#+ with-gensyms)
+ [meta (#+ with-gensyms)]
+ [macro
["." code]
[syntax (#+ syntax:)]]])
diff --git a/stdlib/source/lux/control/exception.lux b/stdlib/source/lux/control/exception.lux
index f170baffe..5d0a04ea9 100644
--- a/stdlib/source/lux/control/exception.lux
+++ b/stdlib/source/lux/control/exception.lux
@@ -13,7 +13,8 @@
["n" nat ("#@." decimal)]]
[collection
["." list ("#@." functor fold)]]]
- ["." macro
+ ["." meta]
+ [macro
["." code]
[syntax (#+ syntax:)
["sc" common
@@ -96,9 +97,9 @@
"Complex case:"
(exception: #export [optional type variables] (some-exception {optional Text} {arguments Int})
optional-body))}
- (macro.with-gensyms [g!descriptor]
- (do macro.monad
- [current-module macro.current-module-name
+ (meta.with-gensyms [g!descriptor]
+ (do meta.monad
+ [current-module meta.current-module-name
#let [descriptor ($_ text@compose "{" current-module "." name "}" text.new-line)
g!self (code.local-identifier name)]]
(wrap (list (` (def: (~+ (scw.export export))
diff --git a/stdlib/source/lux/control/function/contract.lux b/stdlib/source/lux/control/function/contract.lux
index 1c9236877..9333846fe 100644
--- a/stdlib/source/lux/control/function/contract.lux
+++ b/stdlib/source/lux/control/function/contract.lux
@@ -7,7 +7,8 @@
["i" int]]
[text
["%" format (#+ format)]]]
- [macro (#+ with-gensyms)
+ [meta (#+ with-gensyms)]
+ [macro
[syntax (#+ syntax:)]
["." code]]])
diff --git a/stdlib/source/lux/control/io.lux b/stdlib/source/lux/control/io.lux
index 24b1c2e61..442cf0a1c 100644
--- a/stdlib/source/lux/control/io.lux
+++ b/stdlib/source/lux/control/io.lux
@@ -9,7 +9,8 @@
["s" code]]]
[type
abstract]
- ["." macro (#+ with-gensyms)
+ [meta (#+ with-gensyms)]
+ [macro
[syntax (#+ syntax:)]
["." template]]])
diff --git a/stdlib/source/lux/control/parser/cli.lux b/stdlib/source/lux/control/parser/cli.lux
index e4330b129..08e20ca26 100644
--- a/stdlib/source/lux/control/parser/cli.lux
+++ b/stdlib/source/lux/control/parser/cli.lux
@@ -10,7 +10,8 @@
["." list ("#@." monoid monad)]]
["." text ("#@." equivalence)
["%" format (#+ format)]]]
- [macro (#+ with-gensyms)
+ [meta (#+ with-gensyms)]
+ [macro
["." code]
[syntax (#+ syntax:)]]]
["." //
diff --git a/stdlib/source/lux/control/pipe.lux b/stdlib/source/lux/control/pipe.lux
index 23440ca83..fb9a8c6f7 100644
--- a/stdlib/source/lux/control/pipe.lux
+++ b/stdlib/source/lux/control/pipe.lux
@@ -12,7 +12,8 @@
["i" int]]
[collection
["." list ("#@." fold monad)]]]
- [macro (#+ with-gensyms)
+ [meta (#+ with-gensyms)]
+ [macro
[syntax (#+ syntax:)]
["." code]]])
diff --git a/stdlib/source/lux/control/remember.lux b/stdlib/source/lux/control/remember.lux
index 24bdacb03..c2ceb36ee 100644
--- a/stdlib/source/lux/control/remember.lux
+++ b/stdlib/source/lux/control/remember.lux
@@ -14,7 +14,8 @@
[time
["." instant]
["." date (#+ Date) ("#@." order)]]
- ["." macro
+ ["." meta]
+ [macro
["." code]
[syntax (#+ syntax:)]]])
@@ -54,7 +55,7 @@
#.None
(list)))
- (macro.fail (exception.construct ..must-remember [deadline today message focus])))))
+ (meta.fail (exception.construct ..must-remember [deadline today message focus])))))
(template [<name> <message>]
[(syntax: #export (<name> {deadline ..deadline} {message <c>.text} {focus (<>.maybe <c>.any)})
diff --git a/stdlib/source/lux/control/security/capability.lux b/stdlib/source/lux/control/security/capability.lux
index 54ea35281..485c1091c 100644
--- a/stdlib/source/lux/control/security/capability.lux
+++ b/stdlib/source/lux/control/security/capability.lux
@@ -15,7 +15,8 @@
["." list ("#;." functor)]]]
[type
abstract]
- ["." macro
+ ["." meta]
+ [macro
["." code]
[syntax (#+ syntax:)
[common
@@ -45,11 +46,11 @@
{declaration reader.declaration}
{annotations (<>.maybe reader.annotations)}
{[forge input output] (<c>.form ($_ <>.and <c>.local-identifier <c>.any <c>.any))})
- (do {@ macro.monad}
- [this-module macro.current-module-name
+ (do {@ meta.monad}
+ [this-module meta.current-module-name
#let [[name vars] declaration]
g!brand (:: @ map (|>> %.code code.text)
- (macro.gensym (format (%.name [this-module name]))))
+ (meta.gensym (format (%.name [this-module name]))))
#let [capability (` (..Capability (.primitive (~ g!brand)) (~ input) (~ output)))]]
(wrap (list (` (type: (~+ (writer.export export))
(~ (writer.declaration declaration))