diff options
author | Simon Marlow <simonmar@microsoft.com> | 2007-09-05 10:47:16 +0000 |
---|---|---|
committer | Simon Marlow <simonmar@microsoft.com> | 2007-09-05 10:47:16 +0000 |
commit | e2782137c799a08711cac0844418cc0345a7ceb5 (patch) | |
tree | 95dd4aee9bfd315311b409451905d2dcb8799377 /compiler/iface/TcIface.lhs | |
parent | b1f0cd397d4cc0e9bf178bbe2774a9b7c1595b34 (diff) | |
download | haskell-e2782137c799a08711cac0844418cc0345a7ceb5.tar.gz |
FIX #1650: ".boot modules interact badly with the ghci debugger"
In fact hs-boot files had nothing to do with it: the problem was that
GHCi would forget the breakpoint information for a module that had
been reloaded but not recompiled. It's amazing that we never noticed
this before.
The ModBreaks were in the ModDetails, which was the wrong place. When
we avoid recompiling a module, ModDetails is regenerated from ModIface
by typecheckIface, and at that point it has no idea what the ModBreaks
should be, so typecheckIface made it empty. The right place for the
ModBreaks to go is with the Linkable, which is retained when
compilation is avoided. So now I've placed the ModBreaks in with the
CompiledByteCode, which also makes it clear that only byte-code
modules have breakpoints.
This fixes break022/break023
Diffstat (limited to 'compiler/iface/TcIface.lhs')
-rw-r--r-- | compiler/iface/TcIface.lhs | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/compiler/iface/TcIface.lhs b/compiler/iface/TcIface.lhs index 8dca71e614..93452082e1 100644 --- a/compiler/iface/TcIface.lhs +++ b/compiler/iface/TcIface.lhs @@ -224,7 +224,6 @@ typecheckIface iface , md_rules = rules , md_vect_info = vect_info , md_exports = exports - , md_modBreaks = emptyModBreaks } } \end{code} |