- 24 Aug, 2001 6 commits
-
-
rrt authored
Remove unused import of DmdType
-
sewardj authored
First cut at new compiler + interpreter changes for 5.02. Also rearranged the order of sections.
-
simonpj authored
Comment only
-
simonpj authored
Improve error message for nullary class
-
chak authored
* Added a brief outline of the handling of command line options * Revised Reuben's explanation re -no-hs-main according to our email exchange
-
chak authored
Added SPJ's new -fmax-worker-args to the flag reference
-
- 23 Aug, 2001 30 commits
-
-
gla authored
Correct typos and minor errors. Reorganized most of the sections, and the interface subsection appears first in each section. Made a small change to Figure 1, the overall architecture of the storage manager. The description on the configuration of the nursery is now correct. Added a short section on the state of the heap allocator.
-
qrczak authored
Don't say that GHC doesn't do fixity resolution on the left hand side of a binding before deciding which symbol is the function symbol. This has been fixed.
-
gla authored
Rephrased a few paragraphs. Added a paragraph on the interface to retainerSet. Added 'To do' paragraphs, which may be useful for maintenance.
-
simonpj authored
Fix representation finding for recursive newtypes
-
simonmar authored
Note that support for generics is currently broken.
-
simonpj authored
remove rnsource.hi-boot-5 (part of prev commit)
-
simonpj authored
More instance-gate fiddling. This must be one of the most tiremsome bits of the entire compiler, and I appear to be incapable of modifying it without getting it wrong at least once. Still, this commit does tidy things up a bit. * The type renamers (rnHsType, etc) have moved from RnSource into a new module RnTypes. * This breaks a couple of loops, and lets us nuke RnSource.hi-boot. Hurrah! Simon
-
simonmar authored
Release notes updated with library changes since 5.00.2.
-
simonmar authored
include the 5.02 release notes
-
simonmar authored
document -fno-code.
-
rrt authored
The new InstallShield for Windows Installer installer. I won't nuke the old IS6 one for now, but expect it to go after the GHC 5.02 release. The new installer uses the standard Windows Installer system, so should be easier to migrate away from InstallShield to a more automated system in future, though that will require the setup to be exported (the .ism format is proprietary to InstallShield). Also, the entire setup lives in one file rather than a zillion scattered over a hierarchy with lots of empty directories and space-including directory names, so it's rather easier to check out!
-
simonmar authored
Document -fno-code.
-
rrt authored
On second thoughts, strip either a backslash or a slash, as if we read an environment variable, we may well get a slash in the path; if we get a result from GetTempPath, it'll probably have a backslash.
-
rrt authored
Strip a backslash, not a slash.
-
simonmar authored
Remove no-longer-useful README. All that's left here now is the GHCi tests, which aren't ready to be moved over to the new testsuite yet.
-
simonmar authored
remove unused tests.
-
simonmar authored
old tests, most of which seem to have been used during development rather than as regression tests.
-
sewardj authored
Globally-uniquify the names of some _wrap functions so that the previously-undetected global namespace clashes don't cause an assertion failure in Hash.c when compiled -DDEBUG when starting GHCi with various hslibs packages.
-
simonmar authored
Add a new section, documenting "GHC's take on behaviour that is left undefined or implementation specific in Haskell 98", and in it document the size of Int, the behaviour of fromIntegral, and the behaviour of floating-point exceptions.
-
rrt authored
reinstate some Windows-specific code I deleted by mistake.
-
rrt authored
Remove spurious ;; from when the changed line was in a case.
-
simonmar authored
markup fixes
-
simonpj authored
-------------------------------------------------- Be a bit more liberal when slurping instance decls -------------------------------------------------- Functional dependencies have (as usual) made things more complicated Suppose an interface file contains interface A where class C a b | a->b where op :: a->b instance C Foo Baz where ... Now we are compiling module B where import A t = op (v::Foo) Should we slurp the instance decl, even though Baz is nowhere mentioned in module B? YES! Because of the fundep, the (C Foo ?) part is enough to select this instance decl, and the Baz part follows. Rather than take fundeps into account "properly", we just slurp if C is visible and *any one* of the Names in the types This is a slightly brutal approximation, but most instance decls are regular H98 ones and it's perfect for them. Changes: HscTypes: generalise the types of GatedDecl a bit RnHiFiles.loadInstDecl, RnHiFiles.loadRule, RnIfaces.selectGated: the meat of the solution RdrName, OccName etc: some consequential wibbles
-
simonmar authored
Put a big flashing warning sign next to the description of -O2-for-C, and don't endorse it by claiming that we actually use it (we don't).
-
rrt authored
Remove dependency of win32 on greencard (because the latter is merged into the former). This is a temporary hack until the greencard library is added to the new libraries.
-
simonpj authored
----------------------------------- Correct a horrible error in repType ----------------------------------- repType is meant to give the underlying representation of a type. But it wasn't taking account of the fact that *recursive* newtypes are still represented by a TyConApp. (Non-recursive ones behave much more like type synonyms now.) As a result, if we have newtype F = F (F->F) then Bad Things happen if we try to seq x::F. We decide whether to push an ordinary return address or a SEQ frame based on the type, and repType didn't expose the fact that F is represented by a function type. Aargh. codeGen/should_run/cg050 now tests for this.
-
simonpj authored
Add coment
-
rrt authored
Remove kludgy hack that on mingwin appends C: to the result of gcc -print-prog-name=ld, which doesn't work with the newest mingwin gcc (which kindly adds C: for us).
-
simonpj authored
Use the unpack strategy!
-
simonpj authored
------------------------------ Improve the demand analyser [case] ------------------------------ 1. In the Case case of dmdAnal, I dealt with the case binder in a way that was both clumsy and pessimistic. This commit fixes that: -- Figure out whether the demand on the case binder is used, and use -- that to set the scrut_dmd. This is utterly essential. -- Consider f x = case x of y { (a,b) -> k y a } -- If we just take scrut_demand = U(L,A), then we won't pass x to the -- worker, so the worker will rebuild -- x = (a, absent-error) -- and that'll crash. -- So at one stage I had: -- dead_case_bndr = isAbsentDmd (idNewDemandInfo case_bndr') -- keepity | dead_case_bndr = Drop -- | otherwise = Keep -- -- But then consider -- case x of y { (a,b) -> h y + a } -- where h : U(LL) -> T -- The above code would compute a Keep for x, since y is not Abs, which is silly -- The insight is, of course, that a demand on y is a demand on the -- scrutinee, so we need to `both` it with the scrut demand scrut_dmd = Seq Drop Now [idNewDemandInfo b | b <- bndrs', isId b] `both` idNewDemandInfo case_bndr' -- There used to be a special case for when -- ty == TyVarTy tv -- (a not-uncommon case) in which case the substitution was dropped. -- But the type-tidier changes the print-name of a type variable without -- changing the unique, and that led to a bug. Why? Pre-tidying, we had -- a type {Foo t}, where Foo is a one-method class. So Foo is really a newtype. -- And it happened that t was the type variable of the class. Post-tiding, 2. 'defer' can be simplified to 'lub Abs', reducing the number of places where things can go wrong. 3. Add comments
-
- 22 Aug, 2001 4 commits