ghc-hetmet.git
23 years ago[project @ 2000-06-18 12:13:56 by chak]
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).

23 years ago[project @ 2000-06-18 08:37:17 by simonpj]
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

23 years ago[project @ 2000-06-17 07:52:30 by chak]
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*

23 years ago[project @ 2000-06-16 09:32:32 by sewardj]
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.

23 years ago[project @ 2000-06-16 08:53:10 by simonmar]
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

23 years ago[project @ 2000-06-15 20:22:53 by panne]
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

23 years ago[project @ 2000-06-15 15:56:51 by simonmar]
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.

23 years ago[project @ 2000-06-15 13:23:51 by daan]
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.

23 years ago[project @ 2000-06-15 13:18:08 by daan]
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.

23 years ago[project @ 2000-06-15 13:16:16 by daan]
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++

23 years ago[project @ 2000-06-15 11:50:14 by simonmar]
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)

23 years ago[project @ 2000-06-15 11:17:41 by sewardj]
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.

23 years ago[project @ 2000-06-15 09:24:49 by rrt]
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.

23 years ago[project @ 2000-06-15 08:38:25 by sewardj]
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.

23 years ago[project @ 2000-06-14 15:06:56 by simonmar]
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

23 years ago[project @ 2000-06-14 14:16:45 by simonmar]
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.

23 years ago[project @ 2000-06-14 13:17:00 by simonmar]
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.

23 years ago[project @ 2000-06-14 13:14:42 by simonmar]
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.

23 years ago[project @ 2000-06-14 11:42:23 by rrt]
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.

23 years ago[project @ 2000-06-14 11:21:06 by simonmar]
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.

23 years ago[project @ 2000-06-14 11:07:47 by simonmar]
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.

23 years ago[project @ 2000-06-14 11:00:07 by simonmar]
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.

23 years ago[project @ 2000-06-14 10:55:10 by rrt]
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.

23 years ago[project @ 2000-06-14 10:27:07 by simonmar]
simonmar [Wed, 14 Jun 2000 10:27:07 +0000 (10:27 +0000)]
[project @ 2000-06-14 10:27:07 by simonmar]
fix installation

23 years ago[project @ 2000-06-14 10:10:03 by simonmar]
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

23 years ago[project @ 2000-06-14 10:08:47 by simonmar]
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.

23 years ago[project @ 2000-06-14 09:10:23 by simonmar]
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.

23 years ago[project @ 2000-06-13 16:10:00 by simonmar]
simonmar [Tue, 13 Jun 2000 16:10:00 +0000 (16:10 +0000)]
[project @ 2000-06-13 16:10:00 by simonmar]
forgot one file

23 years ago[project @ 2000-06-13 16:07:20 by simonmar]
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.

23 years ago[project @ 2000-06-13 15:35:29 by sof]
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

23 years ago[project @ 2000-06-13 15:35:29 by sof]
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

23 years ago[project @ 2000-06-13 15:35:29 by sof]
sof [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by sof]
m68k-*-nextstep3 updates

23 years ago[project @ 2000-06-13 15:35:29 by sof]
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

23 years ago[project @ 2000-06-13 15:35:29 by sof]
sof [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by sof]
Tweaked __fexp regexps

23 years ago[project @ 2000-06-13 15:35:29 by sof]
sof [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by sof]
PPC updates

23 years ago[project @ 2000-06-13 15:35:29 by sof]
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..

23 years ago[project @ 2000-06-13 15:35:29 by sof]
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

23 years ago[project @ 2000-06-13 15:35:29 by sof]
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

23 years ago[project @ 2000-06-13 15:35:29 by sof]
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

23 years ago[project @ 2000-06-13 15:35:29 by sof]
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.

23 years ago[project @ 2000-06-13 15:35:29 by simonpj]
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

23 years ago[project @ 2000-06-13 15:35:29 by simonmar]
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.

23 years ago[project @ 2000-06-13 15:35:29 by simonmar]
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.

23 years ago[project @ 2000-06-13 15:35:29 by simonmar]
simonmar [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by simonmar]
freebsd3 ==> freebsd

23 years ago[project @ 2000-06-13 15:35:29 by simonmar]
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.

23 years ago[project @ 2000-06-13 15:35:29 by simonmar]
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.

23 years ago[project @ 2000-06-13 15:35:29 by simonmar]
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.

23 years ago[project @ 2000-06-13 15:35:29 by simonmar]
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.

23 years ago[project @ 2000-06-13 15:35:29 by simonmar]
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.

23 years ago[project @ 2000-06-13 15:35:29 by simonmar]
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.

23 years ago[project @ 2000-06-13 15:35:29 by simonmar]
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.

23 years ago[project @ 2000-06-13 15:35:29 by simonmar]
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.

23 years ago[project @ 2000-06-13 15:35:29 by simonmar]
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.

23 years ago[project @ 2000-06-13 15:35:29 by simonm]
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.

23 years ago[project @ 2000-06-13 15:35:29 by simonm]
simonm [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by simonm]
mangler fix.

23 years ago[project @ 2000-06-13 15:35:29 by simonm]
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.

23 years ago[project @ 2000-06-13 15:35:29 by simonm]
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.

23 years ago[project @ 2000-06-13 15:35:29 by simonm]
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.

23 years ago[project @ 2000-06-13 15:35:29 by simonm]
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.

23 years ago[project @ 2000-06-13 15:35:29 by simonm]
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.

23 years ago[project @ 2000-06-13 15:35:29 by simonm]
simonm [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by simonm]
HPPA tweaks.

23 years ago[project @ 2000-06-13 15:35:29 by simonm]
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.

23 years ago[project @ 2000-06-13 15:35:29 by simonm]
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.

23 years ago[project @ 2000-06-13 15:35:29 by simonm]
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.

23 years ago[project @ 2000-06-13 15:35:29 by simonm]
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)

23 years ago[project @ 2000-06-13 15:35:29 by simonm]
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.

23 years ago[project @ 2000-06-13 15:35:29 by simonm]
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.

23 years ago[project @ 2000-06-13 15:35:29 by rrt]
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.

23 years ago[project @ 2000-06-13 15:35:29 by partain]
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

23 years ago[project @ 2000-06-13 15:35:29 by partain]
partain [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by partain]
Initial revision

23 years ago[project @ 2000-06-13 15:35:29 by partain]
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

23 years ago[project @ 2000-06-13 15:35:29 by partain]
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

23 years ago[project @ 2000-06-13 15:35:29 by partain]
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

23 years ago[project @ 2000-06-13 15:35:29 by partain]
partain [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by partain]

23 years ago[project @ 2000-06-13 15:35:29 by hwloidl]
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.

23 years ago[project @ 2000-06-13 15:35:29 by andre]
andre [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by andre]
RS6000/AIX patches

23 years ago[project @ 2000-06-13 15:35:29 by andre]
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

23 years ago[project @ 2000-06-13 15:35:29 by andre]
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

23 years ago[project @ 2000-06-13 15:35:29 by andre]
andre [Tue, 13 Jun 2000 15:35:29 +0000 (15:35 +0000)]
[project @ 2000-06-13 15:35:29 by andre]
AIX/RS6000 patches

23 years ago[project @ 2000-06-13 15:04:48 by keithw]
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.

23 years ago[project @ 2000-06-13 14:46:30 by keithw]
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.

23 years ago[project @ 2000-06-13 14:37:46 by keithw]
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)

23 years ago[project @ 2000-06-12 21:40:05 by panne]
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.  :-)

23 years ago[project @ 2000-06-12 21:27:03 by panne]
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

23 years ago[project @ 2000-06-12 20:47:34 by panne]
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...  >:-)

23 years ago[project @ 2000-06-12 20:32:16 by panne]
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"

23 years ago[project @ 2000-06-12 19:57:40 by panne]
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.

23 years ago[project @ 2000-06-12 18:15:18 by panne]
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.

23 years ago[project @ 2000-06-12 18:13:20 by panne]
panne [Mon, 12 Jun 2000 18:13:20 +0000 (18:13 +0000)]
[project @ 2000-06-12 18:13:20 by panne]
`foreign label foo :: Addr' was simply mapped to `foo' on the C side,
but this is wrong, resp. only works for C *functions*, not *variables*
(praise the implicit conversions of C!). It now correctly maps to `(&foo)'.

ATTENTION: I'm not sure if this fix breaks some SW which depends on
the old (wrong) behaviour (H/Direct?).

23 years ago[project @ 2000-06-12 17:05:35 by panne]
panne [Mon, 12 Jun 2000 17:05:35 +0000 (17:05 +0000)]
[project @ 2000-06-12 17:05:35 by panne]
Added type signature to resolve ambiguity.

23 years ago[project @ 2000-06-12 17:04:51 by panne]
panne [Mon, 12 Jun 2000 17:04:51 +0000 (17:04 +0000)]
[project @ 2000-06-12 17:04:51 by panne]
Synched with reality.

23 years ago[project @ 2000-06-12 17:04:12 by panne]
panne [Mon, 12 Jun 2000 17:04:12 +0000 (17:04 +0000)]
[project @ 2000-06-12 17:04:12 by panne]
Synched with reality. The expected output is a little bit fragile...

23 years ago[project @ 2000-06-12 17:03:14 by panne]
panne [Mon, 12 Jun 2000 17:03:14 +0000 (17:03 +0000)]
[project @ 2000-06-12 17:03:14 by panne]
-syslib => -package

23 years ago[project @ 2000-06-12 17:01:56 by panne]
panne [Mon, 12 Jun 2000 17:02:00 +0000 (17:02 +0000)]
[project @ 2000-06-12 17:01:56 by panne]
HC_OPTS => SRC_HC_OPTS again, sorry about that

23 years ago[project @ 2000-06-12 16:59:54 by panne]
panne [Mon, 12 Jun 2000 16:59:54 +0000 (16:59 +0000)]
[project @ 2000-06-12 16:59:54 by panne]
Added a few lines how to pass global options, just for oblivious
people like me.  :-}

23 years ago[project @ 2000-06-12 16:26:59 by panne]
panne [Mon, 12 Jun 2000 16:27:03 +0000 (16:27 +0000)]
[project @ 2000-06-12 16:26:59 by panne]
* Changed `SRC_HC_OPTS += ...' to `HC_OPTS += ...', otherwise `make
  SRC_HC_OPTS=foo' does not work.

* -syslib => -package

23 years ago[project @ 2000-06-12 16:20:31 by panne]
panne [Mon, 12 Jun 2000 16:20:31 +0000 (16:20 +0000)]
[project @ 2000-06-12 16:20:31 by panne]
Only add -o? FOO.stdBAR when it exists. I'm not sure if this
foreach-hack is the most elegant way to go though...

23 years ago[project @ 2000-06-12 16:13:12 by simonmar]
simonmar [Mon, 12 Jun 2000 16:13:12 +0000 (16:13 +0000)]
[project @ 2000-06-12 16:13:12 by simonmar]
Delete whole swathes of old FFI-related stuff, after all no
documentation is better than wrong documentation :)

23 years ago[project @ 2000-06-12 16:01:02 by simonmar]
simonmar [Mon, 12 Jun 2000 16:01:02 +0000 (16:01 +0000)]
[project @ 2000-06-12 16:01:02 by simonmar]
revert part of previous commit that sneaked in by mistake.

23 years ago[project @ 2000-06-12 15:48:55 by simonmar]
simonmar [Mon, 12 Jun 2000 15:48:55 +0000 (15:48 +0000)]
[project @ 2000-06-12 15:48:55 by simonmar]
update link to deleted mkdependHS stuff