- 18 Sep, 2002 2 commits
-
-
simonmar authored
Fix up exception handling when reading an interface file, and make it compile with 4.08.x again. GhcExceptions weren't being caught by readIface, so an error when reading an interface could be unintentionally fatal (errors should be soft when reading the old interface file for the current module). Also, the Interrupted exception should not be caught by readIface, because we want ^C to behave as normal when reading interface files (currently it causes an interface-file read error rather than interrupting the whole compiler). Some exception-related compatibility functions have been moved from Util to Panic.
-
mthomas authored
ifdefs for mingw32 to get rid of signal functions.
-
- 17 Sep, 2002 9 commits
-
-
simonmar authored
Fix search-and-replace-o: s/%lt/< MERGE TO STABLE
-
simonpj authored
-------------------------------------- Another attempt to make unbound type variables in RULES work right -------------------------------------- Sigh. I'm trying to find the unbound type variables on the LHS of a RULE. I thought I could just gather free vars, but that does not work well on an un-zonked LHS, because a big lambda might bind a type variable that looks different (pre-zonking) but isn't really. Oh well, back to plan B which is more work but more robust. Now the zonking phase (in TcHsSyn) arranges to zonk types in a different way (zonkTypeCollecting) on a rule LHS than in ordinary expressions (zonkTypeZapping). This is less dependent on the exact form of the LHS (good) but involves another mutable variable (not unclean, but it's sad to have to admit that mutable variables do sometimes allow you to make non-invasive changes).
-
simonmar authored
and for good measure, use STGCALL1 rather than a bare C call.
-
simonmar authored
remove bogus return too.
-
simonmar authored
NON_ENTERABLE_ENTRY_CODE() should really barf() rather than attempting a clean shutdown. MERGE TO STABLE
-
simonmar authored
The GC wasn't properly marking pending signal handlers, which could lead to "EVACUATED object entered!" errors. Also, a race occurs if a signal arrives during GC. Two fixes: (a) mark all pending signal handlers during GC, and (b) block signals during GC MERGE TO STABLE
-
simonmar authored
The GC wasn't properly marking pending signal handlers, which could lead to "EVACUATED object entered!" errors. Also, a race occurs if a signal arrives during GC. Two fixes: (a) mark all pending signal handlers during GC, and (b) block signals during GC MERGE TO STABLE
-
simonpj authored
Unbork head...ruleLhsTvs does not crash now
-
simonpj authored
CString import only for mingw32
-
- 16 Sep, 2002 7 commits
-
-
simonmar authored
Type signatures may only be given for unqualified variables
-
simonpj authored
Silly bug in plusImportAvails [HEAD only]
-
chak authored
Well, I was apparently not up-to-date on the latest Haddock config magic. Removed the last change, which forced the use of an external installation of Haddock.
-
simonmar authored
Instead of trying to convert $(ALL_DIRS) into a colon-separated list of directories to pass to the compiler with -i, put each directory in its own -i option. This is more robust, the previous method was sensitive to extra spaces in the ALL_DIRS list. (should fix the current nightly breakage on the HEAD)
-
simonpj authored
-------------------------------- Quantify over unbound type vars in RULE lhs's -------------------------------- -- We need to gather the type variables mentioned on the LHS so we can -- quantify over them. Example: -- data T a = C -- -- foo :: T a -> Int -- foo C = 1 -- -- {-# RULES "myrule" foo C = 1 #-} -- -- After type checking the LHS becomes (foo a (C a)) -- and we do not want to zap the unbound tyvar 'a' to (), because -- that limits the applicability of the rule. Instead, we -- want to quantify over it! This commit fixes the problem, discovered by Manuel. It uses a free-variable finder for RULE lhs's (TcRule.ruleLhsTvs) which relies on the fact that the LHS of a rule can only take ver forms (c.f RnSource.validRuleLhs).
-
sof authored
copy in tools from a mingw dist tree
-
chak authored
Use external Haddock installation
-
- 15 Sep, 2002 3 commits
-
-
lewie authored
Ergh! Don't mix `%doc <relativepathname>' with `%doc <absolutepathname>' where <absolutepathname> is the standard doc directory (i.e. the same place where the <relativepathname> files will be copied). The <relativepathname> version has the hidden side effect of removing the contents of the doc directory first (and thus your carefully installed files). The whole distinction which makes a special case for relative paths is a crock in the first place ;-)
-
lewie authored
Wibble!!
-
lewie authored
Update spec. Fixes doc problems. Worth merging to 5.04-branch.
-
- 14 Sep, 2002 2 commits
- 13 Sep, 2002 6 commits
-
-
simonpj authored
Native code gen primpops (courtesy Julian)
-
simonpj authored
wibbles
-
simonpj authored
Ooops... forgot these droppings, sorry
-
simonpj authored
-------------------------------------- Make Template Haskell into the HEAD -------------------------------------- This massive commit transfers to the HEAD all the stuff that Simon and Tim have been doing on Template Haskell. The meta-haskell-branch is no more! WARNING: make sure that you * Update your links if you are using link trees. Some modules have been added, some have gone away. * Do 'make clean' in all library trees. The interface file format has changed, and you can get strange panics (sadly) if GHC tries to read old interface files: e.g. ghc-5.05: panic! (the `impossible' happened, GHC version 5.05): Binary.get(TyClDecl): ForeignType * You need to recompile the rts too; Linker.c has changed However the libraries are almost unaltered; just a tiny change in Base, and to the exports in Prelude. NOTE: so far as TH itself is concerned, expression splices work fine, but declaration splices are not complete. --------------- The main change --------------- The main structural change: renaming and typechecking have to be interleaved, because we can't rename stuff after a declaration splice until after we've typechecked the stuff before (and the splice itself). * Combine the renamer and typecheker monads into one (TcRnMonad, TcRnTypes) These two replace TcMonad and RnMonad * Give them a single 'driver' (TcRnDriver). This driver replaces TcModule.lhs and Rename.lhs * The haskell-src library package has a module Language/Haskell/THSyntax which defines the Haskell data type seen by the TH programmer. * New modules: hsSyn/Convert.hs converts THSyntax -> HsSyn deSugar/DsMeta.hs converts HsSyn -> THSyntax * New module typecheck/TcSplice type-checks Template Haskell splices. ------------- Linking stuff ------------- * ByteCodeLink has been split into ByteCodeLink (which links) ByteCodeAsm (which assembles) * New module ghci/ObjLink is the object-code linker. * compMan/CmLink is removed entirely (was out of place) Ditto CmTypes (which was tiny) * Linker.c initialises the linker when it is first used (no need to call initLinker any more). Template Haskell makes it harder to know when and whether to initialise the linker. ------------------------------------- Gathering the LIE in the type checker ------------------------------------- * Instead of explicitly gathering constraints in the LIE tcExpr :: RenamedExpr -> TcM (TypecheckedExpr, LIE) we now dump the constraints into a mutable varabiable carried by the monad, so we get tcExpr :: RenamedExpr -> TcM TypecheckedExpr Much less clutter in the code, and more efficient too. (Originally suggested by Mark Shields.) ----------------- Remove "SysNames" ----------------- Because the renamer and the type checker were entirely separate, we had to carry some rather tiresome implicit binders (or "SysNames") along inside some of the HsDecl data structures. They were both tiresome and fragile. Now that the typechecker and renamer are more intimately coupled, we can eliminate SysNames (well, mostly... default methods still carry something similar). ------------- Clean up HsPat ------------- One big clean up is this: instead of having two HsPat types (InPat and OutPat), they are now combined into one. This is more consistent with the way that HsExpr etc is handled; there are some 'Out' constructors for the type checker output. So: HsPat.InPat --> HsPat.Pat HsPat.OutPat --> HsPat.Pat No 'pat' type parameter in HsExpr, HsBinds, etc Constructor patterns are nicer now: they use HsPat.HsConDetails for the three cases of constructor patterns: prefix, infix, and record-bindings The *same* data type HsConDetails is used in the type declaration of the data type (HsDecls.TyData) Lots of associated clean-up operations here and there. Less code. Everything is wonderful.
-
simonpj authored
Make ghc-pkg independent of hslibs
-
simonpj authored
Correct comments
-
- 11 Sep, 2002 2 commits
- 10 Sep, 2002 5 commits
-
-
simonmar authored
Tidy up error message for "funny global things"
-
simonmar authored
Put debugging output in #ifdef DEBUG MERGE TO STABLE
-
simonpj authored
Remove redundant debug printing
-
simonmar authored
Fix a(nother) bug in the new THUNK_SELECTOR code. Hopefully should fix the crashes seen in the last few nightly builds.
-
simonmar authored
Add notes on how to build a .a file to the docs, as requested by Koen Claessen.
-
- 09 Sep, 2002 4 commits