1. 23 Aug, 2019 4 commits
    • Sergei Trofimovich's avatar
      configure.ac: fix '--disable-dwarf-debug' · cff44d86
      Sergei Trofimovich authored and  Marge Bot's avatar Marge Bot committed
      
      
      Before the change
          ./configure --disable-dwarf-debug
      enabled DWARF debugging unconditionally.
      
      This happened due to use of 5-argument form of `AC_ARG_ENABLE`
      without actually checking the passed  `$enableval` parameter:
      
      ```
      AC_ARG_ENABLE(dwarf-unwind,
          [AC_HELP_STRING([--enable-dwarf-unwind],
              [Enable DWARF unwinding support in the runtime system via elfutils' libdw [default=no]])],
          [AC_CHECK_LIB(dw, dwfl_attach_state,
            [UseLibdw=YES],
            [AC_MSG_ERROR([Cannot find system libdw (required by --enable-dwarf-unwind)])])]
          [UseLibdw=NO]
      )
      ```
      
      Note:
      
      - `[UseLibdw=NO]` is called when `--{enable,disable}-dwarf-unwind`
        is not passed at all as a parameter (ok).
      - `[AC_CHECK_LIB(dw, dwfl_attach_state, [UseLibdw=YES],` is called
        for both:
      
        * `--enable-dwarf-unwind` being passed: `$enableval = "yes"` (ok).
        *  --disable-dwarf-unwind` being passed: `$enableval = "no"` (bad).
      
      The change is to use 3-argument `AC_ARG_ENABLE` and check for passed
      value as `"$enable_dwarf_unwind" = "yes"`.
      Signed-off-by: default avatarSergei Trofimovich <slyfox@gentoo.org>
      cff44d86
    • Andreas Klebinger's avatar
      Use variable length encoding for Binary instances. · 47070144
      Andreas Klebinger authored and  Marge Bot's avatar Marge Bot committed
      Use LEB128 encoding for Int/Word variants. This reduces
      the size of interface files significantly. (~19%).
      
      Also includes a few small optimizations to make unboxing
      work better that I have noticed while looking at the core.
      47070144
    • Ömer Sinan Ağacan's avatar
      Make non-streaming LLVM and C backends streaming · a8300520
      Ömer Sinan Ağacan authored
      This adds a Stream.consume function, uses it in LLVM and C code
      generators, and removes the use of Stream.collect function which was
      used to collect streaming Cmm generation results into a list.
      
      LLVM and C backends now properly use streamed Cmm generation, instead of
      collecting Cmm groups into a list before generating LLVM/C code.
      a8300520
    • Ömer Sinan Ağacan's avatar
      Remove special case in SRT generation with -split-sections · c3e26ab3
      Ömer Sinan Ağacan authored
      Previously we were using an empty ModuleSRTInfo for each Cmm group with
      -split-section. As far as I can see this has no benefits, and
      simplifying this makes another patch simpler (!1304).
      
      We also remove some outdated comments: we no longer generate one
      module-level SRT.
      c3e26ab3
  2. 22 Aug, 2019 4 commits
  3. 19 Aug, 2019 5 commits
  4. 18 Aug, 2019 5 commits
  5. 16 Aug, 2019 4 commits
  6. 15 Aug, 2019 1 commit
    • James Foster's avatar
      Remove unused imports of the form 'import foo ()' (Fixes #17065) · ca71d551
      James Foster authored and  Marge Bot's avatar Marge Bot committed
      These kinds of imports are necessary in some cases such as
      importing instances of typeclasses or intentionally creating
      dependencies in the build system, but '-Wunused-imports' can't
      detect when they are no longer needed. This commit removes the
      unused ones currently in the code base (not including test files
      or submodules), with the hope that doing so may increase
      parallelism in the build system by removing unnecessary
      dependencies.
      ca71d551
  7. 14 Aug, 2019 3 commits
    • Richard Eisenberg's avatar
      GHCi supports not-necessarily-lifted join points · 6329c70a
      Richard Eisenberg authored and Alp Mestanogullari's avatar Alp Mestanogullari committed
      Fixes #16509.
      
      See Note [Not-necessarily-lifted join points] in ByteCodeGen,
      which tells the full story.
      
      This commit also adds some comments and cleans some code
      in the byte-code generator, as I was exploring around trying
      to understand it.
      
      (This commit removes an old test -- this is really a GHCi problem,
      not a pattern-synonym problem.)
      
      test case: ghci/scripts/T16509
      6329c70a
    • Andreas Klebinger's avatar
      Use os.devnull instead of '/dev/null' in the testsuite driver. · aa4d8b07
      Andreas Klebinger authored and  Marge Bot's avatar Marge Bot committed
      The later caused issues on windows by being translated into
      "\\dev\\null" and python then trying to open this non-existant file.
      
      So we now use os.devnull inside python and convert it to "/dev/null"
      when calling out to the shell, which is bound to run in a unix like
      environment.
      
      This fixes an issue a test producing unexpected stderr output failed
      with a framework failure instead of showing a diff of the output.
      aa4d8b07
    • Andreas Klebinger's avatar
      Rework the Binary Integer instance. · a38104b4
      Andreas Klebinger authored and  Marge Bot's avatar Marge Bot committed
      We used to serialise large integers as strings. Now they are serialized
      as a list of Bytes.
      
      This changes the size for a Integer in the higher 64bit range from 77 to
      9 bytes when written to disk.
      
      The impact on the general case is small (<1% for interface files) as we
      don't use many Integers. But for code that uses many this should be a
      nice benefit.
      a38104b4
  8. 13 Aug, 2019 2 commits
  9. 10 Aug, 2019 4 commits
  10. 07 Aug, 2019 8 commits