1. 10 Dec, 2006 8 commits
    • mnislaih's avatar
      Capturing and keeping track of local bindins in the desugarer · eca538c8
      mnislaih authored
      Used in the desugaring of the breakpoint primitive
    • mnislaih's avatar
      Handle breakpoint jumps while splicing TH functions in ghci · 1df34b32
      mnislaih authored
      The dynamic linker has been modified so that it won't panic if one of the breakpointJump functions fails to resolve.
      Now, if the dynamic linker fails to find a HValue for a Name, before looking for a static symbol it will ask to
      Breakpoints.lookupBogusBreakpointVal :: Name -> Maybe HValue
      which returns an identity function for the Jump names or Nothing else.
      A TH function might contain a call to a breakpoint function. So if it is compiled to bytecodes, the breakpoints will be desugared to 'jumps'. Whenever this code is spliced, the linker will fail to find the jumpfunctions unless there is a default.
    • mnislaih's avatar
      Breakpoint code instrumentation · 37610105
      mnislaih authored
      Instrumentation gets activated by the '-fdebugging' dynflag.
      All the instrumentation occurrs in the desugarer; it consists of inserting 'breakpoint' combinators at a number of places in the AST, namely: 
       - Binding sites
       - Do-notation statements 
      These 'breakpoint' combinators will later be further desugared (at DsExpr) into ___Jump functions.
      For more info about this and all the ghci.debugger see the page at the GHC wiki:
    • mnislaih's avatar
      The breakpoint primitive · 3a99fa88
      mnislaih authored
    • mnislaih's avatar
      GHCi debugger documentation · 3e4ee05c
      mnislaih authored
    • mnislaih's avatar
      Extend the GHC API with breakpoints and breakpoint handlers · ead42435
      mnislaih authored
      The entry point is:
      setBreakpointHandler :: Session -> BkptHandler Module -> IO ()
    • mnislaih's avatar
      Playing with closures · 2c92736e
      mnislaih authored
      RtClosureInspect includes a bunch of stuff for playing with closures:
      - the datatype Closure is the low level representation type
      - the datatype Term is the high level representation type
      - cvObtainTerm is the main entry point, providing the Term representation of an arbitrary closure
    • mnislaih's avatar
      Retrieving the datacon of an arbitrary closure · ab5b8aa3
      mnislaih authored
      This patch extends the RTS linker and the dynamic linker so that it is possible to find out the datacon of a closure in heap at runtime:
      - The RTS linker now carries a hashtable 'Address->Symbol' for data constructors
      - The Persistent Linker State in the dynamic linker is extended in a similar way.
      Finally, these two sources of information are consulted by:
      > Linker.recoverDataCon :: a -> TcM Name
  2. 09 Dec, 2006 1 commit
  3. 15 Dec, 2006 5 commits
  4. 14 Dec, 2006 4 commits
  5. 13 Dec, 2006 6 commits
  6. 12 Dec, 2006 1 commit
  7. 13 Dec, 2006 2 commits
  8. 09 Dec, 2006 1 commit
  9. 30 Nov, 2006 1 commit
  10. 12 Dec, 2006 11 commits