From 6130c650d29e6b09e65fcd3269b0b4bdb2fc27a0 Mon Sep 17 00:00:00 2001 From: Eduardo Julian Date: Sun, 25 Dec 2016 20:05:08 -0400 Subject: - Improved the way error messages are shown when compilation fails. --- luxc/src/lux/compiler.clj | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) (limited to 'luxc') diff --git a/luxc/src/lux/compiler.clj b/luxc/src/lux/compiler.clj index 1c04df819..78fe301fd 100644 --- a/luxc/src/lux/compiler.clj +++ b/luxc/src/lux/compiler.clj @@ -255,15 +255,18 @@ )) ))) -(defn compile-program [mode program-module resources-dir source-dirs target-dir] - (do (init! resources-dir target-dir) - (let [m-action (|do [_ (compile-module source-dirs "lux")] - (compile-module source-dirs program-module))] - (|case (m-action (&/init-state mode)) - (&/$Right ?state _) - (do (println "Compilation complete!") - (&&cache/clean ?state)) +(let [!err! *err*] + (defn compile-program [mode program-module resources-dir source-dirs target-dir] + (do (init! resources-dir target-dir) + (let [m-action (|do [_ (compile-module source-dirs "lux")] + (compile-module source-dirs program-module))] + (|case (m-action (&/init-state mode)) + (&/$Right ?state _) + (do (println "Compilation complete!") + (&&cache/clean ?state)) - (&/$Left ?message) - (do (&/|log! (str "Compilation failed:\n" ?message)) - (System/exit 1)))))) + (&/$Left ?message) + (binding [*out* !err!] + (do (println (str "Compilation failed:\n" ?message)) + (flush) + (System/exit 1)))))))) -- cgit v1.2.3