diff options
author | Eduardo Julian | 2019-09-18 19:20:50 -0400 |
---|---|---|
committer | Eduardo Julian | 2019-09-18 19:20:50 -0400 |
commit | 5d9fe393959c4c9c9bcbd04cef3115f7f834612f (patch) | |
tree | a683700f7221a5410a65502d73d3d46016951b3c /stdlib/source/lux/tool | |
parent | f0a95ee657fef968df1f5f88dc741256e1153e63 (diff) |
Added packaging machinery for the JVM compiler.
Diffstat (limited to '')
-rw-r--r-- | stdlib/source/lux/tool/compiler/default/platform.lux | 24 | ||||
-rw-r--r-- | stdlib/source/lux/tool/compiler/meta/packager/js.lux (renamed from stdlib/source/lux/tool/compiler/meta/packager/script.lux) | 19 |
2 files changed, 28 insertions, 15 deletions
diff --git a/stdlib/source/lux/tool/compiler/default/platform.lux b/stdlib/source/lux/tool/compiler/default/platform.lux index 4ed6d6d42..04937092a 100644 --- a/stdlib/source/lux/tool/compiler/default/platform.lux +++ b/stdlib/source/lux/tool/compiler/default/platform.lux @@ -24,7 +24,7 @@ [macro (#+ Expander)] ## TODO: Get rid of this import ASAP [extension (#+)] - ["." generation] + ["." generation (#+ Buffer)] [analysis ["." module]]] [meta @@ -67,8 +67,26 @@ (///directive.Bundle anchor expression directive) (-> expression directive) (! (Try <State+>)))) - (|> platform - (get@ #runtime) + (|> (do ///phase.monad + [_ (:share [anchor expression directive] + {(///directive.Bundle anchor expression directive) + host-directive-bundle} + {(generation.Operation anchor expression directive Any) + (generation.set-buffer (:share [anchor expression directive] + {(///directive.Bundle anchor expression directive) + host-directive-bundle} + {(Buffer directive) + generation.empty-buffer}))}) + _ (:share [anchor expression directive] + {(///directive.Bundle anchor expression directive) + host-directive-bundle} + {(generation.Operation anchor expression directive Any) + (get@ #runtime platform)})] + (:share [anchor expression directive] + {(///directive.Bundle anchor expression directive) + host-directive-bundle} + {(generation.Operation anchor expression directive Any) + (generation.save-buffer! "")})) ///directive.lift-generation (///phase.run' (//init.state target expander diff --git a/stdlib/source/lux/tool/compiler/meta/packager/script.lux b/stdlib/source/lux/tool/compiler/meta/packager/js.lux index 8e7988f37..e4c52af5a 100644 --- a/stdlib/source/lux/tool/compiler/meta/packager/script.lux +++ b/stdlib/source/lux/tool/compiler/meta/packager/js.lux @@ -1,7 +1,8 @@ (.module: [lux #* [control - [pipe (#+ case>)]] + [pipe (#+ case>)] + ["." function]] [data [binary (#+ Binary)] ["." product] @@ -18,21 +19,15 @@ [generation (#+ Output)]]]]]) (def: #export (package outputs) - (All [statements] - (-> (Output statements) Binary)) + (-> (Output _.Statement) Binary) (|> outputs row.to-list - (list@map (function (_ [module buffer]) - (|> buffer - row.to-list - (:coerce (List [Name _.Statement])) - (list@map product.right)))) + (list@map (|>> product.right + row.to-list + (list@map product.right))) list@join (case> (#.Cons head tail) - (|> (list@fold (function (_ post! pre!) - (_.then pre! post!)) - head - tail) + (|> (list@fold (function.flip _.then) head tail) (: _.Statement) _.code encoding.to-utf8) |