ghc-hetmet.git
22 years ago[project @ 2001-08-22 15:39:30 by rrt]
rrt [Wed, 22 Aug 2001 15:39:30 +0000 (15:39 +0000)]
[project @ 2001-08-22 15:39:30 by rrt]
Remove spurious clarification. As far as the user is concerned, this
lot is right. However, I'll add a bit to the commentary about this
sorry mess.

22 years ago[project @ 2001-08-22 15:35:06 by simonpj]
simonpj [Wed, 22 Aug 2001 15:35:06 +0000 (15:35 +0000)]
[project @ 2001-08-22 15:35:06 by simonpj]
Fix bug in result type sigs, carelessly introduced by a recent change on my part

22 years ago[project @ 2001-08-22 15:27:08 by simonpj]
simonpj [Wed, 22 Aug 2001 15:27:08 +0000 (15:27 +0000)]
[project @ 2001-08-22 15:27:08 by simonpj]
Formatting only

22 years ago[project @ 2001-08-22 14:32:19 by sewardj]
sewardj [Wed, 22 Aug 2001 14:32:19 +0000 (14:32 +0000)]
[project @ 2001-08-22 14:32:19 by sewardj]
On sparc, create code to shuffle %i0 .. %i3 into %i2 .. %i5 before the
old code.  This is a GHASTLY HACK which at least makes f-x-dynamic on
sparc work for callees with up to 16 bytes (4 words) of args.

22 years ago[project @ 2001-08-22 12:24:41 by simonmar]
simonmar [Wed, 22 Aug 2001 12:25:32 +0000 (12:25 +0000)]
[project @ 2001-08-22 12:24:41 by simonmar]
Remove old test suite (subsumed by fptools/testsuite).

22 years ago[project @ 2001-08-22 11:45:06 by sewardj]
sewardj [Wed, 22 Aug 2001 11:45:06 +0000 (11:45 +0000)]
[project @ 2001-08-22 11:45:06 by sewardj]
Count comparisons and bomb about after 100, to avoid infinite loop
due to buggy f-x-dynamic implementation on sparc-solaris.

22 years ago[project @ 2001-08-22 11:13:19 by rrt]
rrt [Wed, 22 Aug 2001 11:13:19 +0000 (11:13 +0000)]
[project @ 2001-08-22 11:13:19 by rrt]
Clarify further.

22 years ago[project @ 2001-08-22 11:10:45 by rrt]
rrt [Wed, 22 Aug 2001 11:10:45 +0000 (11:10 +0000)]
[project @ 2001-08-22 11:10:45 by rrt]
Clarify -no-hs-main use (basically, only has any effect when the RTS
is in a DLL).

22 years ago[project @ 2001-08-22 11:02:37 by gla]
gla [Wed, 22 Aug 2001 11:02:37 +0000 (11:02 +0000)]
[project @ 2001-08-22 11:02:37 by gla]

22 years ago[project @ 2001-08-22 11:01:23 by gla]
gla [Wed, 22 Aug 2001 11:01:23 +0000 (11:01 +0000)]
[project @ 2001-08-22 11:01:23 by gla]
Reference.

22 years ago[project @ 2001-08-22 10:57:54 by gla]
gla [Wed, 22 Aug 2001 10:57:54 +0000 (10:57 +0000)]
[project @ 2001-08-22 10:57:54 by gla]
A sample for retainer profiling. nofib/real/cacheprof/

22 years ago[project @ 2001-08-22 10:53:23 by gla]
gla [Wed, 22 Aug 2001 10:53:23 +0000 (10:53 +0000)]
[project @ 2001-08-22 10:53:23 by gla]
eepic files created from fig files.

22 years ago[project @ 2001-08-22 10:52:44 by gla]
gla [Wed, 22 Aug 2001 10:52:44 +0000 (10:52 +0000)]
[project @ 2001-08-22 10:52:44 by gla]

22 years ago[project @ 2001-08-22 10:51:57 by gla]
gla [Wed, 22 Aug 2001 10:51:57 +0000 (10:51 +0000)]
[project @ 2001-08-22 10:51:57 by gla]
A document on the implementation of retainer profiling.
Focuses on the major issues to be considered for the implemetation on the GHC
runtime system.
Also includes a brief user guide.
Gives the details on which files were modified for the implementation.

The idea of retainer profiling appears in the following paper:
`New dimensions in heap profiling'
Colin Runciman and Niklas Rojemo, 1994.

22 years ago[project @ 2001-08-22 10:48:51 by gla]
gla [Wed, 22 Aug 2001 10:48:51 +0000 (10:48 +0000)]
[project @ 2001-08-22 10:48:51 by gla]
A document on the implementation of Lag/Drag/Void/Use profiling.
Focuses on the major issues to be considered for the implementation.
Also includes a brief user guide.
Gives the details on which files were modified.

The idea is based upon the following paper:
`Lag, drag, void and use - heap profiling and space-efficeint compilation revisited'
Niklas Rojemo and Colin Runciman, ICFP '96.

22 years ago[project @ 2001-08-22 10:44:43 by gla]
gla [Wed, 22 Aug 2001 10:44:43 +0000 (10:44 +0000)]
[project @ 2001-08-22 10:44:43 by gla]
Reorganized all the sections and rewrote most of the contents.
Now describes the actual implementation, not the implementation strategy, which
was the case in the previous version.
Based on the GHC 5.01, and removed all obsolete parts.

Divides the storage manager into four parts: megablock allocator, block allocator,
heap allocator, and garbage collector.
Gives the details of the garbage collector, which should be sufficient for those
who want to analyze its implementation.

22 years ago[project @ 2001-08-22 10:00:51 by simonpj]
simonpj [Wed, 22 Aug 2001 10:00:51 +0000 (10:00 +0000)]
[project @ 2001-08-22 10:00:51 by simonpj]
-------------------------
Fix a demand-analyser bug
-------------------------

This bug led to "entered absent arg" errors.
The fix is in DmdAnal.dmdTransform

-- Important!  If we Keep the constructor application, then
-- we need the demands the constructor places (usually lazy)
-- If not, we don't need to.  For example:
-- f p@(x,y) = (p,y) -- S(AL)
-- g a b     = f (a,b)
-- It's vital that we don't calculate Absent for a!

22 years ago[project @ 2001-08-22 09:47:37 by rrt]
rrt [Wed, 22 Aug 2001 09:47:37 +0000 (09:47 +0000)]
[project @ 2001-08-22 09:47:37 by rrt]
Point out that -no-hs-main doesn't have any effect unless you're
building DLLs.

22 years ago[project @ 2001-08-21 16:18:35 by simonmar]
simonmar [Tue, 21 Aug 2001 16:18:35 +0000 (16:18 +0000)]
[project @ 2001-08-21 16:18:35 by simonmar]
Update output.

All these tests now work with the current sources, after exposing
several bugs.  Tests are great.

22 years ago[project @ 2001-08-21 16:04:43 by simonmar]
simonmar [Tue, 21 Aug 2001 16:04:43 +0000 (16:04 +0000)]
[project @ 2001-08-21 16:04:43 by simonmar]
Oops, I bungled the -no-recomp fix.  This probably had something to do
with the fact that -no-recomp is perhaps the worst-named option in the
history of compilers, and the internal variable used to store the
value of -no-recomp actually stores (not -no-recomp), perhaps in an
attempt to reverse the confusion generated by the obsurely named
option.  In the end I figured I had a 50/50 chance of getting it
right...

22 years ago[project @ 2001-08-21 15:54:22 by simonmar]
simonmar [Tue, 21 Aug 2001 15:54:22 +0000 (15:54 +0000)]
[project @ 2001-08-21 15:54:22 by simonmar]
Look for the source file first, so we don't miss it if there's an hi
file in the current directory.

22 years ago[project @ 2001-08-21 15:22:09 by sewardj]
sewardj [Tue, 21 Aug 2001 15:22:09 +0000 (15:22 +0000)]
[project @ 2001-08-21 15:22:09 by sewardj]
Handle the R_SPARC_UA32 relocation type, as reported by Armin
Groesslinger.

/* According to the Sun documentation:
   R_SPARC_UA32
   This relocation type resembles R_SPARC_32, except it refers to an
   unaligned word. That is, the word to be relocated must be treated
   as four separate bytes with arbitrary alignment, not as a word
   aligned according to the architecture requirements.

   (JRS: which means that freeloading on the R_SPARC_32 case
   is probably wrong, but hey ...)
*/

22 years ago[project @ 2001-08-21 14:45:13 by simonmar]
simonmar [Tue, 21 Aug 2001 14:45:13 +0000 (14:45 +0000)]
[project @ 2001-08-21 14:45:13 by simonmar]
update output

22 years ago[project @ 2001-08-21 14:44:42 by simonmar]
simonmar [Tue, 21 Aug 2001 14:44:42 +0000 (14:44 +0000)]
[project @ 2001-08-21 14:44:42 by simonmar]
Test various forms of :info

22 years ago[project @ 2001-08-21 14:44:22 by simonmar]
simonmar [Tue, 21 Aug 2001 14:44:22 +0000 (14:44 +0000)]
[project @ 2001-08-21 14:44:22 by simonmar]
Test that System.exitWith doesn't kill the interpreter

22 years ago[project @ 2001-08-21 14:38:04 by sewardj]
sewardj [Tue, 21 Aug 2001 14:38:04 +0000 (14:38 +0000)]
[project @ 2001-08-21 14:38:04 by sewardj]
Go back to using a relative path name for the config.h include.
This is for the same reason that we do so in ghc/compiler/*, which
is that saying -I$(GHC_INCLUDE_DIR) confuses 4.08 series compilers.

22 years ago[project @ 2001-08-21 14:35:37 by simonmar]
simonmar [Tue, 21 Aug 2001 14:35:37 +0000 (14:35 +0000)]
[project @ 2001-08-21 14:35:37 by simonmar]
Make local bindings work on the GHCi command line again.

22 years ago[project @ 2001-08-21 14:34:58 by simonmar]
simonmar [Tue, 21 Aug 2001 14:34:58 +0000 (14:34 +0000)]
[project @ 2001-08-21 14:34:58 by simonmar]
make -no-recomp work with --make

22 years ago[project @ 2001-08-21 14:34:25 by simonmar]
simonmar [Tue, 21 Aug 2001 14:34:25 +0000 (14:34 +0000)]
[project @ 2001-08-21 14:34:25 by simonmar]
comment reformatting only

22 years ago[project @ 2001-08-21 13:21:39 by simonpj]
simonpj [Tue, 21 Aug 2001 13:21:39 +0000 (13:21 +0000)]
[project @ 2001-08-21 13:21:39 by simonpj]
-----------------------
Fix a tyvar scoping bug
-----------------------

This program:

data T = forall a. T a (a->Int)

f :: T -> T
f (T (x::a) f) = T (undefined::a) f

gave the error

    Inferred type is less polymorphic than expected
    Quantified type variable `a' is unified with another quantified type variable `a'
    When checking a pattern that binds f :: a -> Int
    In the definition of `f': f (T (x :: a) f) = T (undefined :: a) f

This is of course bogus.  The fix is in TcMatches.tcMatchPats, where the
in-scope tyvars should be un-extended before calling tcCheckExistentialPat.

22 years ago[project @ 2001-08-21 13:15:05 by simonmar]
simonmar [Tue, 21 Aug 2001 13:15:05 +0000 (13:15 +0000)]
[project @ 2001-08-21 13:15:05 by simonmar]
Use -ignore-dot-ghci for the GHCi tests.

22 years ago[project @ 2001-08-21 13:14:51 by rrt]
rrt [Tue, 21 Aug 2001 13:14:51 +0000 (13:14 +0000)]
[project @ 2001-08-21 13:14:51 by rrt]
Fix include of config.h

22 years ago[project @ 2001-08-21 12:56:05 by simonpj]
simonpj [Tue, 21 Aug 2001 12:56:06 +0000 (12:56 +0000)]
[project @ 2001-08-21 12:56:05 by simonpj]
Further corrections to type validity checking

22 years ago[project @ 2001-08-21 10:12:02 by sewardj]
sewardj [Tue, 21 Aug 2001 10:12:02 +0000 (10:12 +0000)]
[project @ 2001-08-21 10:12:02 by sewardj]
Teach it about MUT_VAR.

22 years ago[project @ 2001-08-21 10:03:04 by simonmar]
simonmar [Tue, 21 Aug 2001 10:03:04 +0000 (10:03 +0000)]
[project @ 2001-08-21 10:03:04 by simonmar]
Another case of parenthesising operator names, this time in a ConDecl.

22 years ago[project @ 2001-08-21 10:00:22 by simonpj]
simonpj [Tue, 21 Aug 2001 10:00:22 +0000 (10:00 +0000)]
[project @ 2001-08-21 10:00:22 by simonpj]
wibbles

22 years ago[project @ 2001-08-21 09:59:33 by simonpj]
simonpj [Tue, 21 Aug 2001 09:59:33 +0000 (09:59 +0000)]
[project @ 2001-08-21 09:59:33 by simonpj]
Fix tycon assert failure

22 years ago[project @ 2001-08-21 09:36:15 by simonmar]
simonmar [Tue, 21 Aug 2001 09:36:15 +0000 (09:36 +0000)]
[project @ 2001-08-21 09:36:15 by simonmar]
document the requirement for source files in --make.

22 years ago[project @ 2001-08-21 09:32:26 by simonmar]
simonmar [Tue, 21 Aug 2001 09:32:26 +0000 (09:32 +0000)]
[project @ 2001-08-21 09:32:26 by simonmar]
document the requirement for source files in :load.

22 years ago[project @ 2001-08-21 09:25:48 by simonmar]
simonmar [Tue, 21 Aug 2001 09:25:48 +0000 (09:25 +0000)]
[project @ 2001-08-21 09:25:48 by simonmar]
Accept The Truth and disallow loading any home modules which don't
have a source file.

The reason is that the compilation manager can't figure out
dependencies unless it has the source file to browse through -
previously there was a half-hearted attempt to let you get away with
just an object + interface file, but it didn't work in general.
Better just to disallow it altogether.

Note that this applies to --make too.

22 years ago[project @ 2001-08-21 09:04:22 by rrt]
rrt [Tue, 21 Aug 2001 09:04:22 +0000 (09:04 +0000)]
[project @ 2001-08-21 09:04:22 by rrt]
Remove unused function isSlash

22 years ago[project @ 2001-08-21 09:03:32 by rrt]
rrt [Tue, 21 Aug 2001 09:03:32 +0000 (09:03 +0000)]
[project @ 2001-08-21 09:03:32 by rrt]
Fix ghc-pkg to find package.conf when installed on Windows

22 years ago[project @ 2001-08-21 08:59:41 by simonmar]
simonmar [Tue, 21 Aug 2001 08:59:41 +0000 (08:59 +0000)]
[project @ 2001-08-21 08:59:41 by simonmar]
Add a case so that tyConTheta works for tuples (made this change
earlier but forgot to commit it - it fixes the panic when you do :info
() in GHCi).

22 years ago[project @ 2001-08-21 08:53:22 by simonmar]
simonmar [Tue, 21 Aug 2001 08:53:22 +0000 (08:53 +0000)]
[project @ 2001-08-21 08:53:22 by simonmar]
Allow renameFile to rename dangling symlinks.  We use lstat, but check
for HAVE_LSTAT first.

22 years ago[project @ 2001-08-20 16:50:13 by simonpj]
simonpj [Mon, 20 Aug 2001 16:50:13 +0000 (16:50 +0000)]
[project @ 2001-08-20 16:50:13 by simonpj]
-------------------------------------
Make NOINLINE zap the strictness info
-------------------------------------

Make a NOINLINE pragma zap strictness information.
Reasons given in the WorkWrap comment:

-- Furthermore, zap the strictess info in the Id.  Why?  Because
-- the NOINLINE says "don't expose any of the inner workings at the call
-- site" and the strictness is certainly an inner working.
--
-- More concretely, the demand analyser discovers the following strictness
-- for unsafePerformIO:  C(U(AV))
-- But then consider
-- unsafePerformIO (\s -> let r = f x in
--        case writeIORef v r s of (# s1, _ #) ->
--        (# s1, r #)
-- The strictness analyser will find that the binding for r is strict,
-- (becuase of uPIO's strictness sig), and so it'll evaluate it before
-- doing the writeIORef.  This actually makes tests/lib/should_run/memo002
-- get a deadlock!
--
-- Solution: don't expose the strictness of unsafePerformIO.

This fixes the memo002 deadlock.

22 years ago[project @ 2001-08-20 16:48:50 by simonpj]
simonpj [Mon, 20 Aug 2001 16:48:50 +0000 (16:48 +0000)]
[project @ 2001-08-20 16:48:50 by simonpj]
Add assertion

22 years ago[project @ 2001-08-20 16:17:17 by simonmar]
simonmar [Mon, 20 Aug 2001 16:17:17 +0000 (16:17 +0000)]
[project @ 2001-08-20 16:17:17 by simonmar]
- be more informative about primitive types: they are identified as
  such, and a declaration is printed out as if the thing was an
  abstract data type (this at least tells you what the arity of the
  tycon is).

- print 'infix 4 elem' as 'infix 4 `elem`'.

22 years ago[project @ 2001-08-20 16:15:34 by simonmar]
simonmar [Mon, 20 Aug 2001 16:15:34 +0000 (16:15 +0000)]
[project @ 2001-08-20 16:15:34 by simonmar]
Do something vaguely useful in ifaceTyCls when presented with a
primitive type constructor.  We pretend it's an abstract data type for
now.

22 years ago[project @ 2001-08-20 14:57:42 by sof]
sof [Mon, 20 Aug 2001 14:57:42 +0000 (14:57 +0000)]
[project @ 2001-08-20 14:57:42 by sof]
sigemptyset: may be implemented as a macro on some plats,
so wrap it up in an inline function to get the C types
right. (Thomas Nordin, using OpenBSD, spotted this one).

22 years ago[project @ 2001-08-20 14:44:05 by simonmar]
simonmar [Mon, 20 Aug 2001 14:44:05 +0000 (14:44 +0000)]
[project @ 2001-08-20 14:44:05 by simonmar]
This StablePtr test is old, most of the features it uses are
deprecated and have been replaced by newer mechanisms (eg. foreign
export) which is tested elsewhere.

22 years ago[project @ 2001-08-20 14:18:30 by simonpj]
simonpj [Mon, 20 Aug 2001 14:18:30 +0000 (14:18 +0000)]
[project @ 2001-08-20 14:18:30 by simonpj]
Amplify comment on mkMachInt a little

22 years ago[project @ 2001-08-20 14:10:02 by simonmar]
simonmar [Mon, 20 Aug 2001 14:10:02 +0000 (14:10 +0000)]
[project @ 2001-08-20 14:10:02 by simonmar]
Remove the in-range assertions on mkMachInt/mkMachWord.  They clearly
aren't true, because there's nothing stopping you from writing an
out-of-range Int# literal (although that's the only way I can see for
these to arise).

The wider issue is what should be done about out-of-range Int#
literals; I vaguely remember that at some point we disallowed them,
but I can't find anything in the logs.  The case which triggered the
assertion, namely "intToWord# 0xffff0000" would appear to be a
legitimate use for an out-of-range Int# literal though, given that
you can't write Word# literals directly.

22 years ago[project @ 2001-08-20 13:43:18 by sewardj]
sewardj [Mon, 20 Aug 2001 13:43:18 +0000 (13:43 +0000)]
[project @ 2001-08-20 13:43:18 by sewardj]
I have braved the insanity of the Sparc calling conventions and lived
to tell the tale.  This commit adds support for foreign import
{static,dynamic} for Sparc in GHCi.

22 years ago[project @ 2001-08-20 13:18:17 by simonmar]
simonmar [Mon, 20 Aug 2001 13:18:17 +0000 (13:18 +0000)]
[project @ 2001-08-20 13:18:17 by simonmar]
Commit a new autoheader-generated version of this file.

22 years ago[project @ 2001-08-20 13:17:06 by simonmar]
simonmar [Mon, 20 Aug 2001 13:17:06 +0000 (13:17 +0000)]
[project @ 2001-08-20 13:17:06 by simonmar]
It isn't necessary to put HAVE_DLOPEN in here, autoheader can figure
that out for itself.

22 years ago[project @ 2001-08-20 13:15:52 by simonmar]
simonmar [Mon, 20 Aug 2001 13:15:52 +0000 (13:15 +0000)]
[project @ 2001-08-20 13:15:52 by simonmar]
dunno what DATA_SECTION_WIBBLE is supposed to be, but it doesn't
appear anywhere else in the source tree so I'm removing it.

22 years ago[project @ 2001-08-20 13:15:04 by simonmar]
simonmar [Mon, 20 Aug 2001 13:15:04 +0000 (13:15 +0000)]
[project @ 2001-08-20 13:15:04 by simonmar]
check for lstat()

22 years ago[project @ 2001-08-20 12:36:10 by chak]
chak [Mon, 20 Aug 2001 12:36:10 +0000 (12:36 +0000)]
[project @ 2001-08-20 12:36:10 by chak]
Added two links to CVS

22 years ago[project @ 2001-08-20 11:00:18 by simonpj]
simonpj [Mon, 20 Aug 2001 11:00:18 +0000 (11:00 +0000)]
[project @ 2001-08-20 11:00:18 by simonpj]
Remove the identity-substitution "optimisation" from zip_ty_env.

-- There used to be a special case for when
-- ty == TyVarTy tv
-- (a not-uncommon case) in which case the substitution was dropped.
-- But the type-tidier changes the print-name of a type variable without
-- changing the unique, and that led to a bug.   Why?  Pre-tidying, we had
-- a type {Foo t}, where Foo is a one-method class.  So Foo is really a newtype.
-- And it happened that t was the type variable of the class.  Post-tiding,
-- it got turned into {Foo t2}.  The ext-core printer expanded this using
-- sourceTypeRep, but that said "Oh, t == t2" because they have the same unique,
-- and so generated a rep type mentioning t not t2.
--
-- Simplest fix is to nuke the "optimisation"

22 years ago[project @ 2001-08-20 10:20:34 by simonmar]
simonmar [Mon, 20 Aug 2001 10:20:34 +0000 (10:20 +0000)]
[project @ 2001-08-20 10:20:34 by simonmar]
Now copes with more forms of identifiers, as suggested by Marcin.

22 years ago[project @ 2001-08-20 10:19:47 by simonmar]
simonmar [Mon, 20 Aug 2001 10:19:47 +0000 (10:19 +0000)]
[project @ 2001-08-20 10:19:47 by simonmar]
Add a new entry point: parseIdentifier, which parses a qualified or
non-qualified operator or variable, including parenthesised and
backquoted forms, and the special identifiers [], (), (,), (,,) etc.

22 years ago[project @ 2001-08-20 08:17:38 by simonpj]
simonpj [Mon, 20 Aug 2001 08:17:38 +0000 (08:17 +0000)]
[project @ 2001-08-20 08:17:38 by simonpj]
Fix (another) "missing instnace" bug in the renamer.
This one interacted with the interactive loop in ghci.

22 years ago[project @ 2001-08-20 07:54:33 by simonpj]
simonpj [Mon, 20 Aug 2001 07:54:33 +0000 (07:54 +0000)]
[project @ 2001-08-20 07:54:33 by simonpj]
Improve error messages from the typechecker,
after a suggestion from Alastair Reid.

22 years ago[project @ 2001-08-20 07:48:36 by simonpj]
simonpj [Mon, 20 Aug 2001 07:48:36 +0000 (07:48 +0000)]
[project @ 2001-08-20 07:48:36 by simonpj]
Trim import lists

22 years ago[project @ 2001-08-20 07:48:05 by simonpj]
simonpj [Mon, 20 Aug 2001 07:48:05 +0000 (07:48 +0000)]
[project @ 2001-08-20 07:48:05 by simonpj]
Print implicit-parameter bindings properly

22 years ago[project @ 2001-08-19 20:14:22 by sof]
sof [Sun, 19 Aug 2001 20:14:22 +0000 (20:14 +0000)]
[project @ 2001-08-19 20:14:22 by sof]
Nuke uses of LEADING_UNDERSCORE; use Config.cLeadingUnderscore instead.

22 years ago[project @ 2001-08-18 11:55:48 by qrczak]
qrczak [Sat, 18 Aug 2001 11:55:48 +0000 (11:55 +0000)]
[project @ 2001-08-18 11:55:48 by qrczak]
Use char * instead of void * for pointer arithmetic.

22 years ago[project @ 2001-08-18 01:15:36 by sof]
sof [Sat, 18 Aug 2001 01:15:36 +0000 (01:15 +0000)]
[project @ 2001-08-18 01:15:36 by sof]
Don't use a hardwired tmpdir, consult TMP and TEMP (via GetTempPath()).

22 years ago[project @ 2001-08-17 22:29:06 by sof]
sof [Fri, 17 Aug 2001 22:29:06 +0000 (22:29 +0000)]
[project @ 2001-08-17 22:29:06 by sof]
Add -I$(GHC_INCLUDE_DIR) to SRC_MKDEPENDHS_OPTS; ghc-4.0x
needs this since 'mkdependHS' also chases #includes.

Not an issue with ghc-5.xx's dep-generator, since it invokes
CPP prior to gathering up the imports.

This should bring ghc-4.08-based nightly builds back to life.

22 years ago[project @ 2001-08-17 17:18:51 by apt]
apt [Fri, 17 Aug 2001 17:18:54 +0000 (17:18 +0000)]
[project @ 2001-08-17 17:18:51 by apt]
How I spent my summer vacation.

Primops
-------

The format of the primops.txt.pp file has been enhanced to allow
(latex-style) primop descriptions to be included.  There is a new flag
to genprimopcode that generates documentation including these
descriptions. A first cut at descriptions of the more interesting
primops has been made, and the file has been reordered a bit.

31-bit words
------------

The front end now can cope with the possibility of 31-bit (or even 30-bit)
Int# and Word# types.  The only current use of this is to generate
external .core files that can be translated into OCAML source files
(OCAML uses a one-bit tag to distinguish integers from pointers).
The only way to get this right now is by hand-defining the preprocessor
symbol WORD_SIZE_IN_BITS, which is normally set automatically from
the familiar WORD_SIZE_IN_BYTES.

Just in case 31-bit words are used, we now have Int32# and Word32# primitive types
and an associated family of operators, paralleling the existing 64-bit
stuff.  Of course, none of the operators actually need to be implemented
in the absence of a 31-bit backend.
There has also been some minor re-jigging of the 32 vs. 64 bit stuff.
See the description at the top of primops.txt.pp file for more details.
Note that, for the first time, the *type* of a primop can now depend
on the target word size.

Also, the family of primops intToInt8#, intToInt16#, etc.
have been renamed narrow8Int#, narrow16Int#, etc., to emphasize
that they work on Int#'s and don't actually convert between types.

Addresses
---------

As another part of coping with the possibility of 31-bit ints,
the addr2Int# and int2Addr# primops are now thoroughly deprecated
(and not even defined in the 31-bit case) and all uses
of them have been removed except from the (deprecated) module
hslibs/lang/Addr

Addr# should now be treated as a proper abstract type, and has these suitable operators:

nullAddr# : Int# -> Addr# (ignores its argument; nullary primops cause problems at various places)
plusAddr# :  Addr# -> Int# -> Addr#
minusAddr : Addr# -> Addr# -> Int#
remAddr# : Addr# -> Int# -> Int#

Obviously, these don't allow completely arbitrary offsets if 31-bit ints are
in use, but they should do for all practical purposes.

It is also still possible to generate an address constant, and there is a built-in rule
that makes use of this to remove the nullAddr# calls.

Misc
----
There is a new compile flag -fno-code that causes GHC to quit after generating .hi files
and .core files (if requested) but before generating STG.

Z-encoded names for tuples have been rationalized; e.g.,
Z3H now means an unboxed 3-tuple, rather than an unboxed
tuple with 3 commas (i.e., a 4-tuple)!

Removed misc. litlits in hslibs/lang

Misc. small changes to external core format.  The external core description
has also been substantially updated, and incorporates the automatically-generated
primop documentation; its in the repository at /papers/ext-core/core.tex.

A little make-system addition to allow passing CPP options to compiler and
library builds.

22 years ago[project @ 2001-08-17 16:06:30 by sof]
sof [Fri, 17 Aug 2001 16:06:30 +0000 (16:06 +0000)]
[project @ 2001-08-17 16:06:30 by sof]
- have SysTools.FileOption take a prefix that is not to be transformed
  (this is to accommodate MS-style cmd-line options of the kind: "/out=foo.obj")
- have users of Finder.mkHomeModuleLocn catch up with recent change to its type.

22 years ago[project @ 2001-08-17 15:46:54 by simonmar]
simonmar [Fri, 17 Aug 2001 15:46:54 +0000 (15:46 +0000)]
[project @ 2001-08-17 15:46:54 by simonmar]
bugfix for -G1

22 years ago[project @ 2001-08-17 14:44:54 by simonmar]
simonmar [Fri, 17 Aug 2001 14:44:54 +0000 (14:44 +0000)]
[project @ 2001-08-17 14:44:54 by simonmar]
fix a profiling bug: the cost centre stack in a raise_closure wasn't
being initialised.

22 years ago[project @ 2001-08-17 12:56:55 by simonmar]
simonmar [Fri, 17 Aug 2001 12:56:55 +0000 (12:56 +0000)]
[project @ 2001-08-17 12:56:55 by simonmar]
The .hi file wasn't tracking the module name (my fault).  Fix it.

22 years ago[project @ 2001-08-17 12:43:24 by sewardj]
sewardj [Fri, 17 Aug 2001 12:43:24 +0000 (12:43 +0000)]
[project @ 2001-08-17 12:43:24 by sewardj]
On 4.08.X compilers, just make rawSystem be System.system.  This is
so we can still build stage1s with 4.08.X.  It won't work on Win32
but the minimum compiler to build a stage1 for Win32 is 5.01 AFAICS.

22 years ago[project @ 2001-08-17 11:20:00 by rrt]
rrt [Fri, 17 Aug 2001 11:20:00 +0000 (11:20 +0000)]
[project @ 2001-08-17 11:20:00 by rrt]
Add rules for way "i" for maing libraries, so that a DLL rather than a .a
gets built, and with al rather than ld.

22 years ago[project @ 2001-08-17 11:14:28 by rrt]
rrt [Fri, 17 Aug 2001 11:14:28 +0000 (11:14 +0000)]
[project @ 2001-08-17 11:14:28 by rrt]
std.dll now gets made by target.mk rules

22 years ago[project @ 2001-08-17 11:13:04 by rrt]
rrt [Fri, 17 Aug 2001 11:13:04 +0000 (11:13 +0000)]
[project @ 2001-08-17 11:13:04 by rrt]
Add a dummy function _ErrorHdrHook to return the address of ErrorHdrHook.
Dunno how this ever compiled before. Maybe this is just a special Friday
effect. Maybe I shouldn't be committing stuff today. Maybe I should just
give up now.

22 years ago[project @ 2001-08-17 11:08:01 by simonmar]
simonmar [Fri, 17 Aug 2001 11:08:01 +0000 (11:08 +0000)]
[project @ 2001-08-17 11:08:01 by simonmar]
don't include <string.h> here, HsStd.h is the right place.

22 years ago[project @ 2001-08-17 11:06:58 by simonmar]
simonmar [Fri, 17 Aug 2001 11:06:58 +0000 (11:06 +0000)]
[project @ 2001-08-17 11:06:58 by simonmar]
include <string.h>

22 years ago[project @ 2001-08-17 10:10:15 by rrt]
rrt [Fri, 17 Aug 2001 10:10:15 +0000 (10:10 +0000)]
[project @ 2001-08-17 10:10:15 by rrt]
Use EXCLUDED_SRCS to handle ilxstubs.c

22 years ago[project @ 2001-08-17 08:35:24 by rrt]
rrt [Fri, 17 Aug 2001 08:35:24 +0000 (08:35 +0000)]
[project @ 2001-08-17 08:35:24 by rrt]
Make sure std is compiled with -fvia-C (NCG can't cope)

22 years ago[project @ 2001-08-17 00:17:55 by sof]
sof [Fri, 17 Aug 2001 00:17:55 +0000 (00:17 +0000)]
[project @ 2001-08-17 00:17:55 by sof]
SRC_CC_OPTS: add GHC_{INCLUDE,RUNTIME}_DIR to include path

22 years ago[project @ 2001-08-17 00:14:49 by sof]
sof [Fri, 17 Aug 2001 00:14:49 +0000 (00:14 +0000)]
[project @ 2001-08-17 00:14:49 by sof]
Get rid of (harmless) CPP warnings

22 years ago[project @ 2001-08-16 22:54:24 by sof]
sof [Thu, 16 Aug 2001 22:54:25 +0000 (22:54 +0000)]
[project @ 2001-08-16 22:54:24 by sof]
Death to GHC_INCLUDE_DIR (well, almost).

- mk/target.mk: get rid off the abomination of having SRC_CC_OPTS include
  GHC_INCLUDE_DIR and GHC_RUNTIME_DIR for all fptools/ projects.
- mk/suffix.mk: %.pp suffix rule no longer hardwires in the use of GHC_INCLUDE_DIR;
  just $(CPP_OPTS). ==> If you want GHC_INCLUDE_DIR on the include path, better
  add it to SRC_CPP_OPTS (say) at the point where you need it (ghc/compiler/Makefile
  and ghc/lib/std/Makefile do this now).
- wipe out the use of -I$(GHC_INCLUDE_DIR) in HC_OPTS in hslibs/; not needed.
- hslibs/mk/boilerplate.mk still define GHC_{IO_}INCLUDE_DIR for the purpose
  of using it when compiling .c files. It should be possible to get rid off it
  by having CC=$(HC), but I haven't imposed that change (yet).

22 years ago[project @ 2001-08-16 15:24:05 by rrt]
rrt [Thu, 16 Aug 2001 15:24:05 +0000 (15:24 +0000)]
[project @ 2001-08-16 15:24:05 by rrt]
Dunno how this got here

22 years ago[project @ 2001-08-16 14:43:59 by rrt]
rrt [Thu, 16 Aug 2001 14:43:59 +0000 (14:43 +0000)]
[project @ 2001-08-16 14:43:59 by rrt]
Update ILX tool functions to use Option and OptionFile

22 years ago[project @ 2001-08-16 14:41:40 by rrt]
rrt [Thu, 16 Aug 2001 14:41:40 +0000 (14:41 +0000)]
[project @ 2001-08-16 14:41:40 by rrt]
Remove spurious duplicate rule for PrelGHC.$(way)hi.

Improve rule for std.vlb, thanks to a fix to mkvlb.

Add -DILX to SRC_HC_OPTS (needed for PrelTopHandler).

22 years ago[project @ 2001-08-16 14:35:52 by rrt]
rrt [Thu, 16 Aug 2001 14:35:52 +0000 (14:35 +0000)]
[project @ 2001-08-16 14:35:52 by rrt]
Add -fruntime-types, which the ILX backend needs

22 years ago[project @ 2001-08-16 11:16:27 by rrt]
rrt [Thu, 16 Aug 2001 11:16:27 +0000 (11:16 +0000)]
[project @ 2001-08-16 11:16:27 by rrt]
Remove WAY_i_* settings from user ways section

22 years ago[project @ 2001-08-16 11:06:10 by simonmar]
simonmar [Thu, 16 Aug 2001 11:06:10 +0000 (11:06 +0000)]
[project @ 2001-08-16 11:06:10 by simonmar]
add newline to "WARNING: error while reading directory" message.

22 years ago[project @ 2001-08-16 10:54:22 by simonmar]
simonmar [Thu, 16 Aug 2001 10:54:22 +0000 (10:54 +0000)]
[project @ 2001-08-16 10:54:22 by simonmar]
Include fixity info in the output from :info.

22 years ago[project @ 2001-08-16 10:25:21 by simonmar]
simonmar [Thu, 16 Aug 2001 10:25:21 +0000 (10:25 +0000)]
[project @ 2001-08-16 10:25:21 by simonmar]
Prettier output for GHCi's :info

  - put parenthesis around operators in type signatures
    (both IfaceSig and ClassOpSig)

  - don't use the cryptic '= ::' notation for indicating that a
    class op has a default method, instead put the information in a
    comment after the type.

22 years ago[project @ 2001-08-16 09:59:38 by simonmar]
simonmar [Thu, 16 Aug 2001 09:59:38 +0000 (09:59 +0000)]
[project @ 2001-08-16 09:59:38 by simonmar]
Set the SrcLoc for expressions typed on the command line to
<interactive>:1 rather than <no file>:0.

22 years ago[project @ 2001-08-16 05:30:27 by chak]
chak [Thu, 16 Aug 2001 05:30:27 +0000 (05:30 +0000)]
[project @ 2001-08-16 05:30:27 by chak]
* Use new `gen_no' member in `bdescr'
* Track renaming of member `to_space' in `step' structure

22 years ago[project @ 2001-08-16 05:06:44 by chak]
chak [Thu, 16 Aug 2001 05:06:44 +0000 (05:06 +0000)]
[project @ 2001-08-16 05:06:44 by chak]
Compile `cmInfoThing' only for GHCI

22 years ago[project @ 2001-08-15 18:31:57 by qrczak]
qrczak [Wed, 15 Aug 2001 18:31:57 +0000 (18:31 +0000)]
[project @ 2001-08-15 18:31:57 by qrczak]
Fix HS_SRCS.

22 years ago[project @ 2001-08-15 16:27:15 by simonmar]
simonmar [Wed, 15 Aug 2001 16:27:15 +0000 (16:27 +0000)]
[project @ 2001-08-15 16:27:15 by simonmar]
Slight prettification of class declarations when printed out in
non-interface mode.

22 years ago[project @ 2001-08-15 15:57:20 by simonmar]
simonmar [Wed, 15 Aug 2001 15:57:20 +0000 (15:57 +0000)]
[project @ 2001-08-15 15:57:20 by simonmar]
Don't print all the fields of a record on the same line

22 years ago[project @ 2001-08-15 15:50:41 by simonmar]
simonmar [Wed, 15 Aug 2001 15:50:41 +0000 (15:50 +0000)]
[project @ 2001-08-15 15:50:41 by simonmar]
Aha!  I discovered how to distinguish ordinary record selectors from
class methods.

Prelude> :i +
-- + is a method in class Num
+ :: forall a. (Num a) => a -> a -> a