ghc-hetmet.git
24 years ago[project @ 2000-01-24 17:24:23 by sewardj]
sewardj [Mon, 24 Jan 2000 17:24:24 +0000 (17:24 +0000)]
[project @ 2000-01-24 17:24:23 by sewardj]
Major reworking of the x86 floating point code generation.

Intel, in their infinite wisdom, selected a stack model for floating
point registers on x86.  That might have made sense back in 1979 --
nowadays we can see it for the nonsense it really is.  A stack model
fits poorly with the existing nativeGen infrastructure, which assumes
flat integer and FP register sets.  Prior to this commit, nativeGen
could not generate correct x86 FP code -- to do so would have meant
somehow working the register-stack paradigm into the register
allocator and spiller, which sounds very difficult.

We have decided to cheat, and go for a simple fix which requires no
infrastructure modifications, at the expense of generating ropey but
correct FP code.  All notions of the x86 FP stack and its insns have
been removed.  Instead, we pretend (to the instruction selector and
register allocator) that x86 has six floating point registers, %fake0
.. %fake5, which can be used in the usual flat manner.  We further
claim that x86 has floating point instructions very similar to SPARC
and Alpha, that is, a simple 3-operand register-register arrangement.
Code generation and register allocation proceed on this basis.

When we come to print out the final assembly, our convenient fiction
is converted to dismal reality.  Each fake instruction is
independently converted to a series of real x86 instructions.
%fake0 .. %fake5 are mapped to %st(0) .. %st(5).  To do reg-reg
arithmetic operations, the two operands are pushed onto the top of the
FP stack, the operation done, and the result copied back into the
relevant register.  There are only six %fake registers because 2 are
needed for the translation, and x86 has 8 in total.

The translation is inefficient but is simple and it works.  A cleverer
translation would handle a sequence of insns, simulating the FP stack
contents, would not impose a fixed mapping from %fake to %st regs, and
hopefully could avoid most of the redundant reg-reg moves of the
current translation.

24 years ago[project @ 2000-01-24 17:09:40 by rrt]
rrt [Mon, 24 Jan 2000 17:09:40 +0000 (17:09 +0000)]
[project @ 2000-01-24 17:09:40 by rrt]
Added table example.

24 years ago[project @ 2000-01-24 16:55:45 by panne]
panne [Mon, 24 Jan 2000 16:55:51 +0000 (16:55 +0000)]
[project @ 2000-01-24 16:55:45 by panne]
Added autoconf magic for size/alignment of some more C types

24 years ago[project @ 2000-01-24 16:47:24 by rrt]
rrt [Mon, 24 Jan 2000 16:47:26 +0000 (16:47 +0000)]
[project @ 2000-01-24 16:47:24 by rrt]
Changed double quotes to “ and ”. Improvements to Windows
installation instructions.

24 years ago[project @ 2000-01-24 15:40:57 by simonmar]
simonmar [Mon, 24 Jan 2000 15:40:57 +0000 (15:40 +0000)]
[project @ 2000-01-24 15:40:57 by simonmar]
Update the Hall of Fame.

24 years ago[project @ 2000-01-24 13:05:01 by rrt]
rrt [Mon, 24 Jan 2000 13:05:01 +0000 (13:05 +0000)]
[project @ 2000-01-24 13:05:01 by rrt]
Stylesheet used for processing SGML. Initially it's identical to the Cygnus
DocBook Tools stylesheet, with %section-autonumber% set to true for HTML, so
that all sections are numbered.

24 years ago[project @ 2000-01-24 12:50:16 by rrt]
rrt [Mon, 24 Jan 2000 12:50:16 +0000 (12:50 +0000)]
[project @ 2000-01-24 12:50:16 by rrt]
Set SRC_SGML2XXX_OPTS variables rather than SGML2XXX_OPTS

24 years ago[project @ 2000-01-24 12:43:45 by rrt]
rrt [Mon, 24 Jan 2000 12:43:45 +0000 (12:43 +0000)]
[project @ 2000-01-24 12:43:45 by rrt]
Wrote 4.06 release notes and updated version numbers in the rest of the user
guide.

24 years ago[project @ 2000-01-24 12:42:32 by rrt]
rrt [Mon, 24 Jan 2000 12:42:32 +0000 (12:42 +0000)]
[project @ 2000-01-24 12:42:32 by rrt]
Added SGMLSTYLESHEET variable and set SGML2XXX_OPTS to -d $(SGMLSTYLESHEET)

24 years ago[project @ 2000-01-24 10:40:05 by simonpj]
simonpj [Mon, 24 Jan 2000 10:40:05 +0000 (10:40 +0000)]
[project @ 2000-01-24 10:40:05 by simonpj]
Extra install stuff

24 years ago[project @ 2000-01-24 09:25:36 by simonmar]
simonmar [Mon, 24 Jan 2000 09:25:36 +0000 (09:25 +0000)]
[project @ 2000-01-24 09:25:36 by simonmar]
Increase the heap size for Parser.hs to 80M (for 4.04).

24 years ago[project @ 2000-01-23 09:55:17 by andy]
andy [Sun, 23 Jan 2000 09:55:17 +0000 (09:55 +0000)]
[project @ 2000-01-23 09:55:17 by andy]
GHC now uses the "Hugs" split function, which is believed to have
better behaviour: it is not unsafe, is deterministic, and works
better with QuickCheck, a major client.

Rational for the Record, quoted from Mark Jones mail on the Hugs list:

[Mark Jones]
A couple of months ago, John Hughes sent me mail about a problem that
he had uncovered with the implementation of the Random library in Hugs.
He had been using the "split" function in an attempt to generate a
stream of random number generators, each of which he hoped would be
different from the others.  But instead he found that he actually
ended with many different copies of the *same* random number generator.
A disappointing, and frustratingly non-random result.

If you don't happen to recall, split is a member of the RandomGen class,
with type RandomGen g => g -> (g,g); it takes a single random number
generator as its argument, and returns a pair of two new generators as
its result.  The only thing that the specification requires is that the
two generators returned are (a) distinct and (b) `independently robust'
from a statistical point of view.  To the best of my knowledge, the
implementation in Hugs meets this modest specification.  Sadly, assuming
only this specification, you cannot write the function that John was
looking for and be sure that it will generate more than two different
generators.

For example, the specification allows even the following trivial
implementation for split:  split _ = (g1, g2), where g1 and g2 are some
arbitrary but constant pair of distinct, and independently robust
generators.  With this implementation, you can split as often as you
want and you'll never get more that two generators.

Hugs and GHC (as far as I can tell) both use definitions of the form:

   split g = (g, f g)

for some function f.  (My understanding of the code in GHC is that it
uses an unsafe function for f, breaking referential transparency; I hope
the optimizer knows about this.)  Note that this definition returns the
argument as a result; the specification doesn't prohibit that; all it
requires is that the two results returned be distinct.  But if you try
to generate a list of n different generators using:

   take n (iterate (fst . split) g)

then you will be sorely disappointed; you might as well have written
replicate n g.  (On the other hand, if you were lucky enough to have
used (snd . split), instead of (fst . split), then you wouldn't have
noticed the problem ...)

I know very little about the mathematics or pragmatics of random
number generators, so I'm not sure that I know how to fix this
problem.  However, starting from this position of ignorance, I have
hacked up a new version of "split" for the standard "StdGen" that
will appear in the next release of Hugs (real soon now!).  Judging
from the tests that I've tried so far, it seems to work much
better than the old version.  That said:

 - Take care if you use Random.split in your programs, because it
   may not do what you expect.

 - There should probably be an errata about this for the Haskell 98
   library report ... if somebody can figure out what it should say.

 - If you use Hugs, be aware that the implementation of Random.split
   was hacked up by someone who has no way of justifying that
   implementation, beyond some simple experiments.

 - If you know something about the mechanics of random number
   generators, here's an area where Haskell specifications and
   implementations could benefit from your knowledge!

All the best,
Mark
[end quote]

24 years ago[project @ 2000-01-22 18:00:03 by simonmar]
simonmar [Sat, 22 Jan 2000 18:00:03 +0000 (18:00 +0000)]
[project @ 2000-01-22 18:00:03 by simonmar]
Fix bug in async exception handling: the target TSO may have been
relocated as a result of a stack overflow.

Introduce a new StgTSOWhatNext value "ThreadRelocated", which
indicates that this TSO has moved, and the new location is in the link
field.  The garbage collector shorts these out just like indirections.

We have to check for relocated TSOs in killThread# (and any other
primops which take a ThreadId# as an argument - there aren't any at
present).

24 years ago[project @ 2000-01-22 12:13:25 by simonmar]
simonmar [Sat, 22 Jan 2000 12:13:25 +0000 (12:13 +0000)]
[project @ 2000-01-22 12:13:25 by simonmar]
- FreeBSD 3+ now known as i386-unknown-freebsd
- add alpha-unknown-{linux,freebsd}

24 years ago[project @ 2000-01-22 12:10:30 by simonmar]
simonmar [Sat, 22 Jan 2000 12:10:30 +0000 (12:10 +0000)]
[project @ 2000-01-22 12:10:30 by simonmar]
freebsd3 ==> freebsd

24 years ago[project @ 2000-01-22 12:06:43 by simonmar]
simonmar [Sat, 22 Jan 2000 12:07:04 +0000 (12:07 +0000)]
[project @ 2000-01-22 12:06:43 by simonmar]
freebsd3 ==> freebsd

24 years ago[project @ 2000-01-22 12:05:47 by simonmar]
simonmar [Sat, 22 Jan 2000 12:05:47 +0000 (12:05 +0000)]
[project @ 2000-01-22 12:05:47 by simonmar]
- FreeBSD 3+ is now known as i386-unknown-freebsd (to accomodate
  forthcoming FreeBSD 4.X

-  add alpha-unknown-{linux,freebsd}

24 years ago[project @ 2000-01-20 15:49:19 by simonmar]
simonmar [Thu, 20 Jan 2000 15:49:19 +0000 (15:49 +0000)]
[project @ 2000-01-20 15:49:19 by simonmar]
Remove potentially confusing references to concurrent bundles.

24 years ago[project @ 2000-01-20 15:42:56 by simonmar]
simonmar [Thu, 20 Jan 2000 15:42:56 +0000 (15:42 +0000)]
[project @ 2000-01-20 15:42:56 by simonmar]
Fairly grotesque hacks to get the HTML docs, which are now generated
into a subdirectory by db2html, into a binary dist.

24 years ago[project @ 2000-01-20 14:53:42 by simonmar]
simonmar [Thu, 20 Jan 2000 14:53:42 +0000 (14:53 +0000)]
[project @ 2000-01-20 14:53:42 by simonmar]
remove ghc/docs/libraries from the bindist, add hslibs/doc

24 years ago[project @ 2000-01-20 13:58:13 by sewardj]
sewardj [Thu, 20 Jan 2000 13:58:13 +0000 (13:58 +0000)]
[project @ 2000-01-20 13:58:13 by sewardj]
trivialCode (x86), when fst arg is immediate, assumed you could reverse
the order of operands, but not true for eg subtract.  Fixed.

24 years ago[project @ 2000-01-20 13:38:42 by simonmar]
simonmar [Thu, 20 Jan 2000 13:38:42 +0000 (13:38 +0000)]
[project @ 2000-01-20 13:38:42 by simonmar]
Make this test more comprehensive.  We now test

+,-,div,mod,quot,rem,gcd,lcm

over a range of legal operands, for both Int and Integer.

24 years ago[project @ 2000-01-19 17:08:02 by simonmar]
simonmar [Wed, 19 Jan 2000 17:08:02 +0000 (17:08 +0000)]
[project @ 2000-01-19 17:08:02 by simonmar]
- add some more test cases, now shows up the minInt bugs in Integer
division.

24 years ago[project @ 2000-01-19 17:06:25 by simonmar]
simonmar [Wed, 19 Jan 2000 17:06:25 +0000 (17:06 +0000)]
[project @ 2000-01-19 17:06:25 by simonmar]
The minInt saga continues:

 - fix several Integer division-type functions for the
   case when the dividend == S# (-2147483648#).

Pointed out by: Marc Van Dongen <dongen@cs.ucc.ie>

24 years ago[project @ 2000-01-19 16:47:16 by sewardj]
sewardj [Wed, 19 Jan 2000 16:47:16 +0000 (16:47 +0000)]
[project @ 2000-01-19 16:47:16 by sewardj]
amodeToStix: correctly compute offset for CHARLIKE_closure-s.

24 years ago[project @ 2000-01-19 16:44:51 by sewardj]
sewardj [Wed, 19 Jan 2000 16:44:51 +0000 (16:44 +0000)]
[project @ 2000-01-19 16:44:51 by sewardj]
Add comment about code generation for debug tracing.

24 years ago[project @ 2000-01-19 11:05:36 by sewardj]
sewardj [Wed, 19 Jan 2000 11:05:36 +0000 (11:05 +0000)]
[project @ 2000-01-19 11:05:36 by sewardj]
MachCode.stmt2Instrs, StFunBegin, x86 case only: for debugging,
generate trace code to print the name of each labelled code block.

24 years ago[project @ 2000-01-18 15:59:53 by sewardj]
sewardj [Tue, 18 Jan 2000 15:59:53 +0000 (15:59 +0000)]
[project @ 2000-01-18 15:59:53 by sewardj]
genCCall for x86 assumed that all args were 4 bytes long :-(.
Now works with doubles too.

24 years ago[project @ 2000-01-18 15:49:10 by panne]
panne [Tue, 18 Jan 2000 15:49:10 +0000 (15:49 +0000)]
[project @ 2000-01-18 15:49:10 by panne]
Remove `libraries' from SUBDIRS

24 years ago[project @ 2000-01-18 15:07:23 by simonmar]
simonmar [Tue, 18 Jan 2000 15:07:24 +0000 (15:07 +0000)]
[project @ 2000-01-18 15:07:23 by simonmar]
Remove old libraries documentation.

24 years ago[project @ 2000-01-18 14:40:06 by simonmar]
simonmar [Tue, 18 Jan 2000 14:40:06 +0000 (14:40 +0000)]
[project @ 2000-01-18 14:40:06 by simonmar]
sync up output

24 years ago[project @ 2000-01-18 13:36:53 by simonmar]
simonmar [Tue, 18 Jan 2000 13:36:53 +0000 (13:36 +0000)]
[project @ 2000-01-18 13:36:53 by simonmar]
syslib fix

24 years ago[project @ 2000-01-18 13:29:35 by sewardj]
sewardj [Tue, 18 Jan 2000 13:29:36 +0000 (13:29 +0000)]
[project @ 2000-01-18 13:29:35 by sewardj]
Don't spew floating/double literals into assembly output, since this
causes difficulties with FP numbers near the edges of the allowed
ranges.  Instead, convert them to a sequence of bytes and emit those.

24 years ago[project @ 2000-01-18 12:49:17 by simonmar]
simonmar [Tue, 18 Jan 2000 12:49:17 +0000 (12:49 +0000)]
[project @ 2000-01-18 12:49:17 by simonmar]
syslib fixes.

24 years ago[project @ 2000-01-18 12:48:46 by simonmar]
simonmar [Tue, 18 Jan 2000 12:48:46 +0000 (12:48 +0000)]
[project @ 2000-01-18 12:48:46 by simonmar]
remove -syslib misc.

24 years ago[project @ 2000-01-18 12:48:13 by simonmar]
simonmar [Tue, 18 Jan 2000 12:48:13 +0000 (12:48 +0000)]
[project @ 2000-01-18 12:48:13 by simonmar]
fix a few -syslib options.

24 years ago[project @ 2000-01-18 12:44:37 by simonmar]
simonmar [Tue, 18 Jan 2000 12:44:37 +0000 (12:44 +0000)]
[project @ 2000-01-18 12:44:37 by simonmar]
Don't hold the lock on the Handle while we block waiting for data on a
read.  This is a partial solution to the general problem of holding a
lock on the Handle while in mayBlock.

24 years ago[project @ 2000-01-18 12:42:12 by simonmar]
simonmar [Tue, 18 Jan 2000 12:42:12 +0000 (12:42 +0000)]
[project @ 2000-01-18 12:42:12 by simonmar]
- ANSIfy
- add a couple of comments about dodgy-looking code

24 years ago[project @ 2000-01-18 12:41:03 by simonmar]
simonmar [Tue, 18 Jan 2000 12:41:03 +0000 (12:41 +0000)]
[project @ 2000-01-18 12:41:03 by simonmar]
ANSIfy

24 years ago[project @ 2000-01-18 12:37:33 by simonmar]
simonmar [Tue, 18 Jan 2000 12:37:33 +0000 (12:37 +0000)]
[project @ 2000-01-18 12:37:33 by simonmar]
- context switch after a `par`
- remove some #if 0'd code

24 years ago[project @ 2000-01-18 12:36:38 by simonmar]
simonmar [Tue, 18 Jan 2000 12:36:38 +0000 (12:36 +0000)]
[project @ 2000-01-18 12:36:38 by simonmar]
non-functional changes that were sitting in my tree.

24 years ago[project @ 2000-01-18 12:33:16 by simonmar]
simonmar [Tue, 18 Jan 2000 12:33:16 +0000 (12:33 +0000)]
[project @ 2000-01-18 12:33:16 by simonmar]
update a couple of things.

24 years ago[project @ 2000-01-18 11:51:08 by simonmar]
simonmar [Tue, 18 Jan 2000 11:51:08 +0000 (11:51 +0000)]
[project @ 2000-01-18 11:51:08 by simonmar]
Don't attempt to split objects built from _stub files.

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

24 years ago[project @ 2000-01-18 11:12:57 by sewardj]
sewardj [Tue, 18 Jan 2000 11:12:57 +0000 (11:12 +0000)]
[project @ 2000-01-18 11:12:57 by sewardj]
Remove StLitLit, and clean up somewhat the handling of
stdout/stderr/stdin in CLitLits (in StixPrim.amodeToStix).

24 years ago[project @ 2000-01-17 17:33:30 by simonmar]
simonmar [Mon, 17 Jan 2000 17:33:30 +0000 (17:33 +0000)]
[project @ 2000-01-17 17:33:30 by simonmar]
Put a giant loop around awaitEvent, to protect against
awaitEvent(rtsTrue) returning with no threads to run.

This can happen if we try to delay for some time X, and select(2)
decides to wait for a shorter time X-\delta instead.  It appears that
Solaris is more prone to doing this than Linux.

This fixes the "schedule: invalid whatNext field" crashes that people
may have seen.

24 years ago[project @ 2000-01-17 16:25:56 by sewardj]
sewardj [Mon, 17 Jan 2000 16:25:56 +0000 (16:25 +0000)]
[project @ 2000-01-17 16:25:56 by sewardj]
Zap a couple of trace-s.

24 years ago[project @ 2000-01-17 16:24:45 by sewardj]
sewardj [Mon, 17 Jan 2000 16:24:45 +0000 (16:24 +0000)]
[project @ 2000-01-17 16:24:45 by sewardj]
Change alignment directives for x86 segment changes to something
more plausible-looking for Linux.

24 years ago[project @ 2000-01-17 16:22:33 by sewardj]
sewardj [Mon, 17 Jan 2000 16:22:33 +0000 (16:22 +0000)]
[project @ 2000-01-17 16:22:33 by sewardj]
genCodeInfoTable, genBitmapInfoTable: construct type_info to reflect
non-presence of flags in type info field.

24 years ago[project @ 2000-01-17 14:06:36 by rrt]
rrt [Mon, 17 Jan 2000 14:06:36 +0000 (14:06 +0000)]
[project @ 2000-01-17 14:06:36 by rrt]
Added how-to for GHC's use of DocBook. Just describes a few conventions for
particular tags at the moment.

24 years ago[project @ 2000-01-17 12:30:07 by simonmar]
simonmar [Mon, 17 Jan 2000 12:30:07 +0000 (12:30 +0000)]
[project @ 2000-01-17 12:30:07 by simonmar]
Seeking didn't take into account the size of the current buffer
(although it seems the intention was there: the proper offset was
calculated, just never used).

This fixes the io013 failure.

24 years ago[project @ 2000-01-17 12:05:12 by sewardj]
sewardj [Mon, 17 Jan 2000 12:05:12 +0000 (12:05 +0000)]
[project @ 2000-01-17 12:05:12 by sewardj]
StixPrim.amodeToStix case CMacroExpr: handle UPD_FRAME_UPDATEE
StixMacro.macroCode: handle UPDATE_SU_FROM_UPD_FRAME

24 years ago[project @ 2000-01-17 10:48:08 by sewardj]
sewardj [Mon, 17 Jan 2000 10:48:08 +0000 (10:48 +0000)]
[project @ 2000-01-17 10:48:08 by sewardj]
Print a couple of blank lines in final assembly output in between basic
blocks, to make it easier to match up with the output of -ddump-stix.

24 years ago[project @ 2000-01-17 10:10:17 by sewardj]
sewardj [Mon, 17 Jan 2000 10:10:17 +0000 (10:10 +0000)]
[project @ 2000-01-17 10:10:17 by sewardj]
macroCode: implement PUSH_SEQ_FRAME

24 years ago[project @ 2000-01-14 19:14:26 by rrt]
rrt [Fri, 14 Jan 2000 19:14:26 +0000 (19:14 +0000)]
[project @ 2000-01-14 19:14:26 by rrt]
SPJ's Windows installation notes added in.

24 years ago[project @ 2000-01-14 17:53:44 by rrt]
rrt [Fri, 14 Jan 2000 17:53:44 +0000 (17:53 +0000)]
[project @ 2000-01-14 17:53:44 by rrt]
New building guide with Windows notes added and binary installation notes
removed.

24 years ago[project @ 2000-01-14 17:52:46 by rrt]
rrt [Fri, 14 Jan 2000 17:52:46 +0000 (17:52 +0000)]
[project @ 2000-01-14 17:52:46 by rrt]
New version of installing.sgml produced; old literal system no longer used.

24 years ago[project @ 2000-01-14 16:15:08 by simonmar]
simonmar [Fri, 14 Jan 2000 16:15:08 +0000 (16:15 +0000)]
[project @ 2000-01-14 16:15:08 by simonmar]
- add missing FB_ macro
- correct a couple of comments

24 years ago[project @ 2000-01-14 15:09:22 by rrt]
rrt [Fri, 14 Jan 2000 15:09:23 +0000 (15:09 +0000)]
[project @ 2000-01-14 15:09:22 by rrt]
Added binary installation chapter to user guide, made from old installation
guide and Sigbj?rn Finne's Windows installation page.

24 years ago[project @ 2000-01-14 14:57:08 by sewardj]
sewardj [Fri, 14 Jan 2000 14:57:08 +0000 (14:57 +0000)]
[project @ 2000-01-14 14:57:08 by sewardj]
checkCode: handle HP_CHK_UT_ALT.

24 years ago[project @ 2000-01-14 14:56:40 by simonmar]
simonmar [Fri, 14 Jan 2000 14:56:40 +0000 (14:56 +0000)]
[project @ 2000-01-14 14:56:40 by simonmar]
Move closure type printing stuff to Printer.c, since it's generally useful.

24 years ago[project @ 2000-01-14 14:55:03 by simonmar]
simonmar [Fri, 14 Jan 2000 14:55:03 +0000 (14:55 +0000)]
[project @ 2000-01-14 14:55:03 by simonmar]
cleanup, remove some bogus-looking stuff from DEBUG code.

24 years ago[project @ 2000-01-14 14:08:55 by sewardj]
sewardj [Fri, 14 Jan 2000 14:08:55 +0000 (14:08 +0000)]
[project @ 2000-01-14 14:08:55 by sewardj]
primCode: implement DataToTagOp.

24 years ago[project @ 2000-01-14 14:06:48 by hwloidl]
hwloidl [Fri, 14 Jan 2000 14:06:48 +0000 (14:06 +0000)]
[project @ 2000-01-14 14:06:48 by hwloidl]
Minor cleanup (to get rid of warnings)

24 years ago[project @ 2000-01-14 13:39:59 by simonmar]
simonmar [Fri, 14 Jan 2000 13:39:59 +0000 (13:39 +0000)]
[project @ 2000-01-14 13:39:59 by simonmar]
cleanup

24 years ago[project @ 2000-01-14 13:38:54 by simonmar]
simonmar [Fri, 14 Jan 2000 13:38:54 +0000 (13:38 +0000)]
[project @ 2000-01-14 13:38:54 by simonmar]
eliminate warning.

24 years ago[project @ 2000-01-14 13:22:21 by simonmar]
simonmar [Fri, 14 Jan 2000 13:22:21 +0000 (13:22 +0000)]
[project @ 2000-01-14 13:22:21 by simonmar]
Add proper SMP locking to blackhole entry code.

24 years ago[project @ 2000-01-14 13:17:15 by hwloidl]
hwloidl [Fri, 14 Jan 2000 13:17:16 +0000 (13:17 +0000)]
[project @ 2000-01-14 13:17:15 by hwloidl]
Minor cleanup to get rid of warnings.

24 years ago[project @ 2000-01-14 12:27:50 by simonmar]
simonmar [Fri, 14 Jan 2000 12:27:50 +0000 (12:27 +0000)]
[project @ 2000-01-14 12:27:50 by simonmar]
expose 'par' now that we have an implementation for both sequential
and SMP ways.

24 years ago[project @ 2000-01-14 11:45:21 by hwloidl]
hwloidl [Fri, 14 Jan 2000 11:45:22 +0000 (11:45 +0000)]
[project @ 2000-01-14 11:45:21 by hwloidl]
Bugfix (raiseError in non-enterable closures); added GranSim code to Schedule.c

24 years ago[project @ 2000-01-14 10:18:37 by simonmar]
simonmar [Fri, 14 Jan 2000 10:18:37 +0000 (10:18 +0000)]
[project @ 2000-01-14 10:18:37 by simonmar]
- remove duplicate GHC_SYSMAN_DIR
- remove unused GHC_HSP_DIR

24 years ago[project @ 2000-01-13 17:01:16 by sewardj]
sewardj [Thu, 13 Jan 2000 17:01:16 +0000 (17:01 +0000)]
[project @ 2000-01-13 17:01:16 by sewardj]
stmt2Instrs: correctly handle StData with zero data words

24 years ago[project @ 2000-01-13 15:25:39 by sewardj]
sewardj [Thu, 13 Jan 2000 15:25:39 +0000 (15:25 +0000)]
[project @ 2000-01-13 15:25:39 by sewardj]
genCodeInfoTable: don't do getSRTInfo on the closure info if we already
know via infoTblNeedsSRT that an SRT isn't needed.

24 years ago[project @ 2000-01-13 15:22:58 by sewardj]
sewardj [Thu, 13 Jan 2000 15:22:58 +0000 (15:22 +0000)]
[project @ 2000-01-13 15:22:58 by sewardj]
gentopcode: handle CClosureTbl.

24 years ago[project @ 2000-01-13 14:33:57 by hwloidl]
hwloidl [Thu, 13 Jan 2000 14:34:09 +0000 (14:34 +0000)]
[project @ 2000-01-13 14:33:57 by hwloidl]
Merged GUM-4-04 branch into the main trunk. In particular merged GUM and
SMP code. Most of the GranSim code in GUM-4-04 still has to be carried over.

24 years ago[project @ 2000-01-13 14:11:51 by sewardj]
sewardj [Thu, 13 Jan 2000 14:11:51 +0000 (14:11 +0000)]
[project @ 2000-01-13 14:11:51 by sewardj]
Rearrange top-level nativeGen plumbing so that -ddump-stix is visible
even if subsequent nativeGen passes crash.

24 years ago[project @ 2000-01-13 12:59:58 by sewardj]
sewardj [Thu, 13 Jan 2000 12:59:59 +0000 (12:59 +0000)]
[project @ 2000-01-13 12:59:58 by sewardj]
Added a rudimentary implementation of -ddump-stix.

24 years ago[project @ 2000-01-13 12:40:15 by simonmar]
simonmar [Thu, 13 Jan 2000 12:40:16 +0000 (12:40 +0000)]
[project @ 2000-01-13 12:40:15 by simonmar]
- remove AllBlocked scheduler return code.  Nobody owned up to having
  created it or even knowing what it was there for.

- clean up fatal error condition handling somewhat.  The process
  exit code from a GHC program now indicates the kind of failure
  for certain kinds of exit:

general internal RTS error 254
program deadlocked 253
program interrupted (ctrl-C) 252
heap overflow 251
main thread killed 250

  and we leave exit codes 1-199 for the user (as is traditional at MS,
  200-249 are reserved for future expansion, and may contain
  undocumented extensions :-)

24 years ago[project @ 2000-01-13 10:47:05 by sewardj]
sewardj [Thu, 13 Jan 2000 10:47:05 +0000 (10:47 +0000)]
[project @ 2000-01-13 10:47:05 by sewardj]
evalExp(): rts_eval_ can no longer return AllBlocked, so remove test for it.

24 years ago[project @ 2000-01-13 10:37:31 by simonmar]
simonmar [Thu, 13 Jan 2000 10:37:31 +0000 (10:37 +0000)]
[project @ 2000-01-13 10:37:31 by simonmar]
- make some debug printfs more consistent
- #ifdef around call to initSparkPools() (was breaking the normal build).

24 years ago[project @ 2000-01-12 18:05:49 by rrt]
rrt [Wed, 12 Jan 2000 18:05:49 +0000 (18:05 +0000)]
[project @ 2000-01-12 18:05:49 by rrt]
Libraries documentation moved to hslibs tree.

24 years ago[project @ 2000-01-12 16:32:41 by sewardj]
sewardj [Wed, 12 Jan 2000 16:32:41 +0000 (16:32 +0000)]
[project @ 2000-01-12 16:32:41 by sewardj]
cgExpr(), case NAME: correctly handle tail call into native code

24 years ago[project @ 2000-01-12 16:29:47 by sewardj]
sewardj [Wed, 12 Jan 2000 16:29:47 +0000 (16:29 +0000)]
[project @ 2000-01-12 16:29:47 by sewardj]
Don't do implementCfun for [] and (:) in combined mode,
since GHC supplies implementations.

24 years ago[project @ 2000-01-12 15:15:17 by simonmar]
simonmar [Wed, 12 Jan 2000 15:15:18 +0000 (15:15 +0000)]
[project @ 2000-01-12 15:15:17 by simonmar]
Add 'par' and sparking support to the SMP implementation.

24 years ago[project @ 2000-01-12 14:52:53 by sewardj]
sewardj [Wed, 12 Jan 2000 14:52:54 +0000 (14:52 +0000)]
[project @ 2000-01-12 14:52:53 by sewardj]
Clear up confusion regarding names of tuple types.
-- (), coded as Z0T, is the unit.
-- (,), coded as Z1T, is the pair type.
-- (,,,N commas,,,) coded as ZNT, is the (N+1)-tuple type.
-- There is no 1-ary type type.

24 years ago[project @ 2000-01-12 14:47:27 by sewardj]
sewardj [Wed, 12 Jan 2000 14:47:27 +0000 (14:47 +0000)]
[project @ 2000-01-12 14:47:27 by sewardj]
readScripts(), combined mode: minor hack so that current eval module
is Prelude rather than PrelHugs, once the Prelude is loaded.

24 years ago[project @ 2000-01-12 12:39:20 by simonmar]
simonmar [Wed, 12 Jan 2000 12:39:20 +0000 (12:39 +0000)]
[project @ 2000-01-12 12:39:20 by simonmar]
mark INDirections as non-sparkable.

24 years ago[project @ 2000-01-12 10:44:50 by sewardj]
sewardj [Wed, 12 Jan 2000 10:44:50 +0000 (10:44 +0000)]
[project @ 2000-01-12 10:44:50 by sewardj]
Make hugsprimUnpackString :: Addr -> String available to Hugs' desugarer
in both modes.

24 years ago[project @ 2000-01-12 10:30:09 by sewardj]
sewardj [Wed, 12 Jan 2000 10:30:09 +0000 (10:30 +0000)]
[project @ 2000-01-12 10:30:09 by sewardj]
Link nameInd to "_indirect".  Haven't a clue what this is for but it
seems necessary.

24 years ago[project @ 2000-01-11 17:23:39 by sewardj]
sewardj [Tue, 11 Jan 2000 17:23:39 +0000 (17:23 +0000)]
[project @ 2000-01-11 17:23:39 by sewardj]
Handle tuple types (,,,) --> Z3T in enZcodeThenFindText().

24 years ago[project @ 2000-01-11 17:09:38 by sewardj]
sewardj [Tue, 11 Jan 2000 17:09:38 +0000 (17:09 +0000)]
[project @ 2000-01-11 17:09:38 by sewardj]
Connect PrelBase.[] to PrelBase_ZMZN_closure, and (:) likewise.

24 years ago[project @ 2000-01-11 15:40:57 by sewardj]
sewardj [Tue, 11 Jan 2000 15:40:57 +0000 (15:40 +0000)]
[project @ 2000-01-11 15:40:57 by sewardj]
Supply correct kinds for tycons created by addWiredInBoxingTycon().

24 years ago[project @ 2000-01-11 14:56:07 by sewardj]
sewardj [Tue, 11 Jan 2000 14:56:07 +0000 (14:56 +0000)]
[project @ 2000-01-11 14:56:07 by sewardj]
Remember to set name(n).arity when n is a class method

24 years ago[project @ 2000-01-11 14:51:43 by sewardj]
sewardj [Tue, 11 Jan 2000 14:51:43 +0000 (14:51 +0000)]
[project @ 2000-01-11 14:51:43 by sewardj]
nameFromOPtr(): don't try to search object sym tables for source modules
lookupSection(): ditto, plus don't forget to also look in
                 module(m).objectExtras

24 years ago[project @ 2000-01-11 14:21:43 by sewardj]
sewardj [Tue, 11 Jan 2000 14:21:43 +0000 (14:21 +0000)]
[project @ 2000-01-11 14:21:43 by sewardj]
Add nameShow and namePutStr as hooks for said fns so that evaluator()
in hugs.c can refer to them in a style consistent with the way the rest
of Hugs refers to specific symbol names.

24 years ago[project @ 2000-01-11 14:09:17 by sewardj]
sewardj [Tue, 11 Jan 2000 14:09:17 +0000 (14:09 +0000)]
[project @ 2000-01-11 14:09:17 by sewardj]
startGHCInstance: allocate a name() entry for the instance builder fn,
and store the name in the instance's .builder field.  Without this,
it's impossible to generate any code which uses an instance builder :-(

24 years ago[project @ 2000-01-11 10:15:24 by sewardj]
sewardj [Tue, 11 Jan 2000 10:15:24 +0000 (10:15 +0000)]
[project @ 2000-01-11 10:15:24 by sewardj]
A module for use with the combined GHC-Hugs system.  Contains various
small helper functions referred to which Hugs' desugarer emits references.
The same functions are implemented in ghc/interpreter/lib/Prelude.hs
for use in standalone Hugs.  The two versions should correspond exactly.

24 years ago[project @ 2000-01-10 17:19:32 by sewardj]
sewardj [Mon, 10 Jan 2000 17:19:33 +0000 (17:19 +0000)]
[project @ 2000-01-10 17:19:32 by sewardj]
Back out previous commit.

24 years ago[project @ 2000-01-10 17:06:41 by sewardj]
sewardj [Mon, 10 Jan 2000 17:06:42 +0000 (17:06 +0000)]
[project @ 2000-01-10 17:06:41 by sewardj]
This is the missing log message for the commit by sewardj at
2000/01/10 08:23:33 PST for these files:

Some names in the standalone Prelude are referred to during desugaring
in Hugs.  These functions therefore need to be supplied from the GHC
world in combined mode.  Rename the relevant functions from
primXYZ to hugsprimXYZ to distinguish them, in preparation for
create of ghc/lib/std/PrelHugs.lhs.
---------------------------------------------------------------------

24 years ago[project @ 2000-01-10 16:27:03 by sewardj]
sewardj [Mon, 10 Jan 2000 16:27:04 +0000 (16:27 +0000)]
[project @ 2000-01-10 16:27:03 by sewardj]
nameRunIO --> nameRunIO_toplevel

24 years ago[project @ 2000-01-10 16:23:32 by sewardj]
sewardj [Mon, 10 Jan 2000 16:23:33 +0000 (16:23 +0000)]
[project @ 2000-01-10 16:23:32 by sewardj]