1. 29 Aug, 2015 1 commit
  2. 28 Aug, 2015 1 commit
    • Erik de Castro Lopo's avatar
      RTS: Reduce MBLOCK_SPACE_SIZE on AArch64 · 38c98e4f
      Erik de Castro Lopo authored
      Commit 0d1a8d09 added a two step allocator for 64 bit systems. This
      allocator mmaps a huge (1 TB) chunk of memory out of which it does
      smaller allocations. On AArch64/Arm64 linux, this mmap was failing
      due to the Arm64 Linux kernel parameter CONFIG_ARM64_VA_BITS
      defaulting to 39 bits.
      
      Therefore reducing the AArch64 value for MBLOCK_SPACE_SIZE to make
      this allocation 1/4 TB while remaining 1 TB for other archs.
      
      Reviewers: ezyang, austin, bgamari
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D1171
      
      GHC Trac Issues: #10682
      38c98e4f
  3. 27 Aug, 2015 5 commits
  4. 26 Aug, 2015 10 commits
  5. 25 Aug, 2015 2 commits
  6. 24 Aug, 2015 1 commit
  7. 21 Aug, 2015 8 commits
    • rpglover64's avatar
      Check options before warning about source imports. · a5061a96
      rpglover64 authored
      Summary: Fixes T10637
      
      Reviewers: austin, bgamari, thomie
      
      Subscribers: dfordivam, simonpj, thomie
      
      Differential Revision: https://phabricator.haskell.org/D1157
      
      GHC Trac Issues: #10637
      a5061a96
    • thomie's avatar
      Build system: delete unused distrib/Makefile · a1c008b3
      thomie authored
      a1c008b3
    • thomie's avatar
      Build system: simplify install.mk.in · 47493e60
      thomie authored
      This will allow fixing #1851 more easily
      ("make install-strip" should work).
      
      This reverts 57e2a81c:
        "On Cygwin, use a Cygwin-style path for /bin/install's destination"
      
      Update submodule haddock and hsc2hs.
      47493e60
    • thomie's avatar
      Refactor: delete most of the module FastTypes · 2f29ebbb
      thomie authored
      This reverses some of the work done in #1405, and goes back to the
      assumption that the bootstrap compiler understands GHC-haskell.
      
      In particular:
        * use MagicHash instead of _ILIT and _CLIT
        * pattern matching on I# if possible, instead of using iUnbox
          unnecessarily
        * use Int#/Char#/Addr# instead of the following type synonyms:
          - type FastInt   = Int#
          - type FastChar  = Char#
          - type FastPtr a = Addr#
        * inline the following functions:
          - iBox           = I#
          - cBox           = C#
          - fastChr        = chr#
          - fastOrd        = ord#
          - eqFastChar     = eqChar#
          - shiftLFastInt  = uncheckedIShiftL#
          - shiftR_FastInt = uncheckedIShiftRL#
          - shiftRLFastInt = uncheckedIShiftRL#
        * delete the following unused functions:
          - minFastInt
          - maxFastInt
          - uncheckedIShiftRA#
          - castFastPtr
          - panicDocFastInt and pprPanicFastInt
        * rename panicFastInt back to panic#
      
      These functions remain, since they actually do something:
        * iUnbox
        * bitAndFastInt
        * bitOrFastInt
      
      Test Plan: validate
      
      Reviewers: austin, bgamari
      
      Subscribers: rwbarton
      
      Differential Revision: https://phabricator.haskell.org/D1141
      
      GHC Trac Issues: #1405
      2f29ebbb
    • thomie's avatar
      Delete FastBool · 3452473b
      thomie authored
      This reverses some of the work done in Trac #1405, and assumes GHC is
      smart enough to do its own unboxing of booleans now.
      
      I would like to do some more performance measurements, but the code
      changes can be reviewed already.
      
      Test Plan:
      With a perf build:
      ./inplace/bin/ghc-stage2 nofib/spectral/simple/Main.hs -fforce-recomp
      +RTS -t --machine-readable
      
      before:
      ```
        [("bytes allocated", "1300744864")
        ,("num_GCs", "302")
        ,("average_bytes_used", "8811118")
        ,("max_bytes_used", "24477464")
        ,("num_byte_usage_samples", "9")
        ,("peak_megabytes_allocated", "64")
        ,("init_cpu_seconds", "0.001")
        ,("init_wall_seconds", "0.001")
        ,("mutator_cpu_seconds", "2.833")
        ,("mutator_wall_seconds", "4.283")
        ,("GC_cpu_seconds", "0.960")
        ,("GC_wall_seconds", "0.961")
        ]
      ```
      
      after:
      ```
        [("bytes allocated", "1301088064")
        ,("num_GCs", "310")
        ,("average_bytes_used", "8820253")
        ,("max_bytes_used", "24539904")
        ,("num_byte_usage_samples", "9")
        ,("peak_megabytes_allocated", "64")
        ,("init_cpu_seconds", "0.001")
        ,("init_wall_seconds", "0.001")
        ,("mutator_cpu_seconds", "2.876")
        ,("mutator_wall_seconds", "4.474")
        ,("GC_cpu_seconds", "0.965")
        ,("GC_wall_seconds", "0.979")
        ]
      ```
      
      CPU time seems to be up a bit, but I'm not sure. Unfortunately CPU time
      measurements are rather noisy.
      
      Reviewers: austin, bgamari, rwbarton
      
      Subscribers: nomeata
      
      Differential Revision: https://phabricator.haskell.org/D1143
      
      GHC Trac Issues: #1405
      3452473b
    • Ben Gamari's avatar
      Implement getSizeofMutableByteArrayOp primop · 9e8562ae
      Ben Gamari authored
      Now since ByteArrays are mutable we need to be more explicit about when
      the size is queried.
      
      Test Plan: Add testcase and validate
      
      Reviewers: goldfire, hvr, austin
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D1139
      
      GHC Trac Issues: #9447
      9e8562ae
    • Ben Gamari's avatar
      Bag: Add Foldable instance · 0d0e651d
      Ben Gamari authored
      0d0e651d
    • Ben Gamari's avatar
      GhcMake: Fix spelling in comment · a146b282
      Ben Gamari authored
      a146b282
  8. 20 Aug, 2015 2 commits
  9. 18 Aug, 2015 6 commits
  10. 17 Aug, 2015 2 commits
    • Sergei Trofimovich's avatar
      Make rts/ThreadLabels.c threadsafe for debug runtime. · 74897dec
      Sergei Trofimovich authored
      rts/ThreadLabels.c has a global hashtable for each
      running haskell thread. It's not synchronized across
      OS threads.
      
      Was discovered when ran -debug build of ghc itself as:
      
          $ ghc-stage2 -j8 +RTS -A256M -l
      
      and glibc detected double-free corruption:
      
          #2  in __libc_message (do_abort=do_abort@entry=2,
              fmt=fmt@entry=0x7fe0bcebf368 "*** Error in `%s': %s: 0x%s ***\n")
          #3  in malloc_printerr (action=3, str=0x7fe0bcebf4c0 "double free or corruption (fasttop)",
              ptr=<optimized out>)
          #4  in _int_free (av=<optimized out>, p=<optimized out>, have_lock=0)
          #5  in stgFree (p=0x7fe060001820) at rts/RtsUtils.c:108
          #6  in freeHashTable (table=0x5929320, freeDataFun=0x36374df <stgFree>) at rts/Hash.c:360
          #7  in freeThreadLabelTable () at rts/ThreadLabels.c:37
          #8  in hs_exit_ (wait_foreign=rtsFalse) at rts/RtsStartup.c:403
          #9  in shutdownHaskellAndExit (n=0, fastExit=0) at rts/RtsStartup.c:481
          #10 in hs_main (...) at rts/RtsMain.c:91
          #11 in main (...) at ghc/hschooks.c:63
      
      Exposed itself after commit:
      
      > commit f6866824
      > Author: Sergei Trofimovich <slyfox@gentoo.org>
      > Date:   Mon Aug 4 08:10:33 2014 -0500
      >
      >     ghc --make: add nicer names to RTS threads (threaded IO manager, make workers)
      Signed-off-by: default avatarSergei Trofimovich <siarheit@google.com>
      
      Reviewers: austin, simonmar, ezyang, bgamari
      
      Reviewed By: ezyang, bgamari
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D1146
      74897dec
    • thomie's avatar
      e367e272
  11. 15 Aug, 2015 2 commits