aboutsummaryrefslogtreecommitdiff
path: root/new-luxc/source/luxc/lang/translation/jvm/loop.lux
diff options
context:
space:
mode:
authorEduardo Julian2020-03-18 21:38:34 -0400
committerEduardo Julian2020-03-18 21:38:34 -0400
commit30801bcf8fbb1be7ae8f193edfa71e6c4909a4c3 (patch)
treed6f4f9335664f4d25c6c037e848d0743d211ff74 /new-luxc/source/luxc/lang/translation/jvm/loop.lux
parent71c99d63a313d497c3881ab06752f05e3af33350 (diff)
No passing the archive as a parameter to all phases.
Diffstat (limited to '')
-rw-r--r--new-luxc/source/luxc/lang/translation/jvm/loop.lux16
1 files changed, 8 insertions, 8 deletions
diff --git a/new-luxc/source/luxc/lang/translation/jvm/loop.lux b/new-luxc/source/luxc/lang/translation/jvm/loop.lux
index a2c25e883..14b305843 100644
--- a/new-luxc/source/luxc/lang/translation/jvm/loop.lux
+++ b/new-luxc/source/luxc/lang/translation/jvm/loop.lux
@@ -20,7 +20,7 @@
[luxc
[lang
[host
- [jvm (#+ Inst Operation Phase)
+ [jvm (#+ Inst Operation Phase Generator)
["_" inst]]]]]
["." //])
@@ -33,8 +33,8 @@
_
false))
-(def: #export (recur translate argsS)
- (-> Phase (List Synthesis) (Operation Inst))
+(def: #export (recur translate archive argsS)
+ (Generator (List Synthesis))
(do phase.monad
[[@begin start] generation.anchor
#let [end (|> argsS list.size dec (n.+ start))
@@ -52,7 +52,7 @@
(: (Operation Inst)
(if (invariant? register argS)
(wrap function.identity)
- (translate argS))))
+ (translate archive argS))))
pairs)
#let [storesI+ (list/map (function (_ [register argS])
(: Inst
@@ -64,13 +64,13 @@
(_.fuse storesI+)
(_.GOTO @begin)))))
-(def: #export (scope translate [start initsS+ iterationS])
- (-> Phase [Nat (List Synthesis) Synthesis] (Operation Inst))
+(def: #export (scope translate archive [start initsS+ iterationS])
+ (Generator [Nat (List Synthesis) Synthesis])
(do phase.monad
[@begin _.make-label
- initsI+ (monad.map @ translate initsS+)
+ initsI+ (monad.map @ (translate archive) initsS+)
iterationI (generation.with-anchor [@begin start]
- (translate iterationS))
+ (translate archive iterationS))
#let [initializationI (|> (list.enumerate initsI+)
(list/map (function (_ [register initI])
(|>> initI