Permalink
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
    call.
    
    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.
    committed Jul 5, 2011
  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
    LLVM.
    committed Jun 28, 2011
  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
    runtime.
    committed Jun 28, 2011
  4. Merge branch 'fix#5464'

    dreixel committed Oct 7, 2011
Commits on Oct 6, 2011
  1. Use -no_compact_unwind on OS X x86 (as well as x86_64)

    Without it we get warnings like:
        ld: warning: could not create compact unwind for .LFB3: non-standard register 5 being saved in prolog
    igfoo committed Oct 6, 2011
  2. Silence "text reloc" warnings on OS X / x86

    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.
    igfoo committed Oct 6, 2011
  3. Use a custom dead-code analyser instead of calling the occurrence ana…

    …lyser.
    
    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.
    simonmar committed Oct 6, 2011
  4. Wibbles from Simon and Pedro

    simonpj committed Oct 6, 2011
  5. Follow libffi update

    igfoo committed Oct 5, 2011
Commits on Oct 5, 2011
  1. Fix dynCompileExpr

    It broke during the ic_exports tidyup
    (e.g. commit 5cd39aa).
    igfoo committed Oct 5, 2011
  2. Some more refactoring.

    dreixel committed Oct 5, 2011
  3. Build system commentary

    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.
    simonmar committed Oct 3, 2011
  4. fix Note cross-ref

    simonmar committed Oct 3, 2011
Commits on Oct 4, 2011
  1. Fixed typo

    Daniel Fischer committed Oct 4, 2011
  2. Refactor the implementation.

    dreixel committed Oct 4, 2011
  3. Remove unnecessary references to -fglagow-exts

    replacing them by the appropriate flag.
    
    Suggested by Trac #5526.
    simonpj committed Oct 4, 2011
  4. Change error message slightly

    in response to Neil's suggestion on Trac #4877
    simonpj committed Oct 4, 2011
Commits on Oct 3, 2011
  1. Follow changes to HValue/Any handling

    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.
    igfoo committed Oct 3, 2011
  2. Handle HValues slightly nicer

    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.
    igfoo committed Oct 3, 2011
  3. Fix typo

    igfoo committed Oct 3, 2011
Commits on Oct 2, 2011
  1. Fix validate with old bootstrapping compilers

    They weren't smart enough to see our GADT pattern matches are complete,
    so gave a warning.
    igfoo committed Oct 2, 2011