1. 06 Sep, 2007 1 commit
  2. 04 Sep, 2007 1 commit
  3. 03 Sep, 2007 1 commit
  4. 01 Sep, 2007 1 commit
  5. 29 Aug, 2007 1 commit
  6. 26 Aug, 2007 2 commits
  7. 14 Jul, 2007 1 commit
    • mnislaih's avatar
      Automatic RTTI for ghci bindings · 01249617
      mnislaih authored
      With this patch, ghci runs rtti (bounded in the term treewith a max. depth of 10)
      automatically after evaluating any expression in the interactive env.
      In addition, a rtti step is performed on the local bindings in a breakpoint,
      before returning control to the user
      Let's see how well this works in practice
  8. 12 Jul, 2007 1 commit
    • mnislaih's avatar
      Teach :print to not panic when the DataCon for a closure is not exposed by the .hi file · 876db7ed
      mnislaih authored
      Previously the behaviour was to panic.
      Now it will print an approximated representation, 
      using the names (enclosed in keys, i.e. "<...>") 
      and the pointed subterms. Non pointed subterms cannot 
      be included in this representation:
      Prelude> let se = Data.Sequence.fromList (map Just "abc")
      Prelude> :eval se
      Prelude> :p se
      se = <Data.Sequence.Deep> (<Data.Sequence.One> (_t1::t)) () (<Data.Sequence.Two> (_t2::t) (_t3::t))
      Prelude> :eval _t2
      Prelude> :p se
      se = <Data.Sequence.Deep> (<Data.Sequence.One> (_t4::t1)) () (<Data.Sequence.Two> (Just 'b') (_t5::t1))
      This patch also includes some fixes in the pretty printer 
      for the Term datatype
  9. 11 Jul, 2007 1 commit
  10. 23 May, 2007 1 commit
  11. 11 May, 2007 1 commit
  12. 09 May, 2007 2 commits
  13. 03 May, 2007 1 commit
  14. 02 May, 2007 1 commit
    • Simon Marlow's avatar
      Refactoring, tidyup and improve layering · 86bec429
      Simon Marlow authored
      The stack of breakpoint resume contexts is now part of the
      InteractiveContext and managed by the GHC API.  This prevents misuse
      of the resume context by the client (e.g. resuming a breakpoint that
      isn't the topmost, which would lead to a confused IC at the least).
      I changed the TypeEnv in the IC to a [Id].  It only contained Ids
      anyway, and this allows us to have shadowing, which removes an ugly
      and annoying restriction.
      The parts of the GHC API which deal with interactive evaluation are
      now in a module of their own, InteractiveEval.
  15. 01 May, 2007 1 commit
  16. 30 Apr, 2007 2 commits
  17. 26 Apr, 2007 1 commit
    • Simon Marlow's avatar
      Give a better error message when we try to print a value of unknown type · 97351f5d
      Simon Marlow authored
        Stopped at ../Test3.hs:(1,0)-(2,30)
        _result :: [a]
        [../Test3.hs:(1,0)-(2,30)] *Main> _result
            Ambiguous type variable `a' in the constraint:
              `Show a' arising from a use of `print' at <interactive>:1:0-6
            Cannot resolve unkonwn runtime types: a
            Use :print or :force to determine these types
  18. 25 Apr, 2007 4 commits
  19. 24 Apr, 2007 4 commits
  20. 20 Apr, 2007 1 commit
  21. 14 Apr, 2007 1 commit
  22. 18 Apr, 2007 1 commit
    • Simon Marlow's avatar
      Various cleanups and improvements to the breakpoint support · 38e7ac3f
      Simon Marlow authored
        - move parts of the debugger implementation below the GHC API where
          they belong.  There is still more in Debugger that violates the
          layering, hopefully I'll get to that later.
        - instead of returning an IO action from runStmt for resuming,
          return a ResumeHandle that is passed to GHC.resume.
        - breakpoints now return [Name] which is displayed in the same
          way as when a binding statement is executed.
        - :load, :add, :reload now clear the active breakpoints and context
        - :break gives a sensible error when used on a non-interpreted module
        - export breakpoint-related types from GHC
        - remove a bunch of layer-violating imports from InteractiveUI
        - remove some more vestiges of the old breakpoint code (topLevel in
          the GHCi state).
        - remove TickTree and use a simple array instead, cached per module
  23. 17 Apr, 2007 1 commit
    • Simon Marlow's avatar
      Re-working of the breakpoint support · cdce6477
      Simon Marlow authored
      This is the result of Bernie Pope's internship work at MSR Cambridge,
      with some subsequent improvements by me.  The main plan was to
       (a) Reduce the overhead for breakpoints, so we could enable 
           the feature by default without incurrent a significant penalty
       (b) Scatter more breakpoint sites throughout the code
      Currently we can set a breakpoint on almost any subexpression, and the
      overhead is around 1.5x slower than normal GHCi.  I hope to be able to
      get this down further and/or allow breakpoints to be turned off.
      This patch also fixes up :print following the recent changes to
      constructor info tables.  (most of the :print tests now pass)
      We now support single-stepping, which just enables all breakpoints.
        :step <expr>     executes <expr> with single-stepping turned on
        :step            single-steps from the current breakpoint
      The mechanism is quite different to the previous implementation.  We
      share code with the HPC (haskell program coverage) implementation now.
      The coverage pass annotates source code with "tick" locations which
      are tracked by the coverage tool.  In GHCi, each "tick" becomes a
      potential breakpoint location.
      Previously breakpoints were compiled into code that magically invoked
      a nested instance of GHCi.  Now, a breakpoint causes the current
      thread to block and control is returned to GHCi.
      See the wiki page for more details and the current ToDo list:
  24. 22 Mar, 2007 1 commit
  25. 21 Feb, 2007 1 commit
  26. 16 Feb, 2007 3 commits
  27. 07 Feb, 2007 1 commit
    • mnislaih's avatar
      Optimize dynamic breakpoints for speed · 9004e883
      mnislaih authored
      Made a bit faster the test which gets done every time a running program hits a dynamic breakpoint. I moved the bounds checking inside a DEBUG pragma and replaced (IArray.!) for unsafeAt
  28. 21 Jan, 2007 2 commits
    • mnislaih's avatar
      Improve presentation of :print output · 69346489
      mnislaih authored
    • mnislaih's avatar
      Refactoring of Debugger.hs · 01314483
      mnislaih authored
      A big motivation to start with it was getting several independently useful functions out of the Ghci monad and into the IO monad instead. Working in debugger integration for Emacs via the ghc-api is helping me to improve reusability..
            While I was there, I tried to make the code less tangled, easier to understand, switched from implicit Exceptions to explicit Eithers in the bkptTable code, etc.