Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Commits on Oct 20, 2011
  1. Change stack alignment to 16+8 bytes in STG code

    This patch changes the STG code so that %rsp to be aligned
    to a 16-byte boundary + 8. This is the alignment required by
    the x86_64 ABI on entry to a function. Previously we kept
    %rsp aligned to a 16-byte boundary, but this was causing
    problems for the LLVM backend (see #4211).
    We now don't need to invoke llvm stack mangler on
    x86_64 targets. Since the stack is now 16+8 byte algined in
    STG land on x86_64, we don't need to mangle the stack
    manipulations with the llvm mangler.
    This patch only modifies the alignement for x86_64 backends.
Commits on Oct 17, 2011
  1. @simonmar

    make CAFs atomic, to fix #5558

    simonmar authored
    See Note [atomic CAFs] in rts/sm/Storage.c
Commits on Oct 14, 2011
  1. @igfoo

    Fix libffi build on Windows

    igfoo authored
  2. @igfoo

    Simplify the libffi build

    igfoo authored
    We now put the libffi objects into the RTS library, rather than trying
    to mangle libffi into being a ghc package itself. It would be nicer to
     make it a separate library (but not a ghc package), but for now
     hopefully this will get the build going through on Windows again.
Commits on Oct 11, 2011
  1. @igfoo

    Always define rtsOptsEnabled in the "extra object" when linking

    igfoo authored
    Now that we always link in an extra object, we may as well always
    define rtsOptsEnabled in it, rather than having a default value in
Commits on Oct 6, 2011
  1. @igfoo
Commits on Sep 17, 2011
  1. @trofi @igfoo

    Gentoo's scanelf program found executable stack in many resulting bin…

    trofi authored igfoo committed
    * RWX --- --- home/prefix/gentoo/usr/lib/ghc-7.2.1/ghc
    * !WX --- --- home/prefix/gentoo/usr/lib/ghc-7.2.1/libHSrts.a:AdjustorAsm.o
    More info can be found here:
    Signed-off-by: Sergei Trofimovich <>
Commits on Sep 1, 2011
  1. @simonmar

    Fix #4988: we were wrongly running exception handlers in the

    simonmar authored
    maskUninterruptible state instead of ordinary mask, due to a
    misinterpretation of the way the TSO_INTERRUPTIBLE flag works.
    Remarkably this must have been broken for quite some time.  Indeed we
    even had a test that demonstrated the wrong behaviour (conc015a) but
    presumably I didn't look hard enough at the output to notice that it
    was wrong.
Commits on Aug 14, 2011
  1. @simonmar

    fix occasional failure of numsparks001 test. During shutdown we

    simonmar authored
    discard all the sparks from each Capability, but we were forgetting to
    account for the discarded sparks in the stats, leading to a failure of
    the assertion that tests the spark invariant.
    I've moved the discarding of sparks to just before the GC, to avoid
    race conditions, and counted the discarded sparks as GC'd.
  2. @simonmar

    remove unnecessary return

    simonmar authored
Commits on Aug 12, 2011
  1. @simonmar
Commits on Aug 10, 2011
  1. @mchakravarty
  2. @mchakravarty

    ARMv5 compatibility for registerized runtime changes.

    Stephen Blackheath authored mchakravarty committed
    When the bootstrap compiler does not include this patch, you must add this line
    to mk/, otherwise the ARM architecture cannot be detected due to a
    -undef option given to the C pre-processor.
    SRC_HC_OPTS = -pgmP 'gcc -E -traditional'
  3. @kgardas @mchakravarty

    RTS: fix pushWSDeque to invoke write barrier when element is added

    kgardas authored mchakravarty committed
    This patch fixes RTS' pushWSDeque function. We need to invoke
    write barrier after element is added to the queue and before moving
    bottom. The reason for this is possible write reordering on modern CPUs
    (e.g. ARMv7MP) where setting of element might be done later after moving
    bottom. When such situation happen other thread might be waiting to steal
    data from the queue and when bottom is moved it eagerly steals undefined
    data from the queue since setting of element has not happened yet.
  4. @kgardas @mchakravarty

    add support for STG floating-point regs using VFPv3

    kgardas authored mchakravarty committed
    This patch adds mapping for STG floating point registers
    using ARM VFPv3. Since I'm using just d8-d11 also processors
    with just VFPv3-D16 implemented should work (e.g. NVidia Tegra2,
     Marvell Dove)
  5. @kgardas @mchakravarty

    make StgReturn and cas functions Thumb friendly

    kgardas authored mchakravarty committed
  6. @kgardas @mchakravarty

    Stephen Blackheath's GHC/ARM registerised port

    kgardas authored mchakravarty committed
    This is the Stephen Blackheath's GHC/ARM registerised port
    which is using modified version of LLVM and which provides
    basic registerised build functionality
Commits on Aug 8, 2011
  1. @simonmar

    fix #5381: the -debug RTS could crash with "internal error: MVAR_CLEAN

    simonmar authored
    on mutable list" after a call to tryPutMVar#.
    I don't think this leads to any problems without -debug.
Commits on Aug 6, 2011
  1. @ezyang

    Also include basic time statistics in GCStats.

    ezyang authored
    Signed-off-by: Edward Z. Yang <>
Commits on Aug 5, 2011
  1. @simonmar

    small optimisation for the program in #5367: if the worker thread

    simonmar authored
    being woken already has its wakeup flag set, don't bother signalling
    its condition variable again.
Commits on Aug 1, 2011
  1. @igfoo

    Remove some antiquated C constructs

    igfoo authored
    Fixes validate on amd64/Linux with:
    SRC_CC_OPTS += -Wmissing-parameter-type
    SRC_CC_OPTS += -Wold-style-declaration
    SRC_CC_OPTS += -Wold-style-definition
Commits on Jul 31, 2011
  1. @ezyang

    Implement public interface for GC statistics.

    ezyang authored
    We add a new RTS flag -T for collecting statistics but not giving any
    new inputs.  There is one new struct in rts/storage/GC.h: GCStats.  We
    add two new global counters current_residency and current_slop, which
    are useful for in-program GC statistics.
    See GHC.Stats in base for a Haskell interface to this functionality.
    Signed-off-by: Edward Z. Yang <>
Commits on Jul 25, 2011
  1. @ezyang

    Rename avg_residency to less misleading cumulative_residency.

    ezyang authored
    Signed-off-by: Edward Z. Yang <>
Commits on Jul 24, 2011
  1. @igfoo

    Don't subtract HC_tot_time when calculating mut_user_time

    igfoo authored
    Heap census now happens during GC, so that time is already accounted
    for in GC_tot_cpu.
Commits on Jul 23, 2011
  1. @igfoo

    Remove prototype to mut_user_time_during_GC

    igfoo authored
    The function no longer exists.
  2. @igfoo

    Fix heap profiling times

    igfoo authored
    Now that the heap census runs in the middle of garbage collections,
    the "CPU time" it was calculating included any CPU time used so far
    in the current GC. This could cause CPU time to appear to go down,
    which means hp2ps complained about "samples out of sequence".
    I'm not sure if this is the nicest way to solve this (maybe resurrecting
    mut_user_time_during_GC would be better?) but it gets things working again.
Commits on Jul 22, 2011
  1. @benl23x5
Commits on Jul 21, 2011
  1. @simonmar
Commits on Jul 20, 2011
  1. Update some files for new testsuite tests location

    David Terei authored
  2. @simonmar

    Move the call to heapCensus() into GarbageCollect(), just before

    simonmar authored
    calling resurrectThreads() (fixes #5314).
    This avoids a lot of problems, because resurrectThreads() may
    overwrite some closures in the heap, leaving slop behind.  The bug in
    instances, this fix avoids them all in one go.
  3. @simonmar
  4. @dcoutts
  5. @simonmar

    remove some dead code

    simonmar authored
Commits on Jul 18, 2011
  1. @dcoutts
  2. @dcoutts
Something went wrong with that request. Please try again.