ghc-hetmet.git
24 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

24 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.

24 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.

24 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.

24 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.

24 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.

24 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.

24 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.

24 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.

24 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

24 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

24 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.

24 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.

24 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

24 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.

24 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

24 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

24 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

24 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

24 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

24 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

24 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..

24 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

24 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

24 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

24 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.

24 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

24 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.

24 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.

24 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

24 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.

24 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.

24 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.

24 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.

24 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.

24 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.

24 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.

24 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.

24 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.

24 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.

24 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.

24 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.

24 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.

24 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.

24 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.

24 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.

24 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.

24 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.

24 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.

24 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.

24 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)

24 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.

24 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.

24 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.

24 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

24 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

24 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

24 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

24 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

24 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]

24 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.

24 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

24 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

24 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

24 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

24 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.

24 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.

24 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)

24 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.  :-)

24 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

24 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...  >:-)

24 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"

24 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.

24 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.

24 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?).

24 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.

24 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.

24 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...

24 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

24 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

24 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.  :-}

24 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

24 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...

24 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 :)

24 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.

24 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

24 years ago[project @ 2000-06-12 15:47:27 by simonmar]
simonmar [Mon, 12 Jun 2000 15:47:27 +0000 (15:47 +0000)]
[project @ 2000-06-12 15:47:27 by simonmar]
add an id to the dependency section

24 years ago[project @ 2000-06-12 13:40:20 by panne]
panne [Mon, 12 Jun 2000 13:40:20 +0000 (13:40 +0000)]
[project @ 2000-06-12 13:40:20 by panne]
Pretty-printing EncodedStrings, next try...

24 years ago[project @ 2000-06-12 11:41:00 by simonmar]
simonmar [Mon, 12 Jun 2000 11:41:00 +0000 (11:41 +0000)]
[project @ 2000-06-12 11:41:00 by simonmar]
Update docs on mkdependHS: it isn't a separate utility, so document it
under "Using GHC".

Also update section on Happy.

24 years ago[project @ 2000-06-12 11:04:50 by panne]
panne [Mon, 12 Jun 2000 11:04:50 +0000 (11:04 +0000)]
[project @ 2000-06-12 11:04:50 by panne]
Undo the changes and make userStyle printing work again

24 years ago[project @ 2000-06-12 11:04:12 by simonmar]
simonmar [Mon, 12 Jun 2000 11:04:12 +0000 (11:04 +0000)]
[project @ 2000-06-12 11:04:12 by simonmar]
Fix a nasty bug: the 'c' component of StgUnion was declared as type
StgChar, which sounds reasonable, but meant that when assigning a char
to R1 gcc would correctly arrange to only overwrite the low byte
rather than zero-extending the value.  We assume elsewhere that when
R1 contains a char that the upper 24 bits are zero, so this was wrong.

This bug must have been around for a *long* time, strange that it only
just showed up. <shrug>

24 years ago[project @ 2000-06-12 06:01:03 by andy]
andy [Mon, 12 Jun 2000 06:01:03 +0000 (06:01 +0000)]
[project @ 2000-06-12 06:01:03 by andy]
Commiting version of STG -> GOO that seems to compile PrelBase successfully.

Many other wibbles; esp. String handling.

24 years ago[project @ 2000-06-11 19:14:27 by panne]
panne [Sun, 11 Jun 2000 19:14:27 +0000 (19:14 +0000)]
[project @ 2000-06-11 19:14:27 by panne]
* Synched comments with reality

* Ensure that a f.e.d. function is never inlined, because the address
  of the C stub (a litlit) is might not be in scope in other modules.
  (untested fix).

*** merge ***

24 years ago[project @ 2000-06-11 08:12:02 by andy]
andy [Sun, 11 Jun 2000 08:12:02 +0000 (08:12 +0000)]
[project @ 2000-06-11 08:12:02 by andy]
Adding change that handles trivial use of primitives (compares,
integer arithmetic, etc) better when generating Java.

24 years ago[project @ 2000-06-10 00:34:52 by lewie]
lewie [Sat, 10 Jun 2000 00:34:52 +0000 (00:34 +0000)]
[project @ 2000-06-10 00:34:52 by lewie]
Update instFunDepsOfTheta to accomodate Simon's recent commit (it hadn't
needed to generate fundeps for IParams previously).  This undoes Simon's
comment about `forall a. ?x::a => Int' being ambiguous.  It isn't, and
now it isn't flagged as such either.  I.e, there's nothing wrong with:
    foo :: ?x::a => Int
    foo = fst (13, ?x)
(of course, less contrived examples can also be given!).

24 years ago[project @ 2000-06-09 23:28:34 by lewie]
lewie [Fri, 9 Jun 2000 23:28:34 +0000 (23:28 +0000)]
[project @ 2000-06-09 23:28:34 by lewie]
Simon was kind enough to re-write elegantly a function that I had written
awkwardly, but revealed that beautification doesn't always yield better
code ;-)  Fixed a silly typo and further beautified the code (so that the
cut-n-paster error that Simon introduced would have been easier to spot).

24 years ago[project @ 2000-06-09 16:21:30 by simonmar]
simonmar [Fri, 9 Jun 2000 16:21:30 +0000 (16:21 +0000)]
[project @ 2000-06-09 16:21:30 by simonmar]
ieee-flpt.h is in ../../includes, not ../includes.

24 years ago[project @ 2000-06-09 15:53:12 by simonpj]
simonpj [Fri, 9 Jun 2000 15:53:12 +0000 (15:53 +0000)]
[project @ 2000-06-09 15:53:12 by simonpj]
GHC gets upset if you have types like

Eq a => a->a

where 'a' is *not* universally quantified.
By "upset" I mean that the typechecker generates
rather bogus code, that subsequently kills Lint.

Such types used to be rejected in the renamer,
but Jeff removed that in favour of an ambiguity
check in TcMonoType.  I remember agreeing to move
the renamer check to the type checker, and Jeff did this,
but the check in TcMonoType was only checking for
*ambiguity*, which isn't quite the same.

I've restored the missing check and commented it
better in TcMonoType.

Jeff: if this isn't right for you, let's dicuss.

Incidentally, I also generalise the ambiguity check
to detect
forall a. ?x::a => Int
which is ambiguous.

I did a few formatting changes too.

24 years ago[project @ 2000-06-09 15:15:25 by simonmar]
simonmar [Fri, 9 Jun 2000 15:15:25 +0000 (15:15 +0000)]
[project @ 2000-06-09 15:15:25 by simonmar]
Don't group variable bindings with the same name together.  They
should be flagged as duplicate definitions.

24 years ago[project @ 2000-06-09 13:48:46 by simonmar]
simonmar [Fri, 9 Jun 2000 13:50:15 +0000 (13:50 +0000)]
[project @ 2000-06-09 13:48:46 by simonmar]
remove NonExhaustiveGuards exception