I think this should fix the problem.
It certainly doesn't break anything on a 64 bit machine,
and should fix the problem on a 32 bit machine (although I can't test that)
On 3 May 2014 06:31, Mateusz Kowalczyk fuuze...@fuuzetsu.co.uk wrote:
On 05/02/2014 03:50 PM, g...@git.haskell.org wrote:
Repository : ssh://g...@git.haskell.org/ghc
On branch : master
Link :
http://ghc.haskell.org/trac/ghc/changeset/b0534f78a73f972e279eed4447a5687bd6a8308e/ghc
---
commit b0534f78a73f972e279eed4447a5687bd6a8308e
Author: Simon Marlow marlo...@gmail.com
Date: Mon Apr 28 16:55:47 2014 +0100
Per-thread allocation counters and limits
This tracks the amount of memory allocation by each thread in a
counter stored in the TSO. Optionally, when the counter drops below
zero (it counts down), the thread can be sent an asynchronous
exception: AllocationLimitExceeded. When this happens, given a small
additional limit so that it can handle the exception. See
documentation in GHC.Conc for more details.
Allocation limits are similar to timeouts, but
- timeouts use real time, not CPU time. Allocation limits do not
count anything while the thread is blocked or in foreign code.
- timeouts don't re-trigger if the thread catches the exception,
allocation limits do.
- timeouts can catch non-allocating loops, if you use
-fno-omit-yields. This doesn't work for allocation limits.
I couldn't measure any impact on benchmarks with these changes, even
for nofib/smp.
---
b0534f78a73f972e279eed4447a5687bd6a8308e
compiler/cmm/CmmLayoutStack.hs |9 +-
compiler/codeGen/StgCmmForeign.hs | 268
++--
includes/CodeGen.Platform.hs |4 +-
includes/rts/Constants.h |6 +
includes/rts/Flags.h |8 +
includes/rts/Threads.h |8 +-
includes/rts/storage/TSO.h | 31 ++-
libraries/base/Control/Exception.hs|1 +
libraries/base/Control/Exception/Base.hs |1 +
libraries/base/GHC/Conc.lhs|6 +
libraries/base/GHC/Conc/Sync.lhs | 92 ++-
libraries/base/GHC/IO/Exception.hs | 21 +-
rts/HeapStackCheck.cmm |4 +-
rts/Linker.c |4 +
rts/Prelude.h |2 +
rts/RaiseAsync.c | 54
rts/RaiseAsync.h |4 +
rts/RtsFlags.c | 10 +
rts/RtsStartup.c |1 +
rts/Schedule.c | 19 ++
rts/Threads.c | 77 +++---
rts/package.conf.in|2 +
rts/sm/Storage.c |6 +
testsuite/tests/concurrent/should_run/all.T|7 +
.../tests/concurrent/should_run/allocLimit1.hs |9 +
.../tests/concurrent/should_run/allocLimit1.stderr |1 +
.../tests/concurrent/should_run/allocLimit2.hs | 17 ++
.../tests/concurrent/should_run/allocLimit3.hs | 15 ++
.../tests/concurrent/should_run/allocLimit3.stderr |1 +
.../should_run/allocLimit3.stdout} |1 -
.../tests/concurrent/should_run/allocLimit4.hs | 31 +++
utils/deriveConstants/DeriveConstants.hs |1 +
32 files changed, 576 insertions(+), 145 deletions(-)
Diff suppressed because of size. To see it, use:
git diff-tree --root --patch-with-stat --no-color
--find-copies-harder --ignore-space-at-eol --cc
b0534f78a73f972e279eed4447a5687bd6a8308e
___
ghc-commits mailing list
ghc-comm...@haskell.org
http://www.haskell.org/mailman/listinfo/ghc-commits
I just tried to compile a snapshot involving this commit and got a
compile failure:
http://lpaste.net/103540
I was compiling with GHC 7.8.2 on a 32-bit machine.
--
Mateusz K.
___
ghc-devs mailing list
ghc-devs@haskell.org
http://www.haskell.org/mailman/listinfo/ghc-devs
From 988ff210fe62d9a62396177891b9dcccd7f63ce0 Mon Sep 17 00:00:00 2001
From: William Kenyon git...@abacathoo.org
Date: Sat, 3 May 2014 11:16:54 +
Subject: [PATCH][BUILD] Fixed inconsistent word widths for an addition and
subtraction
This was causing build failures on 32 bit machines
Signed-off-by: William Kenyon git...@abacathoo.org
---
compiler/codeGen/StgCmmForeign.hs | 8
1 file