ghc-hetmet.git
18 years ago[project @ 2005-09-02 14:07:33 by simonmar]
simonmar [Fri, 2 Sep 2005 14:07:33 +0000 (14:07 +0000)]
[project @ 2005-09-02 14:07:33 by simonmar]
change glass.cse.ogi.edu to cvs.haskell.org

18 years ago[project @ 2005-08-24 09:43:55 by tharris]
tharris [Wed, 24 Aug 2005 09:43:56 +0000 (09:43 +0000)]
[project @ 2005-08-24 09:43:55 by tharris]
Hold sched_mutex when working on blackhole_queue

18 years ago[project @ 2005-08-22 09:03:02 by simonpj]
simonpj [Mon, 22 Aug 2005 09:03:02 +0000 (09:03 +0000)]
[project @ 2005-08-22 09:03:02 by simonpj]
Slightly improve overlap checking; could merge to STABLE

18 years ago[project @ 2005-08-19 08:02:39 by simonpj]
simonpj [Fri, 19 Aug 2005 08:02:39 +0000 (08:02 +0000)]
[project @ 2005-08-19 08:02:39 by simonpj]
Make -fno-code work again

18 years ago[project @ 2005-08-18 20:32:46 by krasimir]
krasimir [Thu, 18 Aug 2005 20:32:47 +0000 (20:32 +0000)]
[project @ 2005-08-18 20:32:46 by krasimir]
add pprInstanceHdr function. It is analogous to pprTyThingHdr and prints the
instance but without the "-- Defined at ...." comment. The function is used in
VStudio to populate the ClassView tree.

18 years ago[project @ 2005-08-18 10:25:46 by simonpj]
simonpj [Thu, 18 Aug 2005 10:25:47 +0000 (10:25 +0000)]
[project @ 2005-08-18 10:25:46 by simonpj]
1. Remove redundant coerces.  Something that started life as
coerce a b <expr>
   might change to
coerct Int Int <expr>
   after the types a,b are instantiated.

2. Get rid of the "bad eta expand" message. It can happen entirely legitimately.
   See comments in CoreUtils with eta_expand.

MERGE TO STABLE

18 years ago[project @ 2005-08-18 10:02:54 by simonpj]
simonpj [Thu, 18 Aug 2005 10:02:54 +0000 (10:02 +0000)]
[project @ 2005-08-18 10:02:54 by simonpj]
Make the forkM failure fail more tidily.  Interface-file inconsistencies
give rise to failures in the IfM monad.  An error message is printed, but
up to now we've also said "The impossible happened, must be a GHC bug".
That's not true, though, it could just be messed up interface files.

So this commit still makes the compiler halt, but in a tidier, less
self-accusatory way.

Still to come: when original names in interface files mention the
package Id too, the error will become clearer still.

MERGE to STABLE

18 years ago[project @ 2005-08-12 14:43:04 by simonpj]
simonpj [Fri, 12 Aug 2005 14:43:04 +0000 (14:43 +0000)]
[project @ 2005-08-12 14:43:04 by simonpj]
Fix typos

18 years ago[project @ 2005-08-12 12:36:59 by simonmar]
simonmar [Fri, 12 Aug 2005 12:36:59 +0000 (12:36 +0000)]
[project @ 2005-08-12 12:36:59 by simonmar]
Use a better string hash: the previous one only took into account 3
characters from the string (0, N/2, N), leading to some bad collisions
with lots of similar strings (eg. local names generated by the
compiler).  Worse, it had a bug in the N==2 case, which meant that it
ignored one of the characters in the string completely.

We now traverse the whole string, using the algorithm from Data.Hash
which seems to work reasonably well.

For good measure, I quadrupled the size of the hash table too, from
1000 to 4000 entries.

18 years ago[project @ 2005-08-12 10:47:48 by simonmar]
simonmar [Fri, 12 Aug 2005 10:47:48 +0000 (10:47 +0000)]
[project @ 2005-08-12 10:47:48 by simonmar]
inline unsafePerformIO for eqStrPrefix/eqStrPrefixBA.  These functions
are fairly time-critical pieces of the FastString system, and using
unsafePerformIO here was causing unnecessary allocation.

18 years ago[project @ 2005-08-12 10:45:36 by simonmar]
simonmar [Fri, 12 Aug 2005 10:45:36 +0000 (10:45 +0000)]
[project @ 2005-08-12 10:45:36 by simonmar]
More inlining changes from SimonPJ & me: The Plan is to avoid relying
on knowledge of OneOcc occurrences after postInlineUnconditionally, so
we now attempt to make use of OneOcc as far as possible in in
pre/postInlineUnconditionally rather than the call site.  Plenty of
comments in the code with more details.

This change almost always improves performance on nofib; we have one
program that goes slower, which we'll investigate in due course.

18 years ago[project @ 2005-08-12 08:32:16 by simonpj]
simonpj [Fri, 12 Aug 2005 08:32:16 +0000 (08:32 +0000)]
[project @ 2005-08-12 08:32:16 by simonpj]
Grr: another wibble to duplicate signature detection

18 years ago[project @ 2005-08-12 08:10:50 by simonmar]
simonmar [Fri, 12 Aug 2005 08:10:50 +0000 (08:10 +0000)]
[project @ 2005-08-12 08:10:50 by simonmar]
exprIsCheap: fix a bug whereby an over-applied ClassOp or RecordSel
would be considered cheap.

18 years ago[project @ 2005-08-11 22:50:16 by simonmar]
simonmar [Thu, 11 Aug 2005 22:50:16 +0000 (22:50 +0000)]
[project @ 2005-08-11 22:50:16 by simonmar]
fix bug in slurpSCCs that causes SCCs to be pushed in the wrong order
on closures occasionally.

18 years ago[project @ 2005-08-11 13:11:52 by simonpj]
simonpj [Thu, 11 Aug 2005 13:11:52 +0000 (13:11 +0000)]
[project @ 2005-08-11 13:11:52 by simonpj]
Ack! Ack!

18 years ago[project @ 2005-08-11 13:10:34 by simonpj]
simonpj [Thu, 11 Aug 2005 13:10:34 +0000 (13:10 +0000)]
[project @ 2005-08-11 13:10:34 by simonpj]
Ack!  missed one!

18 years ago[project @ 2005-08-11 09:20:49 by simonpj]
simonpj [Thu, 11 Aug 2005 09:20:50 +0000 (09:20 +0000)]
[project @ 2005-08-11 09:20:49 by simonpj]
Further wibbles to moving dependency analysis back to renamer; fixes ghci failures

18 years ago[project @ 2005-08-11 08:45:41 by simonpj]
simonpj [Thu, 11 Aug 2005 08:45:41 +0000 (08:45 +0000)]
[project @ 2005-08-11 08:45:41 by simonpj]
Wibble; fixes TH failures

18 years ago[project @ 2005-08-11 08:22:11 by simonpj]
simonpj [Thu, 11 Aug 2005 08:22:11 +0000 (08:22 +0000)]
[project @ 2005-08-11 08:22:11 by simonpj]
Fix bogon in reporting of duplicate sigs; make mod68 work again

18 years ago[project @ 2005-08-11 08:04:33 by simonpj]
simonpj [Thu, 11 Aug 2005 08:04:34 +0000 (08:04 +0000)]
[project @ 2005-08-11 08:04:33 by simonpj]
Do 'tidying' on Kinds before printing them.  This avoids printing
stuff like 'k_43b' in user error messages.

To do this, I ended up adding an OccName to Kind.KindVar.  Even
then the implementation is a bit of hack (see comments with
Type.tidyKind).  Still, it's a highly localised hack, whereas the
"right thing" entails making KindVar into a flavour of Var, which
seems like an uncomfortably big change.

   I think this change can merge to the stable branch

18 years ago[project @ 2005-08-10 11:09:05 by simonpj]
simonpj [Wed, 10 Aug 2005 11:09:07 +0000 (11:09 +0000)]
[project @ 2005-08-10 11:09:05 by simonpj]
Rename exprIsValue to exprIsHNF, which is more accurate

18 years ago[project @ 2005-08-10 11:05:06 by simonpj]
simonpj [Wed, 10 Aug 2005 11:05:08 +0000 (11:05 +0000)]
[project @ 2005-08-10 11:05:06 by simonpj]
It turned out that doing all binding dependency analysis in the typechecker
meant that the renamer's unused-binding error messages got worse.  So now
I've put the first dep anal back into the renamer, while the second (which
is specific to type checking) remains in the type checker.

I've also made the pretty printer sort the decls back into source order
before printing them (except with -dppr-debug).

Fixes rn041.

18 years ago[project @ 2005-08-10 10:01:37 by simonmar]
simonmar [Wed, 10 Aug 2005 10:01:37 +0000 (10:01 +0000)]
[project @ 2005-08-10 10:01:37 by simonmar]
-Wall cleaning and dead code removal

18 years ago[project @ 2005-08-10 07:49:36 by simonpj]
simonpj [Wed, 10 Aug 2005 07:49:36 +0000 (07:49 +0000)]
[project @ 2005-08-10 07:49:36 by simonpj]
Fix a bug caused by the change in representation for NPats;
the pattern-overlap checker didn't know about the change,
and so treated +1 and -1 as equal...

MERGE to STABLE

18 years ago[project @ 2005-08-10 07:44:51 by simonpj]
simonpj [Wed, 10 Aug 2005 07:44:51 +0000 (07:44 +0000)]
[project @ 2005-08-10 07:44:51 by simonpj]
Fix pretty-printing bug for NPat; MERGE to STABLE

18 years ago[project @ 2005-08-09 16:58:39 by simonpj]
simonpj [Tue, 9 Aug 2005 16:58:39 +0000 (16:58 +0000)]
[project @ 2005-08-09 16:58:39 by simonpj]
Wibble to loadHomeInterface for TH quoting; MERGE to STABLE

18 years ago[project @ 2005-08-09 16:57:57 by simonpj]
simonpj [Tue, 9 Aug 2005 16:57:58 +0000 (16:57 +0000)]
[project @ 2005-08-09 16:57:57 by simonpj]
Comments

18 years ago[project @ 2005-08-09 16:35:39 by simonpj]
simonpj [Tue, 9 Aug 2005 16:35:39 +0000 (16:35 +0000)]
[project @ 2005-08-09 16:35:39 by simonpj]
Correct attribution of existential types; MERGE to STABLE

18 years ago[project @ 2005-08-09 16:08:03 by simonpj]
simonpj [Tue, 9 Aug 2005 16:08:03 +0000 (16:08 +0000)]
[project @ 2005-08-09 16:08:03 by simonpj]
Add notes about Typable restrictions; merge to stable

18 years ago[project @ 2005-08-09 13:21:13 by simonmar]
simonmar [Tue, 9 Aug 2005 13:21:13 +0000 (13:21 +0000)]
[project @ 2005-08-09 13:21:13 by simonmar]
mapUFM was strict in the structure of the tree, perhaps accidentally.
In any case, this interacted badly with the use of mapVarEnv in
SimplEnv.mkCoreSubst, which assumed that the map was lazy.

mapUFM is now lazy in the structure of the tree, which matches the
behaviour of FiniteMap.mapFM.

This fixes some long compilation times, in particular HTMLMonad98.hs
from WASH used to take 2 mins to compile without optimisation, now
takes less than 20 seconds.

18 years ago[project @ 2005-08-04 11:23:42 by simonmar]
simonmar [Thu, 4 Aug 2005 11:23:42 +0000 (11:23 +0000)]
[project @ 2005-08-04 11:23:42 by simonmar]
callSiteInline: consider inlining even the once-in-one-branch
occurrences.  See comment for details.

18 years ago[project @ 2005-08-04 11:18:41 by simonmar]
simonmar [Thu, 4 Aug 2005 11:18:41 +0000 (11:18 +0000)]
[project @ 2005-08-04 11:18:41 by simonmar]
preInlineUnconditionally: replace exprIsValue call with home-grown
version to fix loss-of-sharing that arises because exprIsValue doesn't
necessarily mean "ok to inline inside a lambda".  Fixes last night's
10queens test failures.

18 years ago[project @ 2005-08-04 02:09:36 by wolfgang]
wolfgang [Thu, 4 Aug 2005 02:09:36 +0000 (02:09 +0000)]
[project @ 2005-08-04 02:09:36 by wolfgang]
Check for RTLD_DEFAULT in dlfcn.h and use it if it is available.
(On Mac OS X its value is -2, and using NULL instead does not work.)

MERGE TO STABLE

18 years ago[project @ 2005-08-03 15:16:14 by simonmar]
simonmar [Wed, 3 Aug 2005 15:16:14 +0000 (15:16 +0000)]
[project @ 2005-08-03 15:16:14 by simonmar]
fix bogus #ifdef in defaultHscTarget

18 years ago[project @ 2005-08-03 13:53:35 by simonmar]
simonmar [Wed, 3 Aug 2005 13:53:36 +0000 (13:53 +0000)]
[project @ 2005-08-03 13:53:35 by simonmar]
Patch from SimonPJ (slightly tweaked by me after checking performance
results):

Fix occasional O(n^2) behaviour in the simplifier.  There was a
possibility that by inlining a binding, we could re-simplify an
arbitrary sized expression.  This patch fixes it by moving the
inlining of arbitrary-sized expressiong to the binding site
(preInlineUnconditionally), so the decision to inline happens before
simplifying the RHS.  To do this, we have to collect more information
during the occurrence analysis phase.

We still make inlining decisions at the call site, but they are always
size-limited, so we can't get quadratic blowup.

18 years ago[project @ 2005-08-03 10:42:53 by simonmar]
simonmar [Wed, 3 Aug 2005 10:42:53 +0000 (10:42 +0000)]
[project @ 2005-08-03 10:42:53 by simonmar]
Fix the location of _stub.o files when compiling with -odir.  The
comment from the source:

-- The _stub.c file is derived from the haskell source file (but stored
-- in hscStubCOutName in the dflags for some reason, probably historical).
-- Consequently, we derive the _stub.o filename from the haskell object
-- filename.
--
-- This isn't necessarily the same as the object filename we
-- would get if we just compiled the _stub.c file using the pipeline.
-- For example:
--
--    ghc src/A.hs -odir obj
--
-- results in obj/A.o, and src/A_stub.c.  If we compile src/A_stub.c with
-- -odir obj, we would get obj/src/A_stub.o, which is wrong; we want
-- obj/A_stub.o.

18 years ago[project @ 2005-08-03 09:43:06 by simonmar]
simonmar [Wed, 3 Aug 2005 09:43:06 +0000 (09:43 +0000)]
[project @ 2005-08-03 09:43:06 by simonmar]
Update documentation for ghc-pkg list and ghc-pkg latest.

18 years ago[project @ 2005-08-03 09:34:55 by simonmar]
simonmar [Wed, 3 Aug 2005 09:34:55 +0000 (09:34 +0000)]
[project @ 2005-08-03 09:34:55 by simonmar]
Tidyup, and make all the commands that take a package identifier
behave the same.  Previously, naming a package without a version
number only matched the same package identifier, if you wanted to
match multiple packages you had to say P-*.  However, the new list and
latest commands behave differently, which was inconsistent.

I believe the previous behaviour was for backwards compatibility with
packages that had no version number.  However, it's unlikely that this
is ever useful, so I've changed the semantics so that a package name
on its own matches all versions of that package.

18 years ago[project @ 2005-08-03 09:13:32 by simonmar]
simonmar [Wed, 3 Aug 2005 09:13:32 +0000 (09:13 +0000)]
[project @ 2005-08-03 09:13:32 by simonmar]
- Add "ghc-pkg list <pkg>" to list packages matching <pkg>
- Add "ghc-pkg latest <pkg>" to show the latest version of <pkg>
- Add --simple-output option to produce a more easily slurpable output
  from ghc-pkg list.

Patch from Lennart Kolmodin <kolmodin at dtek.chalmers.se>

18 years ago[project @ 2005-08-02 14:59:39 by simonmar]
simonmar [Tue, 2 Aug 2005 14:59:39 +0000 (14:59 +0000)]
[project @ 2005-08-02 14:59:39 by simonmar]
small tidyup for memInventory

18 years ago[project @ 2005-08-02 14:58:40 by simonmar]
simonmar [Tue, 2 Aug 2005 14:58:40 +0000 (14:58 +0000)]
[project @ 2005-08-02 14:58:40 by simonmar]
Fix up GC debugging output

18 years ago[project @ 2005-08-02 14:58:23 by simonmar]
simonmar [Tue, 2 Aug 2005 14:58:23 +0000 (14:58 +0000)]
[project @ 2005-08-02 14:58:23 by simonmar]
Fix tiny debugging output bug

18 years ago[project @ 2005-08-02 14:56:50 by simonmar]
simonmar [Tue, 2 Aug 2005 14:56:50 +0000 (14:56 +0000)]
[project @ 2005-08-02 14:56:50 by simonmar]
- move instance Show FastString into FastString module
- instance Outputable FastString should use ftext instead of unpackFS

18 years ago[project @ 2005-08-02 14:55:32 by simonmar]
simonmar [Tue, 2 Aug 2005 14:55:32 +0000 (14:55 +0000)]
[project @ 2005-08-02 14:55:32 by simonmar]
A little bit of strictness (doesn't actually help much)

18 years ago[project @ 2005-08-02 14:53:26 by simonmar]
simonmar [Tue, 2 Aug 2005 14:53:26 +0000 (14:53 +0000)]
[project @ 2005-08-02 14:53:26 by simonmar]
Fix an SCC

18 years ago[project @ 2005-08-02 14:05:37 by simonmar]
simonmar [Tue, 2 Aug 2005 14:05:37 +0000 (14:05 +0000)]
[project @ 2005-08-02 14:05:37 by simonmar]
Annotate foreign calls with volatile registers to reduce the amount of
saving that needs to be done.

18 years ago[project @ 2005-08-02 14:04:19 by simonmar]
simonmar [Tue, 2 Aug 2005 14:04:19 +0000 (14:04 +0000)]
[project @ 2005-08-02 14:04:19 by simonmar]
save + restore caller-saves registers around foreign calls

18 years ago[project @ 2005-08-02 14:03:40 by simonmar]
simonmar [Tue, 2 Aug 2005 14:03:40 +0000 (14:03 +0000)]
[project @ 2005-08-02 14:03:40 by simonmar]
Add callerSaveVolatileRegs for saving registers around C calls

18 years ago[project @ 2005-08-02 12:02:16 by simonmar]
simonmar [Tue, 2 Aug 2005 12:02:16 +0000 (12:02 +0000)]
[project @ 2005-08-02 12:02:16 by simonmar]
Add a ToDo

18 years ago[project @ 2005-08-02 12:01:57 by simonmar]
simonmar [Tue, 2 Aug 2005 12:01:57 +0000 (12:01 +0000)]
[project @ 2005-08-02 12:01:57 by simonmar]
Allow an empty list of volatile regs on a call

18 years ago[project @ 2005-08-01 15:25:09 by simonmar]
simonmar [Mon, 1 Aug 2005 15:25:09 +0000 (15:25 +0000)]
[project @ 2005-08-01 15:25:09 by simonmar]
Rmoeve a few lines that are provided by lib/compat/compat.mk

18 years ago[project @ 2005-08-01 15:24:26 by simonmar]
simonmar [Mon, 1 Aug 2005 15:24:26 +0000 (15:24 +0000)]
[project @ 2005-08-01 15:24:26 by simonmar]
For Windows (moved from ghc-pkg/Makefile):

HC_BOOT_LIBS += -lshell32

18 years ago[project @ 2005-08-01 15:20:01 by simonmar]
simonmar [Mon, 1 Aug 2005 15:20:01 +0000 (15:20 +0000)]
[project @ 2005-08-01 15:20:01 by simonmar]
Add explicit dependency for Distribution.Compat.FilePath

18 years ago[project @ 2005-07-29 20:21:50 by sof]
sof [Fri, 29 Jul 2005 20:21:50 +0000 (20:21 +0000)]
[project @ 2005-07-29 20:21:50 by sof]
win32/AsyncIO.c:onIOComplete(), awaitRequests():
  Avoid completion table overflow through the use of
  a semaphore. Worker threads (the producers) wait for a free
  event slot to appear, the RTS thread (consumer) signal slot
  availability once the completion event has been de-queued and
  processed.

  This bug only manifests itself in 'massively concurrent' code
  (>200 threads), where the threads simultaneously engage in IO
  through the async IO layer. conc023 and conc036 in the regression
  test suite are examples of such.

Merge to STABLE.

18 years ago[project @ 2005-07-28 15:42:48 by simonmar]
simonmar [Thu, 28 Jul 2005 15:42:48 +0000 (15:42 +0000)]
[project @ 2005-07-28 15:42:48 by simonmar]
- Remove -fno-cpr, which doesn't exist
- remove redundancy in description of -fno-full-laziness

18 years ago[project @ 2005-07-28 15:41:47 by simonmar]
simonmar [Thu, 28 Jul 2005 15:41:47 +0000 (15:41 +0000)]
[project @ 2005-07-28 15:41:47 by simonmar]
Document a few more options

18 years ago[project @ 2005-07-28 14:58:27 by simonpj]
simonpj [Thu, 28 Jul 2005 14:58:27 +0000 (14:58 +0000)]
[project @ 2005-07-28 14:58:27 by simonpj]
Make ghc -M work when you give multiple files with the same
module name.  We want to do this to the STABLE branch too,
but this commit will not merge; it'll need to be done
afresh.

18 years ago[project @ 2005-07-28 14:45:55 by simonpj]
simonpj [Thu, 28 Jul 2005 14:45:55 +0000 (14:45 +0000)]
[project @ 2005-07-28 14:45:55 by simonpj]
Restore costant folding

18 years ago[project @ 2005-07-28 13:51:54 by simonpj]
simonpj [Thu, 28 Jul 2005 13:51:54 +0000 (13:51 +0000)]
[project @ 2005-07-28 13:51:54 by simonpj]
Back out earlier version of TH fix (dont merge this)

18 years ago[project @ 2005-07-28 13:51:28 by simonpj]
simonpj [Thu, 28 Jul 2005 13:51:28 +0000 (13:51 +0000)]
[project @ 2005-07-28 13:51:28 by simonpj]
MERGE to STABLE

Fix a TH name-reification bug. The problem is that when you say

'name

in TH, you'd better load the home interface for "name", so that
deprecations are reported properly.

Fixes SourceForge
[ghc-Bugs-1246483 ] Template Haskell panic with class names

TH_reifyType2 is a test for it.

18 years ago[project @ 2005-07-28 13:12:02 by simonmar]
simonmar [Thu, 28 Jul 2005 13:12:02 +0000 (13:12 +0000)]
[project @ 2005-07-28 13:12:02 by simonmar]
comments about -fno-strict-aliasing

18 years ago[project @ 2005-07-28 12:57:13 by simonmar]
simonmar [Thu, 28 Jul 2005 12:57:13 +0000 (12:57 +0000)]
[project @ 2005-07-28 12:57:13 by simonmar]
optimise instance for lists: now we record the length first followed
by the elements.

HEADS UP: changes interface file representation, rebuild your libraries.

18 years ago[project @ 2005-07-28 12:48:25 by simonpj]
simonpj [Thu, 28 Jul 2005 12:48:25 +0000 (12:48 +0000)]
[project @ 2005-07-28 12:48:25 by simonpj]
Fix another minor bogon in the new rules stuff

18 years ago[project @ 2005-07-28 11:46:28 by simonmar]
simonmar [Thu, 28 Jul 2005 11:46:28 +0000 (11:46 +0000)]
[project @ 2005-07-28 11:46:28 by simonmar]
Add Distribution.Compat.FilePath to the relevant places.

18 years ago[project @ 2005-07-28 11:19:03 by simonmar]
simonmar [Thu, 28 Jul 2005 11:19:03 +0000 (11:19 +0000)]
[project @ 2005-07-28 11:19:03 by simonmar]
Fix a bad space leak in the native code generator: turn a couple of
lazy tuple matches into strict matches.

18 years ago[project @ 2005-07-27 23:00:52 by simonmar]
simonmar [Wed, 27 Jul 2005 23:00:52 +0000 (23:00 +0000)]
[project @ 2005-07-27 23:00:52 by simonmar]
Now required due to dependency from Distribution.ParseUtils

18 years ago[project @ 2005-07-27 15:46:19 by simonmar]
simonmar [Wed, 27 Jul 2005 15:46:19 +0000 (15:46 +0000)]
[project @ 2005-07-27 15:46:19 by simonmar]
back out revision 1.22; it led to very bad memory fragmentation.  A
rethink is in order.

18 years ago[project @ 2005-07-27 15:32:12 by simonmar]
simonmar [Wed, 27 Jul 2005 15:32:12 +0000 (15:32 +0000)]
[project @ 2005-07-27 15:32:12 by simonmar]
Fix a couple of recent bugs, and always check for memory leaks in the
block allocator when DEBUG is on (previous was under -DS).

18 years ago[project @ 2005-07-27 11:55:43 by simonpj]
simonpj [Wed, 27 Jul 2005 11:55:43 +0000 (11:55 +0000)]
[project @ 2005-07-27 11:55:43 by simonpj]
Bogon in RULE desguaring

18 years ago[project @ 2005-07-27 10:32:49 by simonmar]
simonmar [Wed, 27 Jul 2005 10:32:49 +0000 (10:32 +0000)]
[project @ 2005-07-27 10:32:49 by simonmar]
update for changes in stats output

18 years ago[project @ 2005-07-27 08:04:02 by simonpj]
simonpj [Wed, 27 Jul 2005 08:04:02 +0000 (08:04 +0000)]
[project @ 2005-07-27 08:04:02 by simonpj]
Try MERGE to STABLE

GHC does not do type subsumption in patterns.  But it should be fine if
the expected type and the pattern have the same type, even if they
are polymorphic.  But that test (in TcUnify.tcSubPat) wasn't implemented
right, which gave rise to perplexing messages like:

   Couldn't match `forall a. a -> b' against `forall a. a -> b'

This fixes the bug.
tc198 tests it, while tcfail145 tests the non-matching case.

18 years ago[project @ 2005-07-26 22:10:59 by simonmar]
simonmar [Tue, 26 Jul 2005 22:10:59 +0000 (22:10 +0000)]
[project @ 2005-07-26 22:10:59 by simonmar]
gcc has gone to town on the garbage collector and killed it: use
-optc-fno-strict-aliasing as a workaround for now.

18 years ago[project @ 2005-07-26 15:16:40 by simonmar]
simonmar [Tue, 26 Jul 2005 15:16:40 +0000 (15:16 +0000)]
[project @ 2005-07-26 15:16:40 by simonmar]
Avoid recording objects in the mutable list of generation 0 (bug
introduced on the HEAD recently, it seems)

18 years ago[project @ 2005-07-26 15:14:24 by simonmar]
simonmar [Tue, 26 Jul 2005 15:14:24 +0000 (15:14 +0000)]
[project @ 2005-07-26 15:14:24 by simonmar]
Fix retainer profiling on the HEAD

18 years ago[project @ 2005-07-26 14:44:22 by simonmar]
simonmar [Tue, 26 Jul 2005 14:44:36 +0000 (14:44 +0000)]
[project @ 2005-07-26 14:44:22 by simonmar]
add missing MUT_ARR_PTRS_FROZEN0 cases

18 years ago[project @ 2005-07-26 14:42:53 by simonmar]
simonmar [Tue, 26 Jul 2005 14:42:53 +0000 (14:42 +0000)]
[project @ 2005-07-26 14:42:53 by simonmar]
add missing case for MUT_ARR_PTRS_FROZEN0 (might fix some cases of
"internal error: heapCensus" in the HEAD)

18 years ago[project @ 2005-07-26 14:38:42 by simonmar]
simonmar [Tue, 26 Jul 2005 14:38:42 +0000 (14:38 +0000)]
[project @ 2005-07-26 14:38:42 by simonmar]
oops, fix heavy-handed C-k in prev commit

18 years ago[project @ 2005-07-26 13:13:20 by simonmar]
simonmar [Tue, 26 Jul 2005 13:14:14 +0000 (13:14 +0000)]
[project @ 2005-07-26 13:13:20 by simonmar]
some small optimisations

18 years ago[project @ 2005-07-26 12:15:54 by simonmar]
simonmar [Tue, 26 Jul 2005 12:15:54 +0000 (12:15 +0000)]
[project @ 2005-07-26 12:15:54 by simonmar]
printing C: use the quick printForC rather than the slow (but
prettier) printForUser.  This has been a ToDo for a while.

18 years ago[project @ 2005-07-26 12:14:03 by simonmar]
simonmar [Tue, 26 Jul 2005 12:14:03 +0000 (12:14 +0000)]
[project @ 2005-07-26 12:14:03 by simonmar]
Add a layer of write buffering over Handle when dumping the output:
this saves a lot of time because we're doing a lot of small writes,
and Handle operations have a non-trivial constant overhead due to the
thread-safety, exception-safety etc.

This improvement results in about a 10% reduction in compile time for
non-optimised, somewhat less for optimised compilation.

18 years ago[project @ 2005-07-26 10:11:37 by simonmar]
simonmar [Tue, 26 Jul 2005 10:11:37 +0000 (10:11 +0000)]
[project @ 2005-07-26 10:11:37 by simonmar]
Fix to previous tweaks

18 years ago[project @ 2005-07-26 08:31:21 by simonpj]
simonpj [Tue, 26 Jul 2005 08:31:21 +0000 (08:31 +0000)]
[project @ 2005-07-26 08:31:21 by simonpj]
When trimming type constructors for export, no need to trim enumerations,
because they don't give rise to any further exported things.

(Minor improvement: no need to merge)

18 years ago[project @ 2005-07-26 08:29:44 by simonpj]
simonpj [Tue, 26 Jul 2005 08:29:44 +0000 (08:29 +0000)]
[project @ 2005-07-26 08:29:44 by simonpj]
MERGE TO STABLE

Fix a TH bug.  When a type constructor was exported abstractly (which happens
when you don't have -O), and then reified in an importing module, the
reification crashed.

Now it just gives a TyCon with no constructors.

18 years ago[project @ 2005-07-26 08:16:24 by simonpj]
simonpj [Tue, 26 Jul 2005 08:16:24 +0000 (08:16 +0000)]
[project @ 2005-07-26 08:16:24 by simonpj]
Comments

18 years ago[project @ 2005-07-26 07:30:37 by simonpj]
simonpj [Tue, 26 Jul 2005 07:30:37 +0000 (07:30 +0000)]
[project @ 2005-07-26 07:30:37 by simonpj]
Revert accidental commit

18 years ago[project @ 2005-07-25 15:48:18 by simonmar]
simonmar [Mon, 25 Jul 2005 15:48:18 +0000 (15:48 +0000)]
[project @ 2005-07-25 15:48:18 by simonmar]
Make various -fvia-C options conditional on GHC < 6.4, since the
native code generator is a bit more robust/complete these days.

18 years ago[project @ 2005-07-25 14:12:48 by simonmar]
simonmar [Mon, 25 Jul 2005 14:12:51 +0000 (14:12 +0000)]
[project @ 2005-07-25 14:12:48 by simonmar]
Remove the ForeignObj# type, and all its PrimOps.  The new efficient
representation of ForeignPtr doesn't use ForeignObj# underneath, and
there seems no need to keep it.

18 years ago[project @ 2005-07-25 14:04:02 by simonmar]
simonmar [Mon, 25 Jul 2005 14:04:02 +0000 (14:04 +0000)]
[project @ 2005-07-25 14:04:02 by simonmar]
Compile GC.c with -O3 (unrolls some important loops)

18 years ago[project @ 2005-07-25 14:03:06 by simonmar]
simonmar [Mon, 25 Jul 2005 14:03:06 +0000 (14:03 +0000)]
[project @ 2005-07-25 14:03:06 by simonmar]
GC tweaks

18 years ago[project @ 2005-07-25 14:01:42 by simonmar]
simonmar [Mon, 25 Jul 2005 14:01:42 +0000 (14:01 +0000)]
[project @ 2005-07-25 14:01:42 by simonmar]
catching up with GC tweaks.

18 years ago[project @ 2005-07-25 14:00:22 by simonmar]
simonmar [Mon, 25 Jul 2005 14:00:22 +0000 (14:00 +0000)]
[project @ 2005-07-25 14:00:22 by simonmar]
catching up with GC tweaks

18 years ago[project @ 2005-07-25 13:59:09 by simonmar]
simonmar [Mon, 25 Jul 2005 13:59:10 +0000 (13:59 +0000)]
[project @ 2005-07-25 13:59:09 by simonmar]
Tweaks to the GC to improve perforrmance.  Might be as much as 10% on
some programs.

18 years ago[project @ 2005-07-25 11:43:09 by simonpj]
simonpj [Mon, 25 Jul 2005 11:43:09 +0000 (11:43 +0000)]
[project @ 2005-07-25 11:43:09 by simonpj]
Print occ info in Core

18 years ago[project @ 2005-07-25 11:42:24 by simonpj]
simonpj [Mon, 25 Jul 2005 11:42:25 +0000 (11:42 +0000)]
[project @ 2005-07-25 11:42:24 by simonpj]
Comments

18 years ago[project @ 2005-07-25 11:29:36 by simonpj]
simonpj [Mon, 25 Jul 2005 11:29:36 +0000 (11:29 +0000)]
[project @ 2005-07-25 11:29:36 by simonpj]
Wibble to dup-sig reporting

18 years ago[project @ 2005-07-25 11:24:24 by simonpj]
simonpj [Mon, 25 Jul 2005 11:24:24 +0000 (11:24 +0000)]
[project @ 2005-07-25 11:24:24 by simonpj]
Better error recovery for type signatures

18 years ago[project @ 2005-07-25 11:11:36 by simonpj]
simonpj [Mon, 25 Jul 2005 11:11:36 +0000 (11:11 +0000)]
[project @ 2005-07-25 11:11:36 by simonpj]
Wibble to TH docs; MERGE to STABLE

18 years ago[project @ 2005-07-25 11:10:33 by simonpj]
simonpj [Mon, 25 Jul 2005 11:10:34 +0000 (11:10 +0000)]
[project @ 2005-07-25 11:10:33 by simonpj]
Wibbles to the big HsBinds reorg

18 years ago[project @ 2005-07-25 11:10:01 by simonpj]
simonpj [Mon, 25 Jul 2005 11:10:01 +0000 (11:10 +0000)]
[project @ 2005-07-25 11:10:01 by simonpj]
Comments

18 years ago[project @ 2005-07-25 11:08:26 by simonpj]
simonpj [Mon, 25 Jul 2005 11:08:27 +0000 (11:08 +0000)]
[project @ 2005-07-25 11:08:26 by simonpj]
MERGE TO STABLE if poss

Make the "root main" Id :Main.main into an *implicit* Id, whose parent is
Main.main.  What that means is that the "root main" Id won't be emitted
into the interface file.  Which has not been causing a problem in practice
but is clearly wrong -- there were two 'main's in the interface file.