sewardj [Fri, 28 Jan 2000 18:07:56 +0000 (18:07 +0000)]
[project @ 2000-01-28 18:07:55 by sewardj]
Modifications to make x86 register spilling to work reasonably. It
should work ok most of the time, although there is still a remote
possibility that the allocator simply will be unable to complete
spilling, and will just give up.
-- Incrementally try with 0, 1, 2 and 3 spill regs, so as not to
unduly restrict the supply of regs in code which doesn't need spilling.
-- Remove the use of %ecx for shift values, so it is always available
as the first-choice spill temporary. For code which doesn't do
int division, make %edx and %eax available for spilling too.
Shifts by a non-constant amount (very rare) are now done by
a short test-and-jump sequence, so that %ecx is not tied up.
-- x86 FP: do sin, cos, tan in-line so we get the same answers as gcc.
-- Moved a little code around to remove recursive dependencies.
-- Fix a subtle bug in x86 regUsage, which could cause underestimation
of live ranges.
simonmar [Fri, 28 Jan 2000 16:36:03 +0000 (16:36 +0000)]
[project @ 2000-01-28 16:36:03 by simonmar]
bump version to 4.07 on the main trunk.
simonmar [Fri, 28 Jan 2000 14:14:01 +0000 (14:14 +0000)]
[project @ 2000-01-28 14:14:01 by simonmar]
don't use ^ in patterns, Solaris sh barfs on it.
sewardj [Fri, 28 Jan 2000 09:40:06 +0000 (09:40 +0000)]
[project @ 2000-01-28 09:40:05 by sewardj]
Commit all changes prior to addressing the x86 spilling situation in
the register allocator.
-- Fix nonsensical x86 addressing mode hacks in mangleIndexTree
and getAmode.
-- Make char-sized loads work properly, using MOVZBL.
-- In assignIntCode, use primRep on the assign node to determine
the size of data transfer, not the size of the source.
-- Redo Integer primitives to be in line with current representation
of Integers.
rrt [Thu, 27 Jan 2000 10:23:09 +0000 (10:23 +0000)]
[project @ 2000-01-27 10:23:09 by rrt]
Added note about the necessity of using the Cygnus DocBook tools (rather
than, e.g., SuSE).
rrt [Wed, 26 Jan 2000 17:02:32 +0000 (17:02 +0000)]
[project @ 2000-01-26 17:02:32 by rrt]
Removed redundant rules (%.dvi : %.tex &c.) that were breaking DocBook
(re)building.
rrt [Wed, 26 Jan 2000 16:08:25 +0000 (16:08 +0000)]
[project @ 2000-01-26 16:08:25 by rrt]
Corrected release notes URLs
sewardj [Wed, 26 Jan 2000 13:40:54 +0000 (13:40 +0000)]
[project @ 2000-01-26 13:40:54 by sewardj]
Observe the C conventions for use of the FP register stack. In particular,
free up any live fp registers prior to non-local control transfers. Sigh.
This is not good. The FP situation needs to be reviewed once the rest
of x86 nativeGen is stable.
sewardj [Wed, 26 Jan 2000 13:38:36 +0000 (13:38 +0000)]
[project @ 2000-01-26 13:38:36 by sewardj]
genCCall (x86): pass float args in double format.
sewardj [Wed, 26 Jan 2000 13:38:02 +0000 (13:38 +0000)]
[project @ 2000-01-26 13:38:02 by sewardj]
spillReg, loadReg (x86): always spill fp registers using double-sized
loads/stores, even if they nominally contain only a float value --
otherwise the spill loses the extra guard bits.
simonmar [Wed, 26 Jan 2000 13:07:55 +0000 (13:07 +0000)]
[project @ 2000-01-26 13:07:55 by simonmar]
Finish pass 1 over the build system docs.
simonmar [Wed, 26 Jan 2000 12:45:52 +0000 (12:45 +0000)]
[project @ 2000-01-26 12:45:52 by simonmar]
Fix some of the gross inaccuracies in this documentation.
rrt [Wed, 26 Jan 2000 12:27:34 +0000 (12:27 +0000)]
[project @ 2000-01-26 12:27:34 by rrt]
Removed version number and reelucidated some text swallowed by index entries.
rrt [Wed, 26 Jan 2000 11:40:54 +0000 (11:40 +0000)]
[project @ 2000-01-26 11:40:54 by rrt]
Changed default text size to "normal".
sewardj [Wed, 26 Jan 2000 11:40:26 +0000 (11:40 +0000)]
[project @ 2000-01-26 11:40:26 by sewardj]
spillReg, loadReg (x86): spill above %esp, not below it. Duh. If you
spill below %esp, ccalls, which use stack below %esp, can trash the
spill area.
rrt [Wed, 26 Jan 2000 11:35:02 +0000 (11:35 +0000)]
[project @ 2000-01-26 11:35:02 by rrt]
Updated version to 4.06
panne [Wed, 26 Jan 2000 10:44:13 +0000 (10:44 +0000)]
[project @ 2000-01-26 10:44:07 by panne]
Sven's first autoheader commandment: Don't change config.h.in manually...!
(Why is mk/config.h.in in the repository? configure is not, either.)
sewardj [Tue, 25 Jan 2000 20:09:22 +0000 (20:09 +0000)]
[project @ 2000-01-25 20:09:22 by sewardj]
Teach magicIdRegMaybe about R9 and R10.
sewardj [Tue, 25 Jan 2000 20:08:33 +0000 (20:08 +0000)]
[project @ 2000-01-25 20:08:33 by sewardj]
Print a useful panic msg if getRegister(x86) can't reduce a tree.
sewardj [Tue, 25 Jan 2000 19:49:45 +0000 (19:49 +0000)]
[project @ 2000-01-25 19:49:45 by sewardj]
pprInstr: implement GABS, GNEG, GSQRT.
sewardj [Tue, 25 Jan 2000 19:33:32 +0000 (19:33 +0000)]
[project @ 2000-01-25 19:33:32 by sewardj]
Handle float args correctly for x86 ccalls.
sewardj [Tue, 25 Jan 2000 19:18:42 +0000 (19:18 +0000)]
[project @ 2000-01-25 19:18:42 by sewardj]
Disable a dubious looking clause for trivialCode (x86), which was
generating bad code for some subtracts.
sewardj [Tue, 25 Jan 2000 18:09:52 +0000 (18:09 +0000)]
[project @ 2000-01-25 18:09:52 by sewardj]
Implement the HP_CHK_GEN macro. As a result, teach mkNativeHdr et al
about R9 and R10.
sewardj [Tue, 25 Jan 2000 16:59:30 +0000 (16:59 +0000)]
[project @ 2000-01-25 16:59:30 by sewardj]
wibble
sewardj [Tue, 25 Jan 2000 16:58:57 +0000 (16:58 +0000)]
[project @ 2000-01-25 16:58:57 by sewardj]
amodeToStix, GET_TAG: implement correctly for little-endian-32 and
supply implementation for big-endian-32. Definitely won't work on
64-bit platforms.
sewardj [Tue, 25 Jan 2000 16:57:40 +0000 (16:57 +0000)]
[project @ 2000-01-25 16:57:40 by sewardj]
genCodeInfoTable: put tag value into srt_len field for constr info tables.
panne [Tue, 25 Jan 2000 14:57:53 +0000 (14:57 +0000)]
[project @ 2000-01-25 14:57:53 by panne]
"installing" is now called "building"
sewardj [Tue, 25 Jan 2000 14:40:32 +0000 (14:40 +0000)]
[project @ 2000-01-25 14:40:32 by sewardj]
x86: free up all FP regs before doing a ccall. This appears to be a
part of the x86 calling convention(s).
panne [Tue, 25 Jan 2000 14:39:14 +0000 (14:39 +0000)]
[project @ 2000-01-25 14:39:14 by panne]
Added a bunch of #defines for {SIZEOF,ALIGNMENT}_{INT,WORD}{8,16,32,64}.
All this is a real hack: The include files need a more thorough restructuring.
panne [Tue, 25 Jan 2000 14:36:53 +0000 (14:36 +0000)]
[project @ 2000-01-25 14:36:53 by panne]
Added note about necessary synching with MachDeps.h and fixed a small typo
panne [Tue, 25 Jan 2000 14:34:12 +0000 (14:34 +0000)]
[project @ 2000-01-25 14:34:07 by panne]
Added more SIZEOF/ALIGNMENT tests
simonpj [Tue, 25 Jan 2000 14:12:08 +0000 (14:12 +0000)]
[project @ 2000-01-25 14:12:08 by simonpj]
fix typo
rrt [Tue, 25 Jan 2000 12:01:59 +0000 (12:01 +0000)]
[project @ 2000-01-25 12:01:59 by rrt]
Renamed from installing.sgml
rrt [Tue, 25 Jan 2000 12:01:28 +0000 (12:01 +0000)]
[project @ 2000-01-25 12:01:28 by rrt]
Renamed to building.sgml
rrt [Tue, 25 Jan 2000 11:33:46 +0000 (11:33 +0000)]
[project @ 2000-01-25 11:33:46 by rrt]
Corrected some URLs
rrt [Tue, 25 Jan 2000 11:25:54 +0000 (11:25 +0000)]
[project @ 2000-01-25 11:25:54 by rrt]
Added an ID to the exceptions update section to use as a hyperlink destination
simonpj [Tue, 25 Jan 2000 10:56:17 +0000 (10:56 +0000)]
[project @ 2000-01-25 10:56:17 by simonpj]
Announce 4.06
simonmar [Tue, 25 Jan 2000 10:31:08 +0000 (10:31 +0000)]
[project @ 2000-01-25 10:31:08 by simonmar]
urk, Solaris sh doesn't understand [^0-9] in patterns, it seems.
sewardj [Tue, 25 Jan 2000 10:25:15 +0000 (10:25 +0000)]
[project @ 2000-01-25 10:25:15 by sewardj]
Add missing final paragraph of explaination about x86 FP trickery.
sewardj [Tue, 25 Jan 2000 10:23:34 +0000 (10:23 +0000)]
[project @ 2000-01-25 10:23:34 by sewardj]
Minor improvements to x86 FP fake-to-real insn translation.
sewardj [Tue, 25 Jan 2000 10:22:55 +0000 (10:22 +0000)]
[project @ 2000-01-25 10:22:55 by sewardj]
genCCall for x86, as supplied, used PUSH et al to move args onto the C
stack ready for the call. Reasonable as this seems, it causes a
problem with spill code, since the spiller spills relative to %esp and
assumes that %esp doesn't move. If the args of a ccall involved any
spilled values, the resulting code would be wrong.
The One True Way is to do it like a RISC: move args to the stack
without adjusting %esp for each argument, then adjust it all at once
immediately prior to the call insn and un-adjust it immediately
afterwards. genCCall now does this. In general, push/pop and other
C-stack effecting operations should not be generated for the same
reason.
simonmar [Tue, 25 Jan 2000 10:15:55 +0000 (10:15 +0000)]
[project @ 2000-01-25 10:15:55 by simonmar]
Add -optCrts-M80m for older compilers. Sigh.
panne [Tue, 25 Jan 2000 10:06:32 +0000 (10:06 +0000)]
[project @ 2000-01-25 10:06:31 by panne]
Added intToWord to PrelAddr.
Use it instead of int2Word#-hacks.
sewardj [Mon, 24 Jan 2000 18:33:34 +0000 (18:33 +0000)]
[project @ 2000-01-24 18:33:34 by sewardj]
Start a NOTES file, recording known but un-fixed nativeGen bugs.
sewardj [Mon, 24 Jan 2000 18:28:53 +0000 (18:28 +0000)]
[project @ 2000-01-24 18:28:53 by sewardj]
Fix syntax errors in #ifdef'd Alpha/Sparc bits.
sewardj [Mon, 24 Jan 2000 18:25:17 +0000 (18:25 +0000)]
[project @ 2000-01-24 18:25:17 by sewardj]
Insert large commit message re x86 FP rehash as a comment.
sewardj [Mon, 24 Jan 2000 18:22:08 +0000 (18:22 +0000)]
[project @ 2000-01-24 18:22:07 by sewardj]
ARR_HDR_SIZE --> ARR_WORDS_HDR_SIZE, and derived quantities in
Constants.h, Constants.lhs et al are similarly renamed.
new constant ARR_PTRS_HDR_SIZE, with corresponding derivatives.
rrt [Mon, 24 Jan 2000 17:44:52 +0000 (17:44 +0000)]
[project @ 2000-01-24 17:44:52 by rrt]
Changed default paper size for SGML output to A4 (%paper-type%).
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.
rrt [Mon, 24 Jan 2000 17:09:40 +0000 (17:09 +0000)]
[project @ 2000-01-24 17:09:40 by rrt]
Added table example.
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
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.
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.
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.
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
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.
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)
simonpj [Mon, 24 Jan 2000 10:40:05 +0000 (10:40 +0000)]
[project @ 2000-01-24 10:40:05 by simonpj]
Extra install stuff
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).
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]
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).
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}
simonmar [Sat, 22 Jan 2000 12:10:30 +0000 (12:10 +0000)]
[project @ 2000-01-22 12:10:30 by simonmar]
freebsd3 ==> freebsd
simonmar [Sat, 22 Jan 2000 12:07:04 +0000 (12:07 +0000)]
[project @ 2000-01-22 12:06:43 by simonmar]
freebsd3 ==> freebsd
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}
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.
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.
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
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.
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.
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.
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>
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.
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.
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.
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.
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
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.
simonmar [Tue, 18 Jan 2000 14:40:06 +0000 (14:40 +0000)]
[project @ 2000-01-18 14:40:06 by simonmar]
sync up output
simonmar [Tue, 18 Jan 2000 13:36:53 +0000 (13:36 +0000)]
[project @ 2000-01-18 13:36:53 by simonmar]
syslib fix
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.
simonmar [Tue, 18 Jan 2000 12:49:17 +0000 (12:49 +0000)]
[project @ 2000-01-18 12:49:17 by simonmar]
syslib fixes.
simonmar [Tue, 18 Jan 2000 12:48:46 +0000 (12:48 +0000)]
[project @ 2000-01-18 12:48:46 by simonmar]
remove -syslib misc.
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.
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.
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
simonmar [Tue, 18 Jan 2000 12:41:03 +0000 (12:41 +0000)]
[project @ 2000-01-18 12:41:03 by simonmar]
ANSIfy
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
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.
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.
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>.
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).
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.
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.
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.
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.
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.
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.
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
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.