diff options
Diffstat (limited to 'lux-lua/source')
-rw-r--r-- | lux-lua/source/program.lux | 286 |
1 files changed, 143 insertions, 143 deletions
diff --git a/lux-lua/source/program.lux b/lux-lua/source/program.lux index 74def59a7..3bcf4ccf9 100644 --- a/lux-lua/source/program.lux +++ b/lux-lua/source/program.lux @@ -184,32 +184,32 @@ (def: (read_variant read host_object) (-> Translator net/sandius/rembulan/impl/DefaultTable (Try Any)) - (case [(net/sandius/rembulan/Table::get_key (:as java/lang/Object runtime.variant_tag_field) host_object) - (net/sandius/rembulan/Table::get_key (:as java/lang/Object runtime.variant_flag_field) host_object) - (net/sandius/rembulan/Table::get_key (:as java/lang/Object runtime.variant_value_field) host_object)] + (case [(net/sandius/rembulan/Table::get_key (as java/lang/Object runtime.variant_tag_field) host_object) + (net/sandius/rembulan/Table::get_key (as java/lang/Object runtime.variant_flag_field) host_object) + (net/sandius/rembulan/Table::get_key (as java/lang/Object runtime.variant_value_field) host_object)] (^.multi [{.#Some tag} ?flag {.#Some value}] [(read value) {try.#Success value}]) - {try.#Success [(: Any (|> tag - (:as Int) - ffi.as_long - java/lang/Long::intValue - (: java/lang/Integer))) - (: Any (case ?flag - {.#Some _} (: Any "") - {.#None} (:as Any (ffi.null)))) - (: Any value)]} + {try.#Success [(is Any (|> tag + (as Int) + ffi.as_long + java/lang/Long::intValue + (is java/lang/Integer))) + (is Any (case ?flag + {.#Some _} (is Any "") + {.#None} (as Any (ffi.null)))) + (is Any value)]} _ - (exception.except ..unknown_kind_of_object [(:as java/lang/Object host_object)]))) + (exception.except ..unknown_kind_of_object [(as java/lang/Object host_object)]))) (def: (read_tuple read host_object) (-> Translator net/sandius/rembulan/impl/DefaultTable (Try Any)) (let [init_num_keys (.nat (ffi.of_long (net/sandius/rembulan/Table::rawlen host_object)))] (loop [num_keys init_num_keys idx 0 - output (: (Array java/lang/Object) - (array.empty init_num_keys))] + output (is (Array java/lang/Object) + (array.empty init_num_keys))] (if (n.< num_keys idx) (case (net/sandius/rembulan/Table::get_idx (ffi.as_long (.int (++ idx))) host_object) {.#None} @@ -218,7 +218,7 @@ {.#Some member} (case (read member) {try.#Success parsed_member} - (again num_keys (++ idx) (array.write! idx (:as java/lang/Object parsed_member) output)) + (again num_keys (++ idx) (array.write! idx (as java/lang/Object parsed_member) output)) {try.#Failure error} {try.#Failure error})) @@ -262,7 +262,7 @@ (-> net/sandius/rembulan/runtime/ExecutionContext Any Any) (|> ec net/sandius/rembulan/runtime/ExecutionContext::getReturnBuffer - (net/sandius/rembulan/runtime/ReturnBuffer::setTo (:as java/lang/Object value)))) + (net/sandius/rembulan/runtime/ReturnBuffer::setTo (as java/lang/Object value)))) (def: (function/* arity) (-> Nat Code) @@ -301,8 +301,8 @@ (~~ (template [<arity>] [(pattern (list (~~ (static.literals function.identity (..input/* <arity>))))) - (in (to_host ((:as (~~ (static.literal function.identity (..function/* <arity>))) - lux_function) + (in (to_host ((as (~~ (static.literal function.identity (..function/* <arity>))) + lux_function) (~~ (static.literals function.identity (..input/* <arity>))))))] [1] @@ -313,21 +313,21 @@ )) (pattern (list& (~~ (static.literals function.identity (..input/* 5))) input/+)) - (again ((:as (~~ (static.literal function.identity (..function/* 5))) - lux_function) + (again ((as (~~ (static.literal function.identity (..function/* 5))) + lux_function) (~~ (static.literals function.identity (..input/* 5)))) input/+) ))))))) (def: (lua_function to_host lux_function) (-> (-> Any java/lang/Object) Any net/sandius/rembulan/runtime/LuaFunction) - (<| (:as net/sandius/rembulan/runtime/LuaFunction) + (<| (as net/sandius/rembulan/runtime/LuaFunction) (`` (`` (ffi.object [] net/sandius/rembulan/runtime/LuaFunction [LuxValue] [] ... Methods (LuxValue [] (getValue self []) java/lang/Object - (:as java/lang/Object lux_function)) + (as java/lang/Object lux_function)) (net/sandius/rembulan/runtime/LuaFunction [] (invoke self [% net/sandius/rembulan/runtime/ExecutionContext]) @@ -344,7 +344,7 @@ "throws" [net/sandius/rembulan/runtime/ResolvedControlThrowable] (<| (..return %) (apply/* to_host - (ffi.:as net/sandius/rembulan/runtime/LuaFunction self) + (ffi.as net/sandius/rembulan/runtime/LuaFunction self) (list (~~ (static.literals function.identity (..input/* <arity>)))) lux_function)))] @@ -362,7 +362,7 @@ "throws" [net/sandius/rembulan/runtime/ResolvedControlThrowable] (<| (..return %) (apply/* to_host - (ffi.:as net/sandius/rembulan/runtime/LuaFunction self) + (ffi.as net/sandius/rembulan/runtime/LuaFunction self) (array.list {.#None} input/*) lux_function))) ))))) @@ -372,13 +372,13 @@ (def: (lux_structure to_host value) (-> (-> Any java/lang/Object) (Array java/lang/Object) LuxValue) - (<| (ffi.:as LuxValue) + (<| (ffi.as LuxValue) (ffi.object [] net/sandius/rembulan/impl/DefaultTable [LuxValue] [] ... Methods (LuxValue [] (getValue self []) java/lang/Object - (:as java/lang/Object value)) + (as java/lang/Object value)) (net/sandius/rembulan/impl/DefaultTable [] (rawlen self []) long @@ -401,8 +401,8 @@ (case (array.read! 0 value) {.#Some it} (|> it - (:as java/lang/Integer) - (ffi.:as java/lang/Object)) + (as java/lang/Integer) + (ffi.as java/lang/Object)) {.#None} (undefined)) @@ -410,7 +410,7 @@ (pattern (static runtime.variant_flag_field)) (case (array.read! 1 value) {.#Some _} - (:as java/lang/Object "") + (as java/lang/Object "") {.#None} (ffi.null)) @@ -426,10 +426,10 @@ array.size .int ffi.as_long - (ffi.:as java/lang/Object)) + (ffi.as java/lang/Object)) _ - (panic! (exception.error ..unknown_kind_of_object [(:as java/lang/Object field)]))) + (panic! (exception.error ..unknown_kind_of_object [(as java/lang/Object field)]))) {.#None} (case (ffi.check java/lang/Long field) @@ -439,10 +439,10 @@ (to_host it) {.#None} - (: java/lang/Object (ffi.null))) + (is java/lang/Object (ffi.null))) {.#None} - (panic! (exception.error ..unknown_kind_of_object [(:as java/lang/Object field)]))))) + (panic! (exception.error ..unknown_kind_of_object [(as java/lang/Object field)]))))) ))) (exception: (cannot_apply_a_non_function [object java/lang/Object]) @@ -451,7 +451,7 @@ (def: ensure_function (-> Macro (Maybe net/sandius/rembulan/runtime/LuaFunction)) - (|>> (:as java/lang/Object) + (|>> (as java/lang/Object) (ffi.check net/sandius/rembulan/runtime/LuaFunction))) (type: Baggage @@ -461,19 +461,19 @@ (def: (call_macro to_host [state_context executor] inputs lux macro) (-> (-> Any java/lang/Object) Baggage (List Code) Lux net/sandius/rembulan/runtime/LuaFunction (Try Any)) (do try.monad - [.let [inputs (: (ffi.type [java/lang/Object]) - (|> (array.empty 2) - (array.write! 0 ... (:as java/lang/Object inputs) - ... (net/sandius/rembulan/impl/ImmutableTable$Builder::build (net/sandius/rembulan/impl/ImmutableTable$Builder::new)) - (:as java/lang/Object (lux_structure to_host (:as (Array java/lang/Object) inputs)))) - (array.write! 1 ... (:as java/lang/Object lux) - ... (net/sandius/rembulan/impl/ImmutableTable$Builder::build (net/sandius/rembulan/impl/ImmutableTable$Builder::new)) - (:as java/lang/Object (lux_structure to_host (:as (Array java/lang/Object) lux))))))] - output (net/sandius/rembulan/exec/DirectCallExecutor::call state_context (:as java/lang/Object macro) inputs executor)] + [.let [inputs (is (ffi.type [java/lang/Object]) + (|> (array.empty 2) + (array.write! 0 ... (as java/lang/Object inputs) + ... (net/sandius/rembulan/impl/ImmutableTable$Builder::build (net/sandius/rembulan/impl/ImmutableTable$Builder::new)) + (as java/lang/Object (lux_structure to_host (as (Array java/lang/Object) inputs)))) + (array.write! 1 ... (as java/lang/Object lux) + ... (net/sandius/rembulan/impl/ImmutableTable$Builder::build (net/sandius/rembulan/impl/ImmutableTable$Builder::new)) + (as java/lang/Object (lux_structure to_host (as (Array java/lang/Object) lux))))))] + output (net/sandius/rembulan/exec/DirectCallExecutor::call state_context (as java/lang/Object macro) inputs executor)] (|> output (array.read! 0) maybe.trusted - (:as java/lang/Object) + (as java/lang/Object) ..read))) (def: (expander to_host baggage macro inputs lux) @@ -483,21 +483,21 @@ (case (..call_macro to_host baggage inputs lux macro) {try.#Success output} (|> output - (:as (Try [Lux (List Code)])) + (as (Try [Lux (List Code)])) {try.#Success}) {try.#Failure error} {try.#Failure error}) {.#None} - (exception.except ..cannot_apply_a_non_function (:as java/lang/Object macro)))))] + (exception.except ..cannot_apply_a_non_function (as java/lang/Object macro)))))] (for @.old (as_is <jvm>) @.jvm (as_is <jvm>) @.lua (def: (expander macro inputs lux) Expander - {try.#Success ((:as Macro' macro) inputs lux)}))) + {try.#Success ((as Macro' macro) inputs lux)}))) (with_expansions [<jvm> (as_is (with_expansions [$var_args (_.var "...") $str_rel_to_abs (_.var "_utf8_str_rel_to_abs") @@ -697,127 +697,127 @@ loader (net/sandius/rembulan/compiler/CompilerChunkLoader::of (ffi.as_string "_lux_definition")) executor (net/sandius/rembulan/exec/DirectCallExecutor::newExecutor) scheduling_context (net/sandius/rembulan/exec/DirectCallExecutor::schedulingContextFactory executor) - run! (: (-> _.Statement (Try Any)) - (function (_ code) - (do try.monad - [lua_function (net/sandius/rembulan/load/ChunkLoader::loadTextChunk variable (ffi.as_string "lux compilation") (ffi.as_string (_.code code)) loader) - output (net/sandius/rembulan/exec/DirectCallExecutor::call state_context (:as java/lang/Object lua_function) (array.empty 0) - executor)] - (case (array.read! 0 output) - {.#None} - (in []) - - {.#Some value} - (read value))))) + run! (is (-> _.Statement (Try Any)) + (function (_ code) + (do try.monad + [lua_function (net/sandius/rembulan/load/ChunkLoader::loadTextChunk variable (ffi.as_string "lux compilation") (ffi.as_string (_.code code)) loader) + output (net/sandius/rembulan/exec/DirectCallExecutor::call state_context (as java/lang/Object lua_function) (array.empty 0) + executor)] + (case (array.read! 0 output) + {.#None} + (in []) + + {.#Some value} + (read value))))) _ (try.trusted (run! ..rembulan_prelude))] [[state_context executor] - (: (Host _.Expression _.Statement) - (implementation - (def: (evaluate context [_ code]) - (run! (_.return code))) - - (def: execute run!) - - (def: (define context custom [_ input]) - (let [global (maybe.else (reference.artifact context) - custom) - @global (_.var global) - definition (_.set (list @global) input)] - (do try.monad - [_ (run! definition) - value (run! (_.return @global))] - (in [global value definition])))) - - (def: (ingest context content) - (|> content - (# utf8.codec decoded) - try.trusted - (:as _.Statement))) - - (def: (re_learn context custom content) - (run! content)) - - (def: (re_load context custom content) - (do try.monad - [_ (run! content)] - (run! (_.return (_.var (reference.artifact context))))))))]))))] + (is (Host _.Expression _.Statement) + (implementation + (def: (evaluate context [_ code]) + (run! (_.return code))) + + (def: execute run!) + + (def: (define context custom [_ input]) + (let [global (maybe.else (reference.artifact context) + custom) + @global (_.var global) + definition (_.set (list @global) input)] + (do try.monad + [_ (run! definition) + value (run! (_.return @global))] + (in [global value definition])))) + + (def: (ingest context content) + (|> content + (# utf8.codec decoded) + try.trusted + (as _.Statement))) + + (def: (re_learn context custom content) + (run! content)) + + (def: (re_load context custom content) + (do try.monad + [_ (run! content)] + (run! (_.return (_.var (reference.artifact context))))))))]))))] (for @.old (as_is <jvm>) @.jvm (as_is <jvm>) @.lua (as_is (ffi.import: (load [ffi.String] "try" ffi.Function)) (def: host (IO (Host _.Expression _.Statement)) - (io (let [run! (: (-> _.Statement (Try Any)) - (function (_ code) - (do try.monad - [lua_function (..load (_.code code))] - (let [output ("lua apply" lua_function)] - {try.#Success (if ("lua object nil?" output) - [] - output)}))))] - (: (Host _.Expression _.Statement) - (implementation - (def: (evaluate! context [_ code]) - (run! (_.return code))) - - (def: execute! run!) - - (def: (define! context custom [_ input]) - (let [global (maybe.else (reference.artifact context) - custom) - @global (_.var global)] - (do try.monad - [.let [definition (_.set (list @global) input)] - _ (run! definition) - value (run! (_.return @global))] - (in [global value definition])))) - - (def: (ingest context content) - (|> content (# utf8.codec decoded) try.trusted (:as _.Statement))) - - (def: (re_learn context custom content) - (run! content)) - - (def: (re_load context custom content) - (do try.monad - [_ (run! content)] - (run! (_.return (_.var (reference.artifact context)))))))))))))) + (io (let [run! (is (-> _.Statement (Try Any)) + (function (_ code) + (do try.monad + [lua_function (..load (_.code code))] + (let [output ("lua apply" lua_function)] + {try.#Success (if ("lua object nil?" output) + [] + output)}))))] + (is (Host _.Expression _.Statement) + (implementation + (def: (evaluate! context [_ code]) + (run! (_.return code))) + + (def: execute! run!) + + (def: (define! context custom [_ input]) + (let [global (maybe.else (reference.artifact context) + custom) + @global (_.var global)] + (do try.monad + [.let [definition (_.set (list @global) input)] + _ (run! definition) + value (run! (_.return @global))] + (in [global value definition])))) + + (def: (ingest context content) + (|> content (# utf8.codec decoded) try.trusted (as _.Statement))) + + (def: (re_learn context custom content) + (run! content)) + + (def: (re_load context custom content) + (do try.monad + [_ (run! content)] + (run! (_.return (_.var (reference.artifact context)))))))))))))) (with_expansions [<jvm> (as_is (def: (to_host it) (-> Any java/lang/Object) (`` (<| (~~ (template [<jvm> <lua>] - [(case (ffi.check <jvm> (:as java/lang/Object it)) + [(case (ffi.check <jvm> (as java/lang/Object it)) {.#Some it} - (:as java/lang/Object - (<lua> [(:expected it)])) + (as java/lang/Object + (<lua> [(as_expected it)])) {.#None})] [[java/lang/Object] (..lux_structure to_host)] [library/lux/Function (..lua_function to_host)] )) - (:as java/lang/Object it)))) + (as java/lang/Object it)))) (def: (extender [state_context executor] phase_wrapper) (-> Baggage (-> phase.Wrapper Extender)) ... TODO: Stop relying on coercions ASAP. - (<| (:as Extender) + (<| (as Extender) (function (@self handler)) - (:as Handler) + (as Handler) (function (@self name phase)) - (:as Phase) + (as Phase) (function (@self archive parameters)) - (:as Operation) + (as Operation) (function (@self state)) - (:as Try) + (as Try) try.trusted - (:as Try) + (as Try) (do try.monad [handler (try.of_maybe (..ensure_function handler)) output (net/sandius/rembulan/exec/DirectCallExecutor::call state_context - (:as java/lang/Object handler) + (as java/lang/Object handler) (|> (array.empty 5) (array.write! 0 name) - (array.write! 1 (:as java/lang/Object (phase_wrapper phase))) + (array.write! 1 (as java/lang/Object (phase_wrapper phase))) (array.write! 2 (..to_host archive)) (array.write! 3 (..to_host parameters)) (array.write! 4 (..to_host state))) @@ -825,7 +825,7 @@ (|> output (array.read! 0) maybe.trusted - (:as java/lang/Object) + (as java/lang/Object) ..read)))))] (for @.old (as_is <jvm>) @.jvm (as_is <jvm>) @@ -833,16 +833,16 @@ @.lua (def: (extender phase_wrapper handler) (-> phase.Wrapper Extender) - (:expected handler)))) + (as_expected handler)))) (def: (phase_wrapper archive) (-> Archive (runtime.Operation phase.Wrapper)) (do phase.monad [] - (in (:as phase.Wrapper - (for @.old (..lua_function ..to_host) - @.jvm (..lua_function ..to_host) - @.lua (|>>)))))) + (in (as phase.Wrapper + (for @.old (..lua_function ..to_host) + @.jvm (..lua_function ..to_host) + @.lua (|>>)))))) (with_expansions [<jvm> (def: platform (IO [Baggage (Platform [Register _.Label] _.Expression _.Statement)]) |