simonmar [Tue, 20 Jun 2000 10:24:39 +0000 (10:24 +0000)]
[project @ 2000-06-20 10:24:39 by simonmar]
- fix -optCrts (was being overriden by -optC)
- fix -osuf with -split-objs
- fix -odir
panne [Mon, 19 Jun 2000 21:28:00 +0000 (21:28 +0000)]
[project @ 2000-06-19 21:28:00 by panne]
* makeForeignObj => newForeignObj
* Tried to make type mapping table look less strange, but this
succeeded only a little bit. Could somebody else have a look?
simonmar [Mon, 19 Jun 2000 15:13:43 +0000 (15:13 +0000)]
[project @ 2000-06-19 15:13:43 by simonmar]
oops, backout accidental commit
chak [Mon, 19 Jun 2000 13:37:50 +0000 (13:37 +0000)]
[project @ 2000-06-19 13:37:50 by chak]
Updated the building from .hc section.
*MERGE*
simonmar [Mon, 19 Jun 2000 13:28:35 +0000 (13:28 +0000)]
[project @ 2000-06-19 13:28:35 by simonmar]
Time fixes from Michael Weber <michael.weber@post.rwth-aachen.de>:
* `toClockTime' previously didn't honor the `tz' field of a
`CalendarTime', which led to time warping when applying
=> (toUTCTime (toClockTime ... (toUTCTime (toClockTime someTime) ... )))
continuously.
Now it accepts at least <local>- and UTC-encoded `CalendarTime's
(TODO: test, whether all timezones work) and converts them
correctly to <secs from epoch>-format (which is always UTC, as one
might have guessed).
* `addToClockTime' now works.
Previously, `tz' seconds were added(!) when used like:
=> addToClockTime noTimeDiff someTime
which is clearly wrong.
Now, the following (hopefully) always holds
=> someTime == (addToClockTime noTimeDiff someTime)
* `diffClockTimes' works correctly, and is the dual to
`addToClockTime', i.e.
=> diff == ((addToClockTime diff someTime) `diffClockTimes` someTime)
should now hold for all diff, someTime
Previously, it reports ugly diffs at {min,hour,day,...}-breaks,
for example:
=> "2000/06/18 01:00 UTC"
`diffClockTimes` "2000/06/17 23:00 UTC" == 1 day, -22 hours
whereas now it emits "7200 secs". This number can be converted
with `normalizeTimeDiff' to "2 hours".
* added `normalizeTimeDiff', which calculates year, month, days,
etc. out of an unnormalized `TimeDiff' (generated by
`diffClockTimes', for example)
* `formatTimeDiff': added the missing "%c" case. The
format is proprietary, though... Is there a nicer one?
simonmar [Mon, 19 Jun 2000 12:17:59 +0000 (12:17 +0000)]
[project @ 2000-06-19 12:17:59 by simonmar]
ignore -no-link-chk for backwards compat.
simonmar [Mon, 19 Jun 2000 12:09:22 +0000 (12:09 +0000)]
[project @ 2000-06-19 12:09:22 by simonmar]
remove tests subdir
simonmar [Mon, 19 Jun 2000 10:59:56 +0000 (10:59 +0000)]
[project @ 2000-06-19 10:59:56 by simonmar]
Give 'ghc -E' the traditional behaviour: the output is dumped to
stdout. The new driver also generates <file>.cpp.
rrt [Mon, 19 Jun 2000 10:05:38 +0000 (10:05 +0000)]
[project @ 2000-06-19 10:05:38 by rrt]
Changed SUBDIRS from users_guide to set (the former doesn't build any more
except as part of the latter).
panne [Sun, 18 Jun 2000 21:12:31 +0000 (21:12 +0000)]
[project @ 2000-06-18 21:12:31 by panne]
Added Eq and Ord instances for ArrayException
simonmar [Sun, 18 Jun 2000 17:09:33 +0000 (17:09 +0000)]
[project @ 2000-06-18 17:09:33 by simonmar]
mention cvs-ghc@haskell.org
simonmar [Sun, 18 Jun 2000 16:26:52 +0000 (16:26 +0000)]
[project @ 2000-06-18 16:26:52 by simonmar]
Add FreeBSD-compatible catalog. This one works on my FreeBSD 4.0 box
with the following packages installed:
docbook-3.1
dsssl-docbook-modular-1.52
jade-1.2.1
iso8879-1986
alternatively, installing the 'docproj' meta-package gets everything
you need.
chak [Sun, 18 Jun 2000 12:13:56 +0000 (12:13 +0000)]
[project @ 2000-06-18 12:13:56 by chak]
Script that automates building GHC from .hc files.
?? Shall I edit the corresponding section in building.sgml to advise the use
?? of this script (thus replacing the outdated description of the manual
?? steps - which is wrong anyway).
simonpj [Sun, 18 Jun 2000 08:37:20 +0000 (08:37 +0000)]
[project @ 2000-06-18 08:37:17 by simonpj]
*** MERGE WITH 4.07 ***
* Fix the ambiguity check in TcMonotype.lhs so that
it is not carried out for types read from interface
files. Some workers may get ambiguous types but that
does not matter, and should not make compilation fail.
More detail in the comments with TcMonoType.tc_type_kind
(the HsForAll case)
* Don't create specialisations for type applications
where there's a matching rule. The rule should
clearly take precedence. (Bug reported by Sven.)
I havn't tested this fix.
* Run the occurrence analyser after tidyCore, so that
occurrence info (notably dead-var info) is correct
for the code generators. This should fix Erik's problem,
but again I've not tested the fix. The extra call
is in Main.lhs
* Fix CoreToStg so that it can handle an StgLam in mkStgCase.
This only shows up in a wierd case, documented in
CoreToStg.mkStgCase
chak [Sat, 17 Jun 2000 07:52:30 +0000 (07:52 +0000)]
[project @ 2000-06-17 07:52:30 by chak]
* SGML_DOC can now hold a _list_ of sgml documentations to build
* both building.sgml and ffi-art.sgml are now build in docs/
*MERGE*
sewardj [Fri, 16 Jun 2000 09:32:32 +0000 (09:32 +0000)]
[project @ 2000-06-16 09:32:32 by sewardj]
Fix sparc bustage following latest round of NCG hacking (reg-alloc stuff).
Still won't work, but at least should compile again.
simonmar [Fri, 16 Jun 2000 08:53:10 +0000 (08:53 +0000)]
[project @ 2000-06-16 08:53:10 by simonmar]
instance Eq (HsDecl name pat) : add default case
panne [Thu, 15 Jun 2000 20:22:53 +0000 (20:22 +0000)]
[project @ 2000-06-15 20:22:53 by panne]
Quick workaround for Reuben's M$ configuration problems
simonmar [Thu, 15 Jun 2000 15:56:51 +0000 (15:56 +0000)]
[project @ 2000-06-15 15:56:51 by simonmar]
sigh, fix the ordering of the phases so that splitting works again.
daan [Thu, 15 Jun 2000 13:23:52 +0000 (13:23 +0000)]
[project @ 2000-06-15 13:23:51 by daan]
Added new primitives and bytecodes that support
code generation for XMLambda. All additions are
surrounded by #ifdef XMLAMBDA.
Most important additions:
- Rows (n-tuples) which are implemented on top of Frozen Mutarrays
- Inj (variant sums), which is implemented using a new constructor
called Inj which contains both the value and an unboxed int
which represents the index.
daan [Thu, 15 Jun 2000 13:18:08 +0000 (13:18 +0000)]
[project @ 2000-06-15 13:18:08 by daan]
Added definition of int64 to make it compilable with both gcc and VisualC++
Added functions to the bytecode assembler that
support code generation for Xmlambda. All additions for
Xmlambda are surrounded by #ifdef XMLAMBDA.
daan [Thu, 15 Jun 2000 13:16:16 +0000 (13:16 +0000)]
[project @ 2000-06-15 13:16:16 by daan]
Added definition of int64 to make it compilable with both gcc and VisualC++
simonmar [Thu, 15 Jun 2000 11:50:14 +0000 (11:50 +0000)]
[project @ 2000-06-15 11:50:14 by simonmar]
urk! the arity of a record selector Id didn't take into account any
dictionary arguments due to the context on the datatype...
(fixes bug on H/OpenGL reported by Sven)
sewardj [Thu, 15 Jun 2000 11:17:41 +0000 (11:17 +0000)]
[project @ 2000-06-15 11:17:41 by sewardj]
Emit slightly better x86 floating point code for comparisons, +, -,
* and /, in the common case where one of the source fake FP regs
is the same as the destination reg.
rrt [Thu, 15 Jun 2000 09:24:49 +0000 (09:24 +0000)]
[project @ 2000-06-15 09:24:49 by rrt]
Fixed typo: .hs left out of .SUFFIXES list.
sewardj [Thu, 15 Jun 2000 08:38:25 +0000 (08:38 +0000)]
[project @ 2000-06-15 08:38:25 by sewardj]
Major thing: new register allocator. Brief description follows.
Should correctly handle code with loops in, even though we don't
generate any such at the moment. A lot of comments. The previous
machinery for spilling is retained, as is the idea of a fast-and-easy
initial allocation attempt intended to deal with the majority of code
blocks (about 60% on x86) very cheaply. Many comments explaining
in detail how it works :-)
The Stix inliner is now on by default. Integer code seems to run
within about 1% of that -fvia-C. x86 fp code is significantly worse,
up to about 30% slower, depending on the amount of fp activity.
Minor thing: lazyfication of the top-level NCG plumbing, so that the
NCG doesn't require any greater residency than compiling to C, just a
bit more time. Created lazyThenUs and lazyMapUs for this purpose.
The new allocator is somewhat, although not catastophically, slower
than the old one. Fixing of the long-standing NCG space leak more
than makes up for it; overall hsc run-time is down about 5%, due to
significantly reduced GC time.
--------------------------------------------------------------------
Instructions are numbered sequentially, starting at zero.
A flow edge (FE) is a pair of insn numbers (MkFE Int Int) denoting
a possible flow of control from the first insn to the second.
The input to the register allocator is a list of instructions, which
mention Regs. A Reg can be a RealReg -- a real machine reg -- or a
VirtualReg, which carries a unique. After allocation, all the
VirtualReg references will have been converted into RealRegs, and
possibly some spill code will have been inserted.
The heart of the register allocator works in four phases.
1. (find_flow_edges) Calculate all the FEs for the code list.
Return them not as a [FE], but implicitly, as a pair of
Array Int [Int], being the successor and predecessor maps
for instructions.
2. (calc_liveness) Returns a FiniteMap FE RegSet. For each
FE, indicates the set of registers live on that FE. Note
that the set includes both RealRegs and VirtualRegs. The
former appear because the code could mention fixed register
usages, and we need to take them into account from the start.
3. (calc_live_range_sets) Invert the above mapping, giving a
FiniteMap Reg FeSet, indicating, for each virtual and real
reg mentioned in the code, which FEs it is live on.
4. (calc_vreg_to_rreg_mapping) For virtual reg, try and find
an allocatable real register for it. Each real register has
a "current commitment", indicating the set of FEs it is
currently live on. A virtual reg v can be assigned to
real reg r iff v's live-fe-set does not intersect with r's
current commitment fe-set. If the assignment is made,
v's live-fe-set is union'd into r's current commitment fe-set.
There is also the minor restriction that v and r must be of
the same register class (integer or floating).
Once this mapping is established, we simply apply it to the
input insns, and that's it.
If no suitable real register can be found, the vreg is mapped
to itself, and we deem allocation to have failed. The partially
allocated code is returned. The higher echelons of the allocator
(doGeneralAlloc and runRegAlloc) then cooperate to insert spill
code and re-run allocation, until a successful allocation is found.
simonmar [Wed, 14 Jun 2000 15:06:56 +0000 (15:06 +0000)]
[project @ 2000-06-14 15:06:56 by simonmar]
add missing default case in eq_btype
simonmar [Wed, 14 Jun 2000 14:16:45 +0000 (14:16 +0000)]
[project @ 2000-06-14 14:16:45 by simonmar]
isNeverInlinePrag returned False for a NOINLINE pragma, which seems
wrong to me. 4.07 also has this bug, and it's why Memo is going wrong.
simonmar [Wed, 14 Jun 2000 13:17:00 +0000 (13:17 +0000)]
[project @ 2000-06-14 13:17:00 by simonmar]
generate _stub.o files properly when there's a -o flag on the command
line, and in the presence of -split-objs.
simonmar [Wed, 14 Jun 2000 13:14:42 +0000 (13:14 +0000)]
[project @ 2000-06-14 13:14:42 by simonmar]
don't use $(WithGhcHc) to build the driver, use $(HC) instead.
rrt [Wed, 14 Jun 2000 11:42:23 +0000 (11:42 +0000)]
[project @ 2000-06-14 11:42:23 by rrt]
InstallShield setup added as a zip (because of spaces in file and directory
names). README explains the mess.
This is mostly for backup purposes.
simonmar [Wed, 14 Jun 2000 11:21:06 +0000 (11:21 +0000)]
[project @ 2000-06-14 11:21:06 by simonmar]
Produce a gcc-like "ghc: no input files" when called with nothing to
do. Note at the top of the file that we don't support the old
driver's "Enter your Haskell program..." nonsense.
simonmar [Wed, 14 Jun 2000 11:07:47 +0000 (11:07 +0000)]
[project @ 2000-06-14 11:07:47 by simonmar]
move "boot :: all" after target.mk, so we make dependencies in the
current directory before going on to build the driver. This still
doesn't really work because GNU make doesn't re-load the .depend file,
but it's heading in the right direction.
also, clean ghc-inplace and ghc.
simonmar [Wed, 14 Jun 2000 11:00:07 +0000 (11:00 +0000)]
[project @ 2000-06-14 11:00:07 by simonmar]
incorporate several patches from Qrzak (pkg include paths for Cpp
phase, pkg extra_cc_opts in Cc phase, -D__GLASGOW_HASKELL__ for Cc
phase), and fix error messages in unlitted files.
rrt [Wed, 14 Jun 2000 10:55:10 +0000 (10:55 +0000)]
[project @ 2000-06-14 10:55:10 by rrt]
Rewritten for 4.07.
simonmar [Wed, 14 Jun 2000 10:27:07 +0000 (10:27 +0000)]
[project @ 2000-06-14 10:27:07 by simonmar]
fix installation
simonmar [Wed, 14 Jun 2000 10:10:03 +0000 (10:10 +0000)]
[project @ 2000-06-14 10:10:03 by simonmar]
fix definition of GHC_STATS
simonmar [Wed, 14 Jun 2000 10:08:47 +0000 (10:08 +0000)]
[project @ 2000-06-14 10:08:47 by simonmar]
Fix mondo bogosity in hGetLine, probably caused by cut-n-pasting with eyes shut.
simonmar [Wed, 14 Jun 2000 09:10:23 +0000 (09:10 +0000)]
[project @ 2000-06-14 09:10:23 by simonmar]
fix installed include dir in rts package.
simonmar [Tue, 13 Jun 2000 16:10:00 +0000 (16:10 +0000)]
[project @ 2000-06-13 16:10:00 by simonmar]
forgot one file
simonmar [Tue, 13 Jun 2000 16:07:21 +0000 (16:07 +0000)]
[project @ 2000-06-13 16:07:20 by simonmar]
New Driver
==========
Most things work now, so I'm committing this for a shake down.
Doubtless there'll be some breakage but things should be back to
normal by the end of the week.
NOTE: GHC 4.06 won't work to build this driver at the moment, due to a
bug in its parser. I'll commit a workaround shortly.
There are several improvements here:
- the driver is written in Haskell, so is allegedly
more maintainable than the previous one. It's a bit shorter,
at any rate.
- the package system has been generalised, so that eg.
the RTS is a package, as is GMP and the prelude. Packages
are now configured via a configuration file, package.conf.
Two versions of package.conf are automatically generated by
PackageSrc.hs, one for ghc-inplace and one for the installed ghc.
- So that we only have to build the driver once, there's some
special hackery to deal with locations of utilities, and
other configuration stuff:
ghc now has a -B option, which is used in a similar way
to gcc's. eg.
ghc -B/home/blah/fptools
will run ghc in-place in the specified fptools tree, using
/home/blah/fptools/ghc/utils/mkdependHS to find mkdependHS
for example. ghc-inplace is now a small shell script that
simply invokes the above. Whereas
ghc -B/usr/local/lib/ghc-4.07
also works, for an installed copy of ghc in
/usr/local/lib/ghc-4.07.
- the mangler, object splitter and GC stats gatherer are separate
scripts in subdirectories of ghc/driver. ghc-asm.lprl and
ghc-split.lprl have been copied in the CVS repository to maintain
the history (fingers crossed; I've never done this before)
Other notes:
- Java support isn't there yet. Andy: don't update for the time
being until I can sort this.
- Windows support is also broken, but will be fixed in due course.
sof [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by sof]
x86: Relativise register table offsets for Hp, R1, R2 and SpA
sof [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by sof]
x86: Catch fast entry points fallthroughs via %esi and %edi
sof [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by sof]
m68k-*-nextstep3 updates
sof [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by sof]
When doing -monly-x-regs, fix up entry and exit from PerformGC_wrapper
sof [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by sof]
Tweaked __fexp regexps
sof [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by sof]
PPC updates
sof [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by sof]
On mingw32, which is the only 'platform' where we support producing
DLLs, prefix each static closure with a zero word. This is needed so
that we can distinguish between pointers to (reversed!) info tables
and static closures just by checking whether there's a zero word just
above the pointed-to entity. Wish there was a better way..
sof [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by sof]
HPUX fix to allow non-empty consistency chunks pass through OK
sof [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by sof]
Groks output from cygwin32-gcc
sof [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by sof]
Fixed consist pattern for cygwin32
sof [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by sof]
- include mingw32 in the list of x86 platforms supported.
- weed out ecoff debug information.
simonpj [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by simonpj]
More small changes towards 2.02
simonmar [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by simonmar]
put SRTs in the text section.
simonmar [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by simonmar]
gcc 2.95 on Sparc changed the assembly output slightly. This should
fix it.
simonmar [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by simonmar]
freebsd3 ==> freebsd
simonmar [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by simonmar]
Push directives over literal chunks when attempting to move them to
the following chunk on x86. Occasionally gcc generates a .glob
directive some distance before the symbol it refers to, and we were
ending up with a whole load of .glob directives attached to strings,
and duplicated in each .o file when splitting.
This change reduces the size of my libHSstd_p.a from 43M (!!!) to 9M.
I think this problem must have appeared with gcc 2.95.2, but it's a
little strange that I didn't notice it until now.
simonmar [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by simonmar]
Oops, back out most of last revision. Other changes crept in by mistake.
simonmar [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by simonmar]
Make object file splitting simpler, in preparation for conversion to
the new driver.
The "inject split markers" phase is now omitted, instead we generate
the split markers directly.
Driver: also removed now-defunct -fpedantic-bottoms flag.
simonmar [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by simonmar]
Fix a bug in previous commit, some .globls were getting thrown away.
simonmar [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by simonmar]
Fix -monly-3-regs problem.
simonmar [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by simonmar]
Crude allocation-counting extension to ticky-ticky profiling.
Allocations are counted against the closest lexically enclosing
function closure, so you need to map the output back to the STG code.
simonmar [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 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.
simonmar [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by simonmar]
Add NetBSD/x86 support.
simonmar [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by simonmar]
- generalise the per-module initialisation stubs so that we use it
in normal (non-profiled) code too. The initialisation stubs are
now called '__init_<module>' rather than '_reg<module>'.
- Register foreign exported functions as stable pointers in the
initialisation code for the module. This fixes the foreign export
problems reported by several people.
- remove the concept of "module groups" from the profiling subsystem.
- change the profiling semantics slightly; it should be unnecessary
to use '-caf-all' to get reasonable profiles now.
simonm [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by simonm]
sparc-sun-solaris2 uses .LLC<n> to refer to local string constants.
simonm [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by simonm]
mangler fix.
simonm [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by simonm]
fixup problem with '.' at the front of a local label.
simonm [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by simonm]
egcs sometimes leaves a 'popl %ecx' in the epilogue, it seems.
simonm [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by simonm]
Reduce alignment for info tables on x86 to 1 word. It was previously
4 words, which meant that the entry code was wrongly aligned all the
time (because info tables are either 2 or 3 words). At least this way
we've got a 1 in 4 chance of being properly aligned.
simonm [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by simonm]
Move 4.01 onto the main trunk.
simonm [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by simonm]
Miraculously, the same bug exists on sparc-sun-solaris2.
simonm [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by simonm]
HPPA tweaks.
simonm [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by simonm]
Fix splitting on i386-unknwon-linux: string constants were being
duplicated in each object, leading to large increases in binary
sizes.
simonm [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by simonm]
Fix for egcs on sparc.
simonm [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by simonm]
Changes to unbox the state in the ST and IO monads.
ST now has type
newtype ST s a = ST (State# s -> STret s a)
data STret s a = STret (State# s) a
IO now has type
newtype IO a = IO (State# RealWorld -> IOResult a)
data IOResult a = IOok (State# RealWorld) a
| IOfail (State# RealWorld) IOError
So ST should be slightly more efficient, and IO should be nearly as
efficient as ST.
simonm [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by simonm]
Bring in rev. 1.22.2.1 - Don't apply -monly-n-reg patches to _regBlah
functions (profiling cost-centre register things)
simonm [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by simonm]
Another sparc/egcs fix.
simonm [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by simonm]
- support the .p2align directive on x86 a.out architectures. This
might be required for others, too.
rrt [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by rrt]
Added subl clause to epilogue munging.
partain [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by partain]
partain 1.3 changes to 960626
partain [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by partain]
Initial revision
partain [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by partain]
Bulk of final changes for 2.01
partain [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by partain]
Alleged post-Sansom 0.27+ code
partain [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by partain]
After Andy Gill's late-95 changes
partain [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by partain]
hwloidl [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 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.
andre [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by andre]
RS6000/AIX patches
andre [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by andre]
RS6000 prof & conc patches
andre [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by andre]
Parallel 2.04 patches
andre [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by andre]
AIX/RS6000 patches
keithw [Tue, 13 Jun 2000 15:04:48 +0000 (15:04 +0000)]
[project @ 2000-06-13 15:04:48 by keithw]
Fix: mkPiType has moved.
keithw [Tue, 13 Jun 2000 14:46:30 +0000 (14:46 +0000)]
[project @ 2000-06-13 14:46:30 by keithw]
Alter to match new CoreLint.
keithw [Tue, 13 Jun 2000 14:37:46 +0000 (14:37 +0000)]
[project @ 2000-06-13 14:37:46 by keithw]
A few things here:
* fix some comment typos
* alter CoreLint architecture to permit warnings as well as errors
* add `endPassWithRules' to permit printing of rules as well as binds
* move mkPiType to CoreUtils (for UsageSP reasons)
panne [Mon, 12 Jun 2000 21:40:05 +0000 (21:40 +0000)]
[project @ 2000-06-12 21:40:05 by panne]
printf => showFFloat. Now waugh_neural fails with
Fail: Prelude.(!!): negative index,
but that's better than before. :-)
panne [Mon, 12 Jun 2000 21:27:03 +0000 (21:27 +0000)]
[project @ 2000-06-12 21:27:03 by panne]
Synched with output required by H98 report
panne [Mon, 12 Jun 2000 20:47:34 +0000 (20:47 +0000)]
[project @ 2000-06-12 20:47:34 by panne]
*nix-ified the expected output. M$-people are more used to error
messages, and one has to lose... >:-)
panne [Mon, 12 Jun 2000 20:32:16 +0000 (20:32 +0000)]
[project @ 2000-06-12 20:32:16 by panne]
"Non-exhaustive guards" => "Non-exhaustive patterns"
panne [Mon, 12 Jun 2000 19:57:40 +0000 (19:57 +0000)]
[project @ 2000-06-12 19:57:40 by panne]
Print only the first 6 characters of the result's decimal
representation, this "solves" the problem that without optimization
0.
46920002 was printed and 0.4692 with -O. Perhaps this could be
turned into a test for constant folding, but this was probably not the
test writer's intention.
panne [Mon, 12 Jun 2000 18:15:18 +0000 (18:15 +0000)]
[project @ 2000-06-12 18:15:18 by panne]
Use "foreign label" instead of litlit for stdout.