1. 13 Nov, 2007 1 commit
  2. 12 Sep, 2007 2 commits
  3. 11 Sep, 2007 3 commits
  4. 06 Sep, 2007 1 commit
  5. 04 Sep, 2007 1 commit
  6. 03 Sep, 2007 1 commit
  7. 01 Sep, 2007 1 commit
  8. 29 Aug, 2007 1 commit
  9. 26 Aug, 2007 2 commits
  10. 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
      01249617
  11. 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))
      Prelude>
      
      This patch also includes some fixes in the pretty printer 
      for the Term datatype
      
      876db7ed
  12. 11 Jul, 2007 1 commit
  13. 23 May, 2007 1 commit
  14. 11 May, 2007 1 commit
  15. 09 May, 2007 2 commits
  16. 03 May, 2007 1 commit
  17. 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.
      86bec429
  18. 01 May, 2007 1 commit
  19. 30 Apr, 2007 2 commits
  20. 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
        
        <interactive>:1:0:
            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
      97351f5d
  21. 25 Apr, 2007 4 commits
  22. 24 Apr, 2007 4 commits
  23. 20 Apr, 2007 1 commit
  24. 14 Apr, 2007 1 commit
  25. 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
      38e7ac3f
  26. 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:
      
        http://hackage.haskell.org/trac/ghc/wiki/NewGhciDebugger
      cdce6477
  27. 22 Mar, 2007 1 commit
  28. 21 Feb, 2007 1 commit