Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Commits on Aug 2, 2009
  1. @simonmar

    RTS tidyup sweep, first phase

    simonmar authored
    The first phase of this tidyup is focussed on the header files, and in
    particular making sure we are exposinng publicly exactly what we need
    to, and no more.
     - Rts.h now includes everything that the RTS exposes publicly,
       rather than a random subset of it.
     - Most of the public header files have moved into subdirectories, and
       many of them have been renamed.  But clients should not need to
       include any of the other headers directly, just #include the main
       public headers: Rts.h, HsFFI.h, RtsAPI.h.
     - All the headers needed for via-C compilation have moved into the
       stg subdirectory, which is self-contained.  Most of the headers for
       the rest of the RTS APIs have moved into the rts subdirectory.
     - I left MachDeps.h where it is, because it is so widely used in
       Haskell code.
     - I left a deprecated stub for RtsFlags.h in place.  The flag
       structures are now exposed by Rts.h.
     - Various internal APIs are no longer exposed by public header files.
     - Various bits of dead code and declarations have been removed
     - More gcc warnings are turned on, and the RTS code is more
     - More source files #include "PosixSource.h", and hence only use
       standard POSIX (1003.1c-1995) interfaces.
    There is a lot more tidying up still to do, this is just the first
    pass.  I also intend to standardise the names for external RTS APIs
    (e.g use the rts_ prefix consistently), and declare the internal APIs
    as hidden for shared libraries.
Commits on Nov 27, 2007
  1. add missing instruction: ALLOC_AP_NOUPD

    Simon Marlow authored
Commits on Apr 17, 2007
  1. Re-working of the breakpoint support

    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:
Commits on Feb 27, 2007
  1. Remove the itbls field of BCO, put itbls in with the literals

    Simon Marlow authored
    This is a simplification & minor optimisation for GHCi
Commits on Nov 15, 2006
Commits on Oct 24, 2006
  1. Split GC.c, and move storage manager into sm/ directory

    Simon Marlow authored
    In preparation for parallel GC, split up the monolithic GC.c file into
    smaller parts.  Also in this patch (and difficult to separate,
      - Don't include Stable.h in Rts.h, instead just include it where
      - consistently use STATIC_INLINE in source files, and INLINE_HEADER
        in header files.  STATIC_INLINE is now turned off when DEBUG is on,
        to make debugging easier.
      - The GC no longer takes the get_roots function as an argument.
        We weren't making use of this generalisation.
Commits on Oct 9, 2006
  1. @igfoo
Commits on Jun 8, 2006
  1. fix warnings

    Simon Marlow authored
Commits on Apr 7, 2006
  1. Reorganisation of the source tree

    Simon Marlow authored
    Most of the other users of the fptools build system have migrated to
    Cabal, and with the move to darcs we can now flatten the source tree
    without losing history, so here goes.
    The main change is that the ghc/ subdir is gone, and most of what it
    contained is now at the top level.  The build system now makes no
    pretense at being multi-project, it is just the GHC build system.
    No doubt this will break many things, and there will be a period of
    instability while we fix the dependencies.  A straightforward build
    should work, but I haven't yet fixed binary/source distributions.
    Changes to the Building Guide will follow, too.
Something went wrong with that request. Please try again.