Skip to content
Commits on Jun 5, 2012
  1. @simonmar @pcapriotti
  2. @simonmar @pcapriotti

    checkStability: respect -fforce-recomp (#6105)

    MERGED from commit c95342c
    simonmar committed with pcapriotti May 22, 2012
  3. @pcapriotti
  4. @simonmar @pcapriotti

    escape(): don't forget the final '\0'

    Hopefully should fix random "bad heap profile" failures in the nightly
    builds.
    
    MERGED from commit 634fb8d
    simonmar committed with pcapriotti May 23, 2012
Commits on Jun 1, 2012
  1. @igfoo
  2. @igfoo

    Update ANNOUNCE for 7.4.1

    igfoo committed Jun 1, 2012
Commits on May 30, 2012
  1. @igfoo

    MERGE: Be less aggressive about the result discount

    Merge of:
        commit 4fa3f16
        Author: Simon Peyton Jones <simonpj@microsoft.com>
        Date:   Mon May 28 17:33:42 2012 +0100
    
    Be less aggressive about the result discount
    
    This patch fixes Trac #6099 by reducing the result discount in CoreUnfold.conSize.
    See Note [Constructor size and result discount] in CoreUnfold.
    
    The existing version is definitely too aggressive. Simon M found it an
    "unambiguous win" but it is definitely what led to the bloat. In a function
    with a lot of case branches, all returning a constructor, the discount could
    grow arbitrarily large.
    
    I also had to increase the -funfolding-creation-threshold from 450 to 750,
    otherwise some functions that should inline simply never get an unfolding.
    (The massive result discount was allow the unfolding to appear before.)
    
    The nofib results are these, picking a handful of outliers to show.
    
            Program           Size    Allocs   Runtime   Elapsed  TotalMem
    --------------------------------------------------------------------------------
             fulsom          -0.5%     -1.6%     -2.8%     -2.6%    +31.1%
           maillist          -0.2%     -0.0%      0.09      0.09     -3.7%
             mandel          -0.4%     +6.6%      0.12      0.12     +0.0%
           nucleic2          -0.2%    +18.5%      0.11      0.11     +0.0%
            parstof          -0.4%     +4.0%      0.00      0.00     +0.0%
    --------------------------------------------------------------------------------
                Min          -0.9%     -1.6%    -19.7%    -19.7%     -3.7%
                Max          +0.3%    +18.5%     +2.7%     +2.7%    +31.1%
     Geometric Mean          -0.3%     +0.4%     -3.0%     -3.0%     +0.2%
    
    Turns out that nucleic2 has a function
      Main.$wabsolute_pos =
        \ (ww_s4oj :: Types.Tfo) (ww1_s4oo :: Types.FloatT)
          (ww2_s4op :: Types.FloatT) (ww3_s4oq :: Types.FloatT) ->
          case ww_s4oj
          of _
          { Types.Tfo a_a1sS b_a1sT c_a1sU d_a1sV e_a1sW f_a1sX g_a1sY h_a1sZ i_a1t0 tx_a1t1 ty_a1t2 tz_a1t3 ->
          (# case ww1_s4oo of _ { GHC.Types.F# x_a2sO ->
             case a_a1sS of _ { GHC.Types.F# y_a2sS ->
             case ww2_s4op of _ { GHC.Types.F# x1_X2y9 ->
             case d_a1sV of _ { GHC.Types.F# y1_X2yh ->
             case ww3_s4oq of _ { GHC.Types.F# x2_X2yj ->
             case g_a1sY of _ { GHC.Types.F# y2_X2yr ->
             case tx_a1t1 of _ { GHC.Types.F# y3_X2yn ->
             GHC.Types.F#
               (GHC.Prim.plusFloat#
                  (GHC.Prim.plusFloat#
                     (GHC.Prim.plusFloat#
                        (GHC.Prim.timesFloat# x_a2sO y_a2sS)
                        (GHC.Prim.timesFloat# x1_X2y9 y1_X2yh))
                     (GHC.Prim.timesFloat# x2_X2yj y2_X2yr))
                  y3_X2yn)
             } } }}}}},
    
            <similar>,
            <similar> )
    
    This is pretty big, but inlining it does get rid of that F# allocation.
    But we'll also get rid of it with deep CPR: Trac #2289. For now we just
    accept the change.
    igfoo committed May 30, 2012
Commits on May 16, 2012
  1. @pcapriotti
  2. @pcapriotti

    Update 7.4.2 release notes.

    pcapriotti committed May 16, 2012
Commits on May 8, 2012
  1. @pcapriotti

    Build fix.

    pcapriotti committed May 8, 2012
  2. @simonmar @pcapriotti

    Catch illegal imports earlier (#6007)

    MERGED from commit b6e2826
    simonmar committed with pcapriotti Apr 27, 2012
  3. @simonmar @pcapriotti

    hs_init(): cope with argc and/or argv being NULL (#6006)

    MERGED from commit 4ca2818
    simonmar committed with pcapriotti Apr 27, 2012
  4. @pcapriotti

    Cast memory primops in the C backend (#5976)

    To prevent conflicts with GCC builtins, generate identical code for
    calls to mem primos and FFI calls.
    
    Based on a patch by Joachim Breitner.
    MERGED from commit 40c1106
    pcapriotti committed May 2, 2012
Commits on May 3, 2012
  1. @simonmar @igfoo

    Omit -osuf/-odir -hisuf/-hidir and -stubdir from the flag checker

    The reasoning is that GHC will only skip recompilation if it has found
    a valid up-to-date object file and .hi file, so there is no need to
    also check that these flags have not changed, and indeed there are
    valid reasons to want to change them.
    simonmar committed with igfoo Feb 28, 2012
  2. @NathanHowell @igfoo

    Compile link .note section separately from main.c

    Fixes gas errors when -g is enabled:
    
    Error: can't resolve `.debug-ghc-link-info' {.debug-ghc-link-info section} - `.Ltext0' {.text section}
    NathanHowell committed with igfoo Feb 15, 2012
Commits on Apr 27, 2012
  1. @pcapriotti

    Doc: updated list of warnings not enabled by -Wall (#4817)

    MERGED from commit 18c2a2f
    pcapriotti committed Apr 27, 2012
  2. @pcapriotti

    Flags documentation: -fwarn-unrecognized-pragmas is enabled by -Wall …

    …(#6050)
    
    MERGED from commit 44098b3
    pcapriotti committed Apr 27, 2012
Commits on Apr 26, 2012
  1. @simonpj @pcapriotti

    Fix worker/wrapper for CPR functions

    A long-standing and egregious bug in the worker/wrapper code meant
    that some functions with the CPR property weren't getting a CPR
    w/w. And that had the effect of making a tail-recursive function not
    tail recursive.  As well as increasing allocation.
    
    Fixes Trac #5920, and #5997.
    
    Nofib results (highlights):
    
            Program           Size    Allocs   Runtime   Elapsed  TotalMem
    --------------------------------------------------------------------------------
             boyer2          -0.1%    -15.3%      0.01      0.01     +0.0%
            mandel2          -0.0%     -8.1%      0.01      0.01     +0.0%
               para          -0.1%    -11.8%     -7.9%     -7.8%     +0.0%
    --------------------------------------------------------------------------------
                Min          -0.1%    -15.3%     -7.9%     -7.8%    -33.3%
                Max          +0.0%     +0.2%     +6.3%     +6.3%     +3.7%
     Geometric Mean          -0.0%     -0.4%     +0.1%     +0.1%     -0.5%
    
    Looks like a clear win.  And I have not even recompiled the libraries, so
    it'll probably be a bit better in the ed.
    
    MERGED from commit b8ff444
    simonpj committed with pcapriotti Apr 13, 2012
Commits on Apr 16, 2012
  1. @pcapriotti

    Update 7.4.2 release notes.

    pcapriotti committed Apr 16, 2012
Commits on Apr 12, 2012
  1. @simonmar @pcapriotti

    Fix crash with tiny initial stack size (#5993)

    MERGED from commit 5eabdc1
    simonmar committed with pcapriotti Apr 12, 2012
  2. @igfoo @pcapriotti

    Fix a #define

    I don't think it was causing any problems, but
        TimeToUS(x+y)
    would have evaluated to
        x + (y / 1000)
    
    MERGED from commit 54121ff
    
    On the 7.4 branch, this was causing a wrong conversion in
    getDelayTarget.
    
    Signed-off-by: Paolo Capriotti <p.capriotti@gmail.com>
    igfoo committed with pcapriotti Jan 15, 2012
  3. @simonmar @pcapriotti

    Disable the timer signal while blocked in select() (#5991)

    The threaded RTS had a fix for this a long time ago (#1623) but this
    patch applies a similar fix to the non-threaded RTS.
    
    MERGED from commit dd24d6b
    simonmar committed with pcapriotti Apr 11, 2012
  4. @simonmar @pcapriotti

    Improve the handling of threadDelay in the non-threaded RTS

    Firstly, we were rounding up too much, such that the smallest delay
    was 20ms.  Secondly, there is no need to use millisecond resolution on
    a 64-bit machine where we have room in the TSO to use the normal
    nanosecond resolution that we use elsewhere in the RTS.
    
    MERGED from commit 9d26519
    simonmar committed with pcapriotti Apr 11, 2012
Commits on Apr 6, 2012
  1. @pcapriotti

    Fix GHC API with respect to safe haskell. (#5989)

    This fixes haddock so it correctly reports
    the safe haskell mode of a module.
    David Terei committed with pcapriotti Apr 2, 2012
  2. @pcapriotti

    Update safe haskell error/warn formatting

    David Terei committed with pcapriotti Apr 3, 2012
  3. @pcapriotti

    Fix tracking of reason safe inference failed. (#5988)

    David Terei committed with pcapriotti Apr 2, 2012
  4. @pcapriotti
  5. @simonpj @pcapriotti

    Make the LocalRdrEnv keep track of all the Names that are in scope

    This allows us to give a sensible error message when a Template Haskell
    splice generates an occurrence without a binding site.
    
    Fixes Trac #5959 and #5971
    
    MERGED from commit cb5a3f2
    simonpj committed with pcapriotti Mar 28, 2012
Commits on Apr 2, 2012
  1. @pcapriotti

    Revert "Refer to Control.Concurrent instead of GHC.Conc"

    This reverts commit 6a217ed.
    pcapriotti committed Apr 2, 2012
  2. @pcapriotti
Commits on Apr 1, 2012
  1. @simonmar @pcapriotti

    Fix a bug in threadStackOverflow() (maybe #5214)

    If we overflow the current stack chunk and copy its entire contents
    into the next stack chunk, we could end up with two UNDERFLOW_FRAMEs.
    We had a special case to catch this in the case when the old stack
    chunk was the last one (ending in STOP_FRAME), but it went wrong for
    other chunks.
    
    I found this bug while poking around in the core dump attached to
    options and running the nofib suite: imaginary/wheel_sieve2 crashed
    with +RTS -kc600 -kb300.
    
    I don't know if this is the cause of all the symptoms reported in
    
    MERGED from commit 734f1d4
    simonmar committed with pcapriotti Mar 28, 2012
Commits on Mar 31, 2012
  1. @pcapriotti
Commits on Mar 30, 2012
  1. @pcapriotti

    Update documentation of DatatypeContexts (#5964)

    MERGED from commit ac2fbb4
    pcapriotti committed Mar 30, 2012
  2. @bgamari @pcapriotti

    Add linker support for ELF on ARM

    Add support for ELF objects on ARM to the runtime linker. While the list of
    relocation types in the "ELF for the ARM Architecture" specification spans four
    pages, we thankfully only see a handful of these in the wild. Thus, at the
    moment we only support the following .rel relocation types,
    
     * R_ARM_ABS32
     * R_ARM_TARGET1
     * R_ARM_REL32
     * R_ARM_CALL
     * R_ARM_JUMP24
     * R_ARM_MOVT_ABS
     * R_ARM_MOVW_ABS_NC
     * R_ARM_THM_CALL
     * R_ARM_THM_JUMP24
     * R_ARM_THM_MOVT_ABS
     * R_ARM_THM_MOVW_ABS_NC
     * R_ARM_THM_JUMP8
     * R_ARM_THM_JUMP11
    
    Signed-off-by: Ben Gamari <bgamari.foss@gmail.com>
    
    MERGED from commit b22501b
    bgamari committed with pcapriotti Oct 12, 2011
Commits on Mar 28, 2012
  1. @dcoutts @pcapriotti

    Update the user guide with details on new flag +RTS -lu

    It's for user events emitted from Haskell code, like traceEvent.
    Fixes #5790
    
    MERGED from commit 050f714
    dcoutts committed with pcapriotti Mar 22, 2012
Something went wrong with that request. Please try again.