diff options
Diffstat (limited to 'lux-lua/source')
| -rw-r--r-- | lux-lua/source/program.lux | 25 | 
1 files changed, 9 insertions, 16 deletions
diff --git a/lux-lua/source/program.lux b/lux-lua/source/program.lux index 63cc376d8..fc0e15eeb 100644 --- a/lux-lua/source/program.lux +++ b/lux-lua/source/program.lux @@ -120,7 +120,7 @@     (loadTextChunk [net/sandius/rembulan/Variable                     java/lang/String                     java/lang/String] -                  net/sandius/rembulan/runtime/LuaFunction)]) +                  #try net/sandius/rembulan/runtime/LuaFunction)])  (host.import: net/sandius/rembulan/compiler/CompilerChunkLoader    ["#::." @@ -274,15 +274,10 @@                (#try.Success value)                (#try.Failure error) -              (case (read_tuple read typed_object) -                (#try.Success value) -                (#try.Success value) +              (read_tuple read typed_object)) -                (#try.Failure error) -                (exception.throw ..unknown_kind_of_object host_object))) - -            _ -            (exception.throw ..unknown_kind_of_object host_object)) +            _) +          (exception.throw ..unknown_kind_of_object host_object)            )))  (exception: (cannot_apply_a_non_function {object java/lang/Object}) @@ -310,16 +305,17 @@                                                                                    ## (net/sandius/rembulan/impl/ImmutableTable$Builder::build (net/sandius/rembulan/impl/ImmutableTable$Builder::new))                                                                                    (:coerce java/lang/Object (lux_structure (:coerce (Array java/lang/Object) lux)))))                                                                  executor)] -    (wrap (|> output (array.read 0) maybe.assume (:coerce java/lang/Object) ..read)))) +    (|> output (array.read 0) maybe.assume (:coerce java/lang/Object) ..read)))  (def: (expander baggage macro inputs lux)    (-> Baggage Expander)    (case (..ensure_function macro)      (#.Some macro) -    (case (call_macro baggage inputs lux macro) +    (case (..call_macro baggage inputs lux macro)        (#try.Success output)        (|> output -          (:coerce (Try (Try [Lux (List Code)])))) +          (:coerce (Try [Lux (List Code)])) +          #try.Success)        (#try.Failure error)        (#try.Failure error)) @@ -327,8 +323,6 @@      #.None      (exception.throw ..cannot_apply_a_non_function (:coerce java/lang/Object macro)))) -(def: separator "___") -  (def: host    (IO [Baggage (Host _.Expression _.Statement)])    (io (let [runtime_env (net/sandius/rembulan/env/RuntimeEnvironments::system) @@ -342,8 +336,7 @@              run! (: (-> _.Statement (Try Any))                      (function (_ code)                        (do try.monad -                        [#let [lua_function (net/sandius/rembulan/load/ChunkLoader::loadTextChunk variable "lux compilation" (_.code code) -                                                                                                  loader)] +                        [lua_function (net/sandius/rembulan/load/ChunkLoader::loadTextChunk variable "lux compilation" (_.code code) loader)                           output (net/sandius/rembulan/exec/DirectCallExecutor::call state_context (:coerce java/lang/Object lua_function) (array.new 0)                                                                                      executor)]                          (case (array.read 0 output)  | 
