ghc-hetmet.git
18 years ago[project @ 2005-10-17 10:47:10 by simonmar]
simonmar [Mon, 17 Oct 2005 10:47:10 +0000 (10:47 +0000)]
[project @ 2005-10-17 10:47:10 by simonmar]
merge rev. 1.13.2.12 from ghc-6-4-branch

18 years ago[project @ 2005-10-17 10:01:35 by simonmar]
simonmar [Mon, 17 Oct 2005 10:01:35 +0000 (10:01 +0000)]
[project @ 2005-10-17 10:01:35 by simonmar]
Fix a comment

18 years ago[project @ 2005-10-17 09:42:56 by simonmar]
simonmar [Mon, 17 Oct 2005 09:42:56 +0000 (09:42 +0000)]
[project @ 2005-10-17 09:42:56 by simonmar]
note about watching for/preventing overwrites of critical files in the
bootstrap process.

18 years ago[project @ 2005-10-17 09:36:39 by simonmar]
simonmar [Mon, 17 Oct 2005 09:36:39 +0000 (09:36 +0000)]
[project @ 2005-10-17 09:36:39 by simonmar]
if TARGETPLATFORM differs from HOSTPLATFORM, don't attempt to build
DerivedConstants,h, ghcautoconf.h and GHCConstants.h.  If these aren't
present, emit a message to remind the user to copy them from the
target system.  Hopefully this should make bootstrapping slightly less
error prone.

18 years ago[project @ 2005-10-14 13:11:21 by simonmar]
simonmar [Fri, 14 Oct 2005 13:11:21 +0000 (13:11 +0000)]
[project @ 2005-10-14 13:11:21 by simonmar]
StrHash doesn't appear to be used; remove it.  I think it was an
earlier version of the string hashing code in Hash.c.

18 years ago[project @ 2005-10-14 12:29:53 by simonmar]
simonmar [Fri, 14 Oct 2005 12:29:53 +0000 (12:29 +0000)]
[project @ 2005-10-14 12:29:53 by simonmar]
Some more informative diagnostics for ghc -v about what the package
system is doing.  This should help when diagnosing strange-looking
errors from GHC:

Using package config file: /home/simonmar/fp/lib/i386-unknown-linux/ghc-6.4.1/package.conf
package posix-1.0 will be ignored due to missing dependencies:
  lang-1.0
package util-1.0 will be ignored due to missing dependencies:
  lang-1.0
package data-1.0 will be ignored due to missing dependencies:
  lang-1.0
package text-1.0 will be ignored due to missing dependencies:
  lang-1.0
package Cabal-1.1.4 will be ignored due to missing dependencies:
  util-1.0
*** Deleting temp files
Deleting:
ghc-6.4.1: unknown package: Cabal-1.1.4

18 years ago[project @ 2005-10-14 11:48:56 by simonmar]
simonmar [Fri, 14 Oct 2005 11:48:56 +0000 (11:48 +0000)]
[project @ 2005-10-14 11:48:56 by simonmar]
Fix a couple of problems with the "unknown package" error message

18 years ago[project @ 2005-10-14 11:22:41 by simonpj]
simonpj [Fri, 14 Oct 2005 11:22:42 +0000 (11:22 +0000)]
[project @ 2005-10-14 11:22:41 by simonpj]
Add record syntax for GADTs
~~~~~~~~~~~~~~~~~~~~~~~~~~~

Atrijus Tang wanted to add record syntax for GADTs and existential
types, so he and I worked on it a bit at ICFP.  This commit is the
result.  Now you can say

 data T a where
  T1 { x :: a }             :: T [a]
  T2 { x :: a, y :: Int }   :: T [a]
  forall b. Show b =>
  T3 { naughty :: b, ok :: Int } :: T Int
  T4 :: Eq a => a -> b -> T (a,b)

Here the constructors are declared using record syntax.

Still to come after this commit:
  - User manual documentation
  - More regression tests
  - Some missing cases in the parser (e.g. T3 won't parse)
Autrijus is going to do these.

Here's a quick summary of the rules.  (Atrijus is going to write
proper documentation shortly.)

Defnition: a 'vanilla' constructor has a type of the form
forall a1..an. t1 -> ... -> tm -> T a1 ... an
No existentials, no context, nothing.  A constructor declared with
Haskell-98 syntax is vanilla by construction.  A constructor declared
with GADT-style syntax is vanilla iff its type looks like the above.
(In the latter case, the order of the type variables does not matter.)

* You can mix record syntax and non-record syntax in a single decl

* All constructors that share a common field 'x' must have the
  same result type (T [a] in the example).

* You can use field names without restriction in record construction
  and record pattern matching.

* Record *update* only works for data types that only have 'vanilla'
  constructors.

* Consider the field 'naughty', which uses a type variable that does
  not appear in the result type ('b' in the example).  You can use the
  field 'naughty' in pattern matching and construction, but NO
  SELECTOR function is generated for 'naughty'.  [An attempt to use
  'naughty' as a selector function will elicit a helpful error
  message.]

* Data types declared in GADT syntax cannot have a context. So this
is illegal:
data (Monad m) => T a where
  ....

* Constructors in GADT syntax can have a context (t.g. T3, T4 above)
  and that context is stored in the constructor and made available
  when the constructor is pattern-matched on.  WARNING: not competely
  implemented yet, but that's the plan.

Implementation notes
~~~~~~~~~~~~~~~~~~~~
- Data constructors (even vanilla ones) no longer share the type
  variables of their parent type constructor.

- HsDecls.ConDecl has changed quite a bit

- TyCons don't record the field labels and type any more (doesn't
  make sense for existential fields)

- GlobalIdDetails records which selectors are 'naughty', and hence
  don't have real code.

18 years ago[project @ 2005-10-13 00:11:17 by sof]
sof [Thu, 13 Oct 2005 00:11:17 +0000 (00:11 +0000)]
[project @ 2005-10-13 00:11:17 by sof]
add protos for HeapStackCheck.cmm:stg_block_blackhole_* entry points

18 years ago[project @ 2005-10-12 14:10:12 by simonmar]
simonmar [Wed, 12 Oct 2005 14:10:12 +0000 (14:10 +0000)]
[project @ 2005-10-12 14:10:12 by simonmar]
- we should be acquiring the sm_lock around allocGroup()
- sanity check threads as they are pulled off the blackhole_queue

18 years ago[project @ 2005-10-12 13:31:12 by simonpj]
simonpj [Wed, 12 Oct 2005 13:31:12 +0000 (13:31 +0000)]
[project @ 2005-10-12 13:31:12 by simonpj]
MERGE TO STABLE

Fix a bug in TcUnify.unifyTyConApp that made a GADT program fail.
The trouble happens if the type that we are expecting to be
a TyConApp is of form (m a b), where 'm' is refined to a type
constructor.  Then we want to get nice rigid results, and we weren't.

18 years ago[project @ 2005-10-12 13:29:12 by simonpj]
simonpj [Wed, 12 Oct 2005 13:29:12 +0000 (13:29 +0000)]
[project @ 2005-10-12 13:29:12 by simonpj]
Small refactoring

18 years ago[project @ 2005-10-12 12:58:38 by simonmar]
simonmar [Wed, 12 Oct 2005 12:58:38 +0000 (12:58 +0000)]
[project @ 2005-10-12 12:58:38 by simonmar]
DEBUG_FILL_SLOP: don't do anything on SMP, zeroing slop words isn't safe

18 years ago[project @ 2005-10-12 12:57:23 by simonmar]
simonmar [Wed, 12 Oct 2005 12:57:23 +0000 (12:57 +0000)]
[project @ 2005-10-12 12:57:23 by simonmar]
checkHeap: just return on SMP, we can't do heap sanity checking
because we can't zero slop words safely.

18 years ago[project @ 2005-10-12 12:56:30 by simonmar]
simonmar [Wed, 12 Oct 2005 12:56:30 +0000 (12:56 +0000)]
[project @ 2005-10-12 12:56:30 by simonmar]
Fix assertion failure in memInventory() with SMP

18 years ago[project @ 2005-10-12 12:53:15 by simonmar]
simonmar [Wed, 12 Oct 2005 12:53:15 +0000 (12:53 +0000)]
[project @ 2005-10-12 12:53:15 by simonmar]
When blocking on a BLACKHOLE, we must wait until we have finished
manipulating the current thread's stack before we release sched_mutex,
otherwise another thread can pick up the thread from the
blackhole_queue and start running it.

18 years ago[project @ 2005-10-12 02:12:34 by wolfgang]
wolfgang [Wed, 12 Oct 2005 02:12:34 +0000 (02:12 +0000)]
[project @ 2005-10-12 02:12:34 by wolfgang]
Mac OS X/Darwin PowerPC: Fix a problem introduced by the recent Darwin/x86
commit.

Make the code that allocates jump islands for PowerPC aware of how we shift
.o files in memory to compensate for Mach-O's lax alignment rules.

18 years ago[project @ 2005-10-11 13:28:49 by simonpj]
simonpj [Tue, 11 Oct 2005 13:28:49 +0000 (13:28 +0000)]
[project @ 2005-10-11 13:28:49 by simonpj]
Small fixes to the Win32 build log

18 years ago[project @ 2005-10-10 10:32:09 by simonmar]
simonmar [Mon, 10 Oct 2005 10:32:09 +0000 (10:32 +0000)]
[project @ 2005-10-10 10:32:09 by simonmar]
Fix bug in previous commit (fixes recent seg faults in nightly stage2)

18 years ago[project @ 2005-10-10 10:15:05 by simonmar]
simonmar [Mon, 10 Oct 2005 10:15:05 +0000 (10:15 +0000)]
[project @ 2005-10-10 10:15:05 by simonmar]
identify "mode" as a class of flags, in addition to "static" and "dyanmic"

18 years ago[project @ 2005-10-10 10:14:06 by simonmar]
simonmar [Mon, 10 Oct 2005 10:14:06 +0000 (10:14 +0000)]
[project @ 2005-10-10 10:14:06 by simonmar]
flag reference update: a bunch of static flags are now dynamic

18 years ago[project @ 2005-10-07 11:01:47 by simonmar]
simonmar [Fri, 7 Oct 2005 11:01:47 +0000 (11:01 +0000)]
[project @ 2005-10-07 11:01:47 by simonmar]
Fix a bug I just found: hiding a package if later versions are exposed
wasn't actually checking the exposed flag.

18 years ago[project @ 2005-10-06 10:41:15 by simonmar]
simonmar [Thu, 6 Oct 2005 10:41:15 +0000 (10:41 +0000)]
[project @ 2005-10-06 10:41:15 by simonmar]
comment typo

From: Autrijus Tang <autrijus@autrijus.org>

18 years ago[project @ 2005-10-06 10:40:40 by simonmar]
simonmar [Thu, 6 Oct 2005 10:40:40 +0000 (10:40 +0000)]
[project @ 2005-10-06 10:40:40 by simonmar]
remove old comment

From: Autrijus Tang <autrijus@autrijus.org>

18 years ago[project @ 2005-10-06 10:40:10 by simonmar]
simonmar [Thu, 6 Oct 2005 10:40:10 +0000 (10:40 +0000)]
[project @ 2005-10-06 10:40:10 by simonmar]
add dataConFieldType

From: Autrijus Tang <autrijus@autrijus.org>

18 years ago[project @ 2005-10-06 10:39:37 by simonmar]
simonmar [Thu, 6 Oct 2005 10:39:37 +0000 (10:39 +0000)]
[project @ 2005-10-06 10:39:37 by simonmar]
refactoring (use record fields instead of selector functions)

From: Autrijus Tang <autrijus@autrijus.org>

18 years ago[project @ 2005-10-06 10:38:54 by simonmar]
simonmar [Thu, 6 Oct 2005 10:38:54 +0000 (10:38 +0000)]
[project @ 2005-10-06 10:38:54 by simonmar]
add splitHsFunType

From: Autrijus Tang <autrijus@autrijus.org>

18 years ago[project @ 2005-10-06 10:38:22 by simonmar]
simonmar [Thu, 6 Oct 2005 10:38:22 +0000 (10:38 +0000)]
[project @ 2005-10-06 10:38:22 by simonmar]
small refactoring

From: Autrijus Tang <autrijus@autrijus.org>

18 years ago[project @ 2005-10-05 13:34:04 by simonmar]
simonmar [Wed, 5 Oct 2005 13:34:04 +0000 (13:34 +0000)]
[project @ 2005-10-05 13:34:04 by simonmar]
DEBUG_FILL_SLOP(): fill slop for AP_STACK closures too

18 years ago[project @ 2005-10-05 13:09:28 by simonmar]
simonmar [Wed, 5 Oct 2005 13:09:28 +0000 (13:09 +0000)]
[project @ 2005-10-05 13:09:28 by simonmar]
Mention that assertions are turned off by -O

18 years ago[project @ 2005-10-05 13:08:58 by simonmar]
simonmar [Wed, 5 Oct 2005 13:08:58 +0000 (13:08 +0000)]
[project @ 2005-10-05 13:08:58 by simonmar]
remove duplicate mention of -fignore-asserts

18 years ago[project @ 2005-09-24 15:07:49 by panne]
panne [Sat, 24 Sep 2005 15:07:49 +0000 (15:07 +0000)]
[project @ 2005-09-24 15:07:49 by panne]
Synched all FPTOOLS_CHECK_HTYPE definitions with the latest changes in
libraries/OpenAL/aclocal.m4. Although it is not strictly necessary, keeping
things identical is good for consistency. At some point in time we should
really find a way to eliminate all this redundancy... *sigh*

18 years ago[project @ 2005-09-24 04:22:22 by wolfgang]
wolfgang [Sat, 24 Sep 2005 04:22:22 +0000 (04:22 +0000)]
[project @ 2005-09-24 04:22:22 by wolfgang]
x86 & PIC: make floating point constants on x86 PIC-aware

18 years ago[project @ 2005-09-24 04:21:29 by wolfgang]
wolfgang [Sat, 24 Sep 2005 04:21:29 +0000 (04:21 +0000)]
[project @ 2005-09-24 04:21:29 by wolfgang]
Darwin/x86: Try again to get stack alignment right.

18 years ago[project @ 2005-09-24 02:15:32 by wolfgang]
wolfgang [Sat, 24 Sep 2005 02:15:32 +0000 (02:15 +0000)]
[project @ 2005-09-24 02:15:32 by wolfgang]
PowerPC: track changes in the rest of the register allocator

18 years ago[project @ 2005-09-23 10:13:33 by simonmar]
simonmar [Fri, 23 Sep 2005 10:13:33 +0000 (10:13 +0000)]
[project @ 2005-09-23 10:13:33 by simonmar]
in --make mode, don't re-link when the executable is up to date.

18 years ago[project @ 2005-09-21 09:58:53 by simonmar]
simonmar [Wed, 21 Sep 2005 09:58:53 +0000 (09:58 +0000)]
[project @ 2005-09-21 09:58:53 by simonmar]
distill a bit of wisdom from the mailing list

18 years ago[project @ 2005-09-21 09:54:59 by simonmar]
simonmar [Wed, 21 Sep 2005 09:54:59 +0000 (09:54 +0000)]
[project @ 2005-09-21 09:54:59 by simonmar]
Document the -x flag

18 years ago[project @ 2005-09-20 16:35:26 by ross]
ross [Tue, 20 Sep 2005 16:35:26 +0000 (16:35 +0000)]
[project @ 2005-09-20 16:35:26 by ross]
move RTLD_* tests down to unix package

18 years ago[project @ 2005-09-20 12:07:58 by simonmar]
simonmar [Tue, 20 Sep 2005 12:07:58 +0000 (12:07 +0000)]
[project @ 2005-09-20 12:07:58 by simonmar]
Update the license: we now use a BSD license, although the release
will be binary-only.

18 years ago[project @ 2005-09-18 16:27:21 by wolfgang]
wolfgang [Sun, 18 Sep 2005 16:27:21 +0000 (16:27 +0000)]
[project @ 2005-09-18 16:27:21 by wolfgang]
Make outOfLineFloatOp PIC/dynamic-linking-aware on i386

18 years ago[project @ 2005-09-18 16:23:57 by wolfgang]
wolfgang [Sun, 18 Sep 2005 16:23:57 +0000 (16:23 +0000)]
[project @ 2005-09-18 16:23:57 by wolfgang]
Fix last commit: it's opt_Static in the HEAD branch, not a local variable
"static".

18 years ago[project @ 2005-09-18 10:01:57 by panne]
panne [Sun, 18 Sep 2005 10:01:57 +0000 (10:01 +0000)]
[project @ 2005-09-18 10:01:57 by panne]
Fixed a few underquoted definitions.

18 years ago[project @ 2005-09-18 07:12:44 by wolfgang]
wolfgang [Sun, 18 Sep 2005 07:12:44 +0000 (07:12 +0000)]
[project @ 2005-09-18 07:12:44 by wolfgang]
PIC version for genSwitch on i386

18 years ago[project @ 2005-09-18 07:09:50 by wolfgang]
wolfgang [Sun, 18 Sep 2005 07:09:50 +0000 (07:09 +0000)]
[project @ 2005-09-18 07:09:50 by wolfgang]
A hack to make -dynamic work again:
when a library listed in extraLibraries ends with "_cbits", append "_dyn"
when -dynamic is passed, i.e. extraLibraries = ["foo", "HSbase_cbits"]
loads -lfoo and -lHSbase_cbits in the static case, but -lfoo and
-lHSbase_cbits_dyn in the -dynamic case.

It's an ugly hack, but it affects only the case when -dynamic is passed,
which would not work otherwise right now, so let's

MERGE TO STABLE

18 years ago[project @ 2005-09-16 14:02:22 by simonmar]
simonmar [Fri, 16 Sep 2005 14:02:22 +0000 (14:02 +0000)]
[project @ 2005-09-16 14:02:22 by simonmar]
Update for Sparc/Solaris from Christian Meader.  This might fix GHCi
on Sparc.

18 years ago[project @ 2005-09-16 11:23:45 by simonmar]
simonmar [Fri, 16 Sep 2005 11:23:45 +0000 (11:23 +0000)]
[project @ 2005-09-16 11:23:45 by simonmar]
- Mention bundled documentation
- Add some more copyrights
- Add authors

18 years ago[project @ 2005-09-16 10:36:53 by simonmar]
simonmar [Fri, 16 Sep 2005 10:36:53 +0000 (10:36 +0000)]
[project @ 2005-09-16 10:36:53 by simonmar]
only set bootstrapped=YES if the version we're building with is
exactly the *same* as the version being built, rather than a later
version.

18 years ago[project @ 2005-09-16 09:59:26 by simonmar]
simonmar [Fri, 16 Sep 2005 09:59:26 +0000 (09:59 +0000)]
[project @ 2005-09-16 09:59:26 by simonmar]
Add some missing cases to heapCensus(); should fix heap profiling of
code that uses STM.

18 years ago[project @ 2005-09-16 09:37:18 by simonmar]
simonmar [Fri, 16 Sep 2005 09:37:18 +0000 (09:37 +0000)]
[project @ 2005-09-16 09:37:18 by simonmar]
rev. 1.258 introduced a double acquire of sched_mutex; createThread()
is called with sched_mutex already held by rts_evalIO() and friends.
This fixes it.

18 years ago[project @ 2005-09-16 07:59:48 by simonmar]
simonmar [Fri, 16 Sep 2005 07:59:48 +0000 (07:59 +0000)]
[project @ 2005-09-16 07:59:48 by simonmar]
Somehow, I managed to commit the wrong version of yesterday's hack.
Sigh.  Try again.

18 years ago[project @ 2005-09-15 18:12:25 by krasimir]
krasimir [Thu, 15 Sep 2005 18:12:25 +0000 (18:12 +0000)]
[project @ 2005-09-15 18:12:25 by krasimir]
Add Makefile

18 years ago[project @ 2005-09-15 08:56:31 by simonmar]
simonmar [Thu, 15 Sep 2005 08:56:31 +0000 (08:56 +0000)]
[project @ 2005-09-15 08:56:31 by simonmar]
Fix previous hack to avoid non-standard sed options

18 years ago[project @ 2005-09-14 14:10:30 by simonmar]
simonmar [Wed, 14 Sep 2005 14:10:30 +0000 (14:10 +0000)]
[project @ 2005-09-14 14:10:30 by simonmar]
fix the description of the restrictions on pre-processed code

18 years ago[project @ 2005-09-14 08:57:46 by simonmar]
simonmar [Wed, 14 Sep 2005 08:57:46 +0000 (08:57 +0000)]
[project @ 2005-09-14 08:57:46 by simonmar]
workaround a bug in GHC 6.4's --optdep--exclude-module flag

18 years ago[project @ 2005-09-13 22:52:00 by wolfgang]
wolfgang [Tue, 13 Sep 2005 22:52:00 +0000 (22:52 +0000)]
[project @ 2005-09-13 22:52:00 by wolfgang]
Darwin/x86: Fix HOST/TARGET confusion in previous commit.

18 years ago[project @ 2005-09-13 12:50:59 by simonmar]
simonmar [Tue, 13 Sep 2005 12:50:59 +0000 (12:50 +0000)]
[project @ 2005-09-13 12:50:59 by simonmar]
Never use an installed Cabal package when building GHC (except when
bootstrapping in stages 2 & 3).  This insulates us from changes the
user may have made to their Cabal installation.

18 years ago[project @ 2005-09-13 12:08:31 by simonmar]
simonmar [Tue, 13 Sep 2005 12:08:31 +0000 (12:08 +0000)]
[project @ 2005-09-13 12:08:31 by simonmar]
Remove onMutList() - it needs to be done differently in the HEAD

18 years ago[project @ 2005-09-12 16:01:25 by simonmar]
simonmar [Mon, 12 Sep 2005 16:01:25 +0000 (16:01 +0000)]
[project @ 2005-09-12 16:01:25 by simonmar]
stg_raise thunk should be THUNK_1_0 rather than THUNK.

18 years ago[project @ 2005-09-12 16:00:43 by simonmar]
simonmar [Mon, 12 Sep 2005 16:00:43 +0000 (16:00 +0000)]
[project @ 2005-09-12 16:00:43 by simonmar]
raiseAsync_: raise_info closure is header + MIN_UPD_SIZE, not header +
1 words.  (MIN_UPD_SIZE is 1 in the HEAD so this has no effect, but
it'll make a difference on STABLE).

18 years ago[project @ 2005-09-12 15:51:10 by simonmar]
simonmar [Mon, 12 Sep 2005 15:51:10 +0000 (15:51 +0000)]
[project @ 2005-09-12 15:51:10 by simonmar]
- Fix IND case
- Add a useful function for debugging: onMutList()

18 years ago[project @ 2005-09-12 14:34:08 by simonmar]
simonmar [Mon, 12 Sep 2005 14:34:08 +0000 (14:34 +0000)]
[project @ 2005-09-12 14:34:08 by simonmar]
checkBQ() is dead code in non-GRAN/PAR

18 years ago[project @ 2005-09-12 00:10:09 by wolfgang]
wolfgang [Mon, 12 Sep 2005 00:10:09 +0000 (00:10 +0000)]
[project @ 2005-09-12 00:10:09 by wolfgang]
Darwin/x86:

Maintain 16-byte alignment for foreign import wrapper calls.

18 years ago[project @ 2005-09-11 23:59:32 by wolfgang]
wolfgang [Sun, 11 Sep 2005 23:59:32 +0000 (23:59 +0000)]
[project @ 2005-09-11 23:59:32 by wolfgang]
Darwin/x86:

Honour the 16-byte stack alignment requirement when ccalling from the NCG.

18 years ago[project @ 2005-09-11 23:56:24 by wolfgang]
wolfgang [Sun, 11 Sep 2005 23:56:24 +0000 (23:56 +0000)]
[project @ 2005-09-11 23:56:24 by wolfgang]
Darwin/x86:

Align the stack correctly when entering Haskell code.

18 years ago[project @ 2005-09-05 15:28:07 by simonpj]
simonpj [Mon, 5 Sep 2005 15:28:07 +0000 (15:28 +0000)]
[project @ 2005-09-05 15:28:07 by simonpj]
GHC claims to lift the H98 restriction that a class method must not
add a constraint on the class type variable (manual 7.4.2.1 "Class
method types").  But the validity check was incorrect in the case
where the class method had a forall.  E.g.
class C a where
  op :: forall b. (Show b, Show a) => ...

This commit fixes the bug.

tcrun037, and tcfail149, test with and without -fglasgow-exts.

MERGE TO STABLE

18 years ago[project @ 2005-09-05 08:22:23 by ross]
ross [Mon, 5 Sep 2005 08:22:23 +0000 (08:22 +0000)]
[project @ 2005-09-05 08:22:23 by ross]
add a newline after error messages

MERGE to STABLE

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