]> gitweb.factorcode.org Git - factor.git/commitdiff
Display a system-alert for callback errors in the UI; also for thread errors in deplo...
authorSlava Pestov <slava@factorcode.org>
Mon, 3 Oct 2011 07:24:13 +0000 (00:24 -0700)
committerSlava Pestov <slava@factorcode.org>
Mon, 3 Oct 2011 07:24:37 +0000 (00:24 -0700)
basis/tools/deploy/shaker/strip-debugger.factor
basis/tools/deploy/shaker/strip-ui-error-hook.factor
basis/ui/debugger/debugger.factor
basis/ui/tools/debugger/debugger.factor

index 121891b5636b450a37756a6b74ff0b1a4a284a01..ec4039a9e7a0e865fdfb098c8a65f73d5ad3a660 100644 (file)
@@ -1,14 +1,6 @@
-USING: compiler.units continuations kernel namespaces
-threads.private words vocabs tools.deploy.shaker ;
+USING: namespaces tools.deploy.shaker ;
 IN: debugger
 
 : error. ( error -- ) original-error get die-with2 ;
 
 : print-error ( error -- ) error. ;
-
-"threads" vocab [
-    [
-        "error-in-thread" "threads" lookup
-        [ [ drop error. ] define ] [ f "combination" set-word-prop ] bi
-    ] with-compilation-unit
-] when
index 0664dc5e8e227953de8d30f02e039dba6e1a6b8e..378bc7e27ada75fec2230ab84947ef9aa437f4aa 100644 (file)
@@ -1,7 +1,11 @@
-USING: namespaces tools.deploy.config fry sequences system kernel ui ui.gadgets.worlds ;
+USING: continuations namespaces sequences kernel ui
+ui.gadgets.worlds ;
 
-deploy-name get "Factor" or '[
-    _ " encountered an error." append
+[
+    "Error"
     "The application encountered an error it cannot recover from and will now exit."
     system-alert die
-] ui-error-hook set-global
+]
+[ ui-error-hook set-global ]
+[ callback-error-hook set-global ]
+[ [ drop ] prepose thread-error-hook set-global ] tri
index e2c8b06bdd830efee83661deafa15b5b552bc79a..e0abfe05be5b269844892cb4d378fccfefdc74de 100644 (file)
@@ -1,16 +1,20 @@
-! Copyright (C) 2006, 2009 Slava Pestov.\r
+! Copyright (C) 2006, 2011 Slava Pestov.\r
 ! See http://factorcode.org/license.txt for BSD license.\r
-USING: accessors debugger io kernel namespaces prettyprint\r
-ui.gadgets.panes ui.gadgets.worlds ui ;\r
+USING: accessors continuations debugger io io.streams.string\r
+kernel namespaces prettyprint ui ui.gadgets.worlds ;\r
 IN: ui.debugger\r
 \r
-: <error-pane> ( error -- pane )\r
-    <pane> [ [ print-error ] with-pane ] keep ; inline\r
+: error-alert ( error -- )\r
+    [ "Error" ] dip [ print-error ] with-string-writer\r
+    system-alert ;\r
 \r
-: error-window ( error -- )\r
-    <error-pane> "Error" open-window ;\r
+! ( error -- )\r
+[ error-alert ] ui-error-hook set-global\r
 \r
-[ error-window ] ui-error-hook set-global\r
+! ( error -- )\r
+[\r
+    ui-running? [ dup error-alert ] [ dup print-error ] if die\r
+] callback-error-hook set-global\r
 \r
 M: world-error error.\r
     "An error occurred while drawing the world " write\r
index a4fda6600e6e6b8f8b70d48fc73c61e0d1afa6ae..af987d7dd01123ee4d1d2eba9b2fdec7763f8e3f 100644 (file)
@@ -1,13 +1,14 @@
-! Copyright (C) 2006, 2009 Slava Pestov.
+! Copyright (C) 2006, 2011 Slava Pestov.
 ! See http://factorcode.org/license.txt for BSD license.
 USING: accessors arrays hashtables io kernel math models
-colors.constants namespaces sequences words continuations debugger
-prettyprint help editors fonts ui ui.commands ui.gestures ui.gadgets
-ui.pens.solid ui.gadgets.worlds ui.gadgets.packs ui.gadgets.buttons
-ui.gadgets.labels ui.gadgets.presentations ui.gadgets.viewports
-ui.gadgets.tables ui.gadgets.tracks ui.gadgets.scrollers
-ui.gadgets.borders ui.gadgets.status-bar ui.tools.traceback
-ui.tools.inspector ui.tools.browser ui.debugger ;
+colors.constants namespaces sequences words continuations
+debugger prettyprint help editors fonts ui ui.commands
+ui.debugger ui.gestures ui.gadgets ui.pens.solid
+ui.gadgets.worlds ui.gadgets.packs ui.gadgets.buttons
+ui.gadgets.labels ui.gadgets.presentations ui.gadgets.panes
+ui.gadgets.viewports ui.gadgets.tables ui.gadgets.tracks
+ui.gadgets.scrollers ui.gadgets.borders ui.gadgets.status-bar
+ui.tools.traceback ui.tools.inspector ui.tools.browser ;
 IN: ui.tools.debugger
 
 TUPLE: debugger < track error restarts restart-hook restart-list continuation ;
@@ -26,6 +27,9 @@ M: restart-renderer row-columns
         t >>selection-required?
         t >>single-click? ; inline
 
+: <error-pane> ( error -- pane )
+    <pane> [ [ print-error ] with-pane ] keep ; inline
+
 : <error-display> ( debugger -- gadget )
     [ <filled-pile> ] dip
     [ error>> <error-pane> add-gadget ]
@@ -66,7 +70,7 @@ M: object error-in-debugger? drop f ;
 
 [
     dup error-in-debugger?
-    [ rethrow ] [ error-continuation get debugger-window ] if 
+    [ error-alert ] [ error-continuation get debugger-window ] if
 ] ui-error-hook set-global
 
 debugger "gestures" f {