- 21 Feb, 2003 3 commits
-
-
simonpj authored
Fix a type-error in desugaring TH code
-
sof authored
Asynchronous / non-blocking I/O for Win32 platforms. This commit introduces a Concurrent Haskell friendly view of I/O on Win32 platforms. Through the use of a pool of worker Win32 threads, CH threads may issue asynchronous I/O requests without blocking the progress of other CH threads. The issuing CH thread is blocked until the request has been serviced though. GHC.Conc exports the primops that take care of issuing the asynchronous I/O requests, which the IO implementation now takes advantage of. By default, all Handles are non-blocking/asynchronous, but should performance become an issue, having a per-Handle flag for turning off non-blocking could easily be imagined&introduced. [Incidentally, this thread pool-based implementation could easily be extended to also allow Haskell code to delegate the execution of arbitrary pieces of (potentially blocking) external code to another OS thread. Given how relatively gnarly the locking story has turned out to be with the 'threaded' RTS, that may not be such a bad idea.]
-
sof authored
deja vu all over again
-
- 20 Feb, 2003 14 commits
-
-
simonpj authored
------------------------------------- Add Core Notes and the {-# CORE #-} pragma ------------------------------------- This is an idea of Hal Daume's. The key point is that Notes in Core are augmented thus: data Note = SCC CostCentre | ... | CoreNote String -- NEW These notes can be injected via a Haskell-source pragma: f x = ({-# CORE "foo" #-} show) ({-# CORE "bar" #-} x) This wraps a (Note (CoreNote "foo")) around the 'show' variable, and a similar note around the argument to 'show'. These notes are basically ignored by GHC, but are emitted into External Core, where they may convey useful information. Exactly how code involving these notes is munged by the simplifier isn't very well defined. We'll see how it pans out. Meanwhile the impact on the rest of the compiler is minimal.
-
simonpj authored
Import pruning
-
simonpj authored
Add comments
-
simonpj authored
Comments and imports only
-
simonpj authored
------------------------------------- Complete an earlier TH commit ------------------------------------- In this earlier commit: 3. Ensure that a declaration quotation [d| ... |] does not have a permanent effect on the instance environment. (A TH fix.) I had forgotten to do a stage2 compile. This commit just completes the earlier work. I moved some code from TcExpr (long) to TcSplice (shorter) which had the happy effect of bringing related code together.
-
simonpj authored
------------------------------------- Generate correct dependencies when reading External Core ------------------------------------- We have to be more careful than I realised when doing strongly-connected component analysis of type/class decls when reading External Core. Here's the relevant new comment: -- Building edges for SCC analysis -- -- When building the edges, we treat the 'main name' of the declaration as the -- key for the node, but when dealing with External Core we may come across -- references to one of the implicit names for the declaration. For example: -- class Eq a where .... -- data :TSig a = :TSig (:TEq a) .... -- The first decl is sucked in from an interface file; the second -- is in an External Core file, generated from a class decl for Sig. -- We have to recognise that the reference to :TEq represents a -- dependency on the class Eq declaration, else the SCC stuff won't work right. -- -- This complication can only happen when consuming an External Core file -- -- Solution: keep an "EdgeMap" (bad name) that maps :TEq -> Eq. -- Don't worry about data constructors, because we're only building -- SCCs for type and class declarations here. So the tiresome mapping -- is need only to map [class tycon -> class]
-
simonpj authored
Part 2 of fix :i in InteractiveUI
-
simonpj authored
Comments only
-
simonpj authored
Another datacon-naming wibble
-
simonpj authored
Fix :i in InteractiveUI
-
simonpj authored
Eliminate brain-dead outputC pattern-match failure
-
simonpj authored
Eliminate bogus string-literal duplication
-
simonpj authored
Compile binary stuff with -O always
-
simonmar authored
Add -fvia-C to utils/Panic_HC_OPTS, and remove it from main/Main_HC_OPTS.
-
- 19 Feb, 2003 4 commits
-
-
sof authored
odir-ify prelude/PrimOp.o dependency
-
simonpj authored
------------------------------------- Two minor wibbles ------------------------------------- 1. Make the generic toT/fromT Ids for "generic derived classes" into proper ImplicitIds, with their own GlobalIdDetails. This makes it easier to identify them. (The lack of this showed up as a bug when I made an apparently-innocuous other change.) 2. Distinguish ClassOpIds from RecordSelIds in their GlobalIdDetails. They are treated differently here and there, so I made this change as part of (1) 3. Ensure that a declaration quotation [d| ... |] does not have a permanent effect on the instance environment. (A TH fix.)
-
simonpj authored
Wibbles to the new datacon story; fixes ds002
-
simonmar authored
If -no-hs-main is specified in --make mode, attempt linking even when there's no Main module. Fixes bug #686620 MERGE TO STABLE
-
- 18 Feb, 2003 6 commits
-
-
igloo authored
Support strictness annotations on data declarations and support the record and infix constructors. Also tweaked the pretty printer a bit.
-
simonpj authored
Remove un-necessary case
-
simonpj authored
------------------------------------- Two minor wibbles ------------------------------------- [These two unrelated fixes just got tangled together in my tree.] 1. Fix a crash when a class op is used as a record selector 2. Fix a wibble related to the new DataCon naming story. In tcId, treat the DataCon case entirely separately, because its "stupid context" doesn't show up in its type. On the way, remove the DataCon cases in tcLookupId and tcLookupGlobalId The should not be necessary. He says hopefully.
-
simonpj authored
Cosmetic wibble
-
simonpj authored
Comments only
-
simonmar authored
Fix build on GHC < 5.00
-
- 17 Feb, 2003 2 commits
- 14 Feb, 2003 5 commits
-
-
panne authored
Not sure if this fix is correct, but at least this module compiles again...
-
simonpj authored
------------------------------------- Do the top-level tcSimpifyTop (to resolve monomorphic constraints) once for the whole program, rather than once per splice group ------------------------------------- This change makes the trivial program main = return () work again. It had stopped working (emitting an error about Monad m being unconstrained) because the 'checkMain' stuff (which knows special things about 'main' was happening only *after* all the groups of decls in the module had been dealt with and zonked (incl tcSimplifyTop). Better to postpone. A little more plumbing, but one fewer unexpected happenings.
-
simonpj authored
Comments
-
simonpj authored
A bit more debug info + comments
-
simonpj authored
Fix for deriving of records with leading underscore, and corresponding lex
-
- 13 Feb, 2003 3 commits
- 12 Feb, 2003 2 commits
-
-
simonpj authored
A wibble to the constructor-naming story
-
simonpj authored
------------------------------------- Big upheaval to the way that constructors are named ------------------------------------- This commit enshrines the new story for constructor names. We could never really get External Core to work nicely before, but now it does. The story is laid out in detail in the Commentary ghc/docs/comm/the-beast/data-types.html so I will not repeat it here. [Manuel: the commentary isn't being updated, apparently.] However, the net effect is that in Core and in External Core, contructors look like constructors, and the way things are printed is all consistent. It is a fairly pervasive change (which is why it has been so long postponed), but I hope the question is now finally closed. All the libraries compile etc, and I've run many tests, but doubtless there will be some dark corners.
-
- 11 Feb, 2003 1 commit
-
-
wolfgang authored
Mac OS X: Add support for dynamic linker "symbol stubs". For every function that might be imported from a dynamic library, we have to generate a short piece of assembly code. Extend the NatM monad to keep track of the list of imports (for which stubs will be generated later). Fix a bug concerning 64 bit ints (hi and low words were swapped in one place).
-