ghc-hetmet.git
23 years ago[project @ 2000-06-12 15:47:27 by simonmar]
simonmar [Mon, 12 Jun 2000 15:47:27 +0000 (15:47 +0000)]
[project @ 2000-06-12 15:47:27 by simonmar]
add an id to the dependency section

23 years ago[project @ 2000-06-12 13:40:20 by panne]
panne [Mon, 12 Jun 2000 13:40:20 +0000 (13:40 +0000)]
[project @ 2000-06-12 13:40:20 by panne]
Pretty-printing EncodedStrings, next try...

23 years ago[project @ 2000-06-12 11:41:00 by simonmar]
simonmar [Mon, 12 Jun 2000 11:41:00 +0000 (11:41 +0000)]
[project @ 2000-06-12 11:41:00 by simonmar]
Update docs on mkdependHS: it isn't a separate utility, so document it
under "Using GHC".

Also update section on Happy.

23 years ago[project @ 2000-06-12 11:04:50 by panne]
panne [Mon, 12 Jun 2000 11:04:50 +0000 (11:04 +0000)]
[project @ 2000-06-12 11:04:50 by panne]
Undo the changes and make userStyle printing work again

23 years ago[project @ 2000-06-12 11:04:12 by simonmar]
simonmar [Mon, 12 Jun 2000 11:04:12 +0000 (11:04 +0000)]
[project @ 2000-06-12 11:04:12 by simonmar]
Fix a nasty bug: the 'c' component of StgUnion was declared as type
StgChar, which sounds reasonable, but meant that when assigning a char
to R1 gcc would correctly arrange to only overwrite the low byte
rather than zero-extending the value.  We assume elsewhere that when
R1 contains a char that the upper 24 bits are zero, so this was wrong.

This bug must have been around for a *long* time, strange that it only
just showed up. <shrug>

23 years ago[project @ 2000-06-12 06:01:03 by andy]
andy [Mon, 12 Jun 2000 06:01:03 +0000 (06:01 +0000)]
[project @ 2000-06-12 06:01:03 by andy]
Commiting version of STG -> GOO that seems to compile PrelBase successfully.

Many other wibbles; esp. String handling.

23 years ago[project @ 2000-06-11 19:14:27 by panne]
panne [Sun, 11 Jun 2000 19:14:27 +0000 (19:14 +0000)]
[project @ 2000-06-11 19:14:27 by panne]
* Synched comments with reality

* Ensure that a f.e.d. function is never inlined, because the address
  of the C stub (a litlit) is might not be in scope in other modules.
  (untested fix).

*** merge ***

23 years ago[project @ 2000-06-11 08:12:02 by andy]
andy [Sun, 11 Jun 2000 08:12:02 +0000 (08:12 +0000)]
[project @ 2000-06-11 08:12:02 by andy]
Adding change that handles trivial use of primitives (compares,
integer arithmetic, etc) better when generating Java.

23 years ago[project @ 2000-06-10 00:34:52 by lewie]
lewie [Sat, 10 Jun 2000 00:34:52 +0000 (00:34 +0000)]
[project @ 2000-06-10 00:34:52 by lewie]
Update instFunDepsOfTheta to accomodate Simon's recent commit (it hadn't
needed to generate fundeps for IParams previously).  This undoes Simon's
comment about `forall a. ?x::a => Int' being ambiguous.  It isn't, and
now it isn't flagged as such either.  I.e, there's nothing wrong with:
    foo :: ?x::a => Int
    foo = fst (13, ?x)
(of course, less contrived examples can also be given!).

23 years ago[project @ 2000-06-09 23:28:34 by lewie]
lewie [Fri, 9 Jun 2000 23:28:34 +0000 (23:28 +0000)]
[project @ 2000-06-09 23:28:34 by lewie]
Simon was kind enough to re-write elegantly a function that I had written
awkwardly, but revealed that beautification doesn't always yield better
code ;-)  Fixed a silly typo and further beautified the code (so that the
cut-n-paster error that Simon introduced would have been easier to spot).

23 years ago[project @ 2000-06-09 16:21:30 by simonmar]
simonmar [Fri, 9 Jun 2000 16:21:30 +0000 (16:21 +0000)]
[project @ 2000-06-09 16:21:30 by simonmar]
ieee-flpt.h is in ../../includes, not ../includes.

23 years ago[project @ 2000-06-09 15:53:12 by simonpj]
simonpj [Fri, 9 Jun 2000 15:53:12 +0000 (15:53 +0000)]
[project @ 2000-06-09 15:53:12 by simonpj]
GHC gets upset if you have types like

Eq a => a->a

where 'a' is *not* universally quantified.
By "upset" I mean that the typechecker generates
rather bogus code, that subsequently kills Lint.

Such types used to be rejected in the renamer,
but Jeff removed that in favour of an ambiguity
check in TcMonoType.  I remember agreeing to move
the renamer check to the type checker, and Jeff did this,
but the check in TcMonoType was only checking for
*ambiguity*, which isn't quite the same.

I've restored the missing check and commented it
better in TcMonoType.

Jeff: if this isn't right for you, let's dicuss.

Incidentally, I also generalise the ambiguity check
to detect
forall a. ?x::a => Int
which is ambiguous.

I did a few formatting changes too.

23 years ago[project @ 2000-06-09 15:15:25 by simonmar]
simonmar [Fri, 9 Jun 2000 15:15:25 +0000 (15:15 +0000)]
[project @ 2000-06-09 15:15:25 by simonmar]
Don't group variable bindings with the same name together.  They
should be flagged as duplicate definitions.

23 years ago[project @ 2000-06-09 13:48:46 by simonmar]
simonmar [Fri, 9 Jun 2000 13:50:15 +0000 (13:50 +0000)]
[project @ 2000-06-09 13:48:46 by simonmar]
remove NonExhaustiveGuards exception

23 years ago[project @ 2000-06-09 13:48:09 by simonmar]
simonmar [Fri, 9 Jun 2000 13:48:09 +0000 (13:48 +0000)]
[project @ 2000-06-09 13:48:09 by simonmar]
Guard failure will now throw a PatternMatchFail, the
NonExhaustiveGuards exception is to be removed.

23 years ago[project @ 2000-06-09 11:01:58 by simonmar]
simonmar [Fri, 9 Jun 2000 11:01:58 +0000 (11:01 +0000)]
[project @ 2000-06-09 11:01:58 by simonmar]
Part of the -split-objs commit that I forgot yesterday.

23 years ago[project @ 2000-06-09 07:32:31 by simonpj]
simonpj [Fri, 9 Jun 2000 07:32:31 +0000 (07:32 +0000)]
[project @ 2000-06-09 07:32:31 by simonpj]
In my commit of 24 May I got this boolean condition
back to front:

    tryWW non_rec fn_id rhs
      | not (isNeverInlinePrag inline_prag)
      =  -- Don't split things that will never be inlined

The 'not' is obviously wrong!  As a result virtually nothing
is being worker-wrapper'd

How this has survived for more than two weeks beats me.

23 years ago[project @ 2000-06-09 00:43:55 by andy]
andy [Fri, 9 Jun 2000 00:43:55 +0000 (00:43 +0000)]
[project @ 2000-06-09 00:43:55 by andy]
Commiting version of the STG->GOO code generator that works with fib.

23 years ago[project @ 2000-06-08 20:57:02 by panne]
panne [Thu, 8 Jun 2000 20:57:02 +0000 (20:57 +0000)]
[project @ 2000-06-08 20:57:02 by panne]
autoconf hackery for CTypes{,ISO} (continued)

23 years ago[project @ 2000-06-08 20:41:30 by panne]
panne [Thu, 8 Jun 2000 20:41:30 +0000 (20:41 +0000)]
[project @ 2000-06-08 20:41:30 by panne]
autoconf hackery for CTypes{,ISO}

23 years ago[project @ 2000-06-08 15:00:21 by simonmar]
simonmar [Thu, 8 Jun 2000 15:00:21 +0000 (15:00 +0000)]
[project @ 2000-06-08 15:00:21 by simonmar]
Remove out-of-date table that conflicts with the new one in the FFI
documentation.

23 years ago[project @ 2000-06-08 14:59:17 by rrt]
rrt [Thu, 8 Jun 2000 14:59:17 +0000 (14:59 +0000)]
[project @ 2000-06-08 14:59:17 by rrt]
Commented out the revision history.

23 years ago[project @ 2000-06-08 14:58:34 by rrt]
rrt [Thu, 8 Jun 2000 14:58:34 +0000 (14:58 +0000)]
[project @ 2000-06-08 14:58:34 by rrt]
Improved link to Foreign hslibs stuff.

23 years ago[project @ 2000-06-08 14:50:18 by rrt]
rrt [Thu, 8 Jun 2000 14:50:18 +0000 (14:50 +0000)]
[project @ 2000-06-08 14:50:18 by rrt]
Tidied up a table.

23 years ago[project @ 2000-06-08 14:43:47 by rrt]
rrt [Thu, 8 Jun 2000 14:43:47 +0000 (14:43 +0000)]
[project @ 2000-06-08 14:43:47 by rrt]
Better chapter name.

23 years ago[project @ 2000-06-08 14:36:13 by rrt]
rrt [Thu, 8 Jun 2000 14:36:13 +0000 (14:36 +0000)]
[project @ 2000-06-08 14:36:13 by rrt]
Added new FFI story from fptools/docs, and removed ccall docs.

Pls mrg

23 years ago[project @ 2000-06-08 12:54:29 by simonmar]
simonmar [Thu, 8 Jun 2000 12:54:29 +0000 (12:54 +0000)]
[project @ 2000-06-08 12:54:29 by simonmar]
Make object file splitting simpler, in preparation for conversion to
the new driver.

The "inject split markers" phase is now omitted, instead we generate
the split markers directly.

Driver: also removed now-defunct -fpedantic-bottoms flag.

23 years ago[project @ 2000-06-08 10:48:58 by rrt]
rrt [Thu, 8 Jun 2000 10:48:58 +0000 (10:48 +0000)]
[project @ 2000-06-08 10:48:58 by rrt]
Changed ffi doc to worker-wrapper format.

23 years ago[project @ 2000-06-08 09:11:13 by simonmar]
simonmar [Thu, 8 Jun 2000 09:11:13 +0000 (09:11 +0000)]
[project @ 2000-06-08 09:11:13 by simonmar]
remove unneeded file.

23 years ago[project @ 2000-06-08 09:01:35 by simonmar]
simonmar [Thu, 8 Jun 2000 09:01:35 +0000 (09:01 +0000)]
[project @ 2000-06-08 09:01:35 by simonmar]
update interface file syntax

23 years ago[project @ 2000-06-08 08:54:33 by simonmar]
simonmar [Thu, 8 Jun 2000 08:54:33 +0000 (08:54 +0000)]
[project @ 2000-06-08 08:54:33 by simonmar]
update expected output

23 years ago[project @ 2000-06-08 08:45:20 by simonmar]
simonmar [Thu, 8 Jun 2000 08:45:20 +0000 (08:45 +0000)]
[project @ 2000-06-08 08:45:20 by simonmar]
Move read010 to rename/should_fail; this is really a renamer test.

23 years ago[project @ 2000-06-07 16:15:22 by rrt]
rrt [Wed, 7 Jun 2000 16:15:22 +0000 (16:15 +0000)]
[project @ 2000-06-07 16:15:22 by rrt]
DocBooked and moved here from hdirect/doc.

23 years ago[project @ 2000-06-07 15:33:50 by keithw]
keithw [Wed, 7 Jun 2000 15:33:50 +0000 (15:33 +0000)]
[project @ 2000-06-07 15:33:50 by keithw]
Fix printing of unfoldings in hi-files: lambda binders are now grouped
again like they used to be, rather than printed one-at-a-time.

23 years ago[project @ 2000-06-07 06:10:53 by andy]
andy [Wed, 7 Jun 2000 06:10:53 +0000 (06:10 +0000)]
[project @ 2000-06-07 06:10:53 by andy]
Adding types to the names inside the GOO.

All needed for a langauge with unboxed types ...

23 years ago[project @ 2000-06-06 21:55:30 by andy]
andy [Tue, 6 Jun 2000 21:55:30 +0000 (21:55 +0000)]
[project @ 2000-06-06 21:55:30 by andy]
More wibbles towards compiling data constructors and unboxing correctly.

23 years ago[project @ 2000-06-06 07:10:44 by andy]
andy [Tue, 6 Jun 2000 07:10:44 +0000 (07:10 +0000)]
[project @ 2000-06-06 07:10:44 by andy]
Significant reworking of Java code generator, towards
getting unboxing working.

23 years ago[project @ 2000-06-05 20:57:58 by panne]
panne [Mon, 5 Jun 2000 20:57:58 +0000 (20:57 +0000)]
[project @ 2000-06-05 20:57:58 by panne]
The n-th attempt to get GCD right, this time negative Int arguments in
combination with zero. Another bug in this area and I'll leap out of
the window immediately...  :-P

23 years ago[project @ 2000-06-05 20:55:25 by panne]
panne [Mon, 5 Jun 2000 20:55:25 +0000 (20:55 +0000)]
[project @ 2000-06-05 20:55:25 by panne]
Synched with reality

23 years ago[project @ 2000-06-05 20:54:29 by panne]
panne [Mon, 5 Jun 2000 20:54:29 +0000 (20:54 +0000)]
[project @ 2000-06-05 20:54:29 by panne]
Added tests for gcdInt/gcdInteger

23 years ago[project @ 2000-06-04 20:32:49 by panne]
panne [Sun, 4 Jun 2000 20:32:49 +0000 (20:32 +0000)]
[project @ 2000-06-04 20:32:49 by panne]
Fixed braino.

23 years ago[project @ 2000-06-04 18:27:45 by panne]
panne [Sun, 4 Jun 2000 18:27:45 +0000 (18:27 +0000)]
[project @ 2000-06-04 18:27:45 by panne]
The GCD saga continues: Fixed gcdInt/gcdInteger to work correctly for
non-positive values, i.e. call mpn_gcd_1 only with positive inputs,
and issue an error if both operands are zero. This should fix the bug
reported by Marc.

23 years ago[project @ 2000-06-04 08:45:39 by panne]
panne [Sun, 4 Jun 2000 08:45:39 +0000 (08:45 +0000)]
[project @ 2000-06-04 08:45:39 by panne]
Unbreak the driver again

23 years ago[project @ 2000-06-02 16:19:47 by lewie]
lewie [Fri, 2 Jun 2000 16:19:47 +0000 (16:19 +0000)]
[project @ 2000-06-02 16:19:47 by lewie]
Class decls weren't taking functional dependencies into account when
checking for ambiguous type vars.  Fixed.

23 years ago[project @ 2000-06-02 16:12:00 by rrt]
rrt [Fri, 2 Jun 2000 16:12:00 +0000 (16:12 +0000)]
[project @ 2000-06-02 16:12:00 by rrt]
Updated DocBook notes to reflect heroic efforts of Messrs Panne and
Chakravarty.

23 years ago[project @ 2000-06-02 16:02:22 by rrt]
rrt [Fri, 2 Jun 2000 16:02:22 +0000 (16:02 +0000)]
[project @ 2000-06-02 16:02:22 by rrt]
Added new greencard package.

23 years ago[project @ 2000-06-02 12:19:40 by simonmar]
simonmar [Fri, 2 Jun 2000 12:19:40 +0000 (12:19 +0000)]
[project @ 2000-06-02 12:19:40 by simonmar]
checkTyCon shouldn't look through newtypes.  Instead, we add a new
function checkRepTyCon which does, and use it in the few cases where
it is needed.

This fixes a nasty bug with overloaded literals of newtypes, and
probably a whole bunch of other lurking bugs too.

23 years ago[project @ 2000-06-02 12:16:19 by simonmar]
simonmar [Fri, 2 Jun 2000 12:16:19 +0000 (12:16 +0000)]
[project @ 2000-06-02 12:16:19 by simonmar]
add new flag -fglasgow-exts-no-lang, which is the same as
-fglsagow-exts but doesn't include the implicit -package lang.  This
is needed only for compiling ghc/lib/std, where hslibs/lang may or may
not exist.

23 years ago[project @ 2000-06-02 11:54:53 by simonmar]
simonmar [Fri, 2 Jun 2000 11:54:53 +0000 (11:54 +0000)]
[project @ 2000-06-02 11:54:53 by simonmar]
Fix bug in new version of hGetLine: it didn't handle unbuffered
handles properly.

The fix involves re-importing the old code for hGetLine :-(

23 years ago[project @ 2000-06-01 19:00:25 by panne]
panne [Thu, 1 Jun 2000 19:00:25 +0000 (19:00 +0000)]
[project @ 2000-06-01 19:00:25 by panne]
While adding a syslib, setup include dirs in addition to cc injects, too.
The driver is really a piece from hell... :-(

23 years ago[project @ 2000-06-01 10:45:09 by panne]
panne [Thu, 1 Jun 2000 10:45:09 +0000 (10:45 +0000)]
[project @ 2000-06-01 10:45:09 by panne]
The DocBook saga continues: Look for already installed catalog first.

23 years ago[project @ 2000-06-01 08:51:46 by simonmar]
simonmar [Thu, 1 Jun 2000 08:51:46 +0000 (08:51 +0000)]
[project @ 2000-06-01 08:51:46 by simonmar]
allow infix constructors to be declared with prefix notation, eg

data T a b = (:^:) a b

23 years ago[project @ 2000-06-01 08:51:05 by simonmar]
simonmar [Thu, 1 Jun 2000 08:51:05 +0000 (08:51 +0000)]
[project @ 2000-06-01 08:51:05 by simonmar]
Test for declaring an infix constructor using prefix notation, eg.

data T a b = (:^:) a b

23 years ago[project @ 2000-06-01 08:29:09 by simonmar]
simonmar [Thu, 1 Jun 2000 08:29:09 +0000 (08:29 +0000)]
[project @ 2000-06-01 08:29:09 by simonmar]
Compile FastString with -fvia-C for the time being (Julian is working
on fixing a bug in the NCG).

23 years ago[project @ 2000-05-31 16:04:47 by simonmar]
simonmar [Wed, 31 May 2000 16:04:47 +0000 (16:04 +0000)]
[project @ 2000-05-31 16:04:47 by simonmar]
fix apparent cut-n-pasto: rEC_SEL_ERROR_ID was printed as "patError".

23 years ago[project @ 2000-05-31 15:55:37 by simonmar]
simonmar [Wed, 31 May 2000 15:55:37 +0000 (15:55 +0000)]
[project @ 2000-05-31 15:55:37 by simonmar]
update expected output.

23 years ago[project @ 2000-05-31 15:54:40 by simonmar]
simonmar [Wed, 31 May 2000 15:54:40 +0000 (15:54 +0000)]
[project @ 2000-05-31 15:54:40 by simonmar]
update expected output

23 years ago[project @ 2000-05-31 15:50:42 by simonmar]
simonmar [Wed, 31 May 2000 15:50:42 +0000 (15:50 +0000)]
[project @ 2000-05-31 15:50:42 by simonmar]
Update expected output.

23 years ago[project @ 2000-05-31 15:44:29 by simonmar]
simonmar [Wed, 31 May 2000 15:44:29 +0000 (15:44 +0000)]
[project @ 2000-05-31 15:44:29 by simonmar]
Incorporate Josef's patch to fix the bogus warning about overlapping
string patterns.  Thanks Josef!

23 years ago[project @ 2000-05-31 13:23:09 by rrt]
rrt [Wed, 31 May 2000 13:23:09 +0000 (13:23 +0000)]
[project @ 2000-05-31 13:23:09 by rrt]
Always run docbook scripts with the catalog as the first argument (taken
from DOCBOOK_CATALOG).

23 years ago[project @ 2000-05-31 13:22:25 by rrt]
rrt [Wed, 31 May 2000 13:22:26 +0000 (13:22 +0000)]
[project @ 2000-05-31 13:22:25 by rrt]
Update to use DOCBOOK_CATALOG to get the correct catalog.

23 years ago[project @ 2000-05-31 12:04:49 by panne]
panne [Wed, 31 May 2000 12:04:49 +0000 (12:04 +0000)]
[project @ 2000-05-31 12:04:49 by panne]
Use new way of #including for packages

23 years ago[project @ 2000-05-31 12:02:48 by panne]
panne [Wed, 31 May 2000 12:02:48 +0000 (12:02 +0000)]
[project @ 2000-05-31 12:02:48 by panne]
floatExtreme.h's definitions reside in PrimOps.h

23 years ago[project @ 2000-05-31 11:58:27 by panne]
panne [Wed, 31 May 2000 11:58:27 +0000 (11:58 +0000)]
[project @ 2000-05-31 11:58:27 by panne]
Trying to get the whole #include business right: ccalls are unfolded
into interface files, even without -funfold-casms-in-hi-file. Although
this is a good thing performance-wise, the header files should better
be #included during compilation of the .hc files. Solution:

   * Every .hc file #includes "Stg.h" first.

   * For every package `foo' used, "HsFoo.h" is #included, too. This
     means that every package has to come with a corresponding header
     file, even if it is empty.

Downside:

   * Getting #includes right with ghc-inplace is a little bit ugly:
     The boot target in Makefiles must copy the package's header files
     into GHC_INCLUDE_DIR (don't forget the clean target!), and final
     installation of those headers is done there, too.   :-P  Better
     solutions are highly welcome.

   * Possible pollution of the C name spaces.

23 years ago[project @ 2000-05-31 10:13:57 by lewie]
lewie [Wed, 31 May 2000 10:13:57 +0000 (10:13 +0000)]
[project @ 2000-05-31 10:13:57 by lewie]
Cleanup pass on functional dependencies.  Most noticeably, make it so that
signatures involving classes with functional dependencies work.  Also,
Fundeps are now properly handled by the simplifier, resolving problems
where the fundeps were sometimes being discarded too early, and sometimes
hanging around too long.  Took out the early ambiguity testing in the
renamer, because that's too early (you don't know the fundeps yet).  Now,
the ambiguity test happens in the typechecker.
Functional Dependencies should now be up to snuff with Mark's paper,
however, the derived instances and superclass extensions found in hugs
are still not in there.
It would be nice if this were merged into 4.07.  I have diffs against
the 4.07 tree in case it's too thorny working around Simon's big commit.

23 years ago[project @ 2000-05-31 00:55:10 by chak]
chak [Wed, 31 May 2000 00:55:11 +0000 (00:55 +0000)]
[project @ 2000-05-31 00:55:10 by chak]
Autoconf magic to determine a working DocBook CATALOG file (if any).  Makes
the makefile variable DOCBOOK_CATALOG refer to this CATALOG file (absolute
path).

23 years ago[project @ 2000-05-30 14:30:07 by simonmar]
simonmar [Tue, 30 May 2000 14:30:07 +0000 (14:30 +0000)]
[project @ 2000-05-30 14:30:07 by simonmar]
Nothing uses this file, so remove it.

23 years ago[project @ 2000-05-30 14:28:13 by simonmar]
simonmar [Tue, 30 May 2000 14:28:13 +0000 (14:28 +0000)]
[project @ 2000-05-30 14:28:13 by simonmar]
don't need to import PrelPack.hi-boot

23 years ago[project @ 2000-05-30 14:27:38 by simonmar]
simonmar [Tue, 30 May 2000 14:27:38 +0000 (14:27 +0000)]
[project @ 2000-05-30 14:27:38 by simonmar]
only add implicit occs for bindIO & returnIO for foreign export, not
for foreign import.

23 years ago[project @ 2000-05-30 13:07:04 by simonmar]
simonmar [Tue, 30 May 2000 13:07:04 +0000 (13:07 +0000)]
[project @ 2000-05-30 13:07:04 by simonmar]
Fix package names & version numbers in .hi-boot files.

23 years ago[project @ 2000-05-30 12:50:04 by sewardj]
sewardj [Tue, 30 May 2000 12:50:04 +0000 (12:50 +0000)]
[project @ 2000-05-30 12:50:04 by sewardj]
Fix cyclic dependency problem when compiling the Prelude.

23 years ago[project @ 2000-05-30 10:03:07 by simonmar]
simonmar [Tue, 30 May 2000 10:03:07 +0000 (10:03 +0000)]
[project @ 2000-05-30 10:03:07 by simonmar]
re-enable first float-outwards pass; it was accidentally disabled in
Simon's recent commit.

23 years ago[project @ 2000-05-29 10:00:38 by simonpj]
simonpj [Mon, 29 May 2000 10:00:38 +0000 (10:00 +0000)]
[project @ 2000-05-29 10:00:38 by simonpj]
Fix missing imports for foreign import/export

23 years ago[project @ 2000-05-29 01:20:41 by panne]
panne [Mon, 29 May 2000 01:20:41 +0000 (01:20 +0000)]
[project @ 2000-05-29 01:20:41 by panne]
Hopefully this is a better place to fix the printing of litlits in
interface files...
*please merge*

23 years ago[project @ 2000-05-29 01:14:15 by panne]
panne [Mon, 29 May 2000 01:14:15 +0000 (01:14 +0000)]
[project @ 2000-05-29 01:14:15 by panne]
Backed out previous commit, the change was at the completely wrong place.
*please merge*

23 years ago[project @ 2000-05-28 23:24:43 by panne]
panne [Sun, 28 May 2000 23:24:43 +0000 (23:24 +0000)]
[project @ 2000-05-28 23:24:43 by panne]
Don't forget litlit alternatives when deciding if an expression should
make its way into an interface file.
*please merge*

23 years ago[project @ 2000-05-28 23:21:02 by panne]
panne [Sun, 28 May 2000 23:21:02 +0000 (23:21 +0000)]
[project @ 2000-05-28 23:21:02 by panne]
Prefix litlits with "__litlit" in interface files.
*please merge*

23 years ago[project @ 2000-05-28 21:54:12 by panne]
panne [Sun, 28 May 2000 21:54:12 +0000 (21:54 +0000)]
[project @ 2000-05-28 21:54:12 by panne]
Look through newtypes when generating stub code.
*merge if/when SPJ's huge commit is merged*

23 years ago[project @ 2000-05-28 21:53:12 by panne]
panne [Sun, 28 May 2000 21:53:12 +0000 (21:53 +0000)]
[project @ 2000-05-28 21:53:12 by panne]
Removed unused import.
*merge if/when SPJ's huge commit is merged*

23 years ago[project @ 2000-05-28 20:45:45 by panne]
panne [Sun, 28 May 2000 20:45:45 +0000 (20:45 +0000)]
[project @ 2000-05-28 20:45:45 by panne]
Rewrote RULES for gcd and lcm without forall. The old versions *did
not* always fire because of a strange interaction with automatically
generated specialisations for gcd! Example for this misbehaviour:

   main :: IO ()
   main = do
      print (gcd             15675            156750 :: Integer)
      print (gcd 12345678987651075            156750 :: Integer)
      print (gcd            156750 12345678987651075 :: Integer)
      print (gcd  2469135797530215 12345678987651075 :: Integer)

I don't understand why the new version works and the old one did not,
so somebody else should probably have a look at this phenomenon.

*please merge* (like all my commits in the last few days :-}

23 years ago[project @ 2000-05-28 20:39:43 by panne]
panne [Sun, 28 May 2000 20:39:43 +0000 (20:39 +0000)]
[project @ 2000-05-28 20:39:43 by panne]
Added a few -#includes to eliminate warnings from gcc
(*please merge*)

23 years ago[project @ 2000-05-28 20:22:08 by panne]
panne [Sun, 28 May 2000 20:22:08 +0000 (20:22 +0000)]
[project @ 2000-05-28 20:22:08 by panne]
Fixed gcdIntegerInt# primop, the previous macros was completely
wrong. gcd for Integers worked only as long the corresponding RULE
in PrelReal didn't fire.

23 years ago[project @ 2000-05-28 17:47:27 by panne]
panne [Sun, 28 May 2000 17:47:27 +0000 (17:47 +0000)]
[project @ 2000-05-28 17:47:27 by panne]
The C functions toLocalTime and toUTCTime now return an StgInt, not a
rather useless StgAddr. This fixes two gcc warnings during the
compilation of Time. In the course of this, toLocalTime.c and
toUTCTime.c are synched a little bit more.

(*please merge*)

23 years ago[project @ 2000-05-28 16:06:52 by panne]
panne [Sun, 28 May 2000 16:06:52 +0000 (16:06 +0000)]
[project @ 2000-05-28 16:06:52 by panne]
Lowered magical value of unfolding threshold for PrimPacked, so strlen
doesn't appear in interface file. This fixes bootstrapping problems,
e.g. when compiling FastString. Extremely hacky solution...

23 years ago[project @ 2000-05-27 14:28:06 by panne]
panne [Sat, 27 May 2000 14:28:06 +0000 (14:28 +0000)]
[project @ 2000-05-27 14:28:06 by panne]
Bug or feature? Changed `envyron' back to `environ', otherwise
hslibs/posix/cbits/env.c can't be compiled. If this breaks something
on M$, it must be #ifdef-ed somehow, but not simply be renamed.

23 years ago[project @ 2000-05-26 17:42:18 by lewie]
lewie [Fri, 26 May 2000 17:42:18 +0000 (17:42 +0000)]
[project @ 2000-05-26 17:42:18 by lewie]
Applied patch from hugs98 fixing type annotations in do bindings.

23 years ago[project @ 2000-05-26 12:08:30 by sewardj]
sewardj [Fri, 26 May 2000 12:08:30 +0000 (12:08 +0000)]
[project @ 2000-05-26 12:08:30 by sewardj]
Update the destructions for building Hugs on Win32, for mingw32.

23 years ago[project @ 2000-05-26 11:38:44 by simonmar]
simonmar [Fri, 26 May 2000 11:38:44 +0000 (11:38 +0000)]
[project @ 2000-05-26 11:38:44 by simonmar]
Build hslibs first if we're bootstrapping from .hc files.

23 years ago[project @ 2000-05-26 10:14:33 by sewardj]
sewardj [Fri, 26 May 2000 10:14:34 +0000 (10:14 +0000)]
[project @ 2000-05-26 10:14:33 by sewardj]
Changes to allow Hugs to be built with mingw32, not cygwin.  Also,
updates so that DietHEP works properly for mingw32.  Most changes are
trivial (assert --> ASSERT), etc.  For hugs, have deleted queries
about the width of a terminal window, and so the printing of dots
as progress indicators is gone too.  No great loss.  Zapped various
other out-of-date platform-specific junk in machdep.c.

23 years ago[project @ 2000-05-26 10:04:37 by panne]
panne [Fri, 26 May 2000 10:04:37 +0000 (10:04 +0000)]
[project @ 2000-05-26 10:04:37 by panne]
Don't mv, but cp foreign export header file (as was done before)

23 years ago[project @ 2000-05-26 08:42:59 by simonmar]
simonmar [Fri, 26 May 2000 08:42:59 +0000 (08:42 +0000)]
[project @ 2000-05-26 08:42:59 by simonmar]
Add missing AP_UPD case in THUNK_SELECTOR.

23 years ago[project @ 2000-05-25 13:11:17 by panne]
panne [Thu, 25 May 2000 13:11:17 +0000 (13:11 +0000)]
[project @ 2000-05-25 13:11:17 by panne]
* Small fix for SPJ's last huge commit: Remove dependency on ghc-iface
  from Makefile.

* Nuke ghc-recomp.lprl, this hasn't been used for a long time (I hope :-}

(merge when/if SPJ's commit is merged)

23 years ago[project @ 2000-05-25 12:54:05 by panne]
panne [Thu, 25 May 2000 12:54:05 +0000 (12:54 +0000)]
[project @ 2000-05-25 12:54:05 by panne]
Cosmetics: Removed a whole bunch of "Field `foo' is not initialised"
warnings. This should not have any impact on efficiency, as GHC
inserts `recConError "blah"' expressions for uninitialised fields
anyway, and I can't see any danger of space leaks.
(can be merged with 4.07)

23 years ago[project @ 2000-05-25 12:49:34 by panne]
panne [Thu, 25 May 2000 12:49:34 +0000 (12:49 +0000)]
[project @ 2000-05-25 12:49:34 by panne]
Cosmetics: Removed two "Pattern match(es) are overlapped" warnings.
(can be merged with 4.07)

23 years ago[project @ 2000-05-25 12:41:14 by simonpj]
simonpj [Thu, 25 May 2000 12:41:22 +0000 (12:41 +0000)]
[project @ 2000-05-25 12:41:14 by simonpj]
~~~~~~~~~~~~
Apr/May 2000
~~~~~~~~~~~~

This is a pretty big commit!  It adds stuff I've been working on
over the last month or so.  DO NOT MERGE IT WITH 4.07!

Interface file formats have changed a little; you'll need
to make clean before remaking.

Simon PJ

Recompilation checking
~~~~~~~~~~~~~~~~~~~~~~
Substantial improvement in recompilation checking.  The version management
is now entirely internal to GHC.  ghc-iface.lprl is dead!

The trick is to generate the new interface file in two steps:
  - first convert Types etc to HsTypes etc, and thereby
build a new ParsedIface
  - then compare against the parsed (but not renamed) version of the old
interface file
Doing this meant adding code to convert *to* HsSyn things, and to
compare HsSyn things for equality.  That is the main tedious bit.

Another improvement is that we now track version info for
fixities and rules, which was missing before.

Interface file reading
~~~~~~~~~~~~~~~~~~~~~~
Make interface files reading more robust.
  * If the old interface file is unreadable, don't fail. [bug fix]

  * If the old interface file mentions interfaces
    that are unreadable, don't fail. [bug fix]

  * When we can't find the interface file,
    print the directories we are looking in.  [feature]

Type signatures
~~~~~~~~~~~~~~~
  * New flag -ddump-types to print type signatures

Type pruning
~~~~~~~~~~~~
When importing
data T = T1 A | T2 B | T3 C
it seems excessive to import the types A, B, C as well, unless
the constructors T1, T2 etc are used.  A,B,C might be more types,
and importing them may mean reading more interfaces, and so on.
 So the idea is that the renamer will just import the decl
data T
unless one of the constructors is used.  This turns out to be quite
easy to implement.  The downside is that we must make sure the
constructors are always available if they are really needed, so
I regard this as an experimental feature.

Elimininate ThinAir names
~~~~~~~~~~~~~~~~~~~~~~~~~
Eliminate ThinAir.lhs and all its works.  It was always a hack, and now
the desugarer carries around an environment I think we can nuke ThinAir
altogether.

As part of this, I had to move all the Prelude RdrName defns from PrelInfo
to PrelMods --- so I renamed PrelMods as PrelNames.

I also had to move the builtinRules so that they are injected by the renamer
(rather than appearing out of the blue in SimplCore).  This is if anything simpler.

Miscellaneous
~~~~~~~~~~~~~
* Tidy up the data types involved in Rules

* Eliminate RnEnv.better_provenance; use Name.hasBetterProv instead

* Add Unique.hasKey :: Uniquable a => a -> Unique -> Bool
  It's useful in a lot of places

* Fix a bug in interface file parsing for __U[!]

23 years ago[project @ 2000-05-25 10:40:39 by simonmar]
simonmar [Thu, 25 May 2000 10:40:39 +0000 (10:40 +0000)]
[project @ 2000-05-25 10:40:39 by simonmar]
Add missing case in parsing of inline pragmas.

23 years ago[project @ 2000-05-25 09:16:56 by simonmar]
simonmar [Thu, 25 May 2000 09:16:56 +0000 (09:16 +0000)]
[project @ 2000-05-25 09:16:56 by simonmar]
raise_info, the info table we use for overwriting thunks with an
exception, had the bogus closure type of FUN.  This was mostly
harmless, but caused some confusion for THUNK_SELECTORs, which rightly
assumed that they shouldn't be pointing at FUNs.

The fix is to change the type to THUNK, which is slightly closer to
being true.

This fixes Alastair Reid's "THUNK_SELECTOR: strange selectee" bug.

23 years ago[project @ 2000-05-25 08:36:34 by andy]
andy [Thu, 25 May 2000 08:36:34 +0000 (08:36 +0000)]
[project @ 2000-05-25 08:36:34 by andy]
Fixing up names to make a reasonable use of Java packages.
This is just one of a number of steps before attacking the Prelude.

Fixing up the output order of the inner classes, making postprocessing easier.

23 years ago[project @ 2000-05-24 16:04:38 by simonmar]
simonmar [Wed, 24 May 2000 16:04:38 +0000 (16:04 +0000)]
[project @ 2000-05-24 16:04:38 by simonmar]
Fix compilation errors when OMIT_NATIVE_CODEGEN is on.

23 years ago[project @ 2000-05-24 15:47:13 by simonpj]
simonpj [Wed, 24 May 2000 15:47:13 +0000 (15:47 +0000)]
[project @ 2000-05-24 15:47:13 by simonpj]
MERGE 4.07

* This fix cures the weird 'ifaceBinds' error that
  Sven and George tripped over.  It was quite obscure!

  Basically, there was a top level binding
f = x
  lying around, which CoreToStg didn't like.  Why hadn't
  it been substituted away?  Because it had a NOINLINE
  pragma.  Why did it have a NOINLINE pragma?  Because
  it's an always-diverging function, so we never want to
  inline it.