aboutsummaryrefslogtreecommitdiff
path: root/source/lux.lux
diff options
context:
space:
mode:
authorEduardo Julian2015-04-23 19:05:59 -0400
committerEduardo Julian2015-04-23 19:05:59 -0400
commite732d425320e635277d1e0021856924acc7c5b0c (patch)
tree21dba7ec58250c85a2a00485aae77e3246418e03 /source/lux.lux
parent9a79e19728310a87289b66732ebab5dc05ea4eb1 (diff)
- Fused lux;local-envs & lux;global-envs as lux;envs.
Diffstat (limited to 'source/lux.lux')
-rw-r--r--source/lux.lux40
1 files changed, 22 insertions, 18 deletions
diff --git a/source/lux.lux b/source/lux.lux
index 8816589e7..a005da3da 100644
--- a/source/lux.lux
+++ b/source/lux.lux
@@ -136,28 +136,33 @@
Text])])))
(export' Reader)
+## (deftype HostState
+## (& #writer (^ org.objectweb.asm.ClassWriter)
+## #loader (^ java.net.URLClassLoader)
+## #eval-ctor Int))
+(def' HostState
+ (:' Type
+ (#RecordT (#Cons [["lux;writer" (#DataT "org.objectweb.asm.ClassWriter")]
+ (#Cons [["lux;loader" (#DataT "java.lang.ClassLoader")]
+ (#Cons [["lux;eval-ctor" Int]
+ #Nil])])]))))
+
## (deftype CompilerState
## (& #source (Maybe Reader)
## #modules (List Any)
## #module-aliases (List Any)
-## #global-env (Maybe (Env Text Any))
-## #local-envs (List (Env Text Any))
+## #envs (List (Env Text Any))
## #types (Bindings Int Type)
-## #writer (^ org.objectweb.asm.ClassWriter)
-## #loader (^ java.net.URLClassLoader)
-## #eval-ctor Int))
+## #host HostState))
(def' CompilerState
(:' Type
- (#RecordT (#Cons [["lux;source" (#AppT [Maybe Reader])]
- (#Cons [["lux;modules" (#AppT [List Any])]
- (#Cons [["lux;module-aliases" (#AppT [List Any])]
- (#Cons [["lux;global-env" (#AppT [Maybe (#AppT [(#AppT [Env Text]) Any])])]
- (#Cons [["lux;local-envs" (#AppT [List (#AppT [(#AppT [Env Text]) Any])])]
- (#Cons [["lux;types" (#AppT [(#AppT [Bindings Int]) Type])]
- (#Cons [["lux;writer" (#DataT "org.objectweb.asm.ClassWriter")]
- (#Cons [["lux;loader" (#DataT "java.lang.ClassLoader")]
- (#Cons [["lux;eval-ctor" Int]
- #Nil])])])])])])])])]))))
+ (#RecordT (#Cons [["lux;source" (#AppT [Maybe Reader])]
+ (#Cons [["lux;modules" (#AppT [List Any])]
+ (#Cons [["lux;module-aliases" (#AppT [List Any])]
+ (#Cons [["lux;envs" (#AppT [List (#AppT [(#AppT [Env Text]) Any])])]
+ (#Cons [["lux;types" (#AppT [(#AppT [Bindings Int]) Type])]
+ (#Cons [["lux;host" HostState]
+ #Nil])])])])])]))))
(export' CompilerState)
## (deftype (Syntax' w)
@@ -819,8 +824,7 @@
## (& #source (Maybe Reader)
## #modules (List Any)
## #module-aliases (List Any)
-## #global-env (Maybe (Env Text Any))
-## #local-envs (List (Env Text Any))
+## #envs (List (Env Text Any))
## #types (Bindings Int Type)
## #writer (^ org.objectweb.asm.ClassWriter)
## #loader (^ java.net.URLClassLoader)
@@ -839,7 +843,7 @@
## (let [[module name] ident]
## (case' state
## {#source source #modules modules #module-aliases module-aliases
-## #global-env global-env #local-envs local-envs #types types
+## #envs envs #types types
## #writer writer #loader loader #eval-ctor eval-ctor}
## (when-let [bindings (get module modules)
## bound (get name bindings)]