- 07 Sep, 2001 9 commits
-
-
simonpj authored
Make dmdFix not loop forever
-
sewardj authored
Fix compilation with -DDEBUG. MERGE TO STABLE
-
simonpj authored
Improve the error message for duplicate or invalid binders in a binding group. [Consequence: rnfail034 should not be an expected failure any more] MERGE WITH STABLE BRANCH
-
simonpj authored
---------------------------------------- Make dict funs and default methods into LocalIds only at their binding site ---------------------------------------- [part of 3 related commits] There's a long comment about this with MkId.mkDefaultMethodId, which I reproduce below. While I was at it, I renamed setIdNoDiscard to setIdLocalExported. Which is hardly an improvement, I'm afraid. This renaming touches Var.lhs, Id.lhs, SimplCore.lhs in a trivial way. --------------------- Dict funs and default methods are *not* ImplicitIds. Their definition involves user-written code, so we can't figure out their strictness etc based on fixed info, as we can for constructors and record selectors (say). We build them as GlobalIds, but when in the module where they are bound, we turn the Id at the *binding site* into an exported LocalId. This ensures that they are taken to account by free-variable finding and dependency analysis (e.g. CoreFVs.exprFreeVars). The simplifier will propagate the LocalId to all occurrence sites. Why shouldn't they be bound as GlobalIds? Because, in particular, if they are globals, the specialiser floats dict uses above their defns, which prevents good simplifications happening. Also the strictness analyser treats a occurrence of a GlobalId as imported and assumes it contains strictness in its IdInfo, which isn't true if the thing is bound in the same module as the occurrence. It's OK for dfuns to be LocalIds, because we form the instance-env to pass on to the next module (md_insts) in CoreTidy, afer tidying and globalising the top-level Ids. BUT make sure they are *exported* LocalIds (setIdLocalExported) so that they aren't discarded by the occurrence analyser.
-
simonpj authored
----------------------------------- Pin on accurate strictness info for record and dictionary selectors ----------------------------------- [part of 3 related commits] This fixes a long-standing infelicity. Sometimes selectors aren't inlined until after strictness analysis, so if we don't have decent strictness info on them we get bad strictness results. For record selectors, the unboxing-strict-fields stuff makes it hard to figurwe out the correct strictness, so we just invoke the demand analyser to work it out.
-
simonpj authored
------------------------ Fix the demand analyser ------------------------ A spiffy new domain for demands, and definitions for lub/both which are actually monotonic. Quite a bit of related jiggling around. One of the original motivations was to do with functions like: sum n [] = n sum n (x:xs) = sum (n+x) xs Even though n is returned boxed from the first case, we don't want to get strictness S(L)V -> T because that means we pass the box for n, and that is TERRIBLE. So the new version errs on the side of unboxing, more like the forwards analyser, and only passes the box if it is *definitely* needed, rather than if it *may* be needed.
-
simonpj authored
Omit unnecessary import
-
simonpj authored
------------------- Newtypes and ccalls [addendum] ------------------- MERGE WITH STABLE BRANCH I accidentally omitted these two wibbles from my previous commit. I've added PrelNames.unitTyConKey, and used it in TcType and DsCCall.
-
simonpj authored
------------------- Newtypes and ccalls ------------------- MERGE WITH STABLE BRANCH Yet another bit of newtype-squashing that hadn't been synced with reality. In desugaring ccalls, we can still see newtypes, if they are recursive, and we must generate appropriate coerces. Fixes a bug in cg011.
-
- 06 Sep, 2001 8 commits
-
-
ken authored
Fix the code to *really* do the following: On the Alpha we can only handle <= 4 integer arguments with foreign export dynamic. Following the example of the corresponding Sparc hack, we detect when we're being asked to do something we can't and refuse. MERGE TO STABLE BRANCH
-
apt authored
document -fext-core flag and set pointers to ext-core docs/tools (MERGE to STABLE pleeeeeease.)
-
simonpj authored
Import wibbles
-
sewardj authored
Change a couple more Int32s into CTimes, which they are really.
-
sewardj authored
Convert some CInts into CTimes. MERGE TO STABLE.
-
apt authored
add pointer to primops.txt documentation feature
-
apt authored
change ext-core output file suffix from .core (too easy to delete accidentally) to .hcr (MERGE TO STABLE)
-
sewardj authored
Fix cpp-inspired sparc breakage. Sigh.
-
- 05 Sep, 2001 2 commits
-
-
sewardj authored
Fix 32-bit breakage. Int32 is the wrong thing; CInt is probably right. I assume that Alpha is LP64, so that on Alpha sizeof(int) = 32, sizeof(long) = 64 and that these are both sized at 32 for 32-bit platforms.
-
ken authored
Replace CLong with CInt32 to fix 32-bit assumption. MERGE TO STABLE BRANCH
-
- 04 Sep, 2001 6 commits
-
-
ken authored
THIS CHANGE AFFECTS ALL OBJECT FILES COMPILED FROM HASKELL. Please say "make -C ghc/lib/std clean; make -C hslibs clean". This commit eliminates spurious warning messages when compiling on the Alpha. There are two kinds of spurious warning messages: (1) gcc: -noprefix_recognition: linker input file unused since linking not done This warning is because we pass the flag "-Xlinker -noprefix_recognition" to gcc. We remove this warning by no longer passing the flag to gcc, and by removing the reason we were passing the flag in the first place: __init_* is now renamed to __stginit_*. (2) .../includes/Regs.h: warning: call-clobbered register used for global register variable This warning and all other warnings except (1), we eliminate by passing the -w flag to gcc. MERGE TO STABLE BRANCH
-
ken authored
On the Alpha we can only handle <= 4 integer arguments with foreign export dynamic. Following the example of the corresponding Sparc hack, we detect when we're being asked to do something we can't and refuse. MERGE TO STABLE BRANCH
-
sewardj authored
Fix ELF compilation for new section table scheme.
-
sewardj authored
Build system hacks to split HSwin32.o into two parts, so that it can be loaded into GHCi. Uses the same gruesome hacks as HSstd.o.
-
sewardj authored
Further linker fixes. Record .bss space allocated, for the benefit of LOOKS_LIKE_GHC_INFO etc tests done by the GC. In this commit, for Win32 only. Also some minor tweaks so that -package win32 can be loaded into GHCi.
-
ken authored
Just as we do on sparc: On alpha, create code to shuffle a0 .. a3 into a2 .. a5 before the old code. This is a GHASTLY HACK which at least makes f-x-dynamic on alpha work for callees with up to 32 bytes (4 words) of args.
-
- 02 Sep, 2001 1 commit
-
-
qrczak authored
Clean core, not *core (because of ext-core dirs).
-
- 31 Aug, 2001 9 commits
-
-
apt authored
add ext-core example programs -- MERGE TO STABLE (surely harmless?)
-
apt authored
add documentation for ext-core -- MERGE TO STABLE (surely harmless?)
-
apt authored
fix documentation typos
-
simonmar authored
Fix worker-wrapper generation. See commments in WwLib.mk_ww_str
-
sewardj authored
Fix Linux compile b0rkage. Darn. MERGE TO STABLE BRANCH
-
sewardj authored
Pass -w to gcc for .hc compilation on sparc-solaris so as to suppress warnings about call-clobbered regs being used for global vars.
-
rje authored
Reapplied my "FCode as a monad" patch, now that 5.02 has forked into a separate branch. I'm fairly sure that this doesn't change the behaviour of anything.
-
sewardj authored
.bss section fixes for ELF. MERGE TO STABLE BRANCH (and test better!)
-
sewardj authored
Properly handle the linker debugging (-D4096) before. MERGE TO STABLE BRANCH
-
- 30 Aug, 2001 5 commits
-
-
rrt authored
Remove a spurious space. Oh, yes.
-
sewardj authored
Advance HEAD version to 5.03.
-
simonmar authored
Don't automatically enable compaction when generations == 1.
-
simonmar authored
Automatically disable compaction when there's only one generation (-G1) and print a warning to that effect.
-
sewardj authored
Back out recent changes to the code generator as too destabilising. Revert files as follows: revert to 1.35 CgBindery.lhs revert to 1.26 CgMonad.lhs revert to 1.15 CgStackery.lhs revert to 1.10 CgUsages.lhs
-