Permalink
Switch branches/tags
Commits on Oct 8, 2012
  1. Merge ../ghc

    rleshchinskiy committed Oct 8, 2012
  2. Put the DynFlags in a global variable for tracing; fixes #7304

    This is an ugly kludge to make a DynFlags value available for the
    'trace' functions. It may not be the value we really ought to use,
    but it'll be good enough for the pretty-printer to use.
    
    Ideally we'd pass the real DynFlags down to all the trace calls,
    but this will do for now at least.
    igfoo committed Oct 8, 2012
  3. untab

    simonmar committed Oct 8, 2012
  4. Fix a dependency bug in the build system

    I've been meaning to track this one down for a long time.
    Occasionally a build will fail with an error about a .so library being
    truncated; the reason was that we weren't tracking the dependencies of
    the GHC stage2 .so library correctly.
    simonmar committed Oct 5, 2012
  5. fix a warning

    simonmar committed Oct 5, 2012
  6. expand tabs

    simonmar committed Oct 5, 2012
  7. Produce new-style Cmm from the Cmm parser

    The main change here is that the Cmm parser now allows high-level cmm
    code with argument-passing and function calls.  For example:
    
    foo ( gcptr a, bits32 b )
    {
      if (b > 0) {
         // we can make tail calls passing arguments:
         jump stg_ap_0_fast(a);
      }
    
      return (x,y);
    }
    
    More details on the new cmm syntax are in Note [Syntax of .cmm files]
    in CmmParse.y.
    
    The old syntax is still more-or-less supported for those occasional
    code fragments that really need to explicitly manipulate the stack.
    However there are a couple of differences: it is now obligatory to
    give a list of live GlobalRegs on every jump, e.g.
    
      jump %ENTRY_CODE(Sp(0)) [R1];
    
    Again, more details in Note [Syntax of .cmm files].
    
    I have rewritten most of the .cmm files in the RTS into the new
    syntax, except for AutoApply.cmm which is generated by the genapply
    program: this file could be generated in the new syntax instead and
    would probably be better off for it, but I ran out of enthusiasm.
    
    Some other changes in this batch:
    
     - The PrimOp calling convention is gone, primops now use the ordinary
       NativeNodeCall convention.  This means that primops and "foreign
       import prim" code must be written in high-level cmm, but they can
       now take more than 10 arguments.
    
     - CmmSink now does constant-folding (should fix #7219)
    
     - .cmm files now go through the cmmPipeline, and as a result we
       generate better code in many cases.  All the object files generated
       for the RTS .cmm files are now smaller.  Performance should be
       better too, but I haven't measured it yet.
    
     - RET_DYN frames are removed from the RTS, lots of code goes away
    
     - we now have some more canned GC points to cover unboxed-tuples with
       2-4 pointers, which will reduce code size a little.
    simonmar committed Oct 3, 2012
Commits on Oct 5, 2012
  1. Add a ToDo comment

    simonmar committed Aug 9, 2012
Commits on Oct 4, 2012
  1. Make adjust_ul handle BCOs

    We never ran into this before, because replace_osuf was almost always
    False (i.e. we were almost always using the vanilla way when using
    bytecode, so adjust_ul wasn't needed). Now that we can have the dynamic
    way on by default many tests were failing because of it.
    igfoo committed Oct 4, 2012
  2. Load the right object files in ghci

    When we have a dynamic ghc, we need to load the dynamic object files
    igfoo committed Oct 4, 2012
  3. Do not do type-class defaulting if there are insoluble constraints

    Type-class defaulting won't help with those insolubles,
    and it does make arbitrary choices that obfuscate the
    error messages from the insolubles.
    simonpj committed Oct 4, 2012
  4. Improve erorr location for Given errors

    Note [Inaccessible code].
    Fixes Trac #7293.
    simonpj committed Oct 4, 2012
  5. Do not create extra evidence given/derived variables in the Refl case…

    … of rewriteCtFlavor
    
    Previously this optimisation only applied in the Wanted case,
    but it works perfectly well in the others too, and saves
    redundant evidence bindings.
    simonpj committed Oct 4, 2012
  6. Improve debug tracing slighty

    simonpj committed Oct 4, 2012
  7. Comments only

    simonpj committed Oct 4, 2012
  8. Actually build things the dynamic way

    Things went back to being statically linked again once I added an
    explicit -static flag to the vanilla way.
    igfoo committed Oct 4, 2012
Commits on Oct 3, 2012
  1. Windows install fix

    igfoo committed Oct 3, 2012
  2. Fix Windows build

    igfoo committed Oct 3, 2012
  3. Fix the recompilation check for dynamic libraries

    I've put mkSOName in HscTypes for now; I'm not sure what the best place
    for it is.
    igfoo committed Oct 3, 2012
  4. Add a couple more RTS ways

    There are used by the testsuite when dynamic-by-default is on
    igfoo committed Oct 3, 2012
  5. The non-dynamic ways now need to explicitly use -static

    as x86_64/Linux now defaults to -dynamic
    igfoo committed Oct 3, 2012
  6. Build the dynamic way by default on Linux/amd64

    This required various build system changes to get the build to go
    through.
    
    In the inplace shell wrappers, we set LD_LIBRARY_PATH to allow programs
    to find their libraries. In the future, we might change the inplace tree
    to be the same shape as an installed tree instead. However, this would
    mean changing the way we do installation, as currently we use cabal's
    installation methods to install the libraries, but that only works if
    the libraries are under libraries/foo/dist-install/build/..., rather
    than in inplace/lib/...
    igfoo committed Sep 25, 2012
  7. This big patch re-factors the way in which arrow-syntax is handled

    All the work was done by Dan Winograd-Cort.
    
    The main thing is that arrow comamnds now have their own
    data type HsCmd (defined in HsExpr).  Previously it was
    punned with the HsExpr type, which was jolly confusing,
    and made it hard to do anything arrow-specific.
    
    To make this work, we now parameterise
      * MatchGroup
      * Match
      * GRHSs, GRHS
      * StmtLR and friends
    over the "body", that is the kind of thing they
    enclose.  This "body" parameter can be instantiated to
    either LHsExpr or LHsCmd respectively.
    
    Everything else is really a knock-on effect; there should
    be no change (yet!) in behaviour.  But it should be a sounder
    basis for fixing bugs.
    simonpj committed Oct 3, 2012
  8. Typo

    dreixel committed Oct 3, 2012
Commits on Oct 2, 2012