aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/spec
diff options
context:
space:
mode:
authorEduardo Julian2019-12-28 17:00:04 -0400
committerEduardo Julian2019-12-28 17:00:04 -0400
commitecb53b05a226d8d3d8e612f949cb3ad6ac0600ce (patch)
treeb45698c29c29ac9171b05b62cef0fc31df5af0c5 /stdlib/source/spec
parent581ccee156457b0f84696def59fc324c1cbbdaba (diff)
Implemented an alternative method for extensible JVM bytecode generation.
Diffstat (limited to '')
-rw-r--r--stdlib/source/spec/compositor/common.lux20
1 files changed, 12 insertions, 8 deletions
diff --git a/stdlib/source/spec/compositor/common.lux b/stdlib/source/spec/compositor/common.lux
index 05fbe7fc2..df351c008 100644
--- a/stdlib/source/spec/compositor/common.lux
+++ b/stdlib/source/spec/compositor/common.lux
@@ -8,12 +8,13 @@
[tool
[compiler
["." reference]
+ ["." analysis]
["." synthesis (#+ Synthesis)]
["." directive]
["." phase
["." macro (#+ Expander)]
- ["." generation (#+ Operation Bundle)]
- [extension
+ ["." generation (#+ Operation)]
+ [extension (#+ Extender)
["." bundle]]]
[default
["." platform (#+ Platform)]]]]])
@@ -53,17 +54,20 @@
(phase (synthesis.constant lux-name))))]
(:: host evaluate! "definer" definitionG))))
-(def: #export (executors platform bundle expander program)
+(def: #export (executors target expander platform
+ analysis-bundle generation-bundle directive-bundle
+ program extender)
(All [anchor expression directive]
- (-> (Platform IO anchor expression directive)
- (Bundle anchor expression directive)
- Expander
- (-> expression directive)
+ (-> Text Expander (Platform IO anchor expression directive)
+ analysis.Bundle
+ (generation.Bundle anchor expression directive)
+ (directive.Bundle anchor expression directive)
+ (-> expression directive) Extender
(IO (Try [(directive.State+ anchor expression directive)
Runner
Definer]))))
(do io.monad
- [?state (platform.initialize expander platform bundle program)]
+ [?state (platform.initialize target expander analysis-bundle platform generation-bundle directive-bundle program extender)]
(wrap (do try.monad
[[directive-bundle directive-state] ?state
#let [generation-state (get@ [#directive.generation