- 10 Nov, 2005 1 commit
-
-
simonmar authored
make validate happy
-
- 09 Nov, 2005 1 commit
-
-
simonmar authored
oops, it's i386_TARGET_ARCH, not x86_TARGET_ARCH
-
- 08 Nov, 2005 7 commits
-
-
simonmar authored
SMP bugfix: if the thread we were just running blocked, then we are in a delicate state - we don't necessarily have access to the TSO we were just running, because we relinquished it when we put it on whatever blocking queue it is on. It might even be running already. Previously I made the scheduler quickly loop again in this case. However, I made it loop too quickly: we should be sure to set the blackholes_need_checking flag if necessary, otherwise we can miss some wakeups.
-
simonmar authored
more docs for GHC_PACKAGE_PATH
-
simonmar authored
when GHC_PACKAGE_PATH is set, treat the database at the bottom of the stack as the "global" one, ie. the one we modify by default. This means that GHC_PACKAGE_PATH can be used to set up a virtual GHC package environment into which packages can be installed using Cabal, without setting anything other than GHC_PACKAGE_PATH.
-
simonmar authored
gcc's -fstrict-aliasing is biting us when we use the stack to store different types of objects. For example: *((StgDouble*)((W_)Sp-8)) = *((StgDouble*)((W_)Sp+8)); Sp[1] = (W_)&s1Cx_info; gcc feels free to reorder these two lines, because they refer to differently typed objects, even though the assignment to Sp[1] clearly aliases the read from the same location. Trying to fix this by accessing locations using union types might be possible, but I took the sledgehammer approach of -fno-strict-aliasing. This is justified to a certain extent because our generated C code is derived from a very weakly-typed internal language (C--).
-
simonmar authored
unless I'm mistaken, only x86 needs -ffloat-store. x86_64 certainly doesn't need it, because it uses SSE2 with the correct-sized floating point registers and doesn't store temporary results with more precision than results in memory.
-
simonmar authored
Fix bug in an assertion
-
simonmar authored
raiseAsync: fix bug that can cause a scavenge_stack panic for a thread that has just been killed.
-
- 07 Nov, 2005 2 commits
- 05 Nov, 2005 1 commit
-
-
ross authored
fix for pre-6.0 ghc's
-
- 04 Nov, 2005 5 commits
-
-
simonmar authored
Document GHC_PACKAGE_PATH, and changes to the ghc-pkg command line interface.
-
simonmar authored
- Add support for the GHC_PACKAGE_PATH environment variable, which specifies a :-separated (;-separated on Windows) list of package database files. If the list ends in : (; on Windows), then the normal user and global databases are added. GHC_PACKAGE_PATH is searched left-to-right for packages, like $PATH, but unlike -package-conf flags, which are searched right-to-left. This isn't ideal, but it seemed the least worst to me (command line flags always override right-to-left (except -i), whereas the PATH environment variable overrides left-to-right, I chose to follow the environment variable convention). I can always change it if there's an outcry. - Rationalise the interpretation of --user, --global, and -f on the ghc-pkg command line. The story is now this: --user and --global say which package database to *act upon*, they do not change the shape of the database stack. -f pushes a database on the stack, and also requests that the specified database be the one to act upon, for commands that modify the database. If a database is already on the stack, then -f just selects it as the one to act upon. This means you can have a bunch of databases in GHC_PACKAGE_PATH, and use -f to select the one to modify.
-
simonmar authored
patch up forkProcess(): don't discard our own Task, and set cap->spare_workers to be empty in the child process.
-
simonmar authored
We shouldn't call closeCondition() on the condition in discardTask(), we're just freeing the Task for later use.
-
simonmar authored
Win32: Use CriticalSections instead of Mutexes, they are *much* faster.
-
- 03 Nov, 2005 13 commits
-
-
simonmar authored
adjust type of startSignalHandlers() to make changes to Win32 version
-
simonmar authored
schedulePushWork(): don't attempt to move the thread bound to the current Task to a different Capability.
-
simonmar authored
wibble
-
simonmar authored
Improve the Win32 implementation of the time-measurement stuff. Now supports per-thread CPU time, and the elapsed time should be correct (previously it was the sum of user time & kernel time, which isn't what we want).
-
simonmar authored
use getThreadCPUTime, not getProcessTimes
-
simonmar authored
Fixes for console event handling on Win32 in the threaded/SMP runtime. (it now builds, but is untested).
-
simonpj authored
Missing import for new assert
-
simonmar authored
Modify ACQUIRE_LOCK/RELEASE_LOCK for use in .cmm files
-
simonmar authored
avoid a warning
-
simonmar authored
Fix build on win32.
-
simonmar authored
Improvments to time-measurement and stats: - move all the platform-dependent timing related stuff into posix/GetTime.c and win32/GetTime.c, with the machine-indepent interface specified in GetTime.h. This is now used by Stats.c. - On Unix, use gettimeofday() and getrusage() by default, falling back to time() if one of these isn't available. - try to implement thread-specfic CPU-time measurement using clock_gettime() on Unix. Doesn't work reliably on Linux, because the implemenation tries to use the processor TSC, which on an SMP machine goes wrong when the thread moves between CPUs. However, it's slightly less bogus that before, and hopefully will improve in the future.
-
simonmar authored
indentation only
-
simonmar authored
Check for librt and clock_gettime()
-
- 02 Nov, 2005 9 commits
-
-
simonpj authored
Second correction to the TH fix of Oct 26, involving thFAKE Original message 1) A bug in the renaming of [d| brackets |]. The problem was that when we renamed the bracket we messed up the name cache, because the module was still that of the parent module. Now we set a fake module before renaming it. This commit fixes the typecheker problem in a different way, in tcLookupGlobal.
-
simonpj authored
Trace output only
-
simonmar authored
release/acquire the SM lock around scheduleFinalizers(), because we need to call allocateLocal() in there, which acquires the SM lock.
-
simonmar authored
when shutting down, don't allow a worker to exit until the run queue is empty, because the thread in exitScheduler() is waiting for this.
-
simonmar authored
scheduleHandleStackOverflow: fix bug in non-threaded RTS - if (task->tso != NULL), then (task->tso) is not necessarily the TSO we are running (in the threaded RTS it is). Also fix a few non-threaded warnings while I'm here.
-
simonmar authored
add an ASSERT
-
simonmar authored
Fix warnings when assigning the result of a foreign call to BaseReg (as now happens in SMP mode with resumeThread()).
-
simonpj authored
Correct the TH fix of Oct 26, involving thFAKE MERGE TO STABLE Original message 1) A bug in the renaming of [d| brackets |]. The problem was that when we renamed the bracket we messed up the name cache, because the module was still that of the parent module. Now we set a fake module before renaming it. But we have to tell the *typechecker* too, not just the renamer. See comments with TcSplice.tc_bracket (DecBr case). Should fix TH failures in the STABLE branch
-
simonpj authored
Export lists
-
- 31 Oct, 2005 1 commit
-
-
simonmar authored
x86_64: pass -fno-unit-at-a-time to gcc. See comment for details.
-