1. 28 Aug, 2014 30 commits
  2. 27 Aug, 2014 2 commits
  3. 26 Aug, 2014 1 commit
    • Sergei Trofimovich's avatar
      UNREG: fix emission of large Integer literals in C codegen · 43f1b2ec
      Sergei Trofimovich authored
      On amd64/UNREG build there is many failing tests trying
      to deal with 'Integer' types.
      Looking at 'integerConversions' test I've observed
      invalid C code generated by GHC.
      Cmm code
          CInt a = -1; (a == -1)
      yields 'False' with optimisations enabled via the following C code:
          StgWord64 a = (StgWord32)0xFFFFffffFFFFffffu; (a == 0xFFFFffffFFFFffffu)
      The patch fixes it by shrinking emitted literals to required sizes:
          StgWord64 a = (StgWord32)0xFFFFffffu; (a == 0xFFFFffffu)
      Thanks to Reid Barton for tracking down and fixing the issue.
      Signed-off-by: default avatarSergei Trofimovich <slyfox@gentoo.org>
      Test Plan: validate on UNREG build (amd64, x86)
      Reviewers: simonmar, rwbarton, austin
      Subscribers: hvr, simonmar, ezyang, carter
      Differential Revision: https://phabricator.haskell.org/D173
  4. 25 Aug, 2014 7 commits
    • Simon Peyton Jones's avatar
      Improve documentation of record wildcards · 67a6ade9
      Simon Peyton Jones authored
      In particular mention that they aren't allowed for record updates.
      Triggered by Trac #9437
    • Simon Peyton Jones's avatar
      Two buglets in record wild-cards (Trac #9436 and #9437) · 06600e74
      Simon Peyton Jones authored
      of named fields, whereas the code in RnPat.rnHsRecFields is
      much better set up to do so.
      Both easily fixed.
    • Simon Peyton Jones's avatar
      Check for un-saturated type family applications · ee4501bb
      Simon Peyton Jones authored
      This patch corrects an egregious error introduced by:
        commit 022f8750
        Author: Simon Peyton Jones <simonpj@microsoft.com>
        Date:   Thu May 15 16:07:04 2014 +0100
          Refactoring around TyCon.isSynTyCon
          * Document isSynTyCon better
          * Add isTypeSyonymTyCon for regular H98 type synonyms
          * Use isTypeSynonymTyCon rather than isSynTyCon where
            the former is really intended
      At this particular spot in TcValidity we really do mean
      isSynTyCon and not isTypeSynonymTyCon.
      Fixes Trac #9433
    • Simon Peyton Jones's avatar
      Make Core Lint check for un-saturated type applications · 8ff46714
      Simon Peyton Jones authored
      Un-saturated type-family and type-synonym applications are
      detected in the front end, but for some reason Lint wasn't
      looking for them.
      I came across this when wondering why Trac #9433 didn't give
      a Core Lint error
    • Simon Peyton Jones's avatar
      More refactoring in SpecConstr · 5c4df288
      Simon Peyton Jones authored
      This patch should make no change in behaviour.
       * Make RhsInfo into a record
       * Include ri_rhs_usg, which previously travelled around separately
       * Introduce specRec, specNonRec, and
         make them return [OneSpec] rather than SpecInfo
    • Simon Peyton Jones's avatar
      Do not duplicate call information in SpecConstr (Trac #8852) · af4bc31c
      Simon Peyton Jones authored
      This long-standing and egregious bug meant that call information was
      being gratuitously copied, leading to an exponential blowup in the
      number of calls to be examined when function definitions are deeply
      nested.  That is what has been causing the blowup in SpecConstr's
      running time, not (as I had previously supposed) generating very large code.
      See Note [spec_usg includes rhs_usg]
    • Simon Peyton Jones's avatar
      Introduce the Call data types · c0fe1d9e
      Simon Peyton Jones authored
      This is just a small refactoring that makes the code a bit clearer,
      using a data type instead of a triple.  We get better pretty-printing too.