- 04 Nov, 2005 1 commit
-
-
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 5 commits
-
-
simonmar authored
x86_64: pass -fno-unit-at-a-time to gcc. See comment for details.
-
simonpj authored
Wibble to: "Add a new pragma: SPECIALISE INLINE" I messed up the way that NOINLINE is parsed; this commit fixes it.
-
simonmar authored
clean up more junk generated by gcc
-
simonmar authored
x86_64: catch and fix one kind of crappy code generated by gcc # movq -4(%rbp), %rax # jmp *%rax ==> # jmp *-4(%rbp)
-
simonmar authored
Reverse the sense of the is-young-generation test in the update code. This generates much better code from gcc.
-
- 30 Oct, 2005 1 commit
-
-
krasimir authored
Change the way in which the .exe suffix to the output file is added. The reason is that "-o main" will generate main.exe on Windows while the doesFileExists "main" in DriverPipeline.link will return False.
-
- 29 Oct, 2005 3 commits
-
-
krasimir authored
The guessed output file should have ".exe" extension on Windows. ld tends to add .exe automatically if the output file doesn't have extension but if we don't add the extension explicitly then the doesFileExists check in DriverPipeline.link will fail.
-
panne authored
Fixed the last commit, which broke the nightly builds. I'm not sure if this is really a fix or a workaround only, though...
-
krasimir authored
The mut_lists array was allocated but never initialized. This was causing SegFault.
-
- 28 Oct, 2005 6 commits
-
-
simonmar authored
document -stubdir
-
simonmar authored
Add -stubdir option to control location of generated stub files. Also do some clean up while I'm here - remove hscStubCOut/hscStubHOut from DynFlags, and add mkStubPaths :: DynFlags -> Module -> ModLocation -> (FilePath,FilePath) to Finder. (this seemed better than caching the stub paths in every ModLocation, because they are rarely needed and only present in home modules, and are easily calculated from other available information). -stubdir behaves in exactly the same way as -odir and -hidir.
-
simonmar authored
Change the default executable name to match the basename of the source file containing the Main module (or the module specified by -main-is), if there is one. On Windows, the .exe extension is added. As requested on the ghc-users list, and as implemented by Tomasz Zielonka <tomasz.zielonka at gmail.com>, with modifications by me. I changed the type of the mainModIs field of DynFlags from Maybe String to Module, which removed some duplicate code.
-
simonmar authored
Fix double "Linking ..." message, and mention the name of the executable in the message.
-
simonmar authored
Fix links to library doc for Haddock 0.7.
-
simonmar authored
Fix recent breakage on non-Windows systems
-
- 27 Oct, 2005 2 commits
-
-
simonmar authored
- Very simple work-sharing amongst Capabilities: whenever a Capability detects that it has more than 1 thread in its run queue, it runs around looking for empty Capabilities, and shares the threads on its run queue equally with the free Capabilities it finds. - unlock the garbage collector's mutable lists, by having private mutable lists per capability (and per generation). The private mutable lists are moved onto the main mutable lists at each GC. This pulls the old-generation update code out of the storage manager mutex, which is one of the last remaining causes of (alleged) contention. - Fix some problems with synchronising when a GC is required. We should synchronise quicker now.
-
simonpj authored
Improve warning a little (suggested by Benjamin Pierce)
-