- Mar 15, 2010
-
-
Ian Lynagh authored
-
Simon Marlow authored
-
- Mar 14, 2010
-
-
Ian Lynagh authored
-
Ian Lynagh authored
-
Ian Lynagh authored
-
- Mar 13, 2010
-
-
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
-
- Mar 11, 2010
-
-
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
-
- Nov 23, 2009
-
-
Simon Marlow authored
-
- Mar 09, 2010
-
-
Simon Peyton Jones 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
-
Simon Peyton Jones 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.
-
Simon Peyton Jones authored
-
Simon Peyton Jones 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!)
-
Simon Peyton Jones authored
isClosedUnfolding should say False for DFUnUnfolding!
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
-
Simon Peyton Jones 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
-
Simon Marlow authored
This fixes occasional failures of ffi002(threaded1) on a loaded machine.
-
- Mar 05, 2010
-
-
Simon Peyton Jones authored
(and similarly for PS and PDF) The previous setup nuked the rules for making the documentation when BUILD_DOCBOOK_HTML=NO. This meant that "make html" didn't work. There isn't any reason to nuke the rules (so far as Simon and I know).
-
Simon Peyton Jones authored
preInlineUnconditionally was, in effect, nuking an INLINE pragma, with very bad effect on runtime in this program. Fortunately the fix is very simple. See Note [InlineRule and preInlineUnconditionally] in SimplUtils.
-
- Mar 04, 2010
-
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
This one was bigger than I anticipated! The problem was that were were gathering the binders from a pattern before renaming -- but with record wild-cards we don't know what variables are bound by C {..} until after the renamer has filled in the "..". So this patch does the following * Change all the collect-X-Binders functions in HsUtils so that they expect to only be called *after* renaming. That means they don't need to return [Located id] but just [id]. Which turned out to be a very worthwhile simplification all by itself. * Refactor the renamer, and in ptic RnExpr.rnStmt, so that it doesn't need to use collectLStmtsBinders on pre-renamed Stmts. * This in turn required me to understand how GroupStmt and TransformStmts were renamed. Quite fiddly. I rewrote most of it; result is much shorter. * In doing so I flattened HsExpr.GroupByClause into its parent GroupStmt, with trivial knock-on effects in other files. Blargh.
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
-
Simon Peyton Jones authored
a) Even with -dsuppress-uniques, don't suppress them when outputing code, else the assembler falls over bleating b) Do suppress uniques in names generated by TH. It's a bit grungy to do this: see Note [Suppressing uniques in OccNames]. But it's only needed for test de-wobblification so the grunge isn't really important.
-
Simon Marlow authored
-
- Mar 03, 2010
-
-
Simon Peyton Jones authored
-
Simon Marlow authored
This makes things more consistent, and avoids a strange "Prelude is not loaded" error when there is a Prelude.hs on the search path.
-
- Mar 02, 2010
-
-
Simon Marlow authored
-
Simon Marlow authored
-
Ian Lynagh authored
-