[commit: ghc] master: Disable an assertion; see comment (e6b3829)

git at git.haskell.org git at git.haskell.org
Wed Nov 5 18:15:40 UTC 2014


Repository : ssh://git@git.haskell.org/ghc

On branch  : master
Link       : http://ghc.haskell.org/trac/ghc/changeset/e6b38294512896cf55f2d05d09d742d82313f598/ghc

>---------------------------------------------------------------

commit e6b38294512896cf55f2d05d09d742d82313f598
Author: Simon Marlow <marlowsd at gmail.com>
Date:   Tue Nov 4 21:32:12 2014 +0000

    Disable an assertion; see comment


>---------------------------------------------------------------

e6b38294512896cf55f2d05d09d742d82313f598
 rts/Interpreter.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/rts/Interpreter.c b/rts/Interpreter.c
index 501cc4f..8a608ec 100644
--- a/rts/Interpreter.c
+++ b/rts/Interpreter.c
@@ -80,9 +80,15 @@
     SpLim = tso_SpLim(cap->r.rCurrentTSO);
 
 #define SAVE_STACK_POINTERS                     \
-    ASSERT(Sp > SpLim); \
     cap->r.rCurrentTSO->stackobj->sp = Sp
 
+// Note [Not true: ASSERT(Sp > SpLim)]
+//
+// SpLim has some headroom (RESERVED_STACK_WORDS) to allow for saving
+// any necessary state on the stack when returning to the scheduler
+// when a stack check fails..  The upshot of this is that Sp could be
+// less than SpLim both when leaving to return to the scheduler.
+
 #define RETURN_TO_SCHEDULER(todo,retcode)       \
    SAVE_STACK_POINTERS;                         \
    cap->r.rCurrentTSO->what_next = (todo);      \



More information about the ghc-commits mailing list