1. 06 Nov, 2015 1 commit
    • Joachim Breitner's avatar
      Call Arity: In "e x", the result of "x" is not shared · a58eeb7f
      Joachim Breitner authored
      in contrast to "e (f x)", where CorePrep will turn it into "let y = f x
      in e x". So in
        let f = ...
        in e (f x)
      we know that f is called at most once, but in
        let f = ...
        in e f
      we do not know that.
      
      Previously Call Arity would assume that in "e x", "x" is evaluated at
      most once. This rarely would make a difference (the argument "x" is
      analized with an incoming arity of 0, so no eta-expansion would be done
      anyways), but of course this should still be fixed.
      
      This fixes #11064.
      
      Note the corresponding code dmdTransformThunkDmd in DmdAnal.
      a58eeb7f
  2. 04 Nov, 2015 2 commits
  3. 03 Nov, 2015 6 commits
  4. 02 Nov, 2015 6 commits
  5. 01 Nov, 2015 25 commits
    • Ben Gamari's avatar
      rts: Produce stack trace on fatal error · 9fe5497e
      Ben Gamari authored
      Test Plan: Validate
      
      Reviewers: austin, simonmar
      
      Reviewed By: simonmar
      
      Subscribers: simonmar, thomie, scpmw
      
      Differential Revision: https://phabricator.haskell.org/D1418
      9fe5497e
    • Ben Gamari's avatar
      EventLog: Loop fwrite if necessary during flush · f46f32b9
      Ben Gamari authored
      Previously the eventlog flush code would fail if `fwrite` wrote less
      than the requested amount. Like all Unix stream I/O operations, however,
      `fwrite` isn't guaranteed to write the entire buffer. Here we loop as
      long as `fwrite` succeeds in writing anything.
      
      Fixes #11041.
      
      Test Plan: Validate with eventlog
      
      Reviewers: austin, simonmar
      
      Reviewed By: simonmar
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D1415
      
      GHC Trac Issues: #11041
      f46f32b9
    • Tamar Christina's avatar
      Change sphinx for documentation building on windows to the python3 version · 65f3c4c0
      Tamar Christina authored
      Summary:
      Python 3 seems to have fixed the long standing codepage issue with
      python on Windows. To be able to reliably build the documentation
      we should use the Python 3 version of Sphinx.
      
      See `https://docs.python.org/dev/whatsnew/3.3.html#codecs` and
      `https://bugs.python.org/issue13216`. Sphinx also supports Python 3.
      
      Oddly enough `python3-sphinx` is registered as `sphinx-build.exe`
      instead of `sphinx-build3.exe`, so the changes in `configure.ac` can
      be reverted.
      
      install with `pacman -S mingw-w64-$(uname -m)-python3-sphinx`
      
      Test Plan: ./validate
      
      Reviewers: austin, thomie, bgamari
      
      Reviewed By: bgamari
      
      Subscribers: erikd
      
      Differential Revision: https://phabricator.haskell.org/D1417
      
      GHC Trac Issues: #11021
      65f3c4c0
    • Ömer Sinan Ağacan's avatar
      Minor simplification in unariser pass: · e9bfb3fd
      Ömer Sinan Ağacan authored
      We don't need to update StgCase's AltType, because it's already set
      correctly in `CoreToStg.mkStgAltType`, so we can just remove extra
      argument passing and return values.
      
      (I think this is a useful refactoring because it makes it clear that we
      don't need to update AltTypes)
      
      Reviewers: austin, bgamari, simonpj
      
      Reviewed By: bgamari, simonpj
      
      Subscribers: simonpj, thomie
      
      Differential Revision: https://phabricator.haskell.org/D1403
      e9bfb3fd
    • Ben Gamari's avatar
      Libdw: Fix symbol naming · 52c6e3d6
      Ben Gamari authored
      RTS convention is to use camel-case.
      52c6e3d6
    • Ben Gamari's avatar
      Dwarf.Constants: Introduce Haddock sections · b8df8583
      Ben Gamari authored
      b8df8583
    • Ben Gamari's avatar
      Libdw: Remove special treatment for stg_stop_thread · bb446b26
      Ben Gamari authored
      This is no longer necessary since this symbol can be unwound through
      with its DWARF information.
      bb446b26
    • Ben Gamari's avatar
      StgStartup: Setup unwinding for stg_stop_thread · d9f88628
      Ben Gamari authored
      This is a bit ugly as we need to assume the structure of the C stack as
      left by StgRun. Nevertheless, it allows us to unwind all the way back to
      `_start` on my machine.
      
      ```
      Stack trace:
          set_initial_registers (rts/Libdw.c:272.0)
          dwfl_thread_getframes
      
          dwfl_getthreads
          dwfl_getthread_frames
          libdw_get_backtrace (rts/Libdw.c:243.0)
          base_GHCziExecutionStack_getStackTrace1_info
      (libraries/base/GHC/ExecutionStack.hs:43.1)
          base_GHCziExecutionStack_showStackTrace1_info
      (libraries/base/GHC/ExecutionStack.hs:47.1)
          base_GHCziBase_bindIO1_info (libraries/base/GHC/Base.hs:1085.1)
          base_GHCziBase_thenIO1_info (libraries/base/GHC/Base.hs:1088.1)
          base_GHCziBase_thenIO1_info (libraries/base/GHC/Base.hs:1088.1)
          base_GHCziBase_thenIO1_info (libraries/base/GHC/Base.hs:1088.1)
          base_GHCziBase_thenIO1_info (libraries/base/GHC/Base.hs:1088.1)
          base_GHCziBase_thenIO1_info (libraries/base/GHC/Base.hs:1088.1)
          stg_catch_frame_info (rts/Exception.cmm:370.1)
          stg_stop_thread_info (rts/StgStartup.cmm:42.1)
          scheduleWaitThread (rts/Schedule.c:465.0)
          hs_main (rts/RtsMain.c:65.0)
      
          __libc_start_main (/tmp/buildd/glibc-2.19/csu/libc-start.c:321.0)
          _start
      ```
      d9f88628
    • Ben Gamari's avatar
      cmm: Expose machine's stack and return address register · 159a1a2b
      Ben Gamari authored
      We will need to use these to setup proper unwinding information for the
      stg_stop_thread closure. This pokes a hole in the STG abstraction,
      exposing the machine's stack pointer register so that we can accomplish
      this. We also expose a dummy return address register, which corresponds
      to the register used to hold the DWARF return address.
      
      Differential Revision: https://phabricator.haskell.org/D1225
      159a1a2b
    • Ben Gamari's avatar
      Dwarf.Types: Fix comment style · 76611d75
      Ben Gamari authored
      76611d75
    • Ben Gamari's avatar
      Dwarf: Preserve stack pointer register · 6fb0ba65
      Ben Gamari authored
      Here we add a `same_value $sp` instruction to our default unwinding
      rules to ensure that the implicit `$sp = CFA` rule (which `libdw`
      appears to exhibit on x86_64) doesn't overwrite it (necessary since we
      don't use $sp to track our call stack).
      
      See Phab Diff D1189 for details on how we arrived at this resolution.
      
      Reviewers: scpmw, austin, simonmar
      
      Reviewed By: austin, simonmar
      
      Subscribers: thomie, simonmar
      
      Differential Revision: https://phabricator.haskell.org/D1224
      6fb0ba65
    • Herbert Valerio Riedel's avatar
      Update Cabal submodule · 3431ad6f
      Herbert Valerio Riedel authored
      This allows us to remove 4 newly added language pragmas from the T4437
      test-case as they were recently added to Cabal 1.23
      3431ad6f
    • Ben Gamari's avatar
      DynFlags: -freverse-errors should be defFlag · 677d7687
      Ben Gamari authored
      This flag works under both GHC and GHCi, as pointed out on D1367. Thanks
      to @thomie for pointing this out.
      677d7687
    • Simon Marlow's avatar
      keepCAFsForGHCi was broken · 5a481803
      Simon Marlow authored
      Buggy Makefile code meant it was always included, instead of being
      included only for the dyn ways.
      
      Test Plan: validate
      
      Reviewers: hvr, austin, bgamari
      
      Reviewed By: bgamari
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D1400
      5a481803
    • Alan Zimmerman's avatar
      ApiAnnotations: BooleanFormula is not properly Located · f16827f8
      Alan Zimmerman authored
      At the moment BooleanFormula is defined as
      
        data BooleanFormula a = Var a | And [BooleanFormula a]
                              | Or [BooleanFormula a]
             deriving (Eq, Data, Typeable, Functor, Foldable, Traversable)
      
      An API Annotation can only be attached to an item of the form Located a.
      
      Replace this with a properly Located version, and attach the appropriate
      API Annotations to it
      
      Updates haddock submodule.
      
      Test Plan: ./validate
      
      Reviewers: austin, bgamari
      
      Reviewed By: bgamari
      
      Subscribers: thomie, mpickering
      
      Differential Revision: https://phabricator.haskell.org/D1384
      
      GHC Trac Issues: #11017
      f16827f8
    • Herbert Valerio Riedel's avatar
      Bump ghc-prim version to 0.5.0.0 (closes #11043) · 84bf1eba
      Herbert Valerio Riedel authored
      This also needs to update the primitive/vector submodules in order to
      relax upper bounds on ghc-prim.
      
      Like in f8ba4b55, a mass-rewrite in testsuite/ via
      
        sed -i s,ghc-prim-0.4.0.0,ghc-prim-0.5.0.0,g $(git grep -Fl 'ghc-prim-0.4.0.0')
      
      was performed.
      84bf1eba
    • Herbert Valerio Riedel's avatar
      ghc-prim: add API delta as changelog (re #11043) · 4b8b9347
      Herbert Valerio Riedel authored
      [skip ci]
      4b8b9347
    • Herbert Valerio Riedel's avatar
      Bump `base` version to 4.9.0.0 (closes #11026) · f8ba4b55
      Herbert Valerio Riedel authored
      This also relaxes a few upper bounds on base in the ghc.git repo;
      
      This required a mass-rewrite in testsuite/
      
        sed -i s,base-4.8.2.0,base-4.9.0.0,g $(git grep -Fl 'base-4.8.2.0')
      
      because it turns out the testsuite is still sensitive to package version
      changes.
      f8ba4b55
    • Herbert Valerio Riedel's avatar
      Update hoopl submodule · 32f92a33
      Herbert Valerio Riedel authored
      This is needed to prepare for #11026 as this update
      relaxes the upper bounds on `base` to allow for `base-4.9.0.0`
      32f92a33
    • Herbert Valerio Riedel's avatar
      Update unix submodule · 3238ef7f
      Herbert Valerio Riedel authored
      This is needed to prepare for #11026 as this update
      relaxes the upper bounds on `base` to allow for `base-4.9.0.0`
      3238ef7f
    • Herbert Valerio Riedel's avatar
      Update process submodule · de8443c1
      Herbert Valerio Riedel authored
      This is needed to prepare for #11026 as this update
      relaxes the upper bounds on `base` to allow for `base-4.9.0.0`
      
      This also needs to relax a few upper bounds on process in some cabal files
      
      (there will be another process submodule update soon, as a major
      version bump of process' version is still pending)
      de8443c1
    • Herbert Valerio Riedel's avatar
      Update filepath submodule · 12abc773
      Herbert Valerio Riedel authored
      This is needed to prepare for #11026 as this update
      relaxes the upper bounds on `base` to allow for `base-4.9.0.0`
      12abc773
    • Herbert Valerio Riedel's avatar
      Update directory submodule · d2a7fb97
      Herbert Valerio Riedel authored
      This is needed to prepare for #11026 as this update
      relaxes the upper bounds on `base` to allow for `base-4.9.0.0`
      d2a7fb97
    • Herbert Valerio Riedel's avatar
      Update array/stm/hpc/haddock submodules · 62e1b359
      Herbert Valerio Riedel authored
      This is needed to prepare for #11026 as these updates
      relax the upper bounds on `base` to allow for `base-4.9.0.0`
      62e1b359
    • Erik de Castro Lopo's avatar
      ghc-prim: Fix hs_ctz64 for powerpc · 9f0ecb41
      Erik de Castro Lopo authored
      Test Plan: Test on powerpc/linux
      
      Reviewers: austin, hvr, bgamari
      
      Reviewed By: bgamari
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D1413
      9f0ecb41