1. 31 Jan, 2019 8 commits
    • Zejun Wu's avatar
      Introduce GhciMonad and generalize types of functions in GHCi.UI · e08974e8
      Zejun Wu authored
      Summary:
      Introduce `GhciMonad`, which is bascially `GhcMonad` + `HasGhciState`.
      Generalize the commands and help functions defined in `GHCi.UI` so they
      can be used as both `GHCi a` and `InputT GHCi a`.
      
      The long term plan is to move reusable bits to ghci library and make it
      easier to build a customized interactive ui which carries customized state
      and provides customized commands.
      
      Most changes are trivial in this diff by relaxing the type constraint or
      add/remove lift as necessary. The non-trivial changes are:
      
      * Change `HasGhciState` to `GhciMonad` and expose it.
      * Implementation of `reifyGHCi`.
      
      Test Plan:
        ./validate
      
      Reviewers: simonmar, hvr, bgamari
      
      Reviewed By: simonmar
      
      Subscribers: rwbarton, carter
      
      Differential Revision: https://phabricator.haskell.org/D5433
      e08974e8
    • Andreas Klebinger's avatar
    • Andreas Klebinger's avatar
      Use O2 on stage1 for faster overall build times with make. · 92c7e70f
      Andreas Klebinger authored
      Build times when using the quick flavour:
      
      stage1 opt | time (wall) | time (user)
           -O1   |        13m  |        53m
           -O2   |        13m  |        51m
      So even when we compile stage2 with -O0 (quick)
      using -O2 on stage1 is already faster.
      
      The difference is even bigger when freezing
      stage1 and doing multiple builds or compiling
      stage2 with optimizations.
      92c7e70f
    • Zejun Wu's avatar
      Add -fdefer-diagnostics to defer and group diagnostic messages in make-mode · 0593e938
      Zejun Wu authored
      When loading many modules in parallel there can a lot of warnings and
      errors get mixed up with regular output. When the compilation fails,
      the relevant error message can be thousands of lines backward and is
      hard to find. When the compilation successes, warning message is likely
      to be ignored as it is not seen. We can address this by deferring the
      warning and error message after the compilation. We also put errors
      after warnings so it is more visible.
      
      This idea was originally proposed by Bartosz Nitka in
      https://phabricator.haskell.org/D4219.
      0593e938
    • Ben Gamari's avatar
      hWaitForInput-accurate-stdin test · 98ff3010
      Ben Gamari authored
      98ff3010
    • Sylvain Henry's avatar
      Optimize pprASCII · d887f374
      Sylvain Henry authored
      * Use `ByteString.foldr` instead of `(List.foldr . BS.unpack)`
      * Avoid calling `chr` and its test that checks for invalid Unicode
      codepoints: we stay in the ASCII range so we know we're ok
      * Avoid calling `isPrint` (unsafe FFI call): we can check the ASCII
      printable range directly
      * Use bit operations (`unsafeShiftR`, `.&.`) instead of `div` and `mod`
      d887f374
    • Sylvain Henry's avatar
      Use ByteString to represent Cmm string literals (#16198) · 4fa32293
      Sylvain Henry authored
      Also used ByteString in some other relevant places
      4fa32293
    • Matthew Pickering's avatar
      Fix syntax in CODEOWNERS file · deab6d64
      Matthew Pickering authored
      [skip ci]
      deab6d64
  2. 30 Jan, 2019 17 commits
  3. 28 Jan, 2019 8 commits
  4. 27 Jan, 2019 7 commits