1. 03 Nov, 2015 3 commits
  2. 02 Nov, 2015 6 commits
  3. 01 Nov, 2015 31 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
    • Erik de Castro Lopo's avatar
      Linker: More uint64_t to uintptr_t fixes · 184dfced
      Erik de Castro Lopo authored
      Need to use `uintptr_t` on PowerPC and possibly other 32 bit
      architectures.
      
      Test Plan: Validate on x86_64 and powerpc Linux
      
      Reviewers: austin, hvr, bgamari
      
      Reviewed By: bgamari
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D1412
      184dfced
    • kgardas's avatar
      Enforce linkage with pthread library on OpenBSD · c8e866a1
      kgardas authored
      This patch enforces linkage with pthread library on OpenBSD. This is
      done in order to avoid linker errors when linking with libffi which
      requires POSIX threading but itself is not linked with libpthread
      directly. So client binaries (of libffi) needs to link against
      libpthread explicitly
      
      Reviewers: austin, bgamari
      
      Reviewed By: bgamari
      
      Subscribers: thomie, erikd
      
      Differential Revision: https://phabricator.haskell.org/D1410
      c8e866a1
    • Ben Gamari's avatar
      rts/posix: Reduce heap allocation amount on mmap failure · 4ad2a8f9
      Ben Gamari authored
      Since the two-step allocator the RTS asks the kernel for a large upfront
      mmap'd region of memory (on the order of terabytes). While we have no
      expectation that this entire region will be backed by physical memory,
      this scheme nevertheless fails on some systems with resource limits.
      Here we use a back-off scheme to reduce our allocation request until we
      find a size agreeable to the kernel. Fixes #10877.
      
      This also fixes a latent bug wherein the heap reservation retry logic
      would fail to free the previously reserved address space, which would
      likely result in a heap allocation failure.
      
      Test Plan:
      set address space limit with `ulimit -v 67108864` and try running
      a compiled program
      
      Reviewers: simonmar, austin
      
      Reviewed By: simonmar
      
      Subscribers: thomie, RyanGlScott
      
      Differential Revision: https://phabricator.haskell.org/D1405
      
      GHC Trac Issues: #10877
      4ad2a8f9
    • Alan Zimmerman's avatar
      Provide a utility to check API Annotations docs · c3b02150
      Alan Zimmerman authored
      A utility to check API Annotations was provided in
      https://git.haskell.org/ghc.git/commitdiff/43751b2436f370d956d8021b3cdd3
      eb77801470b
      
      This commit had poor documentation.
      
      This patch improves the output generated by the utility as well as
      supplying better documentation
      
      Test Plan: ./validate
      
      Reviewers: simonpj, austin, bgamari
      
      Reviewed By: austin, bgamari
      
      Subscribers: thomie, mpickering
      
      Differential Revision: https://phabricator.haskell.org/D1397
      
      GHC Trac Issues: #10917
      c3b02150
    • Ben Gamari's avatar
      Apply WERROR only to stage2 HC options · 31bcf9b6
      Ben Gamari authored
      Otherwise validate unnecessarily may fail during the stage1 build when
      booting with an older compiler.
      
      Test Plan: Try it
      
      Reviewers: thomie, austin
      
      Reviewed By: thomie, austin
      
      Differential Revision: https://phabricator.haskell.org/D1390
      31bcf9b6
    • olsner's avatar
      Add rts/Linker support for more than 64k sections · 3021cc06
      olsner authored
      Since some ELF fields ran out of range to represent that many sections,
      they've been extended with magic numbers that indicate that the full
      value is stored in another field.
      
      This will be necessary for GHCi with -split-sections on ELF platforms
      that don't use GNU ld.
      
      Reviewers: austin, bgamari, simonmar, erikd
      
      Reviewed By: bgamari, simonmar, erikd
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D1357
      
      GHC Trac Issues: #8405
      3021cc06