- 06 Feb, 2002 12 commits
-
-
sof authored
unbreak stdcall handling (caused by recent change to Outputable instance for CCallConv)
-
simonpj authored
Eliminate all vestiages of UsageTy, in preparation for Keith's new version. Hurrah! Keith: LBVarInfo and usOnce,usMany are still there, because I know you have eliminated LBVarInfo, and I didn't want to cause unnecessary conflicts.
-
sewardj authored
x86 only: make %esp be 8-aligned before entering HC-world code. This avoids misalignment penalties for C doubles stored on the C stack. A quick test using nofib/imaginary/rfib shows that getting this wrong increases run time by about 10% on our 1 GHz PIII.
-
keithw authored
Merging the following onto the HEAD: | 1.61.2.1 +2 -4 fptools/ghc/compiler/rename/RnHsSyn.lhs | 1.135.2.1 +10 -0 fptools/ghc/compiler/rename/RnSource.lhs Original comment (keithw): Remove derivings FVs from tyClDeclFVs, because they aren't needed by interface files. Instead, we return these FVs from finishSourceTyClDecl.
-
simonmar authored
Take into account the patchlevel when figuring out if we're bootstrapping or not.
-
sewardj authored
wibble
-
chak authored
Add Julian to the author's list as he seems to shy to do it himself ;-)
-
sewardj authored
Clean up the AbsC -> AbsC translation of array operations. * MachOps MO_ReadOSBI and MO_WriteOSBI, which previously did array indexing, are gone. We translate now just to plain memory references and explicit address computations. This has the happy side effect that all MachOps now return exactly one result (previously it was 0 or 1), cleaning up various bits of code. As a result the Abstract C structure now contains an unneccessary restriction, which is that the result of a MachOp can only be assigned to a temporary. This made sense when MachOps had variable numbers of results (0, 1 or 2, originally), but is no longer needed. MachOps applied to args could now be allowed to appear as arbitrary nodes in expression trees, but so far they are not. * Get rid of CAddrMode constructor CMem, since it is a special case of CVal with a RegRelative of CIndex. AbstractC is inconsistent and non-orthogonal. The StixStmt + StixExpr combination expresses a large part of what AbstractC does in a cleaner and simpler way, IMO.
-
simonmar authored
Import lookupModuleEnv inside #ifdef GHCI
-
sof authored
- use task manager API to keep track of the number of tasks that are blocked waiting on the RTS lock. - comment updates/additions.
-
sof authored
- in the threaded case, keep track of the number of tasks/threads that are currently waiting to enter the RTS. - taskStart(): + only start up a new thread/task if there aren't any already waiting to gain RTS access. + honour thread/task limits (if any).
-
sof authored
make stat_getElapsedTime(), SMP-only again
-
- 05 Feb, 2002 10 commits
-
-
sewardj authored
[non-code-change] complaint --> compliant
-
keithw authored
Generalise types of minusUFM and intersectUFM_C (this was applied long ago to FiniteMap, IIRC). Untested: I haven't got a build tree handy, so please shoot me if this 2-line change to two type signatures is type-incorrect. Sorry!
-
simonpj authored
```------:frontmatter Main.main --------- A bunch of related fixes concerning 'main' * Arrange that 'main' doesn't need to be defined in module Main; it can be imported. * The typechecker now injects a binding Main.$main = PrelTopHandler.runMain main So the runtime system now calls Main.$main, not PrelMain.main. With z-encoding, this look like Main_zdmain_closure * The function PrelTopHandler.runMain :: IO a -> IO () wraps the programmer's 'main' in an exception-cacthing wrapper. * PrelMain.hs and Main.hi-boot are both removed from lib/std, along with multiple lines of special case handling in lib/std/Makefile. This is a worthwhile cleanup. * Since we now pick up whatever 'main' is in scope, the ranamer gets in on the act (RnRnv.checkMain). There is a little more info to get from the renamer to the typechecker, so I've defined a new type Rename.RnResult (c.f. TcModule.TcResult) * With GHCi, it's now a warning, not an error, to omit the binding of main (RnEnv.checkMain) * It would be easy to add a flag "-main-is foo"; the place to use that information is in RnEnv.checkMain. ``` ---- On the way I made a new type, type HscTypes.FixityEnv = NameEnv Fixity and used it in various places I'd tripped over
-
simonpj authored
add renamer stuff
-
simonpj authored
Add a bit of renamer documentation
-
simonpj authored
Imports only
-
simonpj authored
Imports only
-
simonpj authored
Imports and comments only
-
simonpj authored
Imports only
-
simonmar authored
Fix bad bugs in deleteAllThreds: we were looping through the thread queues calling deleteThread() on each thread as we go, but calling deleteThread() has the side effect of removing the thread from the relevant queue, so we would end up breaking out of the loop after processing only a single thread. This may fix problems like "resurrectThreads: thread blocked in a strange way" seen after pressing ^C. Aside: we really shouldn't be using deleteThread() at all, since it doesn't give the thread a chance to clean up & release locks. To be well-behaved a program has to catch ^C itself at the moment.
-
- 04 Feb, 2002 18 commits
-
-
sof authored
.y/.ly handling: patsubst'ery broke when HAPPY_SRCS suddenly contained two file extensions; now fixed.
-
sof authored
resumeThread: ifdef threads-specific code
-
sof authored
Snapshot of 'native thread'-friendly extension: - call-outs now work, i.e., a Concurrent Haskell thread which makes an external (C) call no longer stop other CH threads dead in their tracks. [More testing and tightening up of invariants reqd, this is just a snapshot]. - separated task handling into sep. module.
-
sof authored
wibble
-
sof authored
startupHaskell: Scheduler startup now handles task creation
-
sof authored
Factor out the task handling into separate 'module'. [Tasks represent native threads that execute STG code, with this module providing the API which the Scheduler uses to control their creation and destruction.]
-
sof authored
- sm_mutex is now a Mutex (not a pthread_mutex_t). - sm_mutex lock/unlocks are only done for SMP builds.
-
sof authored
- renamed MutexVar to Mutex, CondVar to Condition. - added yieldThread(). - simplified/specialised type of entry point to new (native) threads; now takes no args & returns no result.
-
sof authored
simplified startup of this 'sub-system', initCapabilities() takes care of it all
-
sof authored
stat_getElapsedTime(): now visible when RTS_SUPPORTS_THREADS is defined (was: SMP only)
-
sof authored
moved {ACQUIRE,RELEASE}_LOCK to OSThreads.h
-
sewardj authored
Also implement MO_32U_to_8U for sparc. sigh.
-
sewardj authored
Implement missing MachOp, MO_8U_to_32U, for sparc. (duh!)
-
sewardj authored
Adding section descriptions, for ELF: don't record sections satisfying size == 0 || kind `notElem` [SECTIONKIND_CODE_OR_RODATA, SECTIONKIND_RWDATA] The latter condition is really an optimisation based on knowledge of what queries will be made of the table. Still, seems to work, and reduces the number of sections in the list by about a factor of 3, so hopefully will improve GC performance in GHCi. If you get wierd GC problems in GHCi ... this may be to blame.
-
simonmar authored
wibble
-
sewardj authored
Expand out use of modifyIORef because 4.08.2 doesn't have that.
-
simonmar authored
HC_OPTS is now used in both .c and .hc compilations (again).
-
simonmar authored
GhcRtsHcOpts is included in both .c and .hc compilations (again).
-