qrczak [Wed, 12 Sep 2001 05:52:13 +0000 (05:52 +0000)]
[project @ 2001-09-12 05:52:13 by qrczak]
Don't exclude PrelMain.o from libHSstd.a.
rje [Tue, 11 Sep 2001 11:13:22 +0000 (11:13 +0000)]
[project @ 2001-09-11 11:13:22 by rje]
hasktags is now built as part of the standard build process.
simonpj [Tue, 11 Sep 2001 09:02:43 +0000 (09:02 +0000)]
[project @ 2001-09-11 09:02:43 by simonpj]
--------------------------
Strictness of blockAsynch
--------------------------
MERGE WITH STABLE BRANCH
If we're going to supply strictness info for blockAsynchExceptions#,
it should match its arity (as other State# transformers do).
simonpj [Tue, 11 Sep 2001 08:18:16 +0000 (08:18 +0000)]
[project @ 2001-09-11 08:18:16 by simonpj]
-----------------------
More demand-info fixes
-----------------------
MERGE WITH STABLE BRANCH
There are a handful of functions in IdInfo that zap the
demand-info stored in an Id. Alas, they were zapping the
*old* demand-info not the new one. (The old one is still
there for comparison purposes.) So we were getting some
spurious warnings and (more seriously) potentially some
incorrect strictness. Easily fixed though.
simonmar [Mon, 10 Sep 2001 16:48:10 +0000 (16:48 +0000)]
[project @ 2001-09-10 16:48:10 by simonmar]
Sync the documentation with the extra-bin removal.
simonmar [Mon, 10 Sep 2001 12:57:59 +0000 (12:57 +0000)]
[project @ 2001-09-10 12:57:59 by simonmar]
oops, revert accidental commit
simonmar [Mon, 10 Sep 2001 12:57:25 +0000 (12:57 +0000)]
[project @ 2001-09-10 12:57:25 by simonmar]
good riddance
simonmar [Mon, 10 Sep 2001 12:53:21 +0000 (12:53 +0000)]
[project @ 2001-09-10 12:53:21 by simonmar]
Remove the "extra-bin" subdirectory from $(libexecdir), since there
are too many assumptions in the tree that $(libexecdir) == $(libdir)
(at the moment, binary dists are fairly well broken).
Reuben has promised to track the change in the Windows distribution.
rje [Mon, 10 Sep 2001 10:07:21 +0000 (10:07 +0000)]
[project @ 2001-09-10 10:07:21 by rje]
Fixed a bug in TICKY_TICKY profiling.
Previously, the TICK_ENT_DIRECT event was logged before the heap/stack
check was done. As a result, if the check failed, the TICK_ENT_DIRECT
event would be logged a second time, causing TICKY_TICKY to give innacurate
numbers.
This patch shouldn't have any affect on non-ticky compilation.
Also changed the modified bit of code to use "do" notation, and so look a bit
neater.
simonpj [Mon, 10 Sep 2001 07:25:17 +0000 (07:25 +0000)]
[project @ 2001-09-10 07:25:17 by simonpj]
Fix ungramatical error message
simonpj [Mon, 10 Sep 2001 07:24:09 +0000 (07:24 +0000)]
[project @ 2001-09-10 07:24:09 by simonpj]
-----------------------------------
Fix a strictness bug in the simplifier
-----------------------------------
This one has been there a long time, but hasn't bitten till
now. We should never float a let that is marked "sure to be
evaluated" out of a let. It shouldn't happen, and there was
a warning to check, but the warning cried 'wolf' too often, so
we have generally ignored it. But the wolf called for supper,
when compiling spectral/expert with profiling on.
The fix is simple too:
* use exprIsValue not exprIsCheap as the test
* move the warning, so it doesn't cry wolf
Documentation with Simplify.simplRhs.
On the way, I'm going to conmmit a change in the same module,
which keeps unfolding info on lambda-bound variables. This
improves the elimination of cases when the wrapper does the
'seq' -- then the worker gets to know that the arg is evaluated.
ken [Sat, 8 Sep 2001 22:40:38 +0000 (22:40 +0000)]
[project @ 2001-09-08 22:40:38 by ken]
Make the binary distribution configure recognize alphaev56-dec-osf5.
MERGE TO STABLE.
sof [Sat, 8 Sep 2001 21:42:07 +0000 (21:42 +0000)]
[project @ 2001-09-08 21:42:07 by sof]
Remove ugly special casing - if you want to turn off the
default rule for GHCI_LIBRARY, set DONT_WANT_STD_GHCI_LIB_RULE
to YES in your Makefile prior to including $(TOP)/mk/target.mk
ghc/lib/std and hslibs/win32 both do this now on mingw32.
simonpj [Fri, 7 Sep 2001 16:52:53 +0000 (16:52 +0000)]
[project @ 2001-09-07 16:52:53 by simonpj]
Make isStrictDmd give the right answer
simonpj [Fri, 7 Sep 2001 16:46:21 +0000 (16:46 +0000)]
[project @ 2001-09-07 16:46:21 by simonpj]
Make dmdFix not loop forever
sewardj [Fri, 7 Sep 2001 16:08:31 +0000 (16:08 +0000)]
[project @ 2001-09-07 16:08:31 by sewardj]
Fix compilation with -DDEBUG.
MERGE TO STABLE
simonpj [Fri, 7 Sep 2001 13:38:55 +0000 (13:38 +0000)]
[project @ 2001-09-07 13:38:55 by simonpj]
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 [Fri, 7 Sep 2001 12:44:30 +0000 (12:44 +0000)]
[project @ 2001-09-07 12:44:30 by simonpj]
----------------------------------------
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 [Fri, 7 Sep 2001 12:43:28 +0000 (12:43 +0000)]
[project @ 2001-09-07 12:43:28 by simonpj]
-----------------------------------
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 [Fri, 7 Sep 2001 12:42:47 +0000 (12:42 +0000)]
[project @ 2001-09-07 12:42:46 by simonpj]
------------------------
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 [Fri, 7 Sep 2001 12:34:54 +0000 (12:34 +0000)]
[project @ 2001-09-07 12:34:54 by simonpj]
Omit unnecessary import
simonpj [Fri, 7 Sep 2001 12:34:04 +0000 (12:34 +0000)]
[project @ 2001-09-07 12:34:03 by simonpj]
-------------------
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 [Fri, 7 Sep 2001 12:30:15 +0000 (12:30 +0000)]
[project @ 2001-09-07 12:30:15 by simonpj]
-------------------
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.
ken [Thu, 6 Sep 2001 21:08:16 +0000 (21:08 +0000)]
[project @ 2001-09-06 21:08:16 by ken]
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 [Thu, 6 Sep 2001 15:54:48 +0000 (15:54 +0000)]
[project @ 2001-09-06 15:54:48 by apt]
document -fext-core flag and set pointers to ext-core docs/tools (MERGE to STABLE pleeeeeease.)
simonpj [Thu, 6 Sep 2001 15:43:35 +0000 (15:43 +0000)]
[project @ 2001-09-06 15:43:35 by simonpj]
Import wibbles
sewardj [Thu, 6 Sep 2001 15:38:16 +0000 (15:38 +0000)]
[project @ 2001-09-06 15:38:16 by sewardj]
Change a couple more Int32s into CTimes, which they are really.
sewardj [Thu, 6 Sep 2001 15:15:23 +0000 (15:15 +0000)]
[project @ 2001-09-06 15:15:23 by sewardj]
Convert some CInts into CTimes.
MERGE TO STABLE.
apt [Thu, 6 Sep 2001 14:41:21 +0000 (14:41 +0000)]
[project @ 2001-09-06 14:41:21 by apt]
add pointer to primops.txt documentation feature
apt [Thu, 6 Sep 2001 14:26:14 +0000 (14:26 +0000)]
[project @ 2001-09-06 14:26:14 by apt]
change ext-core output file suffix from .core (too easy to delete accidentally) to .hcr (MERGE TO STABLE)
sewardj [Thu, 6 Sep 2001 10:03:32 +0000 (10:03 +0000)]
[project @ 2001-09-06 10:03:32 by sewardj]
Fix cpp-inspired sparc breakage. Sigh.
sewardj [Wed, 5 Sep 2001 15:15:33 +0000 (15:15 +0000)]
[project @ 2001-09-05 15:15:33 by sewardj]
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 [Wed, 5 Sep 2001 04:03:15 +0000 (04:03 +0000)]
[project @ 2001-09-05 04:03:15 by ken]
Replace CLong with CInt32 to fix 32-bit assumption. MERGE TO STABLE BRANCH
ken [Tue, 4 Sep 2001 18:29:22 +0000 (18:29 +0000)]
[project @ 2001-09-04 18:29:20 by ken]
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 [Tue, 4 Sep 2001 18:22:34 +0000 (18:22 +0000)]
[project @ 2001-09-04 18:22:34 by ken]
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 [Tue, 4 Sep 2001 16:49:12 +0000 (16:49 +0000)]
[project @ 2001-09-04 16:49:12 by sewardj]
Fix ELF compilation for new section table scheme.
sewardj [Tue, 4 Sep 2001 16:35:02 +0000 (16:35 +0000)]
[project @ 2001-09-04 16:35:02 by sewardj]
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 [Tue, 4 Sep 2001 16:33:04 +0000 (16:33 +0000)]
[project @ 2001-09-04 16:33:04 by sewardj]
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 [Tue, 4 Sep 2001 14:11:58 +0000 (14:11 +0000)]
[project @ 2001-09-04 14:11:58 by ken]
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.
qrczak [Sun, 2 Sep 2001 10:40:34 +0000 (10:40 +0000)]
[project @ 2001-09-02 10:40:34 by qrczak]
Clean core, not *core (because of ext-core dirs).
apt [Fri, 31 Aug 2001 15:58:30 +0000 (15:58 +0000)]
[project @ 2001-08-31 15:58:30 by apt]
add ext-core example programs -- MERGE TO STABLE (surely harmless?)
apt [Fri, 31 Aug 2001 15:48:55 +0000 (15:48 +0000)]
[project @ 2001-08-31 15:48:55 by apt]
add documentation for ext-core -- MERGE TO STABLE (surely harmless?)
apt [Fri, 31 Aug 2001 15:28:49 +0000 (15:28 +0000)]
[project @ 2001-08-31 15:28:49 by apt]
fix documentation typos
simonmar [Fri, 31 Aug 2001 14:40:31 +0000 (14:40 +0000)]
[project @ 2001-08-31 14:40:31 by simonmar]
Fix worker-wrapper generation. See commments in WwLib.mk_ww_str
sewardj [Fri, 31 Aug 2001 14:32:03 +0000 (14:32 +0000)]
[project @ 2001-08-31 14:32:03 by sewardj]
Fix Linux compile b0rkage. Darn.
MERGE TO STABLE BRANCH
sewardj [Fri, 31 Aug 2001 13:51:45 +0000 (13:51 +0000)]
[project @ 2001-08-31 13:51:45 by sewardj]
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 [Fri, 31 Aug 2001 12:39:06 +0000 (12:39 +0000)]
[project @ 2001-08-31 12:39:06 by rje]
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 [Fri, 31 Aug 2001 11:44:12 +0000 (11:44 +0000)]
[project @ 2001-08-31 11:44:12 by sewardj]
.bss section fixes for ELF.
MERGE TO STABLE BRANCH (and test better!)
sewardj [Fri, 31 Aug 2001 11:42:44 +0000 (11:42 +0000)]
[project @ 2001-08-31 11:42:44 by sewardj]
Properly handle the linker debugging (-D4096) before.
MERGE TO STABLE BRANCH
rrt [Thu, 30 Aug 2001 16:21:45 +0000 (16:21 +0000)]
[project @ 2001-08-30 16:21:45 by rrt]
Remove a spurious space. Oh, yes.
sewardj [Thu, 30 Aug 2001 10:35:11 +0000 (10:35 +0000)]
[project @ 2001-08-30 10:35:10 by sewardj]
Advance HEAD version to 5.03.
simonmar [Thu, 30 Aug 2001 10:22:52 +0000 (10:22 +0000)]
[project @ 2001-08-30 10:22:52 by simonmar]
Don't automatically enable compaction when generations == 1.
simonmar [Thu, 30 Aug 2001 10:21:40 +0000 (10:21 +0000)]
[project @ 2001-08-30 10:21:40 by simonmar]
Automatically disable compaction when there's only one generation
(-G1) and print a warning to that effect.
sewardj [Thu, 30 Aug 2001 09:51:16 +0000 (09:51 +0000)]
[project @ 2001-08-30 09:51:15 by sewardj]
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
sof [Wed, 29 Aug 2001 19:29:04 +0000 (19:29 +0000)]
[project @ 2001-08-29 19:29:04 by sof]
make it compile.
sof [Wed, 29 Aug 2001 18:12:19 +0000 (18:12 +0000)]
[project @ 2001-08-29 18:12:19 by sof]
emptyPLS: warning removal
qrczak [Wed, 29 Aug 2001 17:24:25 +0000 (17:24 +0000)]
[project @ 2001-08-29 17:24:25 by qrczak]
Remove annoying warnings about using a deprecated extension
when compiling via gcc-3.0.
#if __GNUC__ >= 3
/* Assume that a flexible array member at the end of a struct
* can be defined thus: T arr[]; */
#define FLEXIBLE_ARRAY
#else
/* Assume that it must be defined thus: T arr[0]; */
#define FLEXIBLE_ARRAY 0
#endif
A test program (hsking) compiled fine with gcc-3.0!
rje [Wed, 29 Aug 2001 16:02:30 +0000 (16:02 +0000)]
[project @ 2001-08-29 16:02:30 by rje]
Another Haskell equivalent of CTags.
Written because fptags and hstags don't seem to be maintained any more and
its seemed to be less effort to write a new version, than to figure out
how those one's worked.
sewardj [Wed, 29 Aug 2001 15:12:21 +0000 (15:12 +0000)]
[project @ 2001-08-29 15:12:21 by sewardj]
Make the PEi386 linker able to handle symbols in .bss sections
(almost) correctly:
* "Anonymous" bss sections (where something like
static int a[10]
lives) are given a calloc'd block of memory to live in.
* Publically visible bss-resident symbols, such as
int a[10]
are each given their own calloc'd block. The normal
way of things is for identically-named symbols in different
modules to be commoned up and allocated the largest stated
size of any of the symbols. We don't do that -- if two different
.o files each declared int a[10], you'll get two independent
lumps of memory. Hence "almost" above.
These calloc'd lumps (pseudo-bss spaces) are not added to the list
of sections extracted for the benefit of the closure-vs-itbl pointer
checks done by the garbage collector. I don't think that matters.
These fixes need to be propagated to other formats too (viz, ELF).
This fixes the problem reported by ??? in which, on Windows,
writeFile "foo" "bar" in GHCi gives a segfault.
This bug was so horrible to track down and fix that I have instituted
range checking in the relocation processing machinery. The runtime
linker checks all locations it is patching to ensure they are within
a known segment before writing to them. Hopefully this will pick up
any future problems. The performance impact of this, assessed by
the time to start up GHCi, is unmeasureably small.
sewardj [Wed, 29 Aug 2001 15:02:02 +0000 (15:02 +0000)]
[project @ 2001-08-29 15:02:02 by sewardj]
Duh. Remember to actually zero out the space in stgCallocBytes. Duh.
sewardj [Wed, 29 Aug 2001 14:55:58 +0000 (14:55 +0000)]
[project @ 2001-08-29 14:55:58 by sewardj]
Add stgCallocBytes().
simonmar [Wed, 29 Aug 2001 14:32:49 +0000 (14:32 +0000)]
[project @ 2001-08-29 14:32:49 by simonmar]
Fix *two* bugs in formatRealFloat:
The first one is in the Haskell 98 errata, namely that negative
exponents cause an infinite loop in the FFFixed case when no precision
is specified. eg. `Numeric.showFFloat Nothing 0.02 ""' I've modified
the code in the errata to properly handle the e == 0 case and to be
slightly more efficient when e > 0.
The second bug is this:
Prelude> Numeric.showFFloat (Just 0) 0.02 ""
"0."
rje [Wed, 29 Aug 2001 14:20:14 +0000 (14:20 +0000)]
[project @ 2001-08-29 14:20:14 by rje]
FCode/Code is now a monad, and thus now also a constructed type, rather than a
type synonym.
This requires quite a lot of changes in quite a lot of files, but none of these changes should have changed the behaviour of anything.
Being a Monad allows code that used FCode to be IMHO rather more readable
as it can use do notation, and other common Monad idioms.
In addition, state has been abstracted away with getter and setter
functions, so that functions mess with the innards of FCode as little as
possible - making it easier to change FCode in future.
simonmar [Wed, 29 Aug 2001 11:20:40 +0000 (11:20 +0000)]
[project @ 2001-08-29 11:20:40 by simonmar]
- use SET_HDR rather than initialising header.info directly (fixes
potential bugs with profiling).
- add some masking to the Int32/Word32 cases to match the Int8-16 and
Word8-16 cases (potential 64-bit bugs).
simonmar [Wed, 29 Aug 2001 10:49:28 +0000 (10:49 +0000)]
[project @ 2001-08-29 10:49:28 by simonmar]
Add genRange method to class RandomGen, as per the revised Haskell 98
library report.
simonmar [Wed, 29 Aug 2001 10:19:31 +0000 (10:19 +0000)]
[project @ 2001-08-29 10:19:31 by simonmar]
Make the Permissions type non-abstract as per the revised Haskell 98 report.
simonmar [Wed, 29 Aug 2001 10:12:34 +0000 (10:12 +0000)]
[project @ 2001-08-29 10:12:34 by simonmar]
update maximumBy and minimumBy in line with the revised Haskell 98 report
simonmar [Wed, 29 Aug 2001 09:34:05 +0000 (09:34 +0000)]
[project @ 2001-08-29 09:34:05 by simonmar]
Changes to the Ix class from the revised Haskell 98 report:
- Ord is no longer a superclass of Ix.
- rangeSize is now a class member, as there are cases when
it is useful to be able to override it. As a result, GHC's
performance-improving "unsafeRangeSize" function also has to be
a class method just in case the programmer has overriden
rangeSize. Of course, unsafeRangeSize isn't visible when just
importing Ix.
- Added unsafeRangeSize bindings to all our standard Ix instances.
- Improved the Ix instances for Int{8,16,32,64} and
Word{8,16,32,64} by defining unsafeIndex instead of index, and
providing a definition of unsafeRangeSize.
I hope I haven't mucked anything up :) The array tests all pass
successfully, except for arr016 which depended on Ord being a
superclass of Ix. I'll commit changes to this test shortly.
sof [Tue, 28 Aug 2001 19:32:54 +0000 (19:32 +0000)]
[project @ 2001-08-28 19:32:54 by sof]
bring PprType (and its Outputable Type instance) into scope
simonmar [Tue, 28 Aug 2001 15:36:52 +0000 (15:36 +0000)]
[project @ 2001-08-28 15:36:52 by simonmar]
Change the definition of recip in the instance of Fractional for
Ratio, to:
recip (x:%y) = y % x
as per the revised Haskell 98 report.
simonmar [Tue, 28 Aug 2001 15:12:37 +0000 (15:12 +0000)]
[project @ 2001-08-28 15:12:37 by simonmar]
Bring scanr1, scanl, and scanl1 into line with the revised H98 report.
simonmar [Tue, 28 Aug 2001 15:11:41 +0000 (15:11 +0000)]
[project @ 2001-08-28 15:11:41 by simonmar]
Add instances of Eq & Ord up to size 15 (Bounded, Read & Show will
have to wait)
simonmar [Tue, 28 Aug 2001 15:07:58 +0000 (15:07 +0000)]
[project @ 2001-08-28 15:07:58 by simonmar]
Correct the USE_REPORT_PRELUDE definition of (!!).
simonpj [Tue, 28 Aug 2001 10:06:30 +0000 (10:06 +0000)]
[project @ 2001-08-28 10:06:29 by simonpj]
----------------------------------------
Make isFFIArgumentTy understand newtypes
----------------------------------------
This fixes the bug Manuel reported:
newtype T = T (Ptr T)
foreign import ccall foo :: T -> IO (Ptr T)
test.hs:6:
Unacceptable argument type in foreign declaration: T
On the way, I moved isFFIArgumentTy and friends out of TysWiredIn,
where they didn't really belong, into TcType. That in turn force
me to move isStrictType, and isPrimitiveType.
simonpj [Tue, 28 Aug 2001 10:03:24 +0000 (10:03 +0000)]
[project @ 2001-08-28 10:03:23 by simonpj]
Add pprEquation
simonmar [Tue, 28 Aug 2001 09:55:35 +0000 (09:55 +0000)]
[project @ 2001-08-28 09:55:35 by simonmar]
Fix (read "Infinity") and (read "NaN") for RealFloat types.
apt [Tue, 28 Aug 2001 08:34:29 +0000 (08:34 +0000)]
[project @ 2001-08-28 08:34:29 by apt]
fix problem with -fno-code
apt [Mon, 27 Aug 2001 15:16:30 +0000 (15:16 +0000)]
[project @ 2001-08-27 15:16:30 by apt]
shut up shortMeOut traces
apt [Mon, 27 Aug 2001 14:29:16 +0000 (14:29 +0000)]
[project @ 2001-08-27 14:29:16 by apt]
use qualified names to indicate external status of values
apt [Mon, 27 Aug 2001 14:27:23 +0000 (14:27 +0000)]
[project @ 2001-08-27 14:27:23 by apt]
document 31-bit core output option settings
simonmar [Mon, 27 Aug 2001 13:11:44 +0000 (13:11 +0000)]
[project @ 2001-08-27 13:11:44 by simonmar]
a couple of tweaks to the hc-file-bundle target:
- Add -r option to ${RM} to blow away an existing binary-dist
temporary directory if present.
- Fix bogons in the bundle building code.
simonmar [Mon, 27 Aug 2001 11:45:23 +0000 (11:45 +0000)]
[project @ 2001-08-27 11:45:23 by simonmar]
foldr is a good consumer (but not necessarily a good producer)
simonmar [Fri, 24 Aug 2001 14:41:09 +0000 (14:41 +0000)]
[project @ 2001-08-24 14:41:09 by simonmar]
correct off-by-one error in hGetStringBuffer
sewardj [Fri, 24 Aug 2001 13:50:03 +0000 (13:50 +0000)]
[project @ 2001-08-24 13:50:03 by sewardj]
Fill in details for 5.02.
simonpj [Fri, 24 Aug 2001 13:22:25 +0000 (13:22 +0000)]
[project @ 2001-08-24 13:22:25 by simonpj]
Make when comparing old and new strictness information,
we were being a bit too generous with the old case.
When a function has (say) arity 2, we can't use strictness
info like SSS, because that only applies if the fn is
applied to 3 args. So it's an unfair comparison.
This commit makes the old->new conversion function more
truthful in this regard, which should eliminate the
erroneously-claimed "worse" strictness results.
chak [Fri, 24 Aug 2001 13:13:59 +0000 (13:13 +0000)]
[project @ 2001-08-24 13:13:59 by chak]
wibble
simonpj [Fri, 24 Aug 2001 13:06:36 +0000 (13:06 +0000)]
[project @ 2001-08-24 13:06:36 by simonpj]
------------------------------
Another demand analyser glitch
------------------------------
This fixes, I hope, (in an unsatisfactory way) another demand-analyser
glitch, that resulted in a runtime "entered absent arg" error.
In DmdAnal.annotateLamIdBndr, we now have:
-- This gross hack is needed because otherwise we label
-- a lambda binder with demand 'B'. But in terms of calling
-- conventions that's Abs, because we don't pass it. But
-- when we do a w/w split we get
-- fw x = (\x y:B -> ...) x (error "oops")
-- And then the simplifier things the 'B' is a strict demand
-- and evaluates the (error "oops"). Sigh
The hack zaps 'B' to 'Abs', just like 'lazify' does.
Need to talk to John about what the principled reasons are.
simonpj [Fri, 24 Aug 2001 12:47:04 +0000 (12:47 +0000)]
[project @ 2001-08-24 12:47:04 by simonpj]
Improve error message for mis-matched contexts
simonpj [Fri, 24 Aug 2001 12:45:28 +0000 (12:45 +0000)]
[project @ 2001-08-24 12:45:28 by simonpj]
Fix an obscure but easy bug in SpecConstr
simonmar [Fri, 24 Aug 2001 11:39:49 +0000 (11:39 +0000)]
[project @ 2001-08-24 11:39:49 by simonmar]
- document :info
- bring up to date info about FFI support
rrt [Fri, 24 Aug 2001 09:41:27 +0000 (09:41 +0000)]
[project @ 2001-08-24 09:41:27 by rrt]
Remove unused import of DmdType
sewardj [Fri, 24 Aug 2001 09:33:14 +0000 (09:33 +0000)]
[project @ 2001-08-24 09:33:14 by sewardj]
First cut at new compiler + interpreter changes for 5.02. Also rearranged
the order of sections.
simonpj [Fri, 24 Aug 2001 09:02:39 +0000 (09:02 +0000)]
[project @ 2001-08-24 09:02:39 by simonpj]
Comment only
simonpj [Fri, 24 Aug 2001 07:58:29 +0000 (07:58 +0000)]
[project @ 2001-08-24 07:58:29 by simonpj]
Improve error message for nullary class
chak [Fri, 24 Aug 2001 06:17:56 +0000 (06:17 +0000)]
[project @ 2001-08-24 06:17:56 by chak]
* 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 [Fri, 24 Aug 2001 04:00:33 +0000 (04:00 +0000)]
[project @ 2001-08-24 04:00:33 by chak]
Added SPJ's new -fmax-worker-args to the flag reference
gla [Thu, 23 Aug 2001 22:53:08 +0000 (22:53 +0000)]
[project @ 2001-08-23 22:53:08 by gla]
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 [Thu, 23 Aug 2001 20:19:16 +0000 (20:19 +0000)]
[project @ 2001-08-23 20:19:16 by qrczak]
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 [Thu, 23 Aug 2001 18:23:46 +0000 (18:23 +0000)]
[project @ 2001-08-23 18:23:46 by gla]
Rephrased a few paragraphs.
Added a paragraph on the interface to retainerSet.
Added 'To do' paragraphs, which may be useful for maintenance.
simonpj [Thu, 23 Aug 2001 16:27:11 +0000 (16:27 +0000)]
[project @ 2001-08-23 16:27:11 by simonpj]
Fix representation finding for recursive newtypes