Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Commits on Oct 7, 2011
  1. Allow passing gct as a function paramater in the GC

    This patch adds support for passing the gct variable as a
    paramter in the garbage collector. The GC functions that
    need access to the gct variable are declared with the
    DECLARE_GCT_PARAM macro that will add the gct as an extra
    argument. When calling these function use the GCT_PARAM
    macro to automatically add the gct variable to the function
    The defintion of these two macros are controlled by the
    PASS_GCT_AS_PARAM preprocessor variable. If this variable is
    defined then the above macros are setup to do the parameter
    passing, otherwise these macros will be suitably defined to
    do nothing.
    Currently we only pass the gct variable as a paramter when
    using an llvm compiler C compiler such as clang or llvm-gcc.
  2. Add autoconf support to detect an LLVM-based C compiler

    This patch adds support to the autoconf scripts to detect
    when we are using a C compiler that uses an LLVM back end.
    An LLVM back end does not support all of the extensions use
    by GCC, so we need to perform some conditional compilation
    in the runtime, particularly for handling thread local
    storage and global register variables.
    The changes here will set the CC_LLVM_BACKEND in the
    autoconf scripts if we detect an llvm-based compiler. We use
    this variable to define the llvm_CC_FLAVOR variable that we
    can use in the runtime code to conditionally compile for
  3. Enable pthread_getspecific() tls for LLVM compiler

    LLVM does not support the __thread attribute for thread
    local storage and may generate incorrect code for global
    register variables. We want to allow building the runtime with
    LLVM-based compilers such as llvm-gcc and clang,
    particularly for MacOS.
    This patch changes the gct variable used by the garbage
    collector to use pthread_getspecific() for thread local
    storage when an llvm based compiler is used to build the
  4. @dreixel

    Merge branch 'fix#5464'

    dreixel authored
Commits on Oct 6, 2011
  1. @igfoo
  2. @igfoo

    Use -no_compact_unwind on OS X x86 (as well as x86_64)

    igfoo authored
    Without it we get warnings like:
        ld: warning: could not create compact unwind for .LFB3: non-standard register 5 being saved in prolog
  3. @igfoo
  4. @igfoo
  5. @igfoo

    Silence "text reloc" warnings on OS X / x86

    igfoo authored
    ld gives loads of warnings like:
        ld: warning: text reloc in _base_GHCziArr_unsafeArray_info to _base_GHCziArr_unsafeArray_closure
    when linking any program. We're not sure whether this is something we
    ought to fix, but for now we use the -Wl,-read_only_relocs,suppress flag
    to silence them.
  6. @igfoo
  7. @dreixel
  8. @igfoo
  9. @simonmar
  10. @simonmar
  11. @simonmar

    Use a custom dead-code analyser instead of calling the occurrence ana…

    simonmar authored
    In CorePrep we used to call the occurrence analyser to drop dead code
    (see Note [Dead code in CorePrep]), but the occurrence analyser
    sometimes introduces new let bindings for case binders.  This was
    leading to the bug in #5433: the let binding introduced was for an
    unlifted value, and the code generator is not expecting to see let
    bindings of unlifted values (CorePrep is supposed to eliminate them).
    We don't want this let binding anyway, so instead of using the
    occurrence analyser here we have a simple custom dead-code analyser.
  12. @simonpj

    Wibbles from Simon and Pedro

    simonpj authored
  13. @igfoo

    Follow libffi update

    igfoo authored
Commits on Oct 5, 2011
  1. @igfoo

    Fix dynCompileExpr

    igfoo authored
    It broke during the ic_exports tidyup
    (e.g. commit 5cd39aa).
  2. @dreixel

    Some more refactoring.

    dreixel authored
  3. @simonmar

    Build system commentary

    simonmar authored
    Add documentation describing all the variables that contain options
    for Haskell compilations, what they mean and where they are (or can
    be) defined.
    In due course we should expand this to cover all the build system
    variables, and move it to the wiki, but this is a start.
  4. @simonmar
  5. @simonmar

    fix Note cross-ref

    simonmar authored
Commits on Oct 4, 2011
  1. @igfoo
  2. Fixed typo

    Daniel Fischer authored
  3. @dreixel
  4. @dreixel

    Refactor the implementation.

    dreixel authored
  5. @simonpj

    Remove unnecessary references to -fglagow-exts

    simonpj authored
    replacing them by the appropriate flag.
    Suggested by Trac #5526.
  6. @simonpj

    Change error message slightly

    simonpj authored
    in response to Neil's suggestion on Trac #4877
Commits on Oct 3, 2011
  1. @simonpj
  2. @igfoo

    Follow changes to HValue/Any handling

    igfoo authored
    Also removed the type argument to Any in primops.txt.pp. I don't
    see why we need it, and it now breaks haddocking GHC.Prim.
  3. @igfoo
  4. @igfoo

    Handle HValues slightly nicer

    igfoo authored
    We now have addrToAny# rather than addrToHValue#, and both addrToAny#
    and mkApUpd0# return "Any" rather than "a". This makes it a little
    easier to see what's going on, and fixes a warning in ByteCodeLink.
  5. @igfoo

    Fix typo

    igfoo authored
Commits on Oct 2, 2011
  1. @igfoo

    Fix validate with old bootstrapping compilers

    igfoo authored
    They weren't smart enough to see our GADT pattern matches are complete,
    so gave a warning.
  2. @igfoo
Something went wrong with that request. Please try again.