Switch branches/tags
Commits on Mar 12, 2009
  1. FIX #3079, dodgy parsing of LANGUAGE pragmas

    simonmar committed Mar 12, 2009
    I ended up rewriting this horrible bit of code, using (yikes) lazy I/O
    to slurp in the source file a chunk at a time.  The old code tried to
    read the file a chunk at a time, but failed with LANGUAGE pragmas
    because the parser for LANGUAGE has state and the state wasn't being
    saved between chunks.  We're still closing the Handle eagerly, so
    there shouldn't be any problems here.
Commits on Mar 11, 2009
  1. FIX #2816 (correct unicode output for :type/:kind)

    simonmar committed Mar 11, 2009
    This is just a hack, since we don't have correct unicode output for
    Handles in general, I just fixed a couple of places where we were not
    converting to UTF-8 for output.
  2. Fix #2992: don't create a named event

    simonmar committed Mar 11, 2009
    Evidently I misread the docs for CreateEvent: if you pass a name to
    CreateEvent, then it creates a single shared system-wide Event with
    that name.  So all Haskell processes on the machine were sharing the
    same Event object.  duh.
  3. FIX #2832: Setting SplitObjs=NO doesn't disable -split-objs in GHC

    simonmar committed Mar 11, 2009
    Now ghc --info reports whether-split-objs is supported, rather than
    whether the libraries were built using -split-objs.
Commits on Mar 10, 2009
Commits on Mar 9, 2009
  1. Fix a bug which sometimes caused extra major GCs to be performed

    simonmar committed Mar 9, 2009
    A long-running GC would cause the timer signal to declare the system
    to be idle, which would cause a major GC immediately following the
    current GC.  This only happened with +RTS -N2 or greater.
  2. Redesign 64-bit HEAP_ALLOCED (FIX #2934 at the same time)

    simonmar committed Mar 9, 2009
    After much experimentation, I've found a formulation for HEAP_ALLOCED
    that (a) improves performance, and (b) doesn't have any race
    conditions when used concurrently.  GC performance on x86_64 should be
    improved slightly.  See extensive comments in MBlock.h for the
Commits on Mar 8, 2009
  1. Don't force HSCOLOUR_SRCS = YES when validating

    igfoo committed Mar 8, 2009
    This removes a burden from developers, and I can't remember an
    occasion where it would have caught a regression.
Commits on Mar 7, 2009
  1. Generate lots of __inline_me during vectorisation

    Roman Leshchinskiy committed Mar 7, 2009
  2. Special-case desugaring of simple parallel array comprehensions

    Roman Leshchinskiy committed Mar 7, 2009
Commits on Mar 6, 2009
  1. Partial fix for #2917

    simonmar committed Mar 6, 2009
     - add newAlignedPinnedByteArray# for allocating pinned BAs with
       arbitrary alignment
     - the old newPinnedByteArray# now aligns to 16 bytes
    Foreign.alloca will use newAlignedPinnedByteArray#, and so might end
    up wasting less space than before (we used to align to 8 by default).
    Foreign.allocaBytes and Foreign.mallocForeignPtrBytes will get 16-byte
    aligned memory, which is enough to avoid problems with SSE
    instructions on x86, for example.
    There was a bug in the old newPinnedByteArray#: it aligned to 8 bytes,
    but would have failed if the header was not a multiple of 8
    (fortunately it always was, even with profiling).  Also we
    occasionally wasted some space unnecessarily due to alignment in
    I haven't done anything about Foreign.malloc/mallocBytes, which will
    give you the same alignment guarantees as malloc() (8 bytes on
    Linux/x86 here).
  2. Add CONTRACT to the pragmas that we recognise.

    igfoo committed Mar 6, 2009
    It's used by ESC/Haskell.
  3. Fix warning

    Roman Leshchinskiy committed Mar 6, 2009
  4. Try not to avoid vectorising purely scalar functions

    Roman Leshchinskiy committed Mar 6, 2009
Commits on Mar 5, 2009
  1. Add --version to runghc. Trac #2757.

    igfoo committed Mar 5, 2009
    We use the GHC version number, as the old runghc one doesn't seem very
  2. add final newlines

    simonmar committed Mar 5, 2009
    My Windows build has started complaining about lacking final newlines,
    I'm not entirely sure why.
  3. add --with-ld=c:/mingw/bin/ld

    simonmar committed Mar 5, 2009
  4. On OS X/x86, tell gcc to generate instructions for i686. Fixes trac #…

    igfoo committed Mar 5, 2009
    By default, gcc on OS X will generate SSE instructions, which need
    things 16-byte aligned, but we don't 16-byte align things. Thus drop
    back to generic i686 compatibility.
  5. By default, only HsColour the docs if we find HsColour. Fixes trac #3…

    igfoo committed Mar 5, 2009
    If you manually set HSCOLOUR_SRCS=YES then the build will fail if
    HsColour wasn't found.
  6. Make -fdicts-cheap cope with implication constraints committed Mar 5, 2009
    See the Note [Dictionary-like types] in TcType for the full story here
    Should only affect programs that use -fdicts-cheap, for
    which you'll get better arities
  7. Finally fix Trac #3066 committed Mar 5, 2009
    This is a fix to 
      Tue Mar  3 17:42:58 GMT 2009
        * Fix Trac #3066: checking argument types in foreign calls
    which I embarassingly got wrong.
    Have to be careful when expanding recursive newtypes.
    Pls merge.
Commits on Mar 4, 2009
  1. Fix spelling (Trac#3069) committed Mar 4, 2009
  2. Layout only committed Mar 4, 2009
Commits on Mar 3, 2009
  1. Fix #3067: GHCi panics with 'initTc:LIE' while :stepping on code with…

    pepeiborra committed Mar 3, 2009
    … funny types
    The problem is that calls to boxyUnify would panic if the types involved
    contained type functions. 
    It looks like one should wrap these calls with getLIE, although I don't
    really know what I am doing here
  2. Fix Trac #3066: checking argument types in foreign calls committed Mar 3, 2009
    When checking argument types in a foreign call we were stupidly
    looking through foralls.  The fix is easy.
    Merge to 6.10.2
  3. Fix Trac #3057 in deriving Functor committed Mar 3, 2009
    The universal type variables of a data constructor are not necessarily
    identical to those of its parent type constructor, especially if the
    data type is imported.
    While I was at it, I did a significant refactoring to make all this
    traversal of types more comprehensible, by adding the data type