aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/program/compositor.lux
diff options
context:
space:
mode:
authorEduardo Julian2022-01-15 02:17:35 -0400
committerEduardo Julian2022-01-15 02:17:35 -0400
commite1af5374ba4d969f866867db47af7ecf60cc9933 (patch)
tree8aa83faa67253d5beab931f4950bb319204a2944 /stdlib/source/program/compositor.lux
parent68a17d42bab808290de0d975f4083b52b37d0706 (diff)
Fixed a logging/reporting issue for Lux/JS.
Diffstat (limited to 'stdlib/source/program/compositor.lux')
-rw-r--r--stdlib/source/program/compositor.lux24
1 files changed, 16 insertions, 8 deletions
diff --git a/stdlib/source/program/compositor.lux b/stdlib/source/program/compositor.lux
index 54fc903ad..2b6850cf8 100644
--- a/stdlib/source/program/compositor.lux
+++ b/stdlib/source/program/compositor.lux
@@ -22,9 +22,8 @@
["[0]" instant]]
["[0]" world "_"
["[0]" file]
- ["[1]/[0]" program]
- ... ["[0]" console]
- ]
+ ["[0]" console]
+ ["[1]/[0]" program]]
[tool
[compiler
["[0]" phase]
@@ -59,14 +58,23 @@
(def: (or_crash! failure_description action)
(All (_ a)
(-> Text (Async (Try a)) (Async a)))
- (do async.monad
+ (do [! async.monad]
[?output action]
(case ?output
{try.#Failure error}
- (exec (debug.log! (format text.new_line
- failure_description text.new_line
- error text.new_line))
- (io.run! (# world/program.default exit +1)))
+ (let [report (format text.new_line
+ failure_description text.new_line
+ error text.new_line)]
+ (do !
+ [_ (with_expansions [<else> (in (debug.log! report))]
+ (for [@.js (case console.default
+ {.#None}
+ <else>
+
+ {.#Some console}
+ (console.write_line report console))]
+ <else>))]
+ (io.run! (# world/program.default exit +1))))
{try.#Success output}
(in output))))