1. 22 Aug, 2014 2 commits
  2. 21 Aug, 2014 1 commit
  3. 19 Aug, 2014 8 commits
  4. 14 Aug, 2014 1 commit
    • Herbert Valerio Riedel's avatar
      Implement new CLZ and CTZ primops (re #9340) · e0c1767d
      Herbert Valerio Riedel authored
      This implements the new primops
      
        clz#, clz32#, clz64#,
        ctz#, ctz32#, ctz64#
      
      which provide efficient implementations of the popular
      count-leading-zero and count-trailing-zero respectively
      (see testcase for a pure Haskell reference implementation).
      
      On x86, NCG as well as LLVM generates code based on the BSF/BSR
      instructions (which need extra logic to make the 0-case well-defined).
      
      Test Plan: validate and succesful tests on i686 and amd64
      
      Reviewers: rwbarton, simonmar, ezyang, austin
      
      Subscribers: simonmar, relrod, ezyang, carter
      
      Differential Revision: https://phabricator.haskell.org/D144
      
      GHC Trac Issues: #9340
      e0c1767d
  5. 12 Aug, 2014 6 commits
  6. 11 Aug, 2014 2 commits
  7. 10 Aug, 2014 3 commits
  8. 09 Aug, 2014 3 commits
  9. 08 Aug, 2014 2 commits
    • Simon Peyton Jones's avatar
      Implement the final change to INCOHERENT from Trac #9242 · dff0623d
      Simon Peyton Jones authored
      The change here is to make INCOHERENT slightly more permissive:
      
        if the selected candidate is incoherent
        then ignore all unifying candidates
      
      This allows us to move the {-# INCOHERENT #-} pragma from
        from   instance Typeable (f a)
        to     Typeable (n:Nat) and Typable (s:Symbol)
      where it belongs, and where Trac #9242 said it should be.
      
      I don't think this will affect anyone.
      
      I've updated the user manual.
      dff0623d
    • Mateusz Kowalczyk's avatar
      Update Haddock to attoparsec-0.12.1. Adjust perf. · 7d52e628
      Mateusz Kowalczyk authored
      Please adjust the perf number on your platform if/when it fails. It
      should improve slightly. Updates submodule.
      7d52e628
  10. 07 Aug, 2014 7 commits
    • Joachim Breitner's avatar
      Update perf number for T5642 · d0ee4eb0
      Joachim Breitner authored
      This  +4% increase (from -1% before) was caused by 1fc60ea1. But that
      commit did not cause any other regressions, so I’m not investigating
      further.
      d0ee4eb0
    • kgardas's avatar
      testsuite: add signal_exit_code function to the driver · 2cca0c06
      kgardas authored
      Summary:
      New function signal_exit_code hides differences between target platforms
      handling of fatal error signals and the applications' exit codes. E.g.
      on Linux the application exit code which receives fatal error signal
      is encoded as 128 + signal value. On the other hand on Solaris
      the application exit code is signal value alone.
      
      Test Plan: validated on Linux and tested on Solaris
      
      Reviewers: austin, simonmar
      
      Reviewed By: simonmar
      
      Subscribers: phaskell, simonmar, relrod, ezyang, carter
      
      Differential Revision: https://phabricator.haskell.org/D122
      2cca0c06
    • Edward Z. Yang's avatar
      Permanently accept the Haddock performance number bump, and add some TODOs · d026e9e8
      Edward Z. Yang authored
      I bisected the performance difference in Haddock and found it was due to
      d6aec63c009c4e57181900eb03847d7dc0fc3c7c, which I accidentally picked up
      when updating Haddock 00b8f8c5.  The
      performance regression is justified by the fact that we are now actually
      processing URLs in Haddock comments that we were not previously, so
      there would be more allocation.  Time use was not affected.
      
      The TODOs simply reflect the fact that we need updated numbers for
      32-bit Linux and Windows.  Please add them when you get a chance.
      Signed-off-by: default avatarEdward Z. Yang <ezyang@cs.stanford.edu>
      d026e9e8
    • Simon Peyton Jones's avatar
      Test Trac #9390 · 2990e97f
      Simon Peyton Jones authored
      2990e97f
    • kgardas's avatar
      24a2e49e
    • kgardas's avatar
      fix linker_unload test for ghc configurations with --with-gmp-libraries · 2b3c6216
      kgardas authored
      The issue is presented in Makefile logic where it attempts to start
      linker_unload and pass it HSinteger-gmp library for unload,
      but the library name is prefixed with two directories names. The first
      is of ghc's integer-gmp/build itself and another is the directory name
      passed to --with-gmp-libraries= configure parameter. The testcase then
      fails on unloading integer-gmp/build directory thinking that this is
      a library to unload. The issue is solved by cuting (head -1) the first
      library name from the list and using this for unloading the HSinteger-gmp
      library. I use head -1 instead of cut -d ' ' here since ghc may be
      installed into the directory with space(s) in its name like in the case
      when running validate.
      2b3c6216
    • kgardas's avatar
  11. 06 Aug, 2014 2 commits
  12. 05 Aug, 2014 3 commits
    • Edward Z. Yang's avatar
    • Edward Z. Yang's avatar
      Thinning and renaming modules from packages on the command line. · 20787529
      Edward Z. Yang authored
      Summary:
      This patch set adds support for extra syntax on -package and related
      arguments which allow you to thin and rename modules from a package.
      For example, this argument:
      
          -package "base (Data.Bool as Bam, Data.List)"
      
      adds two more modules into scope, Bam and Data.List, without adding
      any of base's other modules to scope.
      
      These flags are additive: so, for example, saying:
      
          -hide-all-packages -package base -package "base (Data.Bool as Bam)"
      
      will provide both the normal bindings for modules in base, as well as
      the module Bam.
      
      There is also a new debug flag -ddump-mod-map which prints the state
      of the module mapping database.  H = hidden, E = exposed (so for
      example EH says the module in question is exported, but in a hidden
      package.)
      
      Module suggestions have been minorly overhauled to work better with reexports:
      if you have -package "base (Data.Bool as Bam)" and mispell Bam, GHC
      will suggest "Did you mean Bam (defined via package flags to be
      base:Data.Bool)"; and generally you will get more accurate information.
      Also, fix a bug where we suggest the -package flag when we really need
      the -package-key flag.
      
      NB: The renaming afforded here does *not* affect what wired in
      symbols GHC generates.  (But it does affect implicit prelude!)
      
      ToDo: add 'hiding' functionality, to make it easier to support the alternative
      prelude use-case.
      
      ToDo: Cabal support
      Signed-off-by: default avatarEdward Z. Yang <ezyang@cs.stanford.edu>
      
      Test Plan: new tests and validate
      
      Reviewers: simonpj, simonmar, hvr, austin
      
      Subscribers: simonmar, relrod, ezyang, carter
      
      Differential Revision: https://phabricator.haskell.org/D113
      
      GHC Trac Issues: #9375
      20787529
    • Edward Z. Yang's avatar
      Refactor package state, also fixing a module reexport bug. · 00b8f8c5
      Edward Z. Yang authored
      Instead of building a multiply indirected data structure and querying
      it on every import, we now have two data structures moduleToPkgConf
      and moduleToPkgConfAll.  moduleToPkgConf is a single-level UniqFM that
      is intended to be used for most valid imports; however, it does not
      contain any information useful for error reporting.  If an error is
      occurred, we then query moduleToPkgConfAll, which contains a more
      comprehensive view of the package database.  This field is lazily
      initialized (so this means we're retaining the package database list,
      but this should be fine because we're already maintaining the entries
      of the list.)  Additionally, the full view doesn't keep track of a boolean
      toggle for visibility/exposure anymore, but instead tracks the *provenance*
      of how the module binding came to be (the ModuleOrigin data type).
      
      Additionally, we move the logic for determining if a module is exposed
      or not from Finder.lhs and put it in Packages.lhs; this information is
      communicated via the LookupResult data type.  Unfortunately, we can't
      directly return a FindResult, because this data type is defined in
      HscTypes which depends on Packages.  This is going to change some more
      in the near future when I add thinning/renaming to package flags; the
      error messages will need to be more flexible.
      
      I've also slightly changed the semantics of error messages for package
      qualified imports.  Previously, if we didn't find any package qualified
      imports, but there were hidden modules in a *different* package, the error
      message would prefer mentioning those as opposed to providing suggestions.
      Now, if a module is hidden but in the wrong package, we won't mention it;
      instead, it will get mentioned with the other module suggestions.  I
      was too lazy to write a test, but I can add one if people would like.
      
      The module reexport bug was, package q reexported p:P as Conflict,
      and package r reexported p:P2 as Conflict, this was *not* reported as
      a conflict, because the old logic incorrectly decided that P and P2 were
      the same module on account of being from the same package.  The logic here
      has been corrected.
      
      Contains haddock submodule update.
      Signed-off-by: default avatarEdward Z. Yang <ezyang@cs.stanford.edu>
      00b8f8c5