ghc-hetmet.git
24 years ago[project @ 2000-03-13 09:57:16 by simonmar]
simonmar [Mon, 13 Mar 2000 09:57:16 +0000 (09:57 +0000)]
[project @ 2000-03-13 09:57:16 by simonmar]
Remove duplicate definition of unblockOne.

24 years ago[project @ 2000-03-13 09:56:31 by simonmar]
simonmar [Mon, 13 Mar 2000 09:56:31 +0000 (09:56 +0000)]
[project @ 2000-03-13 09:56:31 by simonmar]
Reset the interrupted flag after an interruption.  This allows
finalizers to run, and means that Hugs doesn't get stuck in an
interruption loop.

24 years ago[project @ 2000-03-11 23:55:16 by panne]
panne [Sat, 11 Mar 2000 23:55:16 +0000 (23:55 +0000)]
[project @ 2000-03-11 23:55:16 by panne]
Saturday Night Fever: hPutBufBA again... >:-(

24 years ago[project @ 2000-03-10 22:11:39 by lewie]
lewie [Fri, 10 Mar 2000 22:11:39 +0000 (22:11 +0000)]
[project @ 2000-03-10 22:11:39 by lewie]
Removing backend.h for Julian.

24 years ago[project @ 2000-03-10 20:03:36 by sewardj]
sewardj [Fri, 10 Mar 2000 20:03:37 +0000 (20:03 +0000)]
[project @ 2000-03-10 20:03:36 by sewardj]
Update .c files to reflect reorganisation of .h files in this directory.

24 years ago[project @ 2000-03-10 19:50:44 by sewardj]
sewardj [Fri, 10 Mar 2000 19:50:45 +0000 (19:50 +0000)]
[project @ 2000-03-10 19:50:44 by sewardj]
Major cleanup of header files.  Merge the 5 deleted files into connect.h.
Organise connect.h to gather declarations into roughtly related
categories.

24 years ago[project @ 2000-03-10 18:28:26 by sewardj]
sewardj [Fri, 10 Mar 2000 18:28:26 +0000 (18:28 +0000)]
[project @ 2000-03-10 18:28:26 by sewardj]
Nuke a substantial number of no-longer-supported options.

24 years ago[project @ 2000-03-10 17:30:36 by lewie]
lewie [Fri, 10 Mar 2000 17:30:36 +0000 (17:30 +0000)]
[project @ 2000-03-10 17:30:36 by lewie]
First stab at reviving TREX - just fixing some header wibbles.  Also one small
fix to get implicit parameters working (`textOf' needed to be taught that
IPCELLs are also OK).  Moved #defines for TREX, IPARAM, etc, into options.h
(in their previous location at the end of prelude.h, they were being defined
too late).

24 years ago[project @ 2000-03-10 15:23:40 by simonmar]
simonmar [Fri, 10 Mar 2000 15:23:40 +0000 (15:23 +0000)]
[project @ 2000-03-10 15:23:40 by simonmar]
Fix h{Fill,Put}Buf(BA)?.  They now work in the presence of
partial/blocking reads and writes, and hPutBuf now doesn't hold on to
the handle while it's blocking.

24 years ago[project @ 2000-03-10 15:20:18 by simonmar]
simonmar [Fri, 10 Mar 2000 15:20:18 +0000 (15:20 +0000)]
[project @ 2000-03-10 15:20:18 by simonmar]
Fix h{Fill,Put}Buf(BA)?.  They now work in the presence of
partial/blocking reads and writes, and hPutBuf now doesn't hold on to
the handle while it's blocking.

24 years ago[project @ 2000-03-10 14:53:00 by sewardj]
sewardj [Fri, 10 Mar 2000 14:53:00 +0000 (14:53 +0000)]
[project @ 2000-03-10 14:53:00 by sewardj]
Compilation cleanups:
* Add some prototypes to header files, to avoid compilation warnings.
* Remove irrelevant #ifdeffery (#if NPLUSK, + various others)

24 years ago[project @ 2000-03-09 21:35:38 by andy]
andy [Thu, 9 Mar 2000 21:35:38 +0000 (21:35 +0000)]
[project @ 2000-03-09 21:35:38 by andy]
Rm debugging printf.

24 years ago[project @ 2000-03-09 21:16:49 by andy]
andy [Thu, 9 Mar 2000 21:16:49 +0000 (21:16 +0000)]
[project @ 2000-03-09 21:16:49 by andy]
Wibble: rm needless import Prelude used by Hugs.

24 years ago[project @ 2000-03-09 14:18:12 by panne]
panne [Thu, 9 Mar 2000 14:18:22 +0000 (14:18 +0000)]
[project @ 2000-03-09 14:18:12 by panne]
Added some NOINLINE pragmas for unsafePerformIO/newIORef hacks.

24 years ago[project @ 2000-03-09 14:11:59 by simonpj]
simonpj [Thu, 9 Mar 2000 14:11:59 +0000 (14:11 +0000)]
[project @ 2000-03-09 14:11:59 by simonpj]
Correct bug in local fixity decls (reported by Michael Hudson)

24 years ago[project @ 2000-03-09 13:33:01 by panne]
panne [Thu, 9 Mar 2000 13:33:01 +0000 (13:33 +0000)]
[project @ 2000-03-09 13:33:01 by panne]
Changed an #ifdef so that the Prelude can be builit again by GHC.

24 years ago[project @ 2000-03-09 13:31:54 by simonpj]
simonpj [Thu, 9 Mar 2000 13:31:54 +0000 (13:31 +0000)]
[project @ 2000-03-09 13:31:54 by simonpj]
Add fixity tests

24 years ago[project @ 2000-03-09 13:28:08 by panne]
panne [Thu, 9 Mar 2000 13:28:08 +0000 (13:28 +0000)]
[project @ 2000-03-09 13:28:08 by panne]
Removed a typo, i.e. ]\begin{code} => \begin{code}

24 years ago[project @ 2000-03-09 11:49:34 by simonmar]
simonmar [Thu, 9 Mar 2000 11:49:34 +0000 (11:49 +0000)]
[project @ 2000-03-09 11:49:34 by simonmar]
Disable module initialisation under Hugs until we can sort out the
hairy linking issues.

24 years ago[project @ 2000-03-09 10:19:33 by andy]
andy [Thu, 9 Mar 2000 10:19:33 +0000 (10:19 +0000)]
[project @ 2000-03-09 10:19:33 by andy]
Porting bug fix from Classic Hugs to STG Hugs. This was
causing crashes when compiling large examples.

Removing some dead code from static.c

24 years ago[project @ 2000-03-09 09:39:26 by simonmar]
simonmar [Thu, 9 Mar 2000 09:39:26 +0000 (09:39 +0000)]
[project @ 2000-03-09 09:39:26 by simonmar]
- remove hack which treats '_[A-Z]+' as a constructor token.  This
  isn't required now that everything in interface files is Z-encoded.

24 years ago[project @ 2000-03-09 09:31:50 by simonmar]
simonmar [Thu, 9 Mar 2000 09:31:50 +0000 (09:31 +0000)]
[project @ 2000-03-09 09:31:50 by simonmar]
syslib data depends on syslib lang.

24 years ago[project @ 2000-03-09 06:14:38 by andy]
andy [Thu, 9 Mar 2000 06:14:39 +0000 (06:14 +0000)]
[project @ 2000-03-09 06:14:38 by andy]
improving the synatax and semantics of the privileged import

 Typical use might be:

  import Prelude
  import privileged Prelude ( IORef , unsafePerformIO )

 Which means please ignore the export that comes with Prelude,
 and let me at compiler internal magic operations, IORef and
 unsafePerformIO (both are later exported by IOExt)

I've also updated the stdlib files to use this (hugs only :-).

24 years ago[project @ 2000-03-09 05:59:48 by andy]
andy [Thu, 9 Mar 2000 05:59:48 +0000 (05:59 +0000)]
[project @ 2000-03-09 05:59:48 by andy]
Changing use literate programming, to allow hugs to compile this program.

24 years ago[project @ 2000-03-09 02:47:13 by andy]
andy [Thu, 9 Mar 2000 02:47:13 +0000 (02:47 +0000)]
[project @ 2000-03-09 02:47:13 by andy]
Changing name of linkPreludeNames to linkPrimitiveNames (cause that
is what it does).

Adding a Hugs extension "import privileged". This will allow us
to remove the many exports from the prelude of the primitive functions
and types, but still allow us to write libraries that use it.

24 years ago[project @ 2000-03-08 23:55:00 by andy]
andy [Wed, 8 Mar 2000 23:55:00 +0000 (23:55 +0000)]
[project @ 2000-03-08 23:55:00 by andy]
A Prelude where IO is an abstract type, not a synonm.

Previously, IO type errors were getting explained in terms of ST RealWorld.

24 years ago[project @ 2000-03-08 22:05:43 by andy]
andy [Wed, 8 Mar 2000 22:05:43 +0000 (22:05 +0000)]
[project @ 2000-03-08 22:05:43 by andy]
Adding version of Makefile that looks in the new location for Prelude.hs

24 years ago[project @ 2000-03-08 21:45:03 by andy]
andy [Wed, 8 Mar 2000 21:45:03 +0000 (21:45 +0000)]
[project @ 2000-03-08 21:45:03 by andy]
Adding the latest version of the makefile
Removing Prelude.hs from the lib dir

24 years ago[project @ 2000-03-08 21:39:47 by andy]
andy [Wed, 8 Mar 2000 21:39:47 +0000 (21:39 +0000)]
[project @ 2000-03-08 21:39:47 by andy]
Moved Prelude.hs for STG Hugs to ghc/lib/hugs/Prelude.hs

This means that everything in the ghc/interpreter/lib directory
is generated. The new makefile for interpreter/lib will be added
shortly.

24 years ago[project @ 2000-03-08 17:48:24 by simonmar]
simonmar [Wed, 8 Mar 2000 17:48:26 +0000 (17:48 +0000)]
[project @ 2000-03-08 17:48:24 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-03-08 15:58:30 by simonmar]
simonmar [Wed, 8 Mar 2000 15:58:30 +0000 (15:58 +0000)]
[project @ 2000-03-08 15:58:30 by simonmar]
okToUnfoldInHiFile: look at args of a Con for litlits.

24 years ago[project @ 2000-03-08 11:20:53 by sewardj]
sewardj [Wed, 8 Mar 2000 11:20:53 +0000 (11:20 +0000)]
[project @ 2000-03-08 11:20:53 by sewardj]
Define EXTERN_SYMS_linux for Linux.

24 years ago[project @ 2000-03-08 10:58:38 by simonmar]
simonmar [Wed, 8 Mar 2000 10:58:38 +0000 (10:58 +0000)]
[project @ 2000-03-08 10:58:38 by simonmar]
Attempt to fix the Sparc version of StgRun.  Since
RESERVED_STACK_SPACE increased beyond the size of a 13-bit immediate,
the Sparc code has been broken.

We try to fix this with some imaginative gcc inline assembly
constraints.  If this breaks again, I'll try recoding it directly in
assembler.

While I'm here, pull in some of the comments from the old pre-4.00 RTS
and add some new comments.

24 years ago[project @ 2000-03-07 16:18:25 by sewardj]
sewardj [Tue, 7 Mar 2000 16:18:25 +0000 (16:18 +0000)]
[project @ 2000-03-07 16:18:25 by sewardj]
Complete the initial implementation and debugging of the Win32 PE
(PEi386) linker.

24 years ago[project @ 2000-03-07 12:03:01 by simonmar]
simonmar [Tue, 7 Mar 2000 12:03:01 +0000 (12:03 +0000)]
[project @ 2000-03-07 12:03:01 by simonmar]
oops, need to define prof_file when DEBUGging too.

24 years ago[project @ 2000-03-07 11:58:49 by simonmar]
simonmar [Tue, 7 Mar 2000 11:58:49 +0000 (11:58 +0000)]
[project @ 2000-03-07 11:58:49 by simonmar]
Don't GC after a stack overflow.  This might have been necessary
temporarily, but isn't any more.

24 years ago[project @ 2000-03-07 11:53:12 by simonmar]
simonmar [Tue, 7 Mar 2000 11:53:12 +0000 (11:53 +0000)]
[project @ 2000-03-07 11:53:12 by simonmar]
Remove duplicate prof_file variable.  Heap profiling should work again.

24 years ago[project @ 2000-03-07 11:35:36 by simonmar]
simonmar [Tue, 7 Mar 2000 11:35:36 +0000 (11:35 +0000)]
[project @ 2000-03-07 11:35:36 by simonmar]
Move the x86 startup code into StgCRun.c, and remove StgRun.S.
Although the assembly version was much cleaner, it didn't extend the
stack properly in the case when the host architecture requires it to
be extended a page at a time (eg. Win32).  We now rely on the C
compiler to do this properly.

24 years ago[project @ 2000-03-07 09:34:43 by sewardj]
sewardj [Tue, 7 Mar 2000 09:34:43 +0000 (09:34 +0000)]
[project @ 2000-03-07 09:34:43 by sewardj]
Properly fix a sprintf bug in typeInstDefn().

24 years ago[project @ 2000-03-07 07:27:11 by andy]
andy [Tue, 7 Mar 2000 07:27:11 +0000 (07:27 +0000)]
[project @ 2000-03-07 07:27:11 by andy]
Fixing a sprintf bug; it was clobering the symbol table.
If you used a name for a class and module, the module
was not recognised as read.

24 years ago[project @ 2000-03-07 06:24:23 by andy]
andy [Tue, 7 Mar 2000 06:24:23 +0000 (06:24 +0000)]
[project @ 2000-03-07 06:24:23 by andy]
Adding link for monadic bind. This was causing the monad fail inside
pattern matching (use inside the XML lib, for example) to fail.

24 years ago[project @ 2000-03-06 23:07:09 by andy]
andy [Mon, 6 Mar 2000 23:07:09 +0000 (23:07 +0000)]
[project @ 2000-03-06 23:07:09 by andy]
Adding latest version of STG Hugs libs makefile.

24 years ago[project @ 2000-03-06 12:02:37 by simonmar]
simonmar [Mon, 6 Mar 2000 12:02:37 +0000 (12:02 +0000)]
[project @ 2000-03-06 12:02:37 by simonmar]
Add extra-closing-brace test.

24 years ago[project @ 2000-03-06 11:58:27 by simonmar]
simonmar [Mon, 6 Mar 2000 11:58:28 +0000 (11:58 +0000)]
[project @ 2000-03-06 11:58:27 by simonmar]
Turn the panic in Lex.popContext into a parse error.

24 years ago[project @ 2000-03-06 10:12:57 by sewardj]
sewardj [Mon, 6 Mar 2000 10:12:57 +0000 (10:12 +0000)]
[project @ 2000-03-06 10:12:57 by sewardj]
typeInstDefn(), the bit which invents GHC compatible instance names:
handle multiparam type classes.  This enables Hugs standalone to deal
multiparam type classes, but there's a fudge:

   class Foo s m where { }
   instance Foo s () where { }

GHC calls the instance $fFoos.  But Hugs records type vars as offsets,
and loses the name "s" in the instance head; all it knows about
are tyvar numbers (offsets), starting from zero.  So it can never
generate $fFoos here, only $fFoo0 (zero).  The resulting code works
in standalone mode but will not interwork with GHC.  In general tho,
multiparam type classes are not (yet) supported in combined mode;
interface.c certainly can't handle them.

It might be simplest in this case to change GHC's instance naming
defn to be the same as Hugs'.

24 years ago[project @ 2000-03-06 08:42:56 by andy]
andy [Mon, 6 Mar 2000 08:42:56 +0000 (08:42 +0000)]
[project @ 2000-03-06 08:42:56 by andy]
Adding prelude changes require for the new libs, include IOExts.
Reintroducing ptr equality into HugsSTG.

24 years ago[project @ 2000-03-06 08:38:04 by andy]
andy [Mon, 6 Mar 2000 08:38:05 +0000 (08:38 +0000)]
[project @ 2000-03-06 08:38:04 by andy]
Adding the Feb00 changed from Classic Hugs into STG Hugs.

24 years ago[project @ 2000-03-06 08:01:01 by andy]
andy [Mon, 6 Mar 2000 08:01:01 +0000 (08:01 +0000)]
[project @ 2000-03-06 08:01:01 by andy]
Removing debugging printf code from hClose.

24 years ago[project @ 2000-03-03 17:13:15 by sewardj]
sewardj [Fri, 3 Mar 2000 17:13:15 +0000 (17:13 +0000)]
[project @ 2000-03-03 17:13:15 by sewardj]
Implement ocVerifyImage and ocGetNames for Microsoft PE object format.
They compile but do not work yet.  ocResolve has yet to be done.

24 years ago[project @ 2000-03-03 10:49:43 by simonmar]
simonmar [Fri, 3 Mar 2000 10:49:43 +0000 (10:49 +0000)]
[project @ 2000-03-03 10:49:43 by simonmar]
- add Happy as a pre-supposed tool.
- clean up, removed gratuitous white-space

24 years ago[project @ 2000-03-02 22:51:30 by lewie]
lewie [Thu, 2 Mar 2000 22:51:30 +0000 (22:51 +0000)]
[project @ 2000-03-02 22:51:30 by lewie]
Further refine and fix how `with' partitions the LIE.  Also moved the
partitioning function from Inst to TcSimplify.  Fixed layout bug with
`with'.  Fixed another wibble w/ importing defs w/ implicit params.
Make 4-tuples outputable (a convenience in debugging measure).

24 years ago[project @ 2000-03-02 15:53:26 by panne]
panne [Thu, 2 Mar 2000 15:53:26 +0000 (15:53 +0000)]
[project @ 2000-03-02 15:53:26 by panne]
Small improvement in warning message

24 years ago[project @ 2000-03-02 15:36:46 by panne]
panne [Thu, 2 Mar 2000 15:36:52 +0000 (15:36 +0000)]
[project @ 2000-03-02 15:36:46 by panne]
More steps towards class/type/constructor deprecation

24 years ago[project @ 2000-03-02 14:20:28 by panne]
panne [Thu, 2 Mar 2000 14:20:28 +0000 (14:20 +0000)]
[project @ 2000-03-02 14:20:28 by panne]
Deprecation warnings have a useful source location now.

24 years ago[project @ 2000-03-02 11:39:45 by keithw]
keithw [Thu, 2 Mar 2000 11:39:45 +0000 (11:39 +0000)]
[project @ 2000-03-02 11:39:45 by keithw]
Move `Average' line back to bottom of table to save confusion.

24 years ago[project @ 2000-03-02 10:32:17 by sewardj]
sewardj [Thu, 2 Mar 2000 10:32:17 +0000 (10:32 +0000)]
[project @ 2000-03-02 10:32:17 by sewardj]
Remove debug printing accidentally left in.

24 years ago[project @ 2000-03-02 10:11:50 by sewardj]
sewardj [Thu, 2 Mar 2000 10:11:50 +0000 (10:11 +0000)]
[project @ 2000-03-02 10:11:50 by sewardj]
comment spelling typo wurble

24 years ago[project @ 2000-03-02 10:10:33 by sewardj]
sewardj [Thu, 2 Mar 2000 10:10:34 +0000 (10:10 +0000)]
[project @ 2000-03-02 10:10:33 by sewardj]
Changes needed to support foreign export (dynamic) in combined mode.

24 years ago[project @ 2000-03-01 18:38:45 by keithw]
keithw [Wed, 1 Mar 2000 18:38:45 +0000 (18:38 +0000)]
[project @ 2000-03-01 18:38:45 by keithw]
Display (overall) averages for per-module statistics as well as for
per-program statistics.

Also, with `-d' (default; `-n' to turn off) compute geometric standard
deviations and display +/- 1 s.d. points as well as average.  Note that
since these are *geometric*, the lower point will appear closer to the
average than the upper.  This is correct behaviour.

24 years ago[project @ 2000-03-01 18:10:43 by lewie]
lewie [Wed, 1 Mar 2000 18:10:44 +0000 (18:10 +0000)]
[project @ 2000-03-01 18:10:43 by lewie]
Filled in some missing support for importing defs w/ implicit params.
Fixed bug in improvement w/ implicit params.

24 years ago[project @ 2000-03-01 16:57:57 by sewardj]
sewardj [Wed, 1 Mar 2000 16:57:57 +0000 (16:57 +0000)]
[project @ 2000-03-01 16:57:57 by sewardj]
forceIO_ret_entry, when #ifndef REG_R1: remember to load Node.

24 years ago[project @ 2000-03-01 15:20:54 by panne]
panne [Wed, 1 Mar 2000 15:21:01 +0000 (15:21 +0000)]
[project @ 2000-03-01 15:20:54 by panne]
Because of the previous HaXml-"improvement" :-}, syslib text now
depends on syslib data.

24 years ago[project @ 2000-03-01 12:31:22 by sewardj]
sewardj [Wed, 1 Mar 2000 12:31:22 +0000 (12:31 +0000)]
[project @ 2000-03-01 12:31:22 by sewardj]
Temporarily disable Stix inlining whilst we figure out how to fix
obscure bugs in the register allocator.  With inlining off, everything
seems to work, and the compiler can boot itself, but when enabled,
inlining exposes a register allocation bug which causes
ghc/compiler/utils/FastString.lhs to be miscompiled on Linux (the big
arithmetic expressions for computing hash values).

24 years ago[project @ 2000-03-01 11:09:05 by simonmar]
simonmar [Wed, 1 Mar 2000 11:09:05 +0000 (11:09 +0000)]
[project @ 2000-03-01 11:09:05 by simonmar]
oops, remove assigment to non-existent "emitted" field in a CCS.

24 years ago[project @ 2000-02-29 19:59:38 by sof]
sof [Tue, 29 Feb 2000 19:59:38 +0000 (19:59 +0000)]
[project @ 2000-02-29 19:59:38 by sof]
Added removeIndirections() and make use of it in lookupStableName() -- increases
the possibilities of StableName sharing.

24 years ago[project @ 2000-02-29 16:58:08 by simonmar]
simonmar [Tue, 29 Feb 2000 16:58:09 +0000 (16:58 +0000)]
[project @ 2000-02-29 16:58:08 by simonmar]
Change the behaviour of the cost-centre stack profiler for recursive
sccs.  Before, we used to remove the old copy of the CC from the stack
and push the new one on.  Now, we record back-edges in the graph when
a recursive scc is detected.

This should give saner-looking cost-centre stacks for heavily
recursive code.  Indeed, it reduces the number of stacks in the
profile for some examples considerably.

24 years ago[project @ 2000-02-29 14:38:19 by simonmar]
simonmar [Tue, 29 Feb 2000 14:38:19 +0000 (14:38 +0000)]
[project @ 2000-02-29 14:38:19 by simonmar]
Ctrl-C now interrupts the RTS safely.  Previously it called
shutdownHaskellAndExit() from the signal handler directly, which isn't
safe because we may have been interrupted during GC or whatever.  Now
we set the interrupted flag and wait for the RTS to shut down by
itself.

24 years ago[project @ 2000-02-29 12:54:51 by sewardj]
sewardj [Tue, 29 Feb 2000 12:54:52 +0000 (12:54 +0000)]
[project @ 2000-02-29 12:54:51 by sewardj]
Make foreign import work in combined mode:
-- Allow interpreter to do ccall primops even in combined mode
-- Implement hugsprimMkIO in combined mode, so as to wrap up a
   an IO value created by Hugs in a form compatible with GHC's IO
   representation.

24 years ago[project @ 2000-02-29 12:27:35 by sewardj]
sewardj [Tue, 29 Feb 2000 12:27:35 +0000 (12:27 +0000)]
[project @ 2000-02-29 12:27:35 by sewardj]
The GHC Prelude doesn't seem to export Addr.  Make it do so in combined
mode for compatibility with standalone mode.

24 years ago[project @ 2000-02-29 12:08:55 by simonmar]
simonmar [Tue, 29 Feb 2000 12:08:55 +0000 (12:08 +0000)]
[project @ 2000-02-29 12:08:55 by simonmar]
Fix boundary cases for quotInteger, remInteger & a few others.  These
changes somehow escaped 4.06 and have been sitting in my tree for a
while.

24 years ago[project @ 2000-02-29 11:36:46 by sewardj]
sewardj [Tue, 29 Feb 2000 11:36:46 +0000 (11:36 +0000)]
[project @ 2000-02-29 11:36:46 by sewardj]
Update sparc-specific parts of NCG to use new infrastructure, so they
will at least compile under Solaris.  Won't work (yet) tho.

24 years ago[project @ 2000-02-28 21:59:32 by lewie]
lewie [Mon, 28 Feb 2000 21:59:33 +0000 (21:59 +0000)]
[project @ 2000-02-28 21:59:32 by lewie]
Fix signatures w/ implicit parameter types in them (in particular,
correctly handle the case where there are no type variables).  Also
made a few more things Outputable.  Nuke outdated comment in Parser.y.

24 years ago[project @ 2000-02-28 16:54:29 by simonmar]
simonmar [Mon, 28 Feb 2000 16:55:07 +0000 (16:55 +0000)]
[project @ 2000-02-28 16:54:29 by simonmar]
Add haxml/lib to imports for -syslib text.

24 years ago[project @ 2000-02-28 13:59:43 by simonmar]
simonmar [Mon, 28 Feb 2000 13:59:43 +0000 (13:59 +0000)]
[project @ 2000-02-28 13:59:43 by simonmar]
Only fill in the ARG_TAG when DEBUG is on, for unregisterised.

24 years ago[project @ 2000-02-28 12:02:31 by sewardj]
sewardj [Mon, 28 Feb 2000 12:02:32 +0000 (12:02 +0000)]
[project @ 2000-02-28 12:02:31 by sewardj]
Many changes to improve the quality and correctness of generated code,
both for x86 and all-platforms.  The intent is that the x86 NCG will
now be good enough for general use.

-- Add an almost-trivial Stix (generic) peephole optimiser, whose sole
   purpose is elide assignments to temporaries used only once, in the
   very next tree.  This generates substantially better code for
   conditionals on all platforms.  Enhance Stix constant folding to
   take advantage of the inlining.

   The inlining presents subsequent insn selection phases with more
   complex trees than would have previously been used to.  This has
   shown up several bugs in the x86 insn selectors, now fixed.
   (assumptions that data size is Word, when could be Byte,
    assumptions that an operand will always be in a temp reg, etc)

-- x86: Use the FLDZ and FLD1 insns.

-- x86: spill FP registers with 80-bit loads/stores so that
   Intel's extra 16 bits of accuracy are not lost.  If this isn't
   done, FP spills are not suitably transparent.  Increase the
   number of spill words available to 2048.

-- x86: give the register allocator more flexibility in choosing
   spill temporaries.

-- x86, RegAllocInfo.regUsage: fix error for GST, and rewrite to
   make it clearer.

-- Correctly track movements in the C stack pointer, and generate
   correct spill code for archs which spill against the stack pointer
   even when the stack pointer moves.  Redo the x86 ccall mechanism
   to push args on the C stack in the normal way.  Rather than have
   the spiller have to analyse code sequences to determine the current
   stack offset, the insn selectors communicate the current offset
   whenever it changes by inserting a DELTA pseudo-insn.  Then the
   spiller only has to spot DELTAs.

   This means having a new native-code-generator monad (Stix.NatM)
   which carries both a UniqSupply and the current stack offset.

-- Remove the asmPar/asmSeq ways of grouping insns together.
   In the presence of fixed registers, it is hard to demonstrate
   that insn selectors using asmPar always give correct code, and
   the extra complication doesn't help any.

   Also, directly construct code sequences using tree-based ordered
   lists (utils/OrdList.lhs) for linear-time appends, rather than
   the bizarrely complex method using fns and fn composition.

-- Inline some hcats in printing of x86 address modes.

-- Document more of the hidden assumptions which insn selection relies
   on, particular wrt addressing modes.

24 years ago[project @ 2000-02-28 11:53:44 by simonmar]
simonmar [Mon, 28 Feb 2000 11:53:44 +0000 (11:53 +0000)]
[project @ 2000-02-28 11:53:44 by simonmar]
oops, back out local patch that accidentally got committed with rev. 1.139.

24 years ago[project @ 2000-02-28 10:57:44 by simonmar]
simonmar [Mon, 28 Feb 2000 10:57:44 +0000 (10:57 +0000)]
[project @ 2000-02-28 10:57:44 by simonmar]
fix = vs. == in conditional

24 years ago[project @ 2000-02-28 10:14:27 by simonmar]
simonmar [Mon, 28 Feb 2000 10:14:27 +0000 (10:14 +0000)]
[project @ 2000-02-28 10:14:27 by simonmar]
document the -recomp option explicitly.

24 years ago[project @ 2000-02-28 09:17:54 by simonmar]
simonmar [Mon, 28 Feb 2000 09:17:54 +0000 (09:17 +0000)]
[project @ 2000-02-28 09:17:54 by simonmar]
'IPVARID :: type' moved from btype to type, to reduce conflicts.

24 years ago[project @ 2000-02-25 22:41:41 by andy]
andy [Fri, 25 Feb 2000 22:41:41 +0000 (22:41 +0000)]
[project @ 2000-02-25 22:41:41 by andy]
Wibble.

(#ifdef incorrectly nested inside begin-end code)

24 years ago[project @ 2000-02-25 17:35:11 by sewardj]
sewardj [Fri, 25 Feb 2000 17:35:11 +0000 (17:35 +0000)]
[project @ 2000-02-25 17:35:11 by sewardj]
Use createIOThread and not createGenThread, even for the interpreter.

24 years ago[project @ 2000-02-25 15:20:33 by simonmar]
simonmar [Fri, 25 Feb 2000 15:20:33 +0000 (15:20 +0000)]
[project @ 2000-02-25 15:20:33 by simonmar]
Add simple mkWeakPtr/addFinalizer test.

24 years ago[project @ 2000-02-25 15:07:09 by simonmar]
simonmar [Fri, 25 Feb 2000 15:07:09 +0000 (15:07 +0000)]
[project @ 2000-02-25 15:07:09 by simonmar]
The finalizer passed to mkWeak# might be NULL, so we'd better not
claim it's always pointer if we need to GC.  Another bug squashed...

24 years ago[project @ 2000-02-25 15:06:30 by panne]
panne [Fri, 25 Feb 2000 15:06:30 +0000 (15:06 +0000)]
[project @ 2000-02-25 15:06:30 by panne]
*ahem*  Re-enable -fwarn-unused-binds and -fwarn-unused-imports...  :-}

24 years ago[project @ 2000-02-25 14:55:31 by panne]
panne [Fri, 25 Feb 2000 14:55:54 +0000 (14:55 +0000)]
[project @ 2000-02-25 14:55:31 by panne]
Deprecations of variables now works, although the source location is
not yet reported correctly and the code needs some cleanup. Added a
new flag -fwarn-deprecations to the set of standard warnings. The
syntax of deprecations has been extended to deprecate types, classes,
or even constructors, although this does not work yet.

24 years ago[project @ 2000-02-25 14:00:32 by simonmar]
simonmar [Fri, 25 Feb 2000 14:00:32 +0000 (14:00 +0000)]
[project @ 2000-02-25 14:00:32 by simonmar]
add -ltermcap when looking for -lreadline.

From: Michael Weber.

24 years ago[project @ 2000-02-25 10:53:53 by sewardj]
sewardj [Fri, 25 Feb 2000 10:53:54 +0000 (10:53 +0000)]
[project @ 2000-02-25 10:53:53 by sewardj]
Nuke PTR_ON_HEAP and all associated ifdeffery; we always need it.

24 years ago[project @ 2000-02-25 10:49:30 by simonmar]
simonmar [Fri, 25 Feb 2000 10:49:30 +0000 (10:49 +0000)]
[project @ 2000-02-25 10:49:30 by simonmar]
Make the desugarer a little more liberal about the class of case
expressions which get the special unboxed tuple treatment.

24 years ago[project @ 2000-02-25 10:26:44 by simonmar]
simonmar [Fri, 25 Feb 2000 10:26:44 +0000 (10:26 +0000)]
[project @ 2000-02-25 10:26:44 by simonmar]
silence linker warnings on HP/UX.

From: Eric Schweitz <schweitz@nortelnetworks.com>

24 years ago[project @ 2000-02-24 17:45:53 by simonmar]
simonmar [Thu, 24 Feb 2000 17:45:53 +0000 (17:45 +0000)]
[project @ 2000-02-24 17:45:53 by simonmar]
update for format changes in cacheprof.out.summary.

24 years ago[project @ 2000-02-24 17:26:12 by sewardj]
sewardj [Thu, 24 Feb 2000 17:26:12 +0000 (17:26 +0000)]
[project @ 2000-02-24 17:26:12 by sewardj]
primUnpackString --> hugsprimUnpackString

24 years ago[project @ 2000-02-24 17:20:46 by simonmar]
simonmar [Thu, 24 Feb 2000 17:20:46 +0000 (17:20 +0000)]
[project @ 2000-02-24 17:20:46 by simonmar]
Correct [un]blockAsyncExceptionszh_ret in the #ifndef REG_R1 case.

24 years ago[project @ 2000-02-24 14:40:38 by sewardj]
sewardj [Thu, 24 Feb 2000 14:40:38 +0000 (14:40 +0000)]
[project @ 2000-02-24 14:40:38 by sewardj]
Don't always use GMP from ghc/rts; instead consult HaveLibGmp first.

24 years ago[project @ 2000-02-24 14:09:14 by sewardj]
sewardj [Thu, 24 Feb 2000 14:09:14 +0000 (14:09 +0000)]
[project @ 2000-02-24 14:09:14 by sewardj]
Remove debugging junk accidentally left in :-(

24 years ago[project @ 2000-02-24 14:05:55 by sewardj]
sewardj [Thu, 24 Feb 2000 14:05:55 +0000 (14:05 +0000)]
[project @ 2000-02-24 14:05:55 by sewardj]
Wibbles for Win32 standalone compilation of Hugs:
-- Turn off debugging miniinterpreter
-- Change SIZEOF_INTP (which no longer exists) into SIZEOF_VOID_P

24 years ago[project @ 2000-02-24 13:58:56 by sewardj]
sewardj [Thu, 24 Feb 2000 13:58:56 +0000 (13:58 +0000)]
[project @ 2000-02-24 13:58:56 by sewardj]
Use the GMP library built in ghc/rts, not the system-supplied one,
since that doesn't exist on Cygwin.

24 years ago[project @ 2000-02-24 12:34:18 by sewardj]
sewardj [Thu, 24 Feb 2000 12:34:19 +0000 (12:34 +0000)]
[project @ 2000-02-24 12:34:18 by sewardj]
#ifdef wurbles to aid Win32 compilation.

24 years ago[project @ 2000-02-23 19:41:50 by lewie]
lewie [Wed, 23 Feb 2000 19:41:51 +0000 (19:41 +0000)]
[project @ 2000-02-23 19:41:50 by lewie]
Handle `with' more cleverly.  I was generating partially applied methods
for the case where the `with' expression was also overloaded, but this
was buggy, and completely unnecessary.  Instead, simply force the method
binding at the point of the `with' expression (we reap no benefits from
pushing the sharing further out anyway), and release the remainder of
the method's context into the LIE.

24 years ago[project @ 2000-02-22 15:47:56 by panne]
panne [Tue, 22 Feb 2000 15:48:03 +0000 (15:48 +0000)]
[project @ 2000-02-22 15:47:56 by panne]
Load deprecations from interface files into a deprecation environment
which maps Names to RenamedDeprecations. This map is not used yet, but
very soon it will...

This commit fixes a bug related to implicit parameters, too:
Previously, an interface file containing the name "with" could not be
read by the interface parser. This broke Malcolm's HaXml 0.9 (released
today). Remember Sven's glaexts-commandment (Jeffrey? :-) : Always
keep Lex.lhs's ghcExtensionKeywordsFM and ParseIface.y's var_fs
production in synch!

24 years ago[project @ 2000-02-22 12:45:30 by panne]
panne [Tue, 22 Feb 2000 12:45:30 +0000 (12:45 +0000)]
[project @ 2000-02-22 12:45:30 by panne]
Space leak paranoia: Don't keep whole InterfaceDetails alive
throughout the middle part of the compiler