- 12 Apr, 2010 1 commit
-
-
Ian Lynagh authored
-
- 09 Apr, 2010 2 commits
-
-
Ian Lynagh authored
-
Ian Lynagh authored
IND_STATIC used to be an error, but at the moment it can happen as isAlive doesn't look through IND_STATIC as it ignores static closures. See trac #3956 for a program that hit this error.
-
- 30 Mar, 2010 1 commit
-
-
waern authored
The instances (and deriving declarations) have been taken from the ghc-syb package.
-
- 07 Apr, 2010 5 commits
-
-
Simon Marlow authored
-
Simon Marlow authored
-
Simon Marlow authored
-
Simon Marlow authored
-
Simon Marlow authored
-
- 06 Apr, 2010 5 commits
-
-
Simon Marlow authored
-
Simon Marlow authored
-
Simon Marlow authored
-
Simon Marlow authored
-
Simon Marlow authored
-
- 01 Apr, 2010 3 commits
-
-
Simon Marlow authored
-
Simon Marlow authored
These are no longer used: once upon a time they used to have different layout from IND and IND_PERM respectively, but that is no longer the case since we changed the remembered set to be an array of addresses instead of a linked list of closures.
-
Simon Marlow authored
The list of threads blocked on an MVar is now represented as a list of separately allocated objects rather than being linked through the TSOs themselves. This lets us remove a TSO from the list in O(1) time rather than O(n) time, by marking the list object. Removing this linear component fixes some pathalogical performance cases where many threads were blocked on an MVar and became unreachable simultaneously (nofib/smp/threads007), or when sending an asynchronous exception to a TSO in a long list of thread blocked on an MVar. MVar performance has actually improved by a few percent as a result of this change, slightly to my surprise. This is the final cleanup in the sequence, which let me remove the old way of waking up threads (unblockOne(), MSG_WAKEUP) in favour of the new way (tryWakeupThread and MSG_TRY_WAKEUP, which is idempotent). It is now the case that only the Capability that owns a TSO may modify its state (well, almost), and this simplifies various things. More of the RTS is based on message-passing between Capabilities now.
-
- 30 Mar, 2010 1 commit
-
-
Simon Marlow authored
-
- 01 Apr, 2010 1 commit
-
-
Simon Marlow authored
Avoids screeds of "event buffer overflowed; event dropped" in conc059(threaded1).
-
- 29 Mar, 2010 1 commit
-
-
Simon Marlow authored
This fixes #3838, and was made possible by the new BLACKHOLE infrastructure. To allow reording of the run queue I had to make it doubly-linked, which entails some extra trickiness with regard to GC write barriers and suchlike.
-
- 30 Mar, 2010 1 commit
-
-
Simon Marlow authored
-
- 29 Mar, 2010 3 commits
-
-
Simon Marlow authored
-
Simon Marlow authored
-
Simon Marlow authored
This replaces the global blackhole_queue with a clever scheme that enables us to queue up blocked threads on the closure that they are blocked on, while still avoiding atomic instructions in the common case. Advantages: - gets rid of a locked global data structure and some tricky GC code (replacing it with some per-thread data structures and different tricky GC code :) - wakeups are more prompt: parallel/concurrent performance should benefit. I haven't seen anything dramatic in the parallel benchmarks so far, but a couple of threading benchmarks do improve a bit. - waking up a thread blocked on a blackhole is now O(1) (e.g. if it is the target of throwTo). - less sharing and better separation of Capabilities: communication is done with messages, the data structures are strictly owned by a Capability and cannot be modified except by sending messages. - this change will utlimately enable us to do more intelligent scheduling when threads block on each other. This is what started off the whole thing, but it isn't done yet (#3838). I'll be documenting all this on the wiki in due course.
-
- 01 Apr, 2010 2 commits
-
-
Simon Marlow authored
-
Simon Marlow authored
-
- 26 Mar, 2010 1 commit
-
-
Simon Marlow authored
-
- 25 Mar, 2010 2 commits
-
-
Simon Marlow authored
-
Simon Marlow authored
I don't think this fixes any bugs as we don't have single-entry thunks at the moment, but it could cause problems for parallel execution if we ever did re-introduce update avoidance.
-
- 31 Mar, 2010 1 commit
-
-
milan authored
-
- 29 Mar, 2010 1 commit
-
-
milan authored
-
- 30 Mar, 2010 1 commit
-
-
Simon Marlow authored
-
- 03 Apr, 2010 3 commits
-
-
naur@post11.tele.dk authored
The warning message eliminated is: > rts/Linker.c:4756:0: > warning: nested extern declaration of 'symbolsWithoutUnderscore'
-
naur@post11.tele.dk authored
The error messages eliminated are: > compiler/nativeGen/AsmCodeGen.lhs:875:31: > Not in scope: `mkRtsCodeLabel' > compiler/nativeGen/AsmCodeGen.lhs:879:31: > Not in scope: `mkRtsCodeLabel' > compiler/nativeGen/AsmCodeGen.lhs:883:31: > Not in scope: `mkRtsCodeLabel'
-
naur@post11.tele.dk authored
The error message eliminated is: > compiler/nativeGen/AsmCodeGen.lhs:637:16: > Not in scope: data constructor `DestBlockId'
-
- 01 Apr, 2010 1 commit
-
-
Ian Lynagh authored
-
- 31 Mar, 2010 2 commits
-
-
Ian Lynagh authored
This seems to fix this failure: [...] ** BUILD SUCCEEDED ** rm -f -f GHC-system.pmdoc/*-contents.xml /Developer/usr/bin/packagemaker -v --doc GHC-system.pmdoc\ -o /Users/ian/to_release/ghc-6.12.1.20100330/GHC-6.12.1.20100330-i386.pkg 2010-03-31 15:08:15.695 packagemaker[13909:807] Setting to : 0 (null) 2010-03-31 15:08:15.709 packagemaker[13909:807] Setting to : 0 org.haskell.glasgowHaskellCompiler.ghc.pkg 2010-03-31 15:08:15.739 packagemaker[13909:807] relocate: (null) 0 2010-03-31 15:08:15.740 packagemaker[13909:807] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSXMLDocument initWithXMLString:options:error:]: nil argument' 2010-03-31 15:08:15.741 packagemaker[13909:807] Stack: ( 2511962091, 2447007291, 2511961547, 2511961610, 2432803204, 453371, 447720, 436209, 435510, 9986, 9918 ) make[1]: *** [framework-pkg] Trace/BPT trap make: *** [framework-pkg] Error 2
-
Ian Lynagh authored
Should fix toggling on OS X "Snow Leopard". Diagnosed by Roman Leshchinskiy.
-
- 30 Mar, 2010 2 commits
-
-
Ian Lynagh authored
-
Simon Marlow authored
-