Ian Lynagh [Thu, 26 Jun 2008 20:27:49 +0000 (20:27 +0000)]
Follow Cabal changes
Ian Lynagh [Thu, 26 Jun 2008 18:11:34 +0000 (18:11 +0000)]
Absolutify a path
When building ghc-prim/Setup we weren't putting the hi files in the
right place.
Ian Lynagh [Thu, 26 Jun 2008 11:27:39 +0000 (11:27 +0000)]
Remove fgl from extralibs
Ian Lynagh [Thu, 26 Jun 2008 11:25:11 +0000 (11:25 +0000)]
Use a program similar to cabal-install to build the libraries
This means that we don't have to make a Setup program for each library
individually, and also simplifies the build system a bit.
simonpj@microsoft.com [Wed, 25 Jun 2008 16:02:04 +0000 (16:02 +0000)]
Fix Trac #2394: test for non-algebraic types in standalone deriving
Ian Lynagh [Tue, 24 Jun 2008 14:48:49 +0000 (14:48 +0000)]
() is now in ghc-prim:GHC.Unit
Ian Lynagh [Tue, 24 Jun 2008 12:25:29 +0000 (12:25 +0000)]
Generate a warning-free GHC.PrimopWrappers. ghc-prim is now -Wall clean.
Ian Lynagh [Mon, 23 Jun 2008 22:34:54 +0000 (22:34 +0000)]
Fix some inconsistencies in the code and docs of primitives
We were inconsistent about whether to use the name "MutArr#" or
"MutableArray#". Likewise ByteArr#/ByteArray# and
MutByteArr#/MutableByteArray#.
Ian Lynagh [Mon, 23 Jun 2008 14:44:26 +0000 (14:44 +0000)]
Fix the build with GHC 6.4
Ian Lynagh [Sun, 22 Jun 2008 13:46:13 +0000 (13:46 +0000)]
Don't rebuild things with the stage2 compiler
It leads to annoying rebuilding when working in a built tree.
We'll handle this differently for 6.10.
Ian Lynagh [Fri, 20 Jun 2008 21:21:10 +0000 (21:21 +0000)]
editline is now warning-free
Ian Lynagh [Sat, 21 Jun 2008 17:11:00 +0000 (17:11 +0000)]
Remove special handling for character types of characters >= 128, <= 255
Many of the character types were wrong. Now the asc* names really do mean
ASCII, rather than latin-1.
Ian Lynagh [Fri, 20 Jun 2008 19:30:03 +0000 (19:30 +0000)]
Remove code that isn't used now that we assume that GHC >= 6.4
Ian Lynagh [Fri, 20 Jun 2008 19:10:59 +0000 (19:10 +0000)]
Now that we require GHC >= 6.4.2, System.IO.Error is always available
Ian Lynagh [Fri, 20 Jun 2008 14:20:58 +0000 (14:20 +0000)]
hpc is -Wall clean
Ian Lynagh [Fri, 20 Jun 2008 13:56:52 +0000 (13:56 +0000)]
filepath is now warning-free
Ian Lynagh [Fri, 20 Jun 2008 13:53:35 +0000 (13:53 +0000)]
pretty is now -Wall clean
Ian Lynagh [Fri, 20 Jun 2008 01:18:32 +0000 (01:18 +0000)]
process is now -Wall clean
Ian Lynagh [Fri, 20 Jun 2008 01:13:35 +0000 (01:13 +0000)]
directory is now -Wall clean
Ian Lynagh [Thu, 19 Jun 2008 23:59:25 +0000 (23:59 +0000)]
integer-gmp is warning-free
Ian Lynagh [Thu, 19 Jun 2008 23:56:12 +0000 (23:56 +0000)]
packedstring is now -Wall clean
Ian Lynagh [Thu, 19 Jun 2008 23:31:27 +0000 (23:31 +0000)]
old-time is now warning-free
Ian Lynagh [Thu, 19 Jun 2008 23:21:52 +0000 (23:21 +0000)]
old-locale is now warning-free
Ian Lynagh [Thu, 19 Jun 2008 14:02:11 +0000 (14:02 +0000)]
random is now -Wall clean
Simon Marlow [Thu, 19 Jun 2008 12:12:27 +0000 (12:12 +0000)]
document some RTS options I added a while ago: -qm, -qw
Simon Marlow [Thu, 19 Jun 2008 12:12:01 +0000 (12:12 +0000)]
Document the change to +RTS -S/-s/-t
Simon Marlow [Thu, 19 Jun 2008 12:11:11 +0000 (12:11 +0000)]
document paralel GC option: +RTS -g
Simon Marlow [Thu, 19 Jun 2008 11:33:29 +0000 (11:33 +0000)]
+RTS -S -RTS now sends output to stderr (also -s)
Previously +RTS -Sstderr -RTS was required to send output to stderr,
but this is the most common usage and I got tired of typing "stderr".
The old default behaviour of sending output to <prog>.stat is now gone
(I don't think we use it anywhere).
Temporarily we allowed +RTS -S- -RTS to mean stderr; there were
objections to this, so it is now also gone.
Ian Lynagh [Thu, 19 Jun 2008 01:07:02 +0000 (01:07 +0000)]
bytestring is -Wall clean
Ian Lynagh [Thu, 19 Jun 2008 01:04:36 +0000 (01:04 +0000)]
Cabal is -Wall clean
Ian Lynagh [Thu, 19 Jun 2008 01:01:24 +0000 (01:01 +0000)]
The haskell98 library is -Wall clean
Ian Lynagh [Thu, 19 Jun 2008 00:58:11 +0000 (00:58 +0000)]
template-haskell is now -Wall clean
Ian Lynagh [Wed, 18 Jun 2008 23:36:51 +0000 (23:36 +0000)]
containers is now -Wall clean
Simon Marlow [Thu, 19 Jun 2008 10:09:04 +0000 (10:09 +0000)]
fix a tiny bug spotted by gcc 4.3
Simon Marlow [Thu, 19 Jun 2008 10:08:49 +0000 (10:08 +0000)]
Fix up inlines for gcc 4.3
gcc 4.3 emits warnings for static inline functions that its heuristics
decided not to inline. The workaround is to either mark appropriate
functions as "hot" (a new attribute in gcc 4.3), or sometimes to use
"extern inline" instead.
With this fix I can validate with gcc 4.3 on Fedora 9.
Simon Marlow [Wed, 18 Jun 2008 14:43:07 +0000 (14:43 +0000)]
fix warnings with gcc 4.3
Simon Marlow [Wed, 18 Jun 2008 14:02:28 +0000 (14:02 +0000)]
it's time to retire ghcprof & friends
Ian Lynagh [Wed, 18 Jun 2008 16:22:33 +0000 (16:22 +0000)]
Make the wired-in packages code handle ndp mapping to ndp-seq or ndp-par
It's getting a bit crufty - could probably do with a rewrite.
Ian Lynagh [Tue, 17 Jun 2008 02:01:45 +0000 (02:01 +0000)]
Put the infrastructure in place for getting the libraries -Wall clean
libraries/Makefile.local now lists those for which we need to pass -w
(currently this is every library).
Ian Lynagh [Mon, 16 Jun 2008 22:59:49 +0000 (22:59 +0000)]
utils/Digraph doesn't need -fglasgow-exts passed specially
simonpj@microsoft.com [Mon, 16 Jun 2008 20:17:00 +0000 (20:17 +0000)]
Fix Trac #2321: bug in SAT
This is a fairly substantial rewrite of the Static Argument Transformatoin,
done by Max Bolingbroke and reviewed and modified by Simon PJ.
* Fix a subtle scoping problem; see Note [Binder type capture]
* Redo the analysis to use environments
* Run gentle simlification just before the transformation
Simon Marlow [Wed, 18 Jun 2008 13:21:16 +0000 (13:21 +0000)]
define NeedVarargsPrototypes to avoid segfault on x86_64
Simon Marlow [Tue, 17 Jun 2008 12:35:10 +0000 (12:35 +0000)]
Fix an example where we weren't doing case-of-case when we should
That's 1 line of new code and 38 lines of new comments
Simon Marlow [Wed, 18 Jun 2008 09:40:18 +0000 (09:40 +0000)]
fix gcc warnings for printf formats on 32-bit
Simon Marlow [Wed, 18 Jun 2008 09:47:00 +0000 (09:47 +0000)]
FIX BUILD on Windows
Simon Marlow [Tue, 17 Jun 2008 15:21:17 +0000 (15:21 +0000)]
Sort the mi_deps into a canonical ordering before fingerprinting.
This may help do a little less recompilation with make (GHC's --make
is unaffected).
Simon Marlow [Tue, 17 Jun 2008 15:15:30 +0000 (15:15 +0000)]
Fix another "urk! lookup local fingerprint" in nofib/real/bspt/GeomNum.lhs
Simon Marlow [Tue, 17 Jun 2008 13:46:51 +0000 (13:46 +0000)]
small interpreter fix
Simon Marlow [Tue, 17 Jun 2008 10:11:02 +0000 (10:11 +0000)]
fix some printf formats for 64 bits
Simon Marlow [Tue, 17 Jun 2008 10:10:45 +0000 (10:10 +0000)]
64-bit fixes
Simon Marlow [Mon, 16 Jun 2008 07:31:11 +0000 (07:31 +0000)]
don't try to parallelise marking GC (yet)
Simon Marlow [Mon, 9 Jun 2008 19:17:22 +0000 (19:17 +0000)]
another stableptr003 fix
Simon Marlow [Mon, 9 Jun 2008 17:49:43 +0000 (17:49 +0000)]
Experimental "mark-region" strategy for the old generation
Sometimes better than the default copying, enabled by +RTS -w
Simon Marlow [Mon, 9 Jun 2008 17:16:17 +0000 (17:16 +0000)]
threadStackUnderflow: fix up the bd->free pointers in the split blocks
Simon Marlow [Sun, 8 Jun 2008 07:37:54 +0000 (07:37 +0000)]
fix allocated blocks calculation, and add more sanity checks
Simon Marlow [Tue, 3 Jun 2008 07:31:19 +0000 (07:31 +0000)]
Put the contents of Evac.c-inc back in Evac.c, and just compile the file twice
Similarly for Scav.c/Scav.c-inc.
Simon Marlow [Tue, 3 Jun 2008 07:27:01 +0000 (07:27 +0000)]
+RTS -N also sets +RTS -g
Simon Marlow [Tue, 3 Jun 2008 07:26:08 +0000 (07:26 +0000)]
DECLARE_GCT for when we have no register variable
Simon Marlow [Tue, 3 Jun 2008 07:25:27 +0000 (07:25 +0000)]
comment updates
Simon Marlow [Tue, 3 Jun 2008 03:26:25 +0000 (03:26 +0000)]
fix some types for 64-bit platforms
Simon Marlow [Tue, 3 Jun 2008 03:25:57 +0000 (03:25 +0000)]
+RTS -S- is the same as +RTS -Sstderr
Simon Marlow [Tue, 3 Jun 2008 03:25:34 +0000 (03:25 +0000)]
move the spinlock counts inside +RTS -S
Simon Marlow [Wed, 28 May 2008 06:39:04 +0000 (06:39 +0000)]
FIX #2164: check for ThreadRelocated in isAlive()
Simon Marlow [Thu, 24 Apr 2008 20:58:29 +0000 (20:58 +0000)]
FIX the compacting GC again
Simon Marlow [Thu, 24 Apr 2008 20:58:13 +0000 (20:58 +0000)]
FIX #2185: sparks should not be treated as roots by the GC
Simon Marlow [Thu, 17 Apr 2008 22:02:21 +0000 (22:02 +0000)]
turn off the usleep() in the GC thread idle loop (tmp, for portability)
Simon Marlow [Thu, 17 Apr 2008 22:01:57 +0000 (22:01 +0000)]
declare the GC thread register variable more portably
Simon Marlow [Thu, 17 Apr 2008 21:27:07 +0000 (21:27 +0000)]
remove EVACUATED: store the forwarding pointer in the info pointer
Simon Marlow [Thu, 17 Apr 2008 18:00:16 +0000 (18:00 +0000)]
tso->link is now tso->_link (fix after merge with HEAD)
Simon Marlow [Wed, 16 Apr 2008 23:44:46 +0000 (23:44 +0000)]
Don't look at all the threads before each GC.
We were looking at all the threads for 2 reasons:
1. to catch transactions that might be looping as a
result of seeing an inconsistent view of memory.
2. to catch threads with blocked exceptions that are
themselves blocked.
For (1) we now check for this case whenever a thread yields, and for
(2) we catch these threads in the GC itself and send the exceptions
after GC (see performPendingThrowTos).
Simon Marlow [Wed, 16 Apr 2008 23:44:20 +0000 (23:44 +0000)]
Don't traverse the entire list of threads on every GC (phase 1)
Instead of keeping a single list of all threads, keep one per step
and only look at the threads belonging to steps that we are
collecting.
Simon Marlow [Wed, 16 Apr 2008 23:43:49 +0000 (23:43 +0000)]
optimisation for isAlive()
Simon Marlow [Wed, 16 Apr 2008 23:43:24 +0000 (23:43 +0000)]
refactoring
Simon Marlow [Wed, 16 Apr 2008 23:42:34 +0000 (23:42 +0000)]
add [] to foreign calls
Simon Marlow [Wed, 16 Apr 2008 23:41:35 +0000 (23:41 +0000)]
remove GRAN/PAR code
Simon Marlow [Wed, 16 Apr 2008 23:40:42 +0000 (23:40 +0000)]
bugfix for traverseBlackHoleQueue
Simon Marlow [Wed, 16 Apr 2008 23:39:51 +0000 (23:39 +0000)]
Add a write barrier to the TSO link field (#1589)
Simon Marlow [Wed, 16 Apr 2008 23:39:22 +0000 (23:39 +0000)]
fix trace
Simon Marlow [Wed, 16 Apr 2008 23:38:30 +0000 (23:38 +0000)]
tmp: alloc one block at a time
Simon Marlow [Wed, 16 Apr 2008 23:30:58 +0000 (23:30 +0000)]
add debugging code to check for fragmentation
Simon Marlow [Wed, 16 Apr 2008 23:29:49 +0000 (23:29 +0000)]
do a better job of re-using partial blocks in subsequent GCs
Simon Marlow [Wed, 16 Apr 2008 23:29:06 +0000 (23:29 +0000)]
Use the BF_EVACUATED flag to indicate to-space consistently
BF_EVACUATED is now set on all blocks except those that we are
copying. This means we don't need a separate test for gen>N in
evacuate(), because in generations older than N, BF_EVACUATED will be
set anyway. The disadvantage is that we have to reset the
BF_EVACUATED flag on the blocks of any generation we're collecting
before starting GC. Results in a small speed improvement.
Simon Marlow [Wed, 16 Apr 2008 23:28:25 +0000 (23:28 +0000)]
rearrange: we were calling markSomeCapabilities too often
Simon Marlow [Wed, 16 Apr 2008 23:27:39 +0000 (23:27 +0000)]
debug output: show mem in use
Simon Marlow [Wed, 16 Apr 2008 23:25:10 +0000 (23:25 +0000)]
make +RTS -G1 work again
Simon Marlow [Wed, 16 Apr 2008 23:24:33 +0000 (23:24 +0000)]
pad step_workspace to 64 bytes, to speed up access to gct->steps[]
Simon Marlow [Wed, 16 Apr 2008 23:23:55 +0000 (23:23 +0000)]
update copyrights in rts/sm
Simon Marlow [Wed, 16 Apr 2008 23:22:32 +0000 (23:22 +0000)]
Reorganisation to fix problems related to the gct register variable
- GCAux.c contains code not compiled with the gct register enabled,
it is callable from outside the GC
- marking functions are moved to their relevant subsystems, outside
the GC
- mark_root needs to save the gct register, as it is called from
outside the GC
Simon Marlow [Wed, 16 Apr 2008 22:45:41 +0000 (22:45 +0000)]
faster block allocator, by dividing the free list into buckets
Simon Marlow [Wed, 16 Apr 2008 22:38:24 +0000 (22:38 +0000)]
allocate more blocks in one go, to reduce contention for the block allocator
Simon Marlow [Wed, 16 Apr 2008 22:25:39 +0000 (22:25 +0000)]
measure GC(0/1) times and work imbalance
Simon Marlow [Wed, 16 Apr 2008 22:23:19 +0000 (22:23 +0000)]
remove outdated comment
Simon Marlow [Wed, 16 Apr 2008 22:15:16 +0000 (22:15 +0000)]
calculate and report slop (wasted space at the end of blocks)
Simon Marlow [Wed, 16 Apr 2008 22:13:56 +0000 (22:13 +0000)]
free empty blocks at the end of GC
Simon Marlow [Wed, 16 Apr 2008 22:13:31 +0000 (22:13 +0000)]
move the scan block pointer into the gct structure
Simon Marlow [Wed, 16 Apr 2008 22:12:24 +0000 (22:12 +0000)]
improvements to +RTS -s output
- count and report number of parallel collections
- calculate bytes scanned in addition to bytes copied per thread
- calculate "work balance factor"
- tidy up the formatting a bit
Simon Marlow [Wed, 16 Apr 2008 22:10:02 +0000 (22:10 +0000)]
wait for threads to start up properly
Simon Marlow [Wed, 16 Apr 2008 22:08:07 +0000 (22:08 +0000)]
debug output tweaks
Simon Marlow [Wed, 16 Apr 2008 22:06:20 +0000 (22:06 +0000)]
Keep track of an accurate count of live words in each step
This means we can calculate slop easily, and also improve
predictability of GC.
Simon Marlow [Wed, 16 Apr 2008 22:03:47 +0000 (22:03 +0000)]
Allow work units smaller than a block to improve load balancing