- 27 May, 2005 1 commit
-
-
tharris authored
Update STM implementation for SMP builds
-
- 26 May, 2005 1 commit
-
-
simonpj authored
MERGE TO STABLE Put back in a missing case for higher-rank types. When the definition is a) non-recursive b) a function binding c) lacks a type signature we want to *infer* a perhaps-higher-rank type for the RHS, before making a monomorphically-typed Id for the LHS. E.g. f = \(x :: forall a. a->a) -> (x True, x 'c') This case got lost in the transition to 6.4 tc194 tests it
-
- 25 May, 2005 4 commits
-
-
simonmar authored
Fix Linker on Windows: there was one more place where we had to check for ".ctors" sections.
-
simonpj authored
Fix url
-
simonmar authored
something very strange happened with previous commit; try again
-
simonmar authored
Fix threaded RTS with older gcc versions. (merge rev. 1.215.2.10)
-
- 24 May, 2005 8 commits
-
-
simonmar authored
Move RTS_SUPPORTS_THREADS into RtsConfig.h
-
simonmar authored
implement lockClosure properly
-
simonmar authored
isObjectLinkable: don't return True for an empty linkable
-
simonmar authored
If hsc_lang is HscNothing, produce an empty linkable.
-
simonmar authored
Don't write the interface in JustTypecheck mode
-
simonpj authored
Yet another wibble to the GHCi top-level interaction story; avoid dup error messages
-
simonpj authored
typo
-
chak authored
More details about the representation of types after type checking.
-
- 23 May, 2005 11 commits
-
-
simonmar authored
Simplify and improve the Capability-passing machinery for bound threads. The old story was quite complicated: if you find a thread on the run queue which the current task can't run, you had to call passCapability(), which set a flag saying where the next Capability was to go, and then release the Capability. When multiple Capabilities are flying around, it's not clear how this story should extend. The new story is much simpler: each time around the scheduler loop, the task looks to see whether it can make any progress, and if not, it releases its Capability and wakes up a task which *can* make some progress. The predicate for whether we can make any progress is encapsulated in the (inline) function ANY_WORK_FOR_ME(Condition). Waking up an appropriate task is encapsulated in the function threadRunnable() (previously it was in two places). The logic in Capability.c is simpler, but unfortunately it is now more closely connected with the Scheduler, because it inspects the run queue. However, performance when communicating between bound and unbound threads might be better. The concurrency tests still work, so hopefully this hasn't broken anything.
-
simonpj authored
Print only the result of a bind stmt
-
simonmar authored
- scheduleDetectDeadlock() should invoke GarbageCollect() via scheduleDoGC(), which collects the Capabilities first. - scheduleDoGC() doesn't need the Capability. Also, it appears that there was an out-of-bounds array access in here. - add printThreadQueue(), useful from gdb. - fix a couple of warnings.
-
simonpj authored
rename exportsFromAvail
-
simonpj authored
Further GHCi wibbles a) Don't print the value of a 'let' b) Only one error message for 'print id'
-
simonpj authored
Dead code (HEAD only)
-
simonpj authored
Fix what "standard class" means MERGE to STABLE The Report's definition of defaulting (Section 4.3.4) defines a "standard class" to be one defined by the Prelude or a standard library. GHC was omitting the "..or a standard library" part; and it even omitted the Prelude classes Monad and Functor. This commit fixes the bug by adding Random, RandomGen, Monad, MonadPlus, Functor to the classes defined as "standard".
-
simonpj authored
Comments and type sig only
-
simonpj authored
Track new semantics of splitLongestPrefix; fixes -main-is bug
-
simonpj authored
Clarify code for splitLongestPrefix; no effect on behaviour
-
simonmar authored
needsCDecl: remove extra equation for CaseLabel, which was overlapped (and wrong!).
-
- 21 May, 2005 5 commits
-
-
panne authored
Warning police (format strings, unused variables)
-
panne authored
Warning police: Removed overlapped patterns. In general, taking compiler warnings about unmatched patterns seriously when they come up later might be better than writing catch-all patterns right from the start. Otherwise readers are confused and wonder which patterns might be missing when there are none.
-
panne authored
Warning police: Removed an overlapped catch-all pattern (which could really never match due to genprimopcode)
-
panne authored
Warning police: Use non-deprecated form of "foreign import"
-
panne authored
While acting as warning police, I tried to clean up the #ifdef chaos a little bit, I hope nothing has been broken due to that... :-]
-
- 20 May, 2005 8 commits
-
-
krasimir authored
Bugfix: in rtsFatalInternalErrorFn vsnprintf function was used instead of snprintf. The code is changed so that the error message will be displayed even if it is longer that BUFSIZE.
-
simonmar authored
Implement some more error checking to catch some cases where registering a package will lead to a package database containing conflicts, which would otherwise prevent GHC from being used without any -hide-package options. In 'update' mode, instead of complaining about conflicts, we now attempt to hide any packages which would cause a conflict. Previously this was limited to just older versions of the current package, now it applies to all packages which contain, or depend on packages which contain, modules which conflict with any module belonging to the current package or a dependency of it. Unfortunately we still can't cope with conflicts that cross the boundary between the user package databse and the global one. We will need some kind of white-out mechanism in order to be able to hide a global package in the user database.
-
simonpj authored
Documentation for new GHCi behaviour
-
simonpj authored
Further wibble to preceding GHCi commit
-
simonpj authored
Wibble to preceding GHCi commit
-
simonpj authored
Improve the GHCi interaction Merge to STABLE? This fix addresses Sourceforge #1156554 "GHCi: No instance for (Show (IO ()))", and simultaneously improves the top-level interaction in two other ways: - Only one error can show up (previously there could be two) - If an I/O action gives a Showable result, the result is printed (provided it isn't ()). So prompt> return 4 prints 4, rather than nothing - For command-line 'let' and 'x<-e' forms, if exactly one variable is bound, we print its value if it is Showable and not () prompt> let x = 4 4 prompt> x <- return 5 5
-
simonpj authored
Liberalise the defaulting rules for GHCi Merge to STABLE? The H98 defaulting rules are these. Group constraints of the form (C v), for some particular type variable v. Then default v if a) v appears only in this group (no implicit params or D [v]) b) at least one of the C's is numeric c) all the C's are standard GHCi changed rules (b) to (b') at least one of the C's is numeric, or Eq,Ord,Show This commit further liberalises GHCi to change (c): (c') any of the C's are standard Otherwise the existence of a non-standard class (e.g. Random) is enough to kill defaulting altogether.
-
simonpj authored
Comments only
-
- 19 May, 2005 2 commits
-
-
simonmar authored
Fix locking when unblocking a thread in take/putMVar. Due to CPP nonsense the previous locking wasn't actually working, which lead to deadlock problems. It now turns out that I can call unblockOne directly rather than needing unblockOneLocked (the lock on the MVar means I have exclusive access to the threads on its queue).
-
simonmar authored
- Move the call to threadPaused() from the scheduler into STG land, and put it in a new code fragment (stg_returnToSched) that we pass through every time we return from STG to the scheduler. Also, the SAVE_THREAD_STATE() is now in stg_returnToSched which might save a little code space (at the expense of an extra jump for every return to the scheduler). - SMP: when blocking on an MVar, we now wait until the thread has been made fully safe and placed on the blocked queue of the MVar before we unlock the MVar. This closes a race whereby another OS thread could begin waking us up before the current TSO had been properly tidied up. Fixes one cause of crashes when using MVars with SMP. I still have a deadlock problem to track down.
-