1. 05 Dec, 2019 6 commits
  2. 04 Dec, 2019 4 commits
    • Ben Gamari's avatar
      Elf: Fix link info note generation · f03a41d4
      Ben Gamari authored
      Previously we would use the `.int` assembler directive to generate
      32-bit words in the note section. However, `.int` is note guaranteed to
      produce 4-bytes; in fact, on some platforms (e.g. AArch64) it produces
      8-bytes. Use the `.4bytes` directive to avoid this.
      Moreover, we used the `.align` directive, which is quite platform
      dependent. On AArch64 it appears to not even be idempotent (despite what
      the documentation claims). `.balign` is consequentially preferred as it
      offers consistent behavior across platforms.
    • Ben Gamari's avatar
      Simplify uniqAway · 78b67ad0
      Ben Gamari authored
      This does two things:
       * Eliminate all uses of Unique.deriveUnique, which was quite easy to
         mis-use and extremely subtle.
       * Rename the previous "derived unique" notion to "local unique". This
         is possible because the only places where `uniqAway` can be safely
         used are those where local uniqueness (with respect to some
         InScopeSet) is sufficient.
       * Rework the implementation of VarEnv.uniqAway, as discussed in #17462.
         This should make the operation significantly more efficient than its
         previous iterative implementation..
      Metric Decrease:
      Metric Increase:
    • Ben Gamari's avatar
      Drop Uniquable constraint for AnnTarget · 25019d18
      Ben Gamari authored
      This relied on deriveUnique, which was far too subtle to be safely
      applied. Thankfully the instance doesn't appear to be used so let's just
      drop it.
    • Ben Gamari's avatar
      users-guide: Add 8.12.1 release notes · 10caee7f
      Ben Gamari authored
  3. 03 Dec, 2019 6 commits
  4. 02 Dec, 2019 21 commits
    • Sergei Trofimovich's avatar
      configure.ac: make cross-compiler detection stricter · 4cbd5b47
      Sergei Trofimovich authored
      Be more precise at detecting cross-compilation case.
      Before the change configuration
        $ ./configure --host=x86_64-pc-linux-gnu --target=x86_64-gentoo-linux-musl
      was not considered a cross-target. Even though libcs are different (`glibc` vs. `musl`).
      Without this patch build fails as:
      "inplace/bin/ghc-cabal" check libraries/integer-gmp
      "inplace/bin/ghc-cabal" configure libraries/integer-gmp dist-install \
          --with-ghc="/home/slyfox/dev/git/ghc/inplace/bin/ghc-stage1" \
          --with-ghc-pkg="/home/slyfox/dev/git/ghc/inplace/bin/ghc-pkg" \
          --disable-library-for-ghci --enable-library-vanilla --enable-library-for-ghci \
          --enable-library-profiling --enable-shared --with-hscolour="/usr/bin/HsColour" \
          --configure-option=CFLAGS="-Wall \
          -Werror=unused-but-set-variable -Wno-error=inline \
          -iquote /home/slyfox/dev/git/ghc/libraries/integer-gmp" \
          --configure-option=LDFLAGS="  " --configure-option=CPPFLAGS="   \
          " --gcc-options="-Wall     -Werror=unused-but-set-variable -Wno-error=inline -iquote /home/slyfox/dev/git/ghc/libraries/integer-gmp   \
          " --with-gcc="x86_64-gentoo-linux-musl-gcc" --with-ld="x86_64-gentoo-linux-musl-ld.gold" --with-ar="x86_64-gentoo-linux-musl-ar" \
          --with-alex="/usr/bin/alex" --with-happy="/usr/bin/happy"
      Configuring integer-gmp-
      configure: WARNING: unrecognized options: --with-compiler
      checking build system type... x86_64-pc-linux-gnu
      checking host system type... x86_64-pc-linux-gnu
      checking target system type... x86_64-pc-linux-gnu
      checking for gcc... /usr/lib/ccache/bin/x86_64-gentoo-linux-musl-gcc
      checking whether the C compiler works... yes
      checking for C compiler default output file name... a.out
      checking for suffix of executables...
      checking whether we are cross compiling... configure: error: in `/home/slyfox/dev/git/ghc/libraries/integer-gmp/dist-install/build':
      configure: error: cannot run C compiled programs.
      If you meant to cross compile, use `--host'.
      See `config.log' for more details
      make[1]: *** [libraries/integer-gmp/ghc.mk:5: libraries/integer-gmp/dist-install/package-data.mk] Error 1
      make: *** [Makefile:126: all] Error 2
      Note: here `ghc-stage1` is assumed to target `musl` target but is passed
      `glibc` toolchain. It happens because initial ./configure phase did not
      detect host/target as different.
      Signed-off-by: default avatarSergei Trofimovich <slyfox@gentoo.org>
    • Ben Gamari's avatar
      gitlab-ci: Always build source tarball · b1c206fd
      Ben Gamari authored
      (cherry picked from commit 67b5de88ef923971f1980335137e3c7193213abd)
    • Ben Gamari's avatar
      gitlab-ci: Add release-x86_64-linux-deb9 job · 2b2370ec
      Ben Gamari authored
      (cherry picked from commit cbedb3c4a90649f474cb716842ba53afc5a642ca)
    • Ben Gamari's avatar
      testsuite: Simplify Python <3.5 fallback for TextIO · a0f09e23
      Ben Gamari authored
      (cherry picked from commit d092d859)
    • Ben Gamari's avatar
      gitlab-ci: Fix Windows bindist collection · 012f13b5
      Ben Gamari authored
      Apparently variable interpolation in the `artifacts.paths` key of
      `gitlab-ci.yml` doesn't work on Windows as it does on WIndows.
      (cherry picked from commit 100cc756)
    • Ben Gamari's avatar
      gitlab-ci: Add Debian 10 builds · 38338757
      Ben Gamari authored
    • Ben Gamari's avatar
    • Ben Gamari's avatar
      gitlab-ci: Set LANG on CentOS 7 · 6708b8e5
      Ben Gamari authored
      It otherwise seems to default to ascii
    • Ben Gamari's avatar
      gitlab-ci: pxz is unavailable on CentOS 7 · aec98a79
      Ben Gamari authored
      Fall back to xz
    • Ben Gamari's avatar
      gitlab-ci: Bump Docker images · 37eb94b3
      Ben Gamari authored
      Installs pxz on Centos7
      (cherry picked from commit 86960e69)
    • Ben Gamari's avatar
      base: Fix <unistd.h> #include · f1f68824
      Ben Gamari authored
      Previously we were including <sys/unistd.h> which is available on glibc
      but not musl.
      (cherry picked from commit e44b695c)
    • Ben Gamari's avatar
      gitlab-ci: Disable Sphinx build on Debian 8 · d402209a
      Ben Gamari authored
      The docutils version available appears to be too old to support the
      `table` directive's `:widths:` options.
      (cherry picked from commit 75764487)
    • Ben Gamari's avatar
      win32-init: Drop workaround for #17480 · 8ead967d
      Ben Gamari authored
      The `process` changes have now been merged into `hsc2hs`.
      (cherry picked from commit fa029f53)
    • Ben Gamari's avatar
      gitlab-ci: Fix changelog linting logic · c500f652
      Ben Gamari authored
    • Ben Gamari's avatar
      Simplify: Fix pretty-printing of strictness · 038bedbc
      Ben Gamari authored
      A colleague recently hit the panic in Simplify.addEvals and I noticed
      that the message is quite unreadable due to incorrect pretty-printing.
      Fix this.
    • Ben Gamari's avatar
      More Haddock syntax in GHC.Hs.Utils · bde48f8e
      Ben Gamari authored
      As suggested by RyanGlScott in !2163.
    • Brian Wignall's avatar
      Fix more typos · 717f3236
      Brian Wignall authored
    • Alan Zimmerman's avatar
      API Annotations: Unicode '->' on HsForallTy · 18baed64
      Alan Zimmerman authored
      The code fragment
        type family Proxy2' ∷ ∀ k → k → Type where
          Proxy2' = Proxy'
      Generates AnnRarrow instead of AnnRarrowU for the first →.
      Fixes #17519
    • Krzysztof Gogolewski's avatar
      Convert warnings into assertions · 65400314
      Krzysztof Gogolewski authored
      Since the invariants always hold in the testsuite, we can convert
      them to asserts.
    • Ben Gamari's avatar
      testsuite: Don't override LD_LIBRARY_PATH, only prepend · 53251413
      Ben Gamari authored
      NixOS development environments often require that LD_LIBRARY_PATH
      be set in order to find system libraries. T1407 was overriding
      LD_LIBRARY_PATH, dropping these directories. Now it merely prepends,
      its directory.
    • Ben Gamari's avatar
      testsuite: Fix location of typing_stubs module · beed7c3e
      Ben Gamari authored
      This should fix the build on Debian 8.
  5. 01 Dec, 2019 1 commit
  6. 30 Nov, 2019 2 commits
    • Roland Senn's avatar
      Improve tests for #17171 · f8cfe81a
      Roland Senn authored
      While backporting MR !1806 to 8.8.2 (!1885) I learnt the following:
      * Tests with `expect_fail` do not compare `*.stderr` output files. So a test using `expect_fail` will not detect future regressions on the `stderr` output.
      * To compare the `*.stderr` output files, I have to use the `exit_code(n)` function.
      * When a release is made, tests with `makefile_test` are converted to use `run_command`.
      * For the test `T17171a` the return code is `1` when running `makefile_test`, however it's `2` when running `run_command`.
      Therefore I decided:
      * To improve my tests for #17171
      * To change test T17171a from `expect_fail` to `exit_code(2)`
      * To change both tests from  `makefile_test` to `run_command`
    • Sebastian Graf's avatar
      Simpler Semigroup instance for InsideLam and InterestingCtxt · 3a96a0b6
      Sebastian Graf authored
      This mirrors the definition of `(&&)` and `(||)` now, relieving the
      Simplifier of a marginal amount of pressure.