- 24 Mar, 2010 4 commits
-
-
Ian Lynagh authored
-
Ian Lynagh authored
-
Ian Lynagh authored
-
Ian Lynagh authored
-
- 23 Mar, 2010 1 commit
-
-
Ian Lynagh authored
The main change is that, rather than using "xargs ar" we now put all the filenames into a file, and do "ar @file". This means that ar adds all the files at once, which works around a problem where files with the same basename in a later invocation were overwriting the existing file in the .a archive.
-
- 20 Mar, 2010 1 commit
-
-
Ian Lynagh authored
-
- 21 Mar, 2010 2 commits
-
-
Ian Lynagh authored
-
Ian Lynagh authored
-
- 20 Mar, 2010 1 commit
-
-
Ian Lynagh authored
-
- 19 Mar, 2010 2 commits
-
-
Simon Marlow authored
Accidnetally pushed this patch which, while it validates, isn't correct. rolling back: Fri Mar 19 11:21:27 GMT 2010 Simon Marlow <marlowsd@gmail.com> * slight improvement to scavenging of update frames when a collision has occurred M ./rts/sm/Scav.c -19 +15
-
Simon Marlow authored
-
- 17 Mar, 2010 1 commit
-
-
Ian Lynagh authored
-
- 16 Mar, 2010 1 commit
-
-
Ian Lynagh authored
This makes the RTS hooks work when doing dynamic linking
-
- 17 Mar, 2010 1 commit
-
-
simonpj@microsoft.com authored
Fix two places where we were doing foldl instead of foldr after decomposing a Kind. Strange that the same bug appears in two quite different places!
-
- 16 Mar, 2010 2 commits
-
-
Simon Marlow authored
Fixes a rare crash in the parallel GC. If we copy a closure non-atomically during GC, as we do for all immutable values, then before writing the forwarding pointer we better make sure that the closure itself is visible to other threads that might follow the forwarding pointer. I imagine this doesn't happen very often, but I just found one case of it: in scavenge_stack, the RET_FUN case, after evacuating ret_fun->fun we then follow it and look up the info pointer.
-
benl@ouroborus.net authored
-
- 11 Mar, 2010 1 commit
-
-
benl@ouroborus.net authored
-
- 15 Mar, 2010 2 commits
-
-
Ian Lynagh authored
-
Simon Marlow authored
-
- 14 Mar, 2010 3 commits
-
-
Ian Lynagh authored
-
Ian Lynagh authored
-
Ian Lynagh authored
-
- 13 Mar, 2010 3 commits
-
-
Ian Lynagh authored
You can now link with -with-rtsopts="-H128m -K1m"
-
Ian Lynagh authored
-
Ian Lynagh authored
If RTS options are disabled then: * The ghc_rts_opts C code variable is processed as normal * The GHCRTS environment variable is ignored and, if it is defined, a warning is emitted * The +RTS flag gives an error and terminates the program
-
- 11 Mar, 2010 3 commits
-
-
Simon Marlow authored
-
Simon Marlow authored
This replaces some complicated locking schemes with message-passing in the implementation of throwTo. The benefits are - previously it was impossible to guarantee that a throwTo from a thread running on one CPU to a thread running on another CPU would be noticed, and we had to rely on the GC to pick up these forgotten exceptions. This no longer happens. - the locking regime is simpler (though the code is about the same size) - threads can be unblocked from a blocked_exceptions queue without having to traverse the whole queue now. It's a rare case, but replaces an O(n) operation with an O(1). - generally we move in the direction of sharing less between Capabilities (aka HECs), which will become important with other changes we have planned. Also in this patch I replaced several STM-specific closure types with a generic MUT_PRIM closure type, which allowed a lot of code in the GC and other places to go away, hence the line-count reduction. The message-passing changes resulted in about a net zero line-count difference.
-
Simon Marlow authored
-
- 23 Nov, 2009 1 commit
-
-
Simon Marlow authored
-
- 09 Mar, 2010 11 commits
-
-
simonpj@microsoft.com authored
We were getting a bogus claim that a newtype "data constructor" was unused. The fix is easy, although I had to add a field to the constructor TcEnv.NewTypeDerived See Note [Newtype deriving and unused constructors] in TcDeriv
-
simonpj@microsoft.com authored
While I was looking at the rule binders generated in DsBinds for specialise pragmas, I also looked at Specialise. It too was "cloning" the dictionary binders including their IdInfo. In this case they should not have any, but its seems better to make them completely fresh rather than substitute in existing (albeit non-existent) IdInfo.
-
simonpj@microsoft.com authored
-
simonpj@microsoft.com authored
When DsBinds deals with a SPECIALISE pragma, it makes up the binders for a RULE. These binders should be very vanilla: no IdInfo of any sort. But the way it was before they could have DFun pragmas, which led to Bad Joss downstream. (Actually to cause a downstream *error* was itself a bug, which I've fixed, but it's clearly wrong for them to be DFuns!)
-
simonpj@microsoft.com authored
isClosedUnfolding should say False for DFUnUnfolding!
-
simonpj@microsoft.com authored
-
simonpj@microsoft.com authored
-
simonpj@microsoft.com authored
-
simonpj@microsoft.com authored
We were getting "INLINEALWAYS" printed out here and there. Now there are always brackets around the activation, thus "INLINE[ALWAYS]"
-
Simon Marlow authored
The idea is that this leaves Tasks and OSThread in one-to-one correspondence. The part of a Task that represents a call into Haskell from C is split into a separate struct InCall, pointed to by the Task and the TSO bound to it. A given OSThread/Task thus always uses the same mutex and condition variable, rather than getting a new one for each callback. Conceptually it is simpler, although there are more types and indirections in a few places now. This improves callback performance by removing some of the locks that we had to take when making in-calls. Now we also keep the current Task in a thread-local variable if supported by the OS and gcc (currently only Linux).
-
Simon Marlow authored
-