ghc-hetmet.git
23 years ago[project @ 2000-06-30 13:11:07 by simonpj]
simonpj [Fri, 30 Jun 2000 13:11:08 +0000 (13:11 +0000)]
[project @ 2000-06-30 13:11:07 by simonpj]
In a CCall, a DynamicTarget has a unique that is
used only to generate a uniquely-named typedef.
It should not be used when comparing CCalls (e.g.
when seeing if interface files have changed).
So the main change in this commit is to fix the Eq
instance for PrimOp.CCallTarget, but I took the
opportunity to clean up the CCallTarget interface
a little.

23 years ago[project @ 2000-06-30 13:10:38 by simonpj]
simonpj [Fri, 30 Jun 2000 13:10:38 +0000 (13:10 +0000)]
[project @ 2000-06-30 13:10:38 by simonpj]
Improve error message

23 years ago[project @ 2000-06-30 09:46:04 by simonmar]
simonmar [Fri, 30 Jun 2000 09:46:04 +0000 (09:46 +0000)]
[project @ 2000-06-30 09:46:04 by simonmar]
wibble

23 years ago[project @ 2000-06-30 09:45:16 by simonmar]
simonmar [Fri, 30 Jun 2000 09:45:16 +0000 (09:45 +0000)]
[project @ 2000-06-30 09:45:16 by simonmar]
Use GhcMinVersion to pick the correct cmdline args to build the driver.

23 years ago[project @ 2000-06-30 09:34:09 by simonmar]
simonmar [Fri, 30 Jun 2000 09:34:09 +0000 (09:34 +0000)]
[project @ 2000-06-30 09:34:09 by simonmar]
Check the version of the installed ghc, and set GhcVersion,
GhcMajVersion, GhcMinVersion and GhcPatchLevel make variables.

23 years ago[project @ 2000-06-30 08:48:38 by simonmar]
simonmar [Fri, 30 Jun 2000 08:48:38 +0000 (08:48 +0000)]
[project @ 2000-06-30 08:48:38 by simonmar]
_Haskell1Version ==> cHaskell1Version

23 years ago[project @ 2000-06-29 21:08:02 by panne]
panne [Thu, 29 Jun 2000 21:08:02 +0000 (21:08 +0000)]
[project @ 2000-06-29 21:08:02 by panne]
Added test for Typeable instance

23 years ago[project @ 2000-06-29 20:20:18 by panne]
panne [Thu, 29 Jun 2000 20:20:18 +0000 (20:20 +0000)]
[project @ 2000-06-29 20:20:18 by panne]
Fixed buglet in search for ghc-usage.txt

23 years ago[project @ 2000-06-29 19:47:50 by panne]
panne [Thu, 29 Jun 2000 19:47:50 +0000 (19:47 +0000)]
[project @ 2000-06-29 19:47:50 by panne]
There is not much point in memoising Integers, so we should better use
unary "numbers" (i.e. lists of units) instead

23 years ago[project @ 2000-06-29 15:08:02 by sewardj]
sewardj [Thu, 29 Jun 2000 15:08:02 +0000 (15:08 +0000)]
[project @ 2000-06-29 15:08:02 by sewardj]
Add my wizardly assembly-code basic-block matching program, which is
very useful for debugging the native code generator.  This is not
built by default, because it's totally useless to anyone except the
GHC developers.  The README file describes how to use and maintain it.

23 years ago[project @ 2000-06-29 14:25:36 by keithw]
keithw [Thu, 29 Jun 2000 14:25:36 +0000 (14:25 +0000)]
[project @ 2000-06-29 14:25:36 by keithw]
Add missing implicit occs relating to list comprehensions in
deriving (Ix,Read).

23 years ago[project @ 2000-06-29 13:40:17 by simonmar]
simonmar [Thu, 29 Jun 2000 13:40:17 +0000 (13:40 +0000)]
[project @ 2000-06-29 13:40:17 by simonmar]
Add test for GNU regex in libc, which we'll use to decide whether to
compile our own copy of the library in package text.

23 years ago[project @ 2000-06-29 13:18:38 by simonmar]
simonmar [Thu, 29 Jun 2000 13:18:38 +0000 (13:18 +0000)]
[project @ 2000-06-29 13:18:38 by simonmar]
sparc needs the TMOVEDIRVS hack too

23 years ago[project @ 2000-06-29 13:08:59 by simonmar]
simonmar [Thu, 29 Jun 2000 13:08:59 +0000 (13:08 +0000)]
[project @ 2000-06-29 13:08:59 by simonmar]
hi files are now named after the module being compiled, not the
original filename (unless of course the user has specified -ohi <blah>).

23 years ago[project @ 2000-06-29 13:07:04 by rrt]
rrt [Thu, 29 Jun 2000 13:07:04 +0000 (13:07 +0000)]
[project @ 2000-06-29 13:07:04 by rrt]
Remove /bin/ from /bin/rm to avoid problems with systems where it's elsewhere.

23 years ago[project @ 2000-06-28 21:54:06 by lewie]
lewie [Wed, 28 Jun 2000 21:54:06 +0000 (21:54 +0000)]
[project @ 2000-06-28 21:54:06 by lewie]
Make it so that implicit params uniformly print with the `?' at the front
of the name.  Simon's last big commit re-arranged how interface files
were written, and implicit params were suddenly being written without the `?'.
This fixes both that bug, and Simon's concern that there were too many
different pretty printing functions for implicit params ;-)

23 years ago[project @ 2000-06-28 17:03:17 by simonmar]
simonmar [Wed, 28 Jun 2000 17:03:17 +0000 (17:03 +0000)]
[project @ 2000-06-28 17:03:17 by simonmar]
This file had version 407 burned into it; the convention is that zero
means "don't check the version".

23 years ago[project @ 2000-06-28 16:57:42 by lewie]
lewie [Wed, 28 Jun 2000 16:57:42 +0000 (16:57 +0000)]
[project @ 2000-06-28 16:57:42 by lewie]
Bumped VERSION's version as well.

23 years ago[project @ 2000-06-28 16:57:05 by simonmar]
simonmar [Wed, 28 Jun 2000 16:57:05 +0000 (16:57 +0000)]
[project @ 2000-06-28 16:57:05 by simonmar]
ignore lines beginning with '#' when looking for {-# OPTIONS #-}

23 years ago[project @ 2000-06-28 16:52:38 by lewie]
lewie [Wed, 28 Jun 2000 16:52:38 +0000 (16:52 +0000)]
[project @ 2000-06-28 16:52:38 by lewie]
Wave goodbye to hscpp even harder. (erase it from SUBDIR list).

23 years ago[project @ 2000-06-28 15:56:28 by simonmar]
simonmar [Wed, 28 Jun 2000 15:56:28 +0000 (15:56 +0000)]
[project @ 2000-06-28 15:56:28 by simonmar]
add in the -optl arguments to the linker command line

23 years ago[project @ 2000-06-28 14:34:27 by simonmar]
simonmar [Wed, 28 Jun 2000 14:34:27 +0000 (14:34 +0000)]
[project @ 2000-06-28 14:34:27 by simonmar]
dumps go to stdout

23 years ago[project @ 2000-06-28 14:32:34 by simonmar]
simonmar [Wed, 28 Jun 2000 14:32:34 +0000 (14:32 +0000)]
[project @ 2000-06-28 14:32:34 by simonmar]
dumps go to stdout now

23 years ago[project @ 2000-06-28 14:00:36 by simonmar]
simonmar [Wed, 28 Jun 2000 14:00:37 +0000 (14:00 +0000)]
[project @ 2000-06-28 14:00:36 by simonmar]
Wave goodbye to hscpp, GHC's lexer now understands the '# \d+ \".*\"'
output from cpp.

23 years ago[project @ 2000-06-28 11:50:00 by simonmar]
simonmar [Wed, 28 Jun 2000 11:50:00 +0000 (11:50 +0000)]
[project @ 2000-06-28 11:50:00 by simonmar]
version of ghc-current is now 4.09

23 years ago[project @ 2000-06-28 11:28:27 by simonmar]
simonmar [Wed, 28 Jun 2000 11:28:27 +0000 (11:28 +0000)]
[project @ 2000-06-28 11:28:27 by simonmar]
add missing default case for Eq (TyClDecl name pat)

23 years ago[project @ 2000-06-28 10:42:17 by sewardj]
sewardj [Wed, 28 Jun 2000 10:42:17 +0000 (10:42 +0000)]
[project @ 2000-06-28 10:42:17 by sewardj]
Partially fix signal (control-C) handling under mingw32.
The interpreter can now be interrupted and successfully returns to
the Hugs prompt, but only if Hugs was started from cmd.exe and not
by bash (!).  This is a known bogon with Cygwin, according to
Sigbjorn.  I still can't get Hugs to ignore other control-C's;
instead it acts as if it was asked to exit.  Bizarre.

23 years ago[project @ 2000-06-27 16:48:25 by lewie]
lewie [Tue, 27 Jun 2000 16:48:25 +0000 (16:48 +0000)]
[project @ 2000-06-27 16:48:25 by lewie]
splitFunTy_maybe was making a special case of implicit params by
returning Nothing on a type `noted' as an implicit param.  It shouldn't
(my bad).  It's mostly used downstream of the type checker, where we don't
care so much about the difference between implicit and explicit params.
The right thing to do is just see thru the NoteTy (i.e. eliminate the
special case for IPs).

Please merge.

23 years ago[project @ 2000-06-27 16:36:00 by lewie]
lewie [Tue, 27 Jun 2000 16:36:00 +0000 (16:36 +0000)]
[project @ 2000-06-27 16:36:00 by lewie]
Cleaned out a handful of unused imports.

23 years ago[project @ 2000-06-27 13:45:30 by rrt]
rrt [Tue, 27 Jun 2000 13:45:30 +0000 (13:45 +0000)]
[project @ 2000-06-27 13:45:30 by rrt]
Some initial notes on DLLs.

plsmrg

23 years ago[project @ 2000-06-27 10:08:48 by rrt]
rrt [Tue, 27 Jun 2000 10:08:48 +0000 (10:08 +0000)]
[project @ 2000-06-27 10:08:48 by rrt]
Replace documentation for dll_Ifs.hi with a note about using -package-name.

Please merge.

23 years ago[project @ 2000-06-27 09:18:04 by sewardj]
sewardj [Tue, 27 Jun 2000 09:18:04 +0000 (09:18 +0000)]
[project @ 2000-06-27 09:18:04 by sewardj]
Fix compilation problems with int64 and nat64.

23 years ago[project @ 2000-06-27 09:08:32 by lewie]
lewie [Tue, 27 Jun 2000 09:08:32 +0000 (09:08 +0000)]
[project @ 2000-06-27 09:08:32 by lewie]
Further refine the test for when to simplify... in particular, was
generating bogus code when a signature asserted an implicit param,
but the code didn't use one.

Please Merge.

23 years ago[project @ 2000-06-26 16:09:40 by simonpj]
simonpj [Mon, 26 Jun 2000 16:09:40 +0000 (16:09 +0000)]
[project @ 2000-06-26 16:09:40 by simonpj]
Add test for filterFB

23 years ago[project @ 2000-06-26 13:05:25 by rrt]
rrt [Mon, 26 Jun 2000 13:05:25 +0000 (13:05 +0000)]
[project @ 2000-06-26 13:05:25 by rrt]
Fix it Good'n'Proper.

23 years ago[project @ 2000-06-26 12:48:47 by rrt]
rrt [Mon, 26 Jun 2000 12:48:47 +0000 (12:48 +0000)]
[project @ 2000-06-26 12:48:47 by rrt]
Remove lots of junk from db2ps.sh, and make it find db2dvi properly.

(I'll merge it)

23 years ago[project @ 2000-06-25 19:17:57 by panne]
panne [Sun, 25 Jun 2000 19:17:58 +0000 (19:17 +0000)]
[project @ 2000-06-25 19:17:57 by panne]
Changed "_" variable prefix to "c" (for "config", "constant", or
whatever you like). This should enable building from CVS with GHC <4.07.

23 years ago[project @ 2000-06-25 17:25:42 by panne]
panne [Sun, 25 Jun 2000 17:25:42 +0000 (17:25 +0000)]
[project @ 2000-06-25 17:25:42 by panne]
Keep gcc -Wall happy

23 years ago[project @ 2000-06-25 17:21:52 by panne]
panne [Sun, 25 Jun 2000 17:21:52 +0000 (17:21 +0000)]
[project @ 2000-06-25 17:21:52 by panne]
* -#include's arg needs not be separate anymore.
* Nuke leading and trailing spaces around option arguments.

23 years ago[project @ 2000-06-25 17:20:20 by panne]
panne [Sun, 25 Jun 2000 17:20:20 +0000 (17:20 +0000)]
[project @ 2000-06-25 17:20:20 by panne]
Use "$@" instead of $* in shell script, the latter one doesn't handle
spaces in arguments correctly. Heaven knows who invented this wierd rules.

23 years ago[project @ 2000-06-25 17:18:15 by panne]
panne [Sun, 25 Jun 2000 17:18:15 +0000 (17:18 +0000)]
[project @ 2000-06-25 17:18:15 by panne]
Descend into include subdir first to create a config.h, which is
needed in later subdirs.

23 years ago[project @ 2000-06-25 17:16:15 by panne]
panne [Sun, 25 Jun 2000 17:16:15 +0000 (17:16 +0000)]
[project @ 2000-06-25 17:16:15 by panne]
Fixed xref to Storable docs

23 years ago[project @ 2000-06-25 17:08:37 by panne]
panne [Sun, 25 Jun 2000 17:08:37 +0000 (17:08 +0000)]
[project @ 2000-06-25 17:08:37 by panne]
Synch unfoldr's signature in export list with reality

23 years ago[project @ 2000-06-24 17:47:12 by panne]
panne [Sat, 24 Jun 2000 17:47:12 +0000 (17:47 +0000)]
[project @ 2000-06-24 17:47:12 by panne]
Fixed "filterFB" RULE

*** please merge ***

23 years ago[project @ 2000-06-23 14:01:09 by rrt]
rrt [Fri, 23 Jun 2000 14:01:09 +0000 (14:01 +0000)]
[project @ 2000-06-23 14:01:09 by rrt]
Get rid of hand-maintained HSrts.def, and generate it automatically.

23 years ago[project @ 2000-06-23 13:13:10 by sewardj]
sewardj [Fri, 23 Jun 2000 13:13:10 +0000 (13:13 +0000)]
[project @ 2000-06-23 13:13:10 by sewardj]
markHugsObjects() and lookupSection(): don't use debugging versions
of macros module(), name(), tycon(), etc, even when debugging.
Also, in lookupSection(), return immediately when not in combined mode.
Together, these dramatically reduce the cost of GC in Hugs (by about
a factor of 15 for nofib/real/anna).

23 years ago[project @ 2000-06-23 12:09:00 by sewardj]
sewardj [Fri, 23 Jun 2000 12:09:01 +0000 (12:09 +0000)]
[project @ 2000-06-23 12:09:00 by sewardj]
Minor mods to make fully-optimised builds of Hugs work again.

23 years ago[project @ 2000-06-23 09:41:11 by sewardj]
sewardj [Fri, 23 Jun 2000 09:41:11 +0000 (09:41 +0000)]
[project @ 2000-06-23 09:41:11 by sewardj]
Changes to make DietHEP.dll usable from Visual Basic:
* Export DH_LoadLibrary and DH_GetProcAddress using stdcall, not ccall.
* Append all messages to a logfile, diet_hep_logfile.txt, for debugging.

23 years ago[project @ 2000-06-22 16:19:16 by panne]
panne [Thu, 22 Jun 2000 16:19:16 +0000 (16:19 +0000)]
[project @ 2000-06-22 16:19:16 by panne]
* -syslib => -package
* mkdependHS => ghc -M

*** please merge ***

23 years ago[project @ 2000-06-22 16:18:10 by panne]
panne [Thu, 22 Jun 2000 16:18:10 +0000 (16:18 +0000)]
[project @ 2000-06-22 16:18:10 by panne]
* Mentioned CTypesISO
* Synched comments about MutableArray with reality

*** please merge ***

23 years ago[project @ 2000-06-22 16:16:46 by panne]
panne [Thu, 22 Jun 2000 16:16:46 +0000 (16:16 +0000)]
[project @ 2000-06-22 16:16:46 by panne]
Removed explicit usage of hslibs/docs, it belongs to
ghc/docs/set. (untested)
*** please merge ***

23 years ago[project @ 2000-06-22 14:45:41 by simonpj]
simonpj [Thu, 22 Jun 2000 14:45:41 +0000 (14:45 +0000)]
[project @ 2000-06-22 14:45:41 by simonpj]
*** NO NEED TO MERGE WITH 4.07 ***
    (but it would do no harm)

* Improve an error message when overlapping instance
  declarations are present.  Carl Witty reported this
  infelicitous message.  The problem arises for this code:

class Foo a
class (Foo a) => Bar a

data Dat a = Dat

instance Foo (Dat a)
instance Foo (Dat Integer)

instance Bar (Dat a)

  The instance decl for Bar should say

instance Foo (Dat a) => Bar (Dat a)

  because the overlapping instance decls for Foo can't
  be resolved (or at least might vary depending on how
  a is instantiated).

23 years ago[project @ 2000-06-22 14:41:29 by simonpj]
simonpj [Thu, 22 Jun 2000 14:41:29 +0000 (14:41 +0000)]
[project @ 2000-06-22 14:41:29 by simonpj]
*** MERGE WITH 4.07 ***

* ParseIface.y should reject newtypes with no
  definition:
newtype T a ;
  The rest of the compiler falls over if it sees such a thing.

23 years ago[project @ 2000-06-22 14:40:22 by simonpj]
simonpj [Thu, 22 Jun 2000 14:40:22 +0000 (14:40 +0000)]
[project @ 2000-06-22 14:40:22 by simonpj]
*** MERGE WITH 4.07 ***

* The divide by zero check in the constant-folding
  rules was testing the numerator not denominator!
  (For Float and Double.)

23 years ago[project @ 2000-06-22 12:02:55 by rrt]
rrt [Thu, 22 Jun 2000 12:02:55 +0000 (12:02 +0000)]
[project @ 2000-06-22 12:02:55 by rrt]
Add greencard support.

23 years ago[project @ 2000-06-21 09:13:09 by chak]
chak [Wed, 21 Jun 2000 09:13:09 +0000 (09:13 +0000)]
[project @ 2000-06-21 09:13:09 by chak]
As suggested by SimonM, moved an overview over the three components of the FFI
into the FFI document included as Chapter 7 into the GHC user guide.

Open questions:

* How can I make cross references to the doc in hslibs/?  There are already
  references to hslibs sections in other parts of ghc's user guide, but they
  are not correctly resolved when I generate html from the sgml files.

* There is now a (little) overlap with material in 6.5 (GHC Language Features:
  The foreign interface).  I would say, we could actually leave this as it is,
  as 6.5 goes on to describe GHC specifics.

23 years ago[project @ 2000-06-20 16:32:20 by simonmar]
simonmar [Tue, 20 Jun 2000 16:32:20 +0000 (16:32 +0000)]
[project @ 2000-06-20 16:32:20 by simonmar]
fix -fno-asm-mangling flag

23 years ago[project @ 2000-06-20 15:31:33 by sewardj]
sewardj [Tue, 20 Jun 2000 15:31:33 +0000 (15:31 +0000)]
[project @ 2000-06-20 15:31:33 by sewardj]
Force binds with coreBindsSize after every simplifier iteration.
Significantly reduces space use, especially with -O.  This could
probably be done more cleanly.

23 years ago[project @ 2000-06-20 15:26:34 by simonmar]
simonmar [Tue, 20 Jun 2000 15:26:34 +0000 (15:26 +0000)]
[project @ 2000-06-20 15:26:34 by simonmar]
remove duplicates from the list of ways, so that eg. ghc -prof -prof
is legal.

23 years ago[project @ 2000-06-20 15:18:40 by simonmar]
simonmar [Tue, 20 Jun 2000 15:18:40 +0000 (15:18 +0000)]
[project @ 2000-06-20 15:18:40 by simonmar]
Don't try to finalize DEAD_WEAKs.  This fix has been sitting in my
tree for so long, I can't remember whether it was a real bugfix or
just a cleanup, oh well.

23 years ago[project @ 2000-06-20 15:15:44 by simonmar]
simonmar [Tue, 20 Jun 2000 15:15:44 +0000 (15:15 +0000)]
[project @ 2000-06-20 15:15:44 by simonmar]
Set the context switch flag to zero when running a new thread; the
timer interrupt now initiates a context switch.

23 years ago[project @ 2000-06-20 15:12:14 by simonmar]
simonmar [Tue, 20 Jun 2000 15:12:14 +0000 (15:12 +0000)]
[project @ 2000-06-20 15:12:14 by simonmar]
context switch on a timer interrupt.

23 years ago[project @ 2000-06-20 11:21:28 by simonmar]
simonmar [Tue, 20 Jun 2000 11:21:28 +0000 (11:21 +0000)]
[project @ 2000-06-20 11:21:28 by simonmar]
remove ToDo about mkdependHS and -osuf.

23 years ago[project @ 2000-06-20 11:20:50 by simonmar]
simonmar [Tue, 20 Jun 2000 11:20:50 +0000 (11:20 +0000)]
[project @ 2000-06-20 11:20:50 by simonmar]
mkdependHS doesn't understand the -o option anymore; instead it grokss
ghc's -osuf option.  We never really used this, and it behaves
strangely when mixed with -s, but at least now it doesn't conflict
with GHC's -opt<blah> options.

23 years ago[project @ 2000-06-20 11:03:55 by simonmar]
simonmar [Tue, 20 Jun 2000 11:03:55 +0000 (11:03 +0000)]
[project @ 2000-06-20 11:03:55 by simonmar]
- print the version number as x.yy.z (i.e. replace ", patchlevel z"
with ".z"), but omit the .z if z == 0.

- add --numeric-version flag which prints x.yy.z without the verbage.

23 years ago[project @ 2000-06-20 10:24:39 by simonmar]
simonmar [Tue, 20 Jun 2000 10:24:39 +0000 (10:24 +0000)]
[project @ 2000-06-20 10:24:39 by simonmar]
- fix -optCrts (was being overriden by -optC)
- fix -osuf with -split-objs
- fix -odir

23 years ago[project @ 2000-06-19 21:28:00 by panne]
panne [Mon, 19 Jun 2000 21:28:00 +0000 (21:28 +0000)]
[project @ 2000-06-19 21:28:00 by panne]
* makeForeignObj => newForeignObj

* Tried to make type mapping table look less strange, but this
  succeeded only a little bit. Could somebody else have a look?

23 years ago[project @ 2000-06-19 15:13:43 by simonmar]
simonmar [Mon, 19 Jun 2000 15:13:43 +0000 (15:13 +0000)]
[project @ 2000-06-19 15:13:43 by simonmar]
oops, backout accidental commit

23 years ago[project @ 2000-06-19 13:37:50 by chak]
chak [Mon, 19 Jun 2000 13:37:50 +0000 (13:37 +0000)]
[project @ 2000-06-19 13:37:50 by chak]
Updated the building from .hc section.

*MERGE*

23 years ago[project @ 2000-06-19 13:28:35 by simonmar]
simonmar [Mon, 19 Jun 2000 13:28:35 +0000 (13:28 +0000)]
[project @ 2000-06-19 13:28:35 by simonmar]
Time fixes from Michael Weber <michael.weber@post.rwth-aachen.de>:

  * `toClockTime' previously didn't honor the `tz' field of a
    `CalendarTime', which led to time warping when applying

      => (toUTCTime (toClockTime ... (toUTCTime (toClockTime someTime) ... )))

    continuously.

    Now it accepts at least <local>- and UTC-encoded `CalendarTime's
    (TODO: test, whether all timezones work) and converts them
    correctly to <secs from epoch>-format (which is always UTC, as one
    might have guessed).

  * `addToClockTime' now works.

    Previously, `tz' seconds were added(!) when used like:

      => addToClockTime noTimeDiff someTime

    which is clearly wrong.
    Now, the following (hopefully) always holds

      => someTime == (addToClockTime noTimeDiff someTime)

  * `diffClockTimes' works correctly, and is the dual to
    `addToClockTime', i.e.

      => diff == ((addToClockTime diff someTime) `diffClockTimes` someTime)

    should now hold for all diff, someTime

    Previously, it reports ugly diffs at {min,hour,day,...}-breaks,
    for example:

      => "2000/06/18 01:00 UTC"
            `diffClockTimes` "2000/06/17 23:00 UTC" == 1 day, -22 hours

    whereas now it emits "7200 secs". This number can be converted
    with `normalizeTimeDiff' to "2 hours".

  * added `normalizeTimeDiff', which calculates year, month, days,
    etc. out of an unnormalized `TimeDiff' (generated by
    `diffClockTimes', for example)

  * `formatTimeDiff': added the missing "%c" case. The
    format is proprietary, though... Is there a nicer one?

23 years ago[project @ 2000-06-19 12:17:59 by simonmar]
simonmar [Mon, 19 Jun 2000 12:17:59 +0000 (12:17 +0000)]
[project @ 2000-06-19 12:17:59 by simonmar]
ignore -no-link-chk for backwards compat.

23 years ago[project @ 2000-06-19 12:09:22 by simonmar]
simonmar [Mon, 19 Jun 2000 12:09:22 +0000 (12:09 +0000)]
[project @ 2000-06-19 12:09:22 by simonmar]
remove tests subdir

23 years ago[project @ 2000-06-19 10:59:56 by simonmar]
simonmar [Mon, 19 Jun 2000 10:59:56 +0000 (10:59 +0000)]
[project @ 2000-06-19 10:59:56 by simonmar]
Give 'ghc -E' the traditional behaviour: the output is dumped to
stdout.  The new driver also generates <file>.cpp.

23 years ago[project @ 2000-06-19 10:05:38 by rrt]
rrt [Mon, 19 Jun 2000 10:05:38 +0000 (10:05 +0000)]
[project @ 2000-06-19 10:05:38 by rrt]
Changed SUBDIRS from users_guide to set (the former doesn't build any more
except as part of the latter).

23 years ago[project @ 2000-06-18 21:12:31 by panne]
panne [Sun, 18 Jun 2000 21:12:31 +0000 (21:12 +0000)]
[project @ 2000-06-18 21:12:31 by panne]
Added Eq and Ord instances for ArrayException

23 years ago[project @ 2000-06-18 17:09:33 by simonmar]
simonmar [Sun, 18 Jun 2000 17:09:33 +0000 (17:09 +0000)]
[project @ 2000-06-18 17:09:33 by simonmar]
mention cvs-ghc@haskell.org

23 years ago[project @ 2000-06-18 16:26:52 by simonmar]
simonmar [Sun, 18 Jun 2000 16:26:52 +0000 (16:26 +0000)]
[project @ 2000-06-18 16:26:52 by simonmar]
Add FreeBSD-compatible catalog.  This one works on my FreeBSD 4.0 box
with the following packages installed:

docbook-3.1
dsssl-docbook-modular-1.52
jade-1.2.1
iso8879-1986

alternatively, installing the 'docproj' meta-package gets everything
you need.

23 years ago[project @ 2000-06-18 12:13:56 by chak]
chak [Sun, 18 Jun 2000 12:13:56 +0000 (12:13 +0000)]
[project @ 2000-06-18 12:13:56 by chak]
Script that automates building GHC from .hc files.

?? Shall I edit the corresponding section in building.sgml to advise the use
?? of this script (thus replacing the outdated description of the manual
?? steps - which is wrong anyway).

23 years ago[project @ 2000-06-18 08:37:17 by simonpj]
simonpj [Sun, 18 Jun 2000 08:37:20 +0000 (08:37 +0000)]
[project @ 2000-06-18 08:37:17 by simonpj]
*** MERGE WITH 4.07 ***

* Fix the ambiguity check in TcMonotype.lhs so that
  it is not carried out for types read from interface
  files.  Some workers may get ambiguous types but that
  does not matter, and should not make compilation fail.
  More detail in the comments with TcMonoType.tc_type_kind
  (the HsForAll case)

* Don't create specialisations for type applications
  where there's a matching rule.  The rule should
  clearly take precedence.  (Bug reported by Sven.)
  I havn't tested this fix.

* Run the occurrence analyser after tidyCore, so that
  occurrence info (notably dead-var info) is correct
  for the code generators.  This should fix Erik's problem,
  but again I've not tested the fix.  The extra call
  is in Main.lhs

* Fix CoreToStg so that it can handle an StgLam in mkStgCase.
  This only shows up in a wierd case, documented in
  CoreToStg.mkStgCase

23 years ago[project @ 2000-06-17 07:52:30 by chak]
chak [Sat, 17 Jun 2000 07:52:30 +0000 (07:52 +0000)]
[project @ 2000-06-17 07:52:30 by chak]
* SGML_DOC can now hold a _list_ of sgml documentations to build
* both building.sgml and ffi-art.sgml are now build in docs/

*MERGE*

23 years ago[project @ 2000-06-16 09:32:32 by sewardj]
sewardj [Fri, 16 Jun 2000 09:32:32 +0000 (09:32 +0000)]
[project @ 2000-06-16 09:32:32 by sewardj]
Fix sparc bustage following latest round of NCG hacking (reg-alloc stuff).
Still won't work, but at least should compile again.

23 years ago[project @ 2000-06-16 08:53:10 by simonmar]
simonmar [Fri, 16 Jun 2000 08:53:10 +0000 (08:53 +0000)]
[project @ 2000-06-16 08:53:10 by simonmar]
instance Eq (HsDecl name pat) : add default case

23 years ago[project @ 2000-06-15 20:22:53 by panne]
panne [Thu, 15 Jun 2000 20:22:53 +0000 (20:22 +0000)]
[project @ 2000-06-15 20:22:53 by panne]
Quick workaround for Reuben's M$ configuration problems

23 years ago[project @ 2000-06-15 15:56:51 by simonmar]
simonmar [Thu, 15 Jun 2000 15:56:51 +0000 (15:56 +0000)]
[project @ 2000-06-15 15:56:51 by simonmar]
sigh, fix the ordering of the phases so that splitting works again.

23 years ago[project @ 2000-06-15 13:23:51 by daan]
daan [Thu, 15 Jun 2000 13:23:52 +0000 (13:23 +0000)]
[project @ 2000-06-15 13:23:51 by daan]
Added new primitives and bytecodes that support
code generation for XMLambda. All additions are
surrounded by #ifdef XMLAMBDA.

Most important additions:
- Rows (n-tuples) which are implemented on top of Frozen Mutarrays
- Inj (variant sums), which is implemented using a new constructor
called Inj which contains both the value and an unboxed int
which represents the index.

23 years ago[project @ 2000-06-15 13:18:08 by daan]
daan [Thu, 15 Jun 2000 13:18:08 +0000 (13:18 +0000)]
[project @ 2000-06-15 13:18:08 by daan]
Added definition of int64 to make it compilable with both gcc and VisualC++

Added functions to the bytecode assembler that
support code generation for Xmlambda. All additions for
Xmlambda are surrounded by #ifdef XMLAMBDA.

23 years ago[project @ 2000-06-15 13:16:16 by daan]
daan [Thu, 15 Jun 2000 13:16:16 +0000 (13:16 +0000)]
[project @ 2000-06-15 13:16:16 by daan]
Added definition of int64 to make it compilable with both gcc and VisualC++

23 years ago[project @ 2000-06-15 11:50:14 by simonmar]
simonmar [Thu, 15 Jun 2000 11:50:14 +0000 (11:50 +0000)]
[project @ 2000-06-15 11:50:14 by simonmar]
urk! the arity of a record selector Id didn't take into account any
dictionary arguments due to the context on the datatype...

(fixes bug on H/OpenGL reported by Sven)

23 years ago[project @ 2000-06-15 11:17:41 by sewardj]
sewardj [Thu, 15 Jun 2000 11:17:41 +0000 (11:17 +0000)]
[project @ 2000-06-15 11:17:41 by sewardj]
Emit slightly better x86 floating point code for comparisons, +, -,
* and /, in the common case where one of the source fake FP regs
is the same as the destination reg.

23 years ago[project @ 2000-06-15 09:24:49 by rrt]
rrt [Thu, 15 Jun 2000 09:24:49 +0000 (09:24 +0000)]
[project @ 2000-06-15 09:24:49 by rrt]
Fixed typo: .hs left out of .SUFFIXES list.

23 years ago[project @ 2000-06-15 08:38:25 by sewardj]
sewardj [Thu, 15 Jun 2000 08:38:25 +0000 (08:38 +0000)]
[project @ 2000-06-15 08:38:25 by sewardj]
Major thing: new register allocator.  Brief description follows.
Should correctly handle code with loops in, even though we don't
generate any such at the moment.  A lot of comments.  The previous
machinery for spilling is retained, as is the idea of a fast-and-easy
initial allocation attempt intended to deal with the majority of code
blocks (about 60% on x86) very cheaply.  Many comments explaining
in detail how it works :-)

The Stix inliner is now on by default.  Integer code seems to run
within about 1% of that -fvia-C.  x86 fp code is significantly worse,
up to about 30% slower, depending on the amount of fp activity.

Minor thing: lazyfication of the top-level NCG plumbing, so that the
NCG doesn't require any greater residency than compiling to C, just a
bit more time.  Created lazyThenUs and lazyMapUs for this purpose.

The new allocator is somewhat, although not catastophically, slower
than the old one.  Fixing of the long-standing NCG space leak more
than makes up for it; overall hsc run-time is down about 5%, due to
significantly reduced GC time.

--------------------------------------------------------------------

Instructions are numbered sequentially, starting at zero.

A flow edge (FE) is a pair of insn numbers (MkFE Int Int) denoting
a possible flow of control from the first insn to the second.

The input to the register allocator is a list of instructions, which
mention Regs.  A Reg can be a RealReg -- a real machine reg -- or a
VirtualReg, which carries a unique.  After allocation, all the
VirtualReg references will have been converted into RealRegs, and
possibly some spill code will have been inserted.

The heart of the register allocator works in four phases.

1.  (find_flow_edges) Calculate all the FEs for the code list.
    Return them not as a [FE], but implicitly, as a pair of
    Array Int [Int], being the successor and predecessor maps
    for instructions.

2.  (calc_liveness) Returns a FiniteMap FE RegSet.  For each
    FE, indicates the set of registers live on that FE.  Note
    that the set includes both RealRegs and VirtualRegs.  The
    former appear because the code could mention fixed register
    usages, and we need to take them into account from the start.

3.  (calc_live_range_sets) Invert the above mapping, giving a
    FiniteMap Reg FeSet, indicating, for each virtual and real
    reg mentioned in the code, which FEs it is live on.

4.  (calc_vreg_to_rreg_mapping) For virtual reg, try and find
    an allocatable real register for it.  Each real register has
    a "current commitment", indicating the set of FEs it is
    currently live on.  A virtual reg v can be assigned to
    real reg r iff v's live-fe-set does not intersect with r's
    current commitment fe-set.  If the assignment is made,
    v's live-fe-set is union'd into r's current commitment fe-set.
    There is also the minor restriction that v and r must be of
    the same register class (integer or floating).

    Once this mapping is established, we simply apply it to the
    input insns, and that's it.

    If no suitable real register can be found, the vreg is mapped
    to itself, and we deem allocation to have failed.  The partially
    allocated code is returned.  The higher echelons of the allocator
    (doGeneralAlloc and runRegAlloc) then cooperate to insert spill
    code and re-run allocation, until a successful allocation is found.

23 years ago[project @ 2000-06-14 15:06:56 by simonmar]
simonmar [Wed, 14 Jun 2000 15:06:56 +0000 (15:06 +0000)]
[project @ 2000-06-14 15:06:56 by simonmar]
add missing default case in eq_btype

23 years ago[project @ 2000-06-14 14:16:45 by simonmar]
simonmar [Wed, 14 Jun 2000 14:16:45 +0000 (14:16 +0000)]
[project @ 2000-06-14 14:16:45 by simonmar]
isNeverInlinePrag returned False for a NOINLINE pragma, which seems
wrong to me.  4.07 also has this bug, and it's why Memo is going wrong.

23 years ago[project @ 2000-06-14 13:17:00 by simonmar]
simonmar [Wed, 14 Jun 2000 13:17:00 +0000 (13:17 +0000)]
[project @ 2000-06-14 13:17:00 by simonmar]
generate _stub.o files properly when there's a -o flag on the command
line, and in the presence of -split-objs.

23 years ago[project @ 2000-06-14 13:14:42 by simonmar]
simonmar [Wed, 14 Jun 2000 13:14:42 +0000 (13:14 +0000)]
[project @ 2000-06-14 13:14:42 by simonmar]
don't use $(WithGhcHc) to build the driver, use $(HC) instead.

23 years ago[project @ 2000-06-14 11:42:23 by rrt]
rrt [Wed, 14 Jun 2000 11:42:23 +0000 (11:42 +0000)]
[project @ 2000-06-14 11:42:23 by rrt]
InstallShield setup added as a zip (because of spaces in file and directory
names). README explains the mess.

This is mostly for backup purposes.

23 years ago[project @ 2000-06-14 11:21:06 by simonmar]
simonmar [Wed, 14 Jun 2000 11:21:06 +0000 (11:21 +0000)]
[project @ 2000-06-14 11:21:06 by simonmar]
Produce a gcc-like "ghc: no input files" when called with nothing to
do.  Note at the top of the file that we don't support the old
driver's "Enter your Haskell program..." nonsense.

23 years ago[project @ 2000-06-14 11:07:47 by simonmar]
simonmar [Wed, 14 Jun 2000 11:07:47 +0000 (11:07 +0000)]
[project @ 2000-06-14 11:07:47 by simonmar]
move "boot :: all" after target.mk, so we make dependencies in the
current directory before going on to build the driver.  This still
doesn't really work because GNU make doesn't re-load the .depend file,
but it's heading in the right direction.

also, clean ghc-inplace and ghc.

23 years ago[project @ 2000-06-14 11:00:07 by simonmar]
simonmar [Wed, 14 Jun 2000 11:00:07 +0000 (11:00 +0000)]
[project @ 2000-06-14 11:00:07 by simonmar]
incorporate several patches from Qrzak (pkg include paths for Cpp
phase, pkg extra_cc_opts in Cc phase, -D__GLASGOW_HASKELL__ for Cc
phase), and fix error messages in unlitted files.

23 years ago[project @ 2000-06-14 10:55:10 by rrt]
rrt [Wed, 14 Jun 2000 10:55:10 +0000 (10:55 +0000)]
[project @ 2000-06-14 10:55:10 by rrt]
Rewritten for 4.07.