ghc-hetmet.git
24 years ago[project @ 2000-01-05 11:55:29 by rrt]
rrt [Wed, 5 Jan 2000 11:55:29 +0000 (11:55 +0000)]
[project @ 2000-01-05 11:55:29 by rrt]
Changed rules to make SGML documentation using DocBook tools rather than
LinuxDoc.

24 years ago[project @ 2000-01-05 11:20:23 by rrt]
rrt [Wed, 5 Jan 2000 11:20:25 +0000 (11:20 +0000)]
[project @ 2000-01-05 11:20:23 by rrt]
VSGML files removed because of conversion from LinuxDoc to DocBook (now
have just SGML files).

24 years ago[project @ 2000-01-05 11:14:06 by rrt]
rrt [Wed, 5 Jan 2000 11:14:08 +0000 (11:14 +0000)]
[project @ 2000-01-05 11:14:06 by rrt]
VSGML files changed back to plain SGML during change from LinuxDoc to DocBook.

24 years ago[project @ 2000-01-05 11:06:23 by rrt]
rrt [Wed, 5 Jan 2000 11:06:24 +0000 (11:06 +0000)]
[project @ 2000-01-05 11:06:23 by rrt]
Documentation changed from LinuxDoc to DocBook format, and license added to
the user guide.

24 years ago[project @ 2000-01-04 17:40:46 by simonpj]
simonpj [Tue, 4 Jan 2000 17:40:52 +0000 (17:40 +0000)]
[project @ 2000-01-04 17:40:46 by simonpj]
This commit arranges that literal strings will fuse
nicely, by expressing them as an application of build.

* NoRepStr is now completely redundant, though I havn't removed it yet.

* The unpackStr stuff moves from PrelPack to PrelBase.

* There's a new form of Rule, a BuiltinRule, for rules that
  can't be expressed in Haskell.  The string-fusion rule is one
  such.  It's defined in prelude/PrelRules.lhs.

* PrelRules.lhs also contains a great deal of code that
  implements constant folding.  In due course this will replace
  ConFold.lhs, but for the moment it simply duplicates it.

24 years ago[project @ 1999-12-29 14:46:29 by simonpj]
simonpj [Wed, 29 Dec 1999 14:46:36 +0000 (14:46 +0000)]
[project @ 1999-12-29 14:46:29 by simonpj]
Many tweaks to expected output

24 years ago[project @ 1999-12-29 14:28:48 by simonpj]
simonpj [Wed, 29 Dec 1999 14:28:48 +0000 (14:28 +0000)]
[project @ 1999-12-29 14:28:48 by simonpj]
Set MKDEPENDHS to $(HC) instead of $(GHC).
This means that dependencies will be computed with the same
compiler as compilations, which is presumably the right thing.

24 years ago[project @ 1999-12-29 12:38:25 by simonpj]
simonpj [Wed, 29 Dec 1999 12:38:25 +0000 (12:38 +0000)]
[project @ 1999-12-29 12:38:25 by simonpj]
Clarification on output files

24 years ago[project @ 1999-12-29 12:26:51 by simonpj]
simonpj [Wed, 29 Dec 1999 12:26:51 +0000 (12:26 +0000)]
[project @ 1999-12-29 12:26:51 by simonpj]
Improve rn029, remove dup rn033

24 years ago[project @ 1999-12-29 12:17:36 by simonpj]
simonpj [Wed, 29 Dec 1999 12:17:36 +0000 (12:17 +0000)]
[project @ 1999-12-29 12:17:36 by simonpj]
Fix a renamer bug that rejected

import M hiding( C )

where C is a constructor.

24 years ago[project @ 1999-12-29 12:12:59 by simonpj]
simonpj [Wed, 29 Dec 1999 12:12:59 +0000 (12:12 +0000)]
[project @ 1999-12-29 12:12:59 by simonpj]
Add rn037

24 years ago[project @ 1999-12-22 10:36:34 by simonmar]
simonmar [Wed, 22 Dec 1999 10:36:34 +0000 (10:36 +0000)]
[project @ 1999-12-22 10:36:34 by simonmar]
Remove more vestiges of IntAbsOp, and now unused absIntCode.

24 years ago[project @ 1999-12-22 10:11:48 by simonmar]
simonmar [Wed, 22 Dec 1999 10:11:48 +0000 (10:11 +0000)]
[project @ 1999-12-22 10:11:48 by simonmar]
Add comment about TMPDIR.

24 years ago[project @ 1999-12-21 13:01:59 by simonmar]
simonmar [Tue, 21 Dec 1999 13:01:59 +0000 (13:01 +0000)]
[project @ 1999-12-21 13:01:59 by simonmar]
remove old unused $RTS_PREFIX I just noticed.

24 years ago[project @ 1999-12-21 13:00:54 by simonmar]
simonmar [Tue, 21 Dec 1999 13:00:54 +0000 (13:00 +0000)]
[project @ 1999-12-21 13:00:54 by simonmar]
Hopefully banish bogus "Happy version 1.6 or later is required to
compile GHC" messages.  The new rule is: if you don't have an
installed copy of Happy, but have a Happy source tree, we point the
build system at the latter (and pull the version number out of
happy/mk/version.mk).

24 years ago[project @ 1999-12-20 22:21:09 by lewie]
lewie [Mon, 20 Dec 1999 22:21:10 +0000 (22:21 +0000)]
[project @ 1999-12-20 22:21:09 by lewie]
Remove *uses* of unused IntAbsOp (see recent log message in prelude/PrimOp).

24 years ago[project @ 1999-12-20 17:07:05 by simonmar]
simonmar [Mon, 20 Dec 1999 17:07:05 +0000 (17:07 +0000)]
[project @ 1999-12-20 17:07:05 by simonmar]
Remove unused IntAbsOp

24 years ago[project @ 1999-12-20 16:55:26 by sewardj]
sewardj [Mon, 20 Dec 1999 16:55:28 +0000 (16:55 +0000)]
[project @ 1999-12-20 16:55:26 by sewardj]
* Fix silly bugs in new linker, object.[ch].

* Allow modules to have arbitrary numbers of "extra" object files
  as well as their primary object file.  Initial requirement is
  that Prelude needs libHS_cbits.o/.dll as well as Prelude.o
  module(m).object is the primary object
  module(m).objectExtras are the extra objects
  module(m).objectExtraNames :: [Text] are their names.
  Modify machdep.c to assume that extra objects for module M
  live in the same directory as M's primary object.

* Stuff 130ish symbol names into the RTS symbol table, enough
  so that the whole Prelude can be linked.  That includes symbols
  in the C library needed by libHS_cbits.  This is very hacky
  and needs to be fixed properly.

24 years ago[project @ 1999-12-20 14:38:30 by simonmar]
simonmar [Mon, 20 Dec 1999 14:38:30 +0000 (14:38 +0000)]
[project @ 1999-12-20 14:38:30 by simonmar]
3.02 hi-boot syntax wibble

24 years ago[project @ 1999-12-20 10:35:47 by simonpj]
simonpj [Mon, 20 Dec 1999 10:35:47 +0000 (10:35 +0000)]
[project @ 1999-12-20 10:35:47 by simonpj]
Forgot to remove PrelNumExtra in the last commit

24 years ago[project @ 1999-12-20 10:34:27 by simonpj]
simonpj [Mon, 20 Dec 1999 10:34:37 +0000 (10:34 +0000)]
[project @ 1999-12-20 10:34:27 by simonpj]
This commit implements a substantial re-organisation of the Prelude
It also fixes a couple of small renamer bugs that were reported recently
(notably, Sven pointed out that we weren't reporting
unused imports properly)

My original goal was to get rid of all "orphan" modules (i.e. ones
with instance decls that don't belong either to a tycon or a class
defined in the same module).  This should reduce the number of
interface files that have to be read when compiling small Haskell
modules.

But like most expeditions into the Prelude Swamp, it spiraled out
of control.  The result is quite satisfactory, though.

GONE AWAY: PrelCCall, PrelNumExtra

NEW: PrelReal, PrelFloat, PrelByteArr, PrelNum.hi-boot

(The extra PrelNum.hi-boot is because of a tiresome thin-air Id, addr2Integer,
which used to be in PrelBase.)

Quite a lot of types have moved from one module to another,
which entails some changes to part of the compiler (PrelInfo, PrelMods) etc,
and there are a few places in the RTS includes and even in the driver
that know about these home modules (alas).

So the rough structure is as follows, in (linearised) dependency order
[this list now appears in PrelBase.lhs]

PrelGHC Has no implementation.  It defines built-in things, and
by importing it you bring them into scope.
The source file is PrelGHC.hi-boot, which is just
copied to make PrelGHC.hi

Classes: CCallable, CReturnable

PrelBase Classes: Eq, Ord, Functor, Monad
Types:   list, (), Int, Bool, Ordering, Char, String

PrelTup Types: tuples, plus instances for PrelBase classes

PrelShow Class: Show, plus instances for PrelBase/PrelTup types

PrelEnum Class: Enum,  plus instances for PrelBase/PrelTup types

PrelMaybe Type: Maybe, plus instances for PrelBase classes

PrelNum Class: Num, plus instances for Int
Type:  Integer, plus instances for all classes so far (Eq, Ord, Num, Show)

Integer is needed here because it is mentioned in the signature
of 'fromInteger' in class Num

PrelReal Classes: Real, Integral, Fractional, RealFrac
 plus instances for Int, Integer
Types:  Ratio, Rational
plus intances for classes so far

Rational is needed here because it is mentioned in the signature
of 'toRational' in class Real

Ix Classes: Ix, plus instances for Int, Bool, Char, Integer, Ordering, tuples

PrelArr Types: Array, MutableArray, MutableVar

Does *not* contain any ByteArray stuff (see PrelByteArr)
Arrays are used by a function in PrelFloat

PrelFloat Classes: Floating, RealFloat
Types:   Float, Double, plus instances of all classes so far

This module contains everything to do with floating point.
It is a big module (900 lines)
With a bit of luck, many modules can be compiled without ever reading PrelFloat.hi

PrelByteArr Types: ByteArray, MutableByteArray

We want this one to be after PrelFloat, because it defines arrays
of unboxed floats.

Other Prelude modules are much easier with fewer complex dependencies.

24 years ago[project @ 1999-12-20 10:18:36 by simonpj]
simonpj [Mon, 20 Dec 1999 10:18:36 +0000 (10:18 +0000)]
[project @ 1999-12-20 10:18:36 by simonpj]
wibble

24 years ago[project @ 1999-12-20 10:12:50 by simonpj]
simonpj [Mon, 20 Dec 1999 10:12:50 +0000 (10:12 +0000)]
[project @ 1999-12-20 10:12:50 by simonpj]
Fix a gotcha in the interface-file post processing that
led to bizarre omissions from interface files when working
with existential types.  That's what you get for using Perl

24 years ago[project @ 1999-12-17 16:34:08 by sewardj]
sewardj [Fri, 17 Dec 1999 16:34:08 +0000 (16:34 +0000)]
[project @ 1999-12-17 16:34:08 by sewardj]
Reorganised object code loader/linker to make it much more modular and
cleaner.  All the machinery is now in object.[ch].  This stuff is
packaged up as close to a standalone library as I can reasonably get
it -- in particular, it knows nothing about Hugs -- so that the linker
could easily be used in some entirely different application with
almost no changes, if we so desire.

Minor mods to interface.c & storage.c to use the new linker API.

24 years ago[project @ 1999-12-17 15:25:02 by simonmar]
simonmar [Fri, 17 Dec 1999 15:25:02 +0000 (15:25 +0000)]
[project @ 1999-12-17 15:25:02 by simonmar]
Add netbsd to the list of platforms supported.

ToDo: add info to the User's Guide once the Shiny New Documentation is
committed.

24 years ago[project @ 1999-12-16 16:42:56 by sewardj]
sewardj [Thu, 16 Dec 1999 16:42:56 +0000 (16:42 +0000)]
[project @ 1999-12-16 16:42:56 by sewardj]
Add extended version of previous commit message as a comment.

24 years ago[project @ 1999-12-16 16:34:40 by sewardj]
sewardj [Thu, 16 Dec 1999 16:34:46 +0000 (16:34 +0000)]
[project @ 1999-12-16 16:34:40 by sewardj]
Further major improvements in interface processing, mostly in the
handling of types.

Interfaces can contain references to unboxed types, and these need to
be handled carefully.  The following is a summary of how the interface
loader now works.  It is applied to groups of interfaces simultaneously,
viz, the entire Prelude at once:

1.  Throw away any entity not mentioned in the export lists.

2.  Delete type (not data or newtype) definitions which refer to
    unknown types in their right hand sides.  Because Hugs doesn't
    know of any unboxed types, this has the side effect of removing
    all type defns referring to unboxed types.  Repeat step 2 until
    a fixed point is reached.

3.  Make abstract all data/newtype defns which refer to an unknown
    type.  eg, data Word = MkW Word# becomes data Word, because
    Word# is unknown.  Hugs is happy to know about abstract boxed
    Words, but not about Word#s.

4.  Step 2 could delete types referred to by values, instances and
    classes.  So filter all entities, and delete those referring to
    unknown types _or_ classes.  This could cause other entities
    to become invalid, so iterate step 4 to a fixed point.

    After step 4, the interfaces no longer contain anything
    unpalatable to Hugs.

5.  Steps 1-4 operate purely on the iface syntax trees.  We now start
    creating symbol table entries.  First, create a module table
    entry for each interface, and locate and read in the corresponding
    object file.

6.  Traverse all interfaces.  For each entity, create an entry in
    the name, tycon, class or instance table, and fill in relevant
    fields, but do not attempt to link tycon/class/instance/name uses
    to their symbol table entries.

7.  Revisit all symbol table entries created in step 6.  We should
    now be able to replace all references to tycons/classes/instances/
    names with the relevant symbol table entries.

8.  Traverse all interfaces.  For each iface, examine the export lists
    and use it to build export lists in the module table.  Do the
    implicit 'import Prelude' thing if necessary.  Finally, resolve
    references in the object code for this module.

I'm sure the number of passes could be reduced.  For the moment,
understandability is of much higher priority.

Hugs can now complete stages 1 through 8 for the whole GHC Prelude,
excepting doing the object linking, which needs further work.

24 years ago[project @ 1999-12-15 10:01:42 by simonmar]
simonmar [Wed, 15 Dec 1999 10:01:42 +0000 (10:01 +0000)]
[project @ 1999-12-15 10:01:42 by simonmar]
Add test displaying bug in fixity resolution on lhs of a function
binding.  We currently fail on this example, but at least putting it
in the test suite will make sure we don't forget about it :)

24 years ago[project @ 1999-12-15 09:43:23 by simonmar]
simonmar [Wed, 15 Dec 1999 09:43:25 +0000 (09:43 +0000)]
[project @ 1999-12-15 09:43:23 by simonmar]
Add NetBSD/x86 support.

24 years ago[project @ 1999-12-14 14:26:14 by simonmar]
simonmar [Tue, 14 Dec 1999 14:26:14 +0000 (14:26 +0000)]
[project @ 1999-12-14 14:26:14 by simonmar]
Don't set O_NONBLOCK on stdout and stderr.  This is a workaround for a
combination of bizarre Unix semantics and shells which don't reset the
nonblocking flag after running a program.

24 years ago[project @ 1999-12-13 17:34:54 by simonmar]
simonmar [Mon, 13 Dec 1999 17:34:54 +0000 (17:34 +0000)]
[project @ 1999-12-13 17:34:54 by simonmar]
Include hslibs in a binary-dist.

24 years ago[project @ 1999-12-13 17:28:53 by simonmar]
simonmar [Mon, 13 Dec 1999 17:28:53 +0000 (17:28 +0000)]
[project @ 1999-12-13 17:28:53 by simonmar]
Add a few minBound::Int tests.

24 years ago[project @ 1999-12-13 17:25:57 by simonmar]
simonmar [Mon, 13 Dec 1999 17:25:57 +0000 (17:25 +0000)]
[project @ 1999-12-13 17:25:57 by simonmar]
Fix bug in abs::Integer->Integer: result was wrong for minBound::Int.

24 years ago[project @ 1999-12-13 16:10:56 by simonmar]
simonmar [Mon, 13 Dec 1999 16:10:56 +0000 (16:10 +0000)]
[project @ 1999-12-13 16:10:56 by simonmar]
Correct off-by-one error in bounds checking when converting
NoRepIntegers into the real thing.  Not a bug, just a cleanup.

24 years ago[project @ 1999-12-10 16:24:50 by simonmar]
simonmar [Fri, 10 Dec 1999 16:24:50 +0000 (16:24 +0000)]
[project @ 1999-12-10 16:24:50 by simonmar]
bump version to 4.06

24 years ago[project @ 1999-12-10 15:59:41 by sewardj]
sewardj [Fri, 10 Dec 1999 15:59:57 +0000 (15:59 +0000)]
[project @ 1999-12-10 15:59:41 by sewardj]
Major improvements in interface processing, and minor supporting
improvements to CT-storage management.

* Make the iface parser return the complete interface as a single
  tree, which is processed later.  Added abs syntax tags
  I_INTERFACE .. I_VALUE to support this.

* Add tagged ("z") 2,3,4,5 tuples.  Because they are tagged, they can't
  be confused with lists, etc.  Selectors zfst, zsnd ... zsel45, zsel55
  check tags first.  Iface processing uses z-tuples wherever it can.

* Add unap as a safe "inverse" of ap; it checks tags.  So
  unap(TAG1, ap(TAG2,cell)) == cell but only if TAG1==TAG2, else
  assertion failure.

* In interface.c, clean up the startGHC*/endGHC* functions.
  processInterfaces() is the top-level driver; it makes 4
  passes over the supplied iface trees.

* Throw away iface symbols not mentioned in export lists.

* Use iface export lists to construct both the export and
  eval environments for a module.

* Don't use Texts to refer to things.  Instead use ConId and
  VarId.  Added ConId and VarId as synonyms for Cell in
  storage.h.

* Add findSimpleInstance in storage.c.

24 years ago[project @ 1999-12-10 15:50:10 by simonmar]
simonmar [Fri, 10 Dec 1999 15:50:10 +0000 (15:50 +0000)]
[project @ 1999-12-10 15:50:10 by simonmar]
Unbreak finalization.

24 years ago[project @ 1999-12-10 12:33:12 by simonpj]
simonpj [Fri, 10 Dec 1999 12:33:12 +0000 (12:33 +0000)]
[project @ 1999-12-10 12:33:12 by simonpj]
I was too enthusiastic about removing empty usage entries
from interface files.  This commit fixes my errors of yesterday.

Simon

24 years ago[project @ 1999-12-09 16:45:57 by simonmar]
simonmar [Thu, 9 Dec 1999 16:45:57 +0000 (16:45 +0000)]
[project @ 1999-12-09 16:45:57 by simonmar]
allow certain keywords as scc labels.

24 years ago[project @ 1999-12-09 14:40:07 by simonmar]
simonmar [Thu, 9 Dec 1999 14:40:07 +0000 (14:40 +0000)]
[project @ 1999-12-09 14:40:07 by simonmar]
eliminate recursive defn: HC <--> WithGhcHc

24 years ago[project @ 1999-12-09 12:30:56 by simonpj]
simonpj [Thu, 9 Dec 1999 12:31:02 +0000 (12:31 +0000)]
[project @ 1999-12-09 12:30:56 by simonpj]
A bunch of small changes in the way that usage information
is generated to stuff into interface files.  I'm not certain
anything was really wrong before, but it's tidier now, and
there are slightly fewer dependencies generated.  Main
differences are in RnIfaces.getImportVersions

I also made the check for orphan rules a bit cleverer
(Rename.isOrphanDecl) so that we get fewer spurious orphan modules.

Simon

24 years ago[project @ 1999-12-09 11:25:44 by simonmar]
simonmar [Thu, 9 Dec 1999 11:25:45 +0000 (11:25 +0000)]
[project @ 1999-12-09 11:25:44 by simonmar]
Remove bogus #! lines.

Obtained-from: Michael Weber <michael.weber@post.rwth-aachen.de>

24 years ago[project @ 1999-12-09 11:24:05 by simonmar]
simonmar [Thu, 9 Dec 1999 11:24:05 +0000 (11:24 +0000)]
[project @ 1999-12-09 11:24:05 by simonmar]
cleanups & fixes

Obtained-from: Michael Weber <michael.weber@post.rwth-aachen.de>

24 years ago[project @ 1999-12-09 11:23:16 by simonmar]
simonmar [Thu, 9 Dec 1999 11:23:16 +0000 (11:23 +0000)]
[project @ 1999-12-09 11:23:16 by simonmar]
clean sgmlverb.c

Obtained-from: Michael Weber <michael.weber@post.rwth-aachen.de>

24 years ago[project @ 1999-12-09 11:22:48 by simonmar]
simonmar [Thu, 9 Dec 1999 11:22:48 +0000 (11:22 +0000)]
[project @ 1999-12-09 11:22:48 by simonmar]
recurse into libraries.

Obtained-from: Michael Weber <michael.weber@post.rwth-aachen.de>

24 years ago[project @ 1999-12-09 11:21:54 by simonmar]
simonmar [Thu, 9 Dec 1999 11:21:54 +0000 (11:21 +0000)]
[project @ 1999-12-09 11:21:54 by simonmar]
clean PrelGHC.hi in its various flavours.

Obtained-from: Michael Weber <michael.weber@post.rwth-aachen.de>

24 years ago[project @ 1999-12-08 15:47:06 by simonmar]
simonmar [Wed, 8 Dec 1999 15:47:08 +0000 (15:47 +0000)]
[project @ 1999-12-08 15:47:06 by simonmar]
misc ansification and -Wall cleanup

24 years ago[project @ 1999-12-08 14:21:52 by simonmar]
simonmar [Wed, 8 Dec 1999 14:22:00 +0000 (14:22 +0000)]
[project @ 1999-12-08 14:21:52 by simonmar]
Add Marc Van Dongen's Integer improvements.  Specifically:

- new primops: gcdInt#, gcdIntegerInt#, divExact#,
  quotInteger#, remInteger#.

- new definitions of quot and rem for Integer in
  PrelNum (using the new quotInteger# and remInteger#
  primops instead of quotRemInteger#).  Should be
  slightly faster than before.  div & mod aren't
  likewise optimised (yet).

- specialisations of gcd for Int and Integer, and
  lcm for Integer in PrelNum.

24 years ago[project @ 1999-12-08 14:14:32 by simonmar]
simonmar [Wed, 8 Dec 1999 14:14:32 +0000 (14:14 +0000)]
[project @ 1999-12-08 14:14:32 by simonmar]
- add test cases for my URI library
- add George Russell's tests for the TimeExts library

24 years ago[project @ 1999-12-08 14:04:32 by simonmar]
simonmar [Wed, 8 Dec 1999 14:04:32 +0000 (14:04 +0000)]
[project @ 1999-12-08 14:04:32 by simonmar]
oops, forgot to initialize bufStart in openStdFile.

24 years ago[project @ 1999-12-08 11:21:39 by simonmar]
simonmar [Wed, 8 Dec 1999 11:21:39 +0000 (11:21 +0000)]
[project @ 1999-12-08 11:21:39 by simonmar]
Fix bogon in rule for parser/hschooks.c

24 years ago[project @ 1999-12-08 10:10:59 by simonmar]
simonmar [Wed, 8 Dec 1999 10:11:01 +0000 (10:11 +0000)]
[project @ 1999-12-08 10:10:59 by simonmar]
New make variable: $(WithNofibHc) which defines the Haskell compiler
used to build nofib.

Define $(GHC_INPLACE) in fptools/mk/config.mk.in.  $(WithNofibHc) is
set to $(GHC_INPLACE) by default.

Fix $(MKDEPENDHS) in ghc/lib/std/Makefile.

24 years ago[project @ 1999-12-08 09:48:33 by simonmar]
simonmar [Wed, 8 Dec 1999 09:48:33 +0000 (09:48 +0000)]
[project @ 1999-12-08 09:48:33 by simonmar]
remove cut-n-pasteo

24 years ago[project @ 1999-12-07 15:52:40 by simonmar]
simonmar [Tue, 7 Dec 1999 15:52:40 +0000 (15:52 +0000)]
[project @ 1999-12-07 15:52:40 by simonmar]
Now that $(GHC) refers to an installed haskell compiler, use
$(GHC_INPLACE) to refer to the ghc in the build tree.

24 years ago[project @ 1999-12-07 15:50:13 by simonpj]
simonpj [Tue, 7 Dec 1999 15:50:13 +0000 (15:50 +0000)]
[project @ 1999-12-07 15:50:13 by simonpj]
Remove long-outdated AnalFBWW

24 years ago[project @ 1999-12-07 15:49:52 by simonmar]
simonmar [Tue, 7 Dec 1999 15:49:54 +0000 (15:49 +0000)]
[project @ 1999-12-07 15:49:52 by simonmar]
Now that $(GHC) means an installed copy of ghc, use $(GHC_INPLACE) to
refer to the ghc in the build tree.

24 years ago[project @ 1999-12-07 15:48:02 by simonpj]
simonpj [Tue, 7 Dec 1999 15:48:02 +0000 (15:48 +0000)]
[project @ 1999-12-07 15:48:02 by simonpj]
Add drvrun008

24 years ago[project @ 1999-12-07 15:43:40 by simonmar]
simonmar [Tue, 7 Dec 1999 15:43:42 +0000 (15:43 +0000)]
[project @ 1999-12-07 15:43:40 by simonmar]
Automatically detect installed copies of ghc, nhc and hbc and plug
them into the Makefile variables $(GHC), $(NHC) and $(HBC)
respectively.  $(HC) is now supposed to be a generic installed haskell
compiler, which defaults to $(GHC) and can be changed via ./configure
--with-hc=<blah>.

Reorganise and tidy up a few things in config.mk.in.

24 years ago[project @ 1999-12-07 15:03:08 by simonpj]
simonpj [Tue, 7 Dec 1999 15:03:09 +0000 (15:03 +0000)]
[project @ 1999-12-07 15:03:08 by simonpj]
Derived instances should use *source* types not *representation*
types when doing their deriving stuff.  This bug prevented

data F = F !Int deriving (Eq)

from working when -funbox-strict-fields was on

Simon

24 years ago[project @ 1999-12-07 14:46:31 by chak]
chak [Tue, 7 Dec 1999 14:46:32 +0000 (14:46 +0000)]
[project @ 1999-12-07 14:46:31 by chak]
Package local configuration scripts allow to modularise the configuration (we
start by having one for ghc):
* Modularised configuration avoids unnecessary dependencies for individual
  packages.
* Furthermore, package local configuration (such as entering version
  information into rpm .spec files) is possible.

24 years ago[project @ 1999-12-07 14:38:58 by chak]
chak [Tue, 7 Dec 1999 14:38:58 +0000 (14:38 +0000)]
[project @ 1999-12-07 14:38:58 by chak]
Of course, I had to get the name wrong - this has to be mangled by configure
(eg, to set the version number).

Also added dependency on gmp-devel (see discussion on glasgow-haskell-bugs).

24 years ago[project @ 1999-12-07 13:04:31 by panne]
panne [Tue, 7 Dec 1999 13:04:31 +0000 (13:04 +0000)]
[project @ 1999-12-07 13:04:31 by panne]
OK, don't say you haven't been warned: Sven "Larry W." Panne waved his
Perl-wand and changed a / / into /\s+/. This fixes the problem with
multiple spaces between {-# OPTIONS ... -#}, but still fails miserably
when quotes are used, e.g. {-# OPTIONS -#include "My Own Header.h" #-}.

24 years ago[project @ 1999-12-07 13:03:25 by chak]
chak [Tue, 7 Dec 1999 13:03:25 +0000 (13:03 +0000)]
[project @ 1999-12-07 13:03:25 by chak]
rpm build specifications in CVS are a first step to building packages
automatically from CVS (I test this with ghc, but support for the other
fptools components will follow)

24 years ago[project @ 1999-12-07 11:55:25 by sewardj]
sewardj [Tue, 7 Dec 1999 11:55:25 +0000 (11:55 +0000)]
[project @ 1999-12-07 11:55:25 by sewardj]
Increase default c-t heap from 300000 to 350000 cells for nofib/real/anna.

24 years ago[project @ 1999-12-07 11:49:09 by sewardj]
sewardj [Tue, 7 Dec 1999 11:49:11 +0000 (11:49 +0000)]
[project @ 1999-12-07 11:49:09 by sewardj]
Add i_ALLOC_CONSTR_big (== i_ALLOC_CONSTR with a 16-bit field
denoting offset of into table).  The large constant tables in
nofib/spectral/hartel/nucleic2 need this.

24 years ago[project @ 1999-12-07 11:36:40 by sewardj]
sewardj [Tue, 7 Dec 1999 11:36:40 +0000 (11:36 +0000)]
[project @ 1999-12-07 11:36:40 by sewardj]
Correctly detect saturated applications of tuples, following
recent change to Tuple machinery in Hugs.

24 years ago[project @ 1999-12-07 11:22:56 by sewardj]
sewardj [Tue, 7 Dec 1999 11:22:56 +0000 (11:22 +0000)]
[project @ 1999-12-07 11:22:56 by sewardj]
Remove unused machinery for computing the amount of heap a BCO will
allocate.  This isn't used because Hugs uses the allocate() mechanism
rather than allocating by advancing Hp.

24 years ago[project @ 1999-12-07 11:19:35 by simonmar]
simonmar [Tue, 7 Dec 1999 11:19:35 +0000 (11:19 +0000)]
[project @ 1999-12-07 11:19:35 by simonmar]
test $(IncludeTestDirsInBuild)

24 years ago[project @ 1999-12-07 11:16:53 by simonmar]
simonmar [Tue, 7 Dec 1999 11:16:53 +0000 (11:16 +0000)]
[project @ 1999-12-07 11:16:53 by simonmar]
80-columnify

24 years ago[project @ 1999-12-07 11:14:56 by sewardj]
sewardj [Tue, 7 Dec 1999 11:15:02 +0000 (11:15 +0000)]
[project @ 1999-12-07 11:14:56 by sewardj]
Don't create a new infotable for every constructor application.
Amazingly, that's what the codegen.c used to do.  It didn't generate
vast numbers of redundant infotables until recently, when I changed
translate.c to generate saturated constructor applications in line.
Prior to that, there was only ever one application of each constructor,
so the old scheme was ok.

Also, fix the assembler so that info table ptrs are commoned up.
Eg, for [1,2,3], store only one copy of the address of the (:) itbl,
rather than 3, in the BCO.

24 years ago[project @ 1999-12-06 22:52:26 by lewie]
lewie [Mon, 6 Dec 1999 22:52:28 +0000 (22:52 +0000)]
[project @ 1999-12-06 22:52:26 by lewie]
Fixed a FunDep leak in tcSimplifyToDicts (they weren't being filtered out),
and fixed bug in instance improvement (matching wasn't being done correctly
for polymorphic instances).

24 years ago[project @ 1999-12-06 16:47:07 by sewardj]
sewardj [Mon, 6 Dec 1999 16:47:09 +0000 (16:47 +0000)]
[project @ 1999-12-06 16:47:07 by sewardj]
Remove compile-time address space allocated to tuples, and remove all
references to TUPMIN.  I think I have fixed the address mapping for
when TREX is defined, but you never know.

24 years ago[project @ 1999-12-06 16:25:23 by sewardj]
sewardj [Mon, 6 Dec 1999 16:25:28 +0000 (16:25 +0000)]
[project @ 1999-12-06 16:25:23 by sewardj]
Remove Hugs' special treatment of tuples, and instead have them as
just another Tycon.  This is to make interworking with GHC simpler.

Put tuple entries in the Tycon table.  Modify isTycon, isTuple, tupleOf,
mkTuple and whatIs so that client code doesn't see any difference.
Add allocTupleTycon to manufacture tuple Tycon entries as startup.

24 years ago[project @ 1999-12-06 16:20:26 by sewardj]
sewardj [Mon, 6 Dec 1999 16:20:26 +0000 (16:20 +0000)]
[project @ 1999-12-06 16:20:26 by sewardj]
Only detect (# and #) as special tokens when parsing interface files.

24 years ago[project @ 1999-12-06 15:48:41 by simonpj]
simonpj [Mon, 6 Dec 1999 15:48:41 +0000 (15:48 +0000)]
[project @ 1999-12-06 15:48:41 by simonpj]
Add missing stdout file

24 years ago[project @ 1999-12-06 15:38:05 by simonpj]
simonpj [Mon, 6 Dec 1999 15:38:10 +0000 (15:38 +0000)]
[project @ 1999-12-06 15:38:05 by simonpj]
Some minor tidying-up that should remove an occurrence
of an empty Let Rec that confused CoreLint.dumpLoc.

Simon

24 years ago[project @ 1999-12-06 11:54:56 by simonpj]
simonpj [Mon, 6 Dec 1999 11:54:59 +0000 (11:54 +0000)]
[project @ 1999-12-06 11:54:56 by simonpj]
Fix a major bug in exporting unfoldings involving existentials.

Change core printing so that we put an '@' before type
variables in case patterns.  This only affects existentials.

case x of
  C @ a x y -> ...

Here 'a' is an existentially quantified type variable, and the
'@' signifies this.  We continue to omit kinds and type on case-bound
variables; the type checker can fill them in.

The reason for this change is that type variables and term variables
live in a different name space, so we need to know which name space
is  involved when binding one.  How this ever worked I will never know.

While I was at it, I also arranged that -ddump-rn prints out whatever
it has even if it finds errors.  Adding -dppr-debug prints even the
unfoldings on imported things.

Simon

24 years ago[project @ 1999-12-06 10:50:29 by simonpj]
simonpj [Mon, 6 Dec 1999 10:50:29 +0000 (10:50 +0000)]
[project @ 1999-12-06 10:50:29 by simonpj]
Change printDump so that it prints in user style by default.
This means that (eg) -ddump-simpl output is much more readable...
but you may get confused by variables that look the same but aren't.

To recover the previous behaviour use -dppr-debug

This change only affects compiler hackers; let me know if it
has any good or bad effects.

Simon

24 years ago[project @ 1999-12-04 21:47:33 by panne]
panne [Sat, 4 Dec 1999 21:47:33 +0000 (21:47 +0000)]
[project @ 1999-12-04 21:47:33 by panne]
Install an interface file for PrelGHC, too.

24 years ago[project @ 1999-12-04 17:34:48 by panne]
panne [Sat, 4 Dec 1999 17:34:48 +0000 (17:34 +0000)]
[project @ 1999-12-04 17:34:48 by panne]
fixIO versionitis

24 years ago[project @ 1999-12-04 15:17:42 by panne]
panne [Sat, 4 Dec 1999 15:17:42 +0000 (15:17 +0000)]
[project @ 1999-12-04 15:17:42 by panne]
Replaced $(H_FILES) $(H_CONFIG) with $(wildcard *.h), it seemed to be
a cut-n-paste bug from another Makefile where they are defined.

24 years ago[project @ 1999-12-03 18:17:29 by lewie]
lewie [Fri, 3 Dec 1999 18:17:33 +0000 (18:17 +0000)]
[project @ 1999-12-03 18:17:29 by lewie]
Extend getTyVarsToGen to take the closure of the set of tyvars
with respect to functional dependencies.  Really simple programs
using functional dependencies work now.  Also fixed a small glitch
where trivial (empty) FunDeps were being tossed into the context willy nilly.

24 years ago[project @ 1999-12-03 17:56:04 by sewardj]
sewardj [Fri, 3 Dec 1999 17:56:05 +0000 (17:56 +0000)]
[project @ 1999-12-03 17:56:04 by sewardj]
Remove some hooks into the Prelude which Hugs no longer needs to know about.

24 years ago[project @ 1999-12-03 17:01:20 by sewardj]
sewardj [Fri, 3 Dec 1999 17:01:26 +0000 (17:01 +0000)]
[project @ 1999-12-03 17:01:20 by sewardj]
More mods to interface file parsing:
* Strictness annotations in data decls
* Allow qualified names in a couple more places

24 years ago[project @ 1999-12-03 16:59:17 by simonmar]
simonmar [Fri, 3 Dec 1999 16:59:18 +0000 (16:59 +0000)]
[project @ 1999-12-03 16:59:17 by simonmar]
Add Andy Gill's Monad library into the build.

24 years ago[project @ 1999-12-03 16:17:42 by simonmar]
simonmar [Fri, 3 Dec 1999 16:17:44 +0000 (16:17 +0000)]
[project @ 1999-12-03 16:17:42 by simonmar]
Move fixST and fixIO out of the prelude.

24 years ago[project @ 1999-12-03 15:55:29 by chak]
chak [Fri, 3 Dec 1999 15:55:29 +0000 (15:55 +0000)]
[project @ 1999-12-03 15:55:29 by chak]
Corrected time stamp calculation for .hp files.

24 years ago[project @ 1999-12-03 14:38:39 by sewardj]
sewardj [Fri, 3 Dec 1999 14:38:39 +0000 (14:38 +0000)]
[project @ 1999-12-03 14:38:39 by sewardj]
Make the combined/standalone switch, +c/-c, work at all :-)

24 years ago[project @ 1999-12-03 12:39:38 by sewardj]
sewardj [Fri, 3 Dec 1999 12:39:48 +0000 (12:39 +0000)]
[project @ 1999-12-03 12:39:38 by sewardj]
Add initial support for loading GHC Prelude (doesn't work yet):

* Command line flag, +c/-c to start up in combined or standalone mode.
  In combined mode, looks for GHC's prelude in ghc/interpreter/GhcPrel
  (pro tem).

* Parse unboxed tuple types and usage annotations in interface files.

24 years ago[project @ 1999-12-03 12:36:08 by sewardj]
sewardj [Fri, 3 Dec 1999 12:36:08 +0000 (12:36 +0000)]
[project @ 1999-12-03 12:36:08 by sewardj]
Directory wibbles

24 years ago[project @ 1999-12-03 00:07:29 by lewie]
lewie [Fri, 3 Dec 1999 00:07:29 +0000 (00:07 +0000)]
[project @ 1999-12-03 00:07:29 by lewie]
Fergot the booties...

24 years ago[project @ 1999-12-03 00:03:06 by lewie]
lewie [Fri, 3 Dec 1999 00:03:10 +0000 (00:03 +0000)]
[project @ 1999-12-03 00:03:06 by lewie]
Basic functional dependency implementation.  Most notable change to be
aware of is that the datatype `Inst' now has a new constructor `FunDep'
used to track functional dependencies.  The FunDep predicates are filtered
out in tcSimplify* so that they don't escape.

24 years ago[project @ 1999-12-02 17:57:13 by simonmar]
simonmar [Thu, 2 Dec 1999 17:57:15 +0000 (17:57 +0000)]
[project @ 1999-12-02 17:57:13 by simonmar]
Change the convention for cost-centre labels to be <name>_cc and
cost-centre stacks to be <name>_ccs.  This makes cost-centre labels
more consistent with our other naming conventions, and fixes some
problems caused by cost-centre labels being misinterpreted by the
mangler.

This fixes one cause of profiled programs crashing; if you're seeing
this symptom then this patch may help.

24 years ago[project @ 1999-12-02 15:52:19 by simonmar]
simonmar [Thu, 2 Dec 1999 15:52:19 +0000 (15:52 +0000)]
[project @ 1999-12-02 15:52:19 by simonmar]
"compilation IS required" ===>  ""

24 years ago[project @ 1999-12-02 13:55:33 by simonmar]
simonmar [Thu, 2 Dec 1999 13:55:33 +0000 (13:55 +0000)]
[project @ 1999-12-02 13:55:33 by simonmar]
Relegate the "ignoring heap-size setting option..." messages to -v.

24 years ago[project @ 1999-12-02 13:43:07 by simonmar]
simonmar [Thu, 2 Dec 1999 13:43:07 +0000 (13:43 +0000)]
[project @ 1999-12-02 13:43:07 by simonmar]
Relegate the 'Out of date: <blah>' messages to -dshow-rn-trace, they
don't mean a great deal to the average punter.

24 years ago[project @ 1999-12-02 13:33:06 by simonmar]
simonmar [Thu, 2 Dec 1999 13:33:06 +0000 (13:33 +0000)]
[project @ 1999-12-02 13:33:06 by simonmar]
The infamous "NOTE: simplifier still going..." message is now
protected by #ifdef DEBUG.  It doesn't mean much to the average user,
and we tend to use DEBUG when hacking anyway.

24 years ago[project @ 1999-12-02 13:30:01 by simonmar]
simonmar [Thu, 2 Dec 1999 13:30:01 +0000 (13:30 +0000)]
[project @ 1999-12-02 13:30:01 by simonmar]
Only print out the module-version info messages when the -v flag is
on.

Something-similar-requested-ages-ago-by: Sven Panne

24 years ago[project @ 1999-12-02 13:24:05 by simonmar]
simonmar [Thu, 2 Dec 1999 13:24:05 +0000 (13:24 +0000)]
[project @ 1999-12-02 13:24:05 by simonmar]
Fix up code to print out the phase & signal number if one of the
compilation phases receives a signal.  The previous commit
accidentally sneaked in a non-working version of this stuff.

24 years ago[project @ 1999-12-02 09:52:41 by simonmar]
simonmar [Thu, 2 Dec 1999 09:52:41 +0000 (09:52 +0000)]
[project @ 1999-12-02 09:52:41 by simonmar]
add missing #include