ghc-hetmet.git
23 years ago[project @ 2000-05-02 07:50:41 by chak]
chak [Tue, 2 May 2000 07:50:41 +0000 (07:50 +0000)]
[project @ 2000-05-02 07:50:41 by chak]
Removed a last flaw and use `cvs export' instead of `cvs checkout' now.

24 years ago[project @ 2000-05-01 14:53:47 by panne]
panne [Mon, 1 May 2000 14:53:47 +0000 (14:53 +0000)]
[project @ 2000-05-01 14:53:47 by panne]
Adding a bunch of `unsafe's to foreign imports. TODO: Could somebody
verify that declaring shutdownHaskellAndExit as unsafe is OK?

24 years ago[project @ 2000-05-01 14:44:25 by panne]
panne [Mon, 1 May 2000 14:44:25 +0000 (14:44 +0000)]
[project @ 2000-05-01 14:44:25 by panne]
The NCG doesn't like `foreign label' yet, so addrOf_ErrorHdrHook is a
C function now.

24 years ago[project @ 2000-05-01 14:35:17 by panne]
panne [Mon, 1 May 2000 14:35:17 +0000 (14:35 +0000)]
[project @ 2000-05-01 14:35:17 by panne]
Handle sameMutVar#, sameMVar#, writeForeignObj#

24 years ago[project @ 2000-05-01 14:33:39 by panne]
panne [Mon, 1 May 2000 14:33:39 +0000 (14:33 +0000)]
[project @ 2000-05-01 14:33:39 by panne]
Handle ThreadIdRep. Output warnings for {Word,Int}64Rep, returning a
completely bogus size (for testing NCG only).

24 years ago[project @ 2000-05-01 14:31:22 by panne]
panne [Mon, 1 May 2000 14:31:22 +0000 (14:31 +0000)]
[project @ 2000-05-01 14:31:22 by panne]
Fixed typo in comment

24 years ago[project @ 2000-04-30 01:42:23 by chak]
chak [Sun, 30 Apr 2000 01:42:23 +0000 (01:42 +0000)]
[project @ 2000-04-30 01:42:23 by chak]
The first version of a script that allows building rpm packages directly from
CVS.  It currently works for ghc only, but will be extended to cover the
other fptools.

It should work on all rpm-based systems, as I tried to avoid any dependency on
Red Hat systems (as far as I am aware of them).  In particular, the rpm build
process is carried out below /tmp instead of the standard /usr/src/redhat
hierarchy.

By default the cvs head of the anonymous repository is built, but cvs-style -d
-D, and -r options allow to built from a different repository and revision.

[This version is only half tested, because the CVS head seems to not build
anymore today.]

24 years ago[project @ 2000-04-29 22:44:26 by simonpj]
simonpj [Sat, 29 Apr 2000 22:44:26 +0000 (22:44 +0000)]
[project @ 2000-04-29 22:44:26 by simonpj]
Wibble in recent RnEnv changes

This meant that things fell over when you try to
build the Prelude.  Fixed now.

24 years ago[project @ 2000-04-29 06:53:12 by chak]
chak [Sat, 29 Apr 2000 06:53:12 +0000 (06:53 +0000)]
[project @ 2000-04-29 06:53:12 by chak]
The file list generation needed some more tweaking, but seems to work now.

24 years ago[project @ 2000-04-28 17:16:10 by rrt]
rrt [Fri, 28 Apr 2000 17:16:10 +0000 (17:16 +0000)]
[project @ 2000-04-28 17:16:10 by rrt]
Changed HSprel.dll to HSstd.dll

24 years ago[project @ 2000-04-28 16:59:53 by rrt]
rrt [Fri, 28 Apr 2000 16:59:53 +0000 (16:59 +0000)]
[project @ 2000-04-28 16:59:53 by rrt]
Changed HSprel.dll to HSstd.dll, as it should be.

24 years ago[project @ 2000-04-28 15:06:04 by panne]
panne [Fri, 28 Apr 2000 15:06:04 +0000 (15:06 +0000)]
[project @ 2000-04-28 15:06:04 by panne]
Updated out-of-date comment about representation of StablePtr

24 years ago[project @ 2000-04-28 15:05:04 by panne]
panne [Fri, 28 Apr 2000 15:05:04 +0000 (15:05 +0000)]
[project @ 2000-04-28 15:05:04 by panne]
Nuked trace message from NCG

24 years ago[project @ 2000-04-28 15:04:07 by panne]
panne [Fri, 28 Apr 2000 15:04:07 +0000 (15:04 +0000)]
[project @ 2000-04-28 15:04:07 by panne]
NCG now handles writeBLAHOffAddr# primops

24 years ago[project @ 2000-04-28 13:09:19 by sewardj]
sewardj [Fri, 28 Apr 2000 13:09:19 +0000 (13:09 +0000)]
[project @ 2000-04-28 13:09:19 by sewardj]
Remove some debug printing.

24 years ago[project @ 2000-04-28 13:03:47 by sewardj]
sewardj [Fri, 28 Apr 2000 13:03:47 +0000 (13:03 +0000)]
[project @ 2000-04-28 13:03:47 by sewardj]
Handle TUPLE in substExpr().

24 years ago[project @ 2000-04-28 11:58:22 by simonpj]
simonpj [Fri, 28 Apr 2000 11:58:23 +0000 (11:58 +0000)]
[project @ 2000-04-28 11:58:22 by simonpj]
Fix a renamer bug that meant we weren't getting
package information propagated properly.

24 years ago[project @ 2000-04-28 09:45:26 by sewardj]
sewardj [Fri, 28 Apr 2000 09:45:26 +0000 (09:45 +0000)]
[project @ 2000-04-28 09:45:26 by sewardj]
Time for bye-byes for QueueTemplate.h.  The big reorganisation of the
BCO linker makes this unnecessary.

24 years ago[project @ 2000-04-27 16:35:29 by sewardj]
sewardj [Thu, 27 Apr 2000 16:35:30 +0000 (16:35 +0000)]
[project @ 2000-04-27 16:35:29 by sewardj]
A total rewrite of the BCO assembler/linker, and rationalisation of
the code management and code generation phases of Hugs.

Problems with the old linker:

* Didn't have a clean way to insert a pointer to GHC code into a BCO.
  This meant CAF GC didn't work properly in combined mode.

* Leaked memory.  Each BCO, caf and constructor generated by Hugs had
  a corresponding malloc'd record used in its construction.  These
  records existed forever.  Pointers from the Hugs symbol tables into
  the runtime heap always went via these intermediates, for no apparent
  reason.

* A global variable holding a list of top-level stg trees was used
  during code generation.  It was hard to associate trees in this
  list with entries in the name/tycon tables.  Just too many
  mechanisms.

The New World Order is as follows:

* The global code list (stgGlobals) is gone.

* Each name in the name table has a .closure field.  This points
  to the top-level code for that name.  Before bytecode generation
  this points to a STG tree.  During bytecode generation but before
  bytecode linking it is a MPtr pointing to a malloc'd intermediate
  structure (an AsmObject).  After linking, it is a real live pointer
  into the execution heap (CPtr) which is treated as a root during GC.

  Because tuples do not have name table entries, tycons which are
  tuples also have a .closure field, which is treated identically
  to those of name table entries.

* Each module has a code list -- a list of names and tuples.  If you
  are a name or tuple and you have something (code, CAF or Con) which
  needs to wind up in the execution heap, you MUST be on your module's
  code list.  Otherwise you won't get code generated.

* Lambda lifting generates new name table entries, which of course
  also wind up on the code list.

* The initial phase of code generation for a module m traverses m's
  code list.  The stg trees referenced in the .closure fields are
  code generated, creating AsmObject (AsmBCO, AsmCAF, AsmCon) in
  mallocville.  The .closure fields then point to these AsmObjects.
  Since AsmObjects can be mutually recursive, they can contain
  references to:
     * Other AsmObjects            Asm_RefObject
     * Existing closures           Asm_RefNoOp
     * name/tycon table entries    Asm_RefHugs
  AsmObjects can also contain BCO insns and non-ptr words.

* A second copy-and-link phase copies the AsmObjects into the
  execution heap, resolves the Asm_Ref* items, and frees up
  the malloc'd entities.

* Minor cleanups in compile-time storage.  There are now 3 kinds of
  address-y things available:
     CPtr/mkCPtr/cptrOf    -- ptrs to Closures, probably in exec heap
                              ie anything which the exec GC knows about
     MPtr/mkMPtr/mptrOf    -- ptrs to mallocville, which the exec GC
                              knows nothing about
     Addr/mkAddr/addrOf    -- literal addresses (like literal ints)

* Many hacky cases removed from codegen.c.  Referencing code or
  data during code generation is a lot simpler, since an entity
  is either:
      a CPtr, in which case use it as is
      a MPtr -- stuff it into the AsmObject and the linker will fix it
      a name or tycon
             -- ditto

* I've checked, using Purify that, at least in standalone mode,
  no longer leaks mallocd memory.  Prior to this it would leak at
  the rate of about 300k per Prelude.

* Added this comment to the top of codegen.c.

Still to do:

* Reinstate peephole optimisation for BCOs.

* Nuke magic number headers in AsmObjects, used for debugging.

* Profile and accelerate.  Code generation is slower because linking
  is slower.  Evaluation GC is slower because markHugsObjects has
  slowed down.

* Make setCurrentModule ignore name table entries created by the
  lambda-lifter.

* Zap various #if 0's in codegen.c/Assembler.c.

* Zap CRUDE_PROFILING.

24 years ago[project @ 2000-04-27 16:31:46 by sewardj]
sewardj [Thu, 27 Apr 2000 16:31:46 +0000 (16:31 +0000)]
[project @ 2000-04-27 16:31:46 by sewardj]
Zap unused revert_dead_CAFs.

24 years ago[project @ 2000-04-27 16:29:55 by sewardj]
sewardj [Thu, 27 Apr 2000 16:29:55 +0000 (16:29 +0000)]
[project @ 2000-04-27 16:29:55 by sewardj]
Remove misleading comment about registerisation assumptions.

24 years ago[project @ 2000-04-27 16:26:56 by sewardj]
sewardj [Thu, 27 Apr 2000 16:26:56 +0000 (16:26 +0000)]
[project @ 2000-04-27 16:26:56 by sewardj]
Add CMODE to switch conveniently between combined and standalone testing.

24 years ago[project @ 2000-04-27 13:54:11 by chak]
chak [Thu, 27 Apr 2000 13:54:11 +0000 (13:54 +0000)]
[project @ 2000-04-27 13:54:11 by chak]
debugged computation of the file list for the base (non-profiling) package

24 years ago[project @ 2000-04-27 13:52:33 by chak]
chak [Thu, 27 Apr 2000 13:52:33 +0000 (13:52 +0000)]
[project @ 2000-04-27 13:52:33 by chak]
made version consistent with version.mk

24 years ago[project @ 2000-04-27 13:14:44 by rrt]
rrt [Thu, 27 Apr 2000 13:14:44 +0000 (13:14 +0000)]
[project @ 2000-04-27 13:14:44 by rrt]
Goodness only knows what an "oarser" is. Or rather, was.

24 years ago[project @ 2000-04-27 11:11:55 by simonmar]
simonmar [Thu, 27 Apr 2000 11:11:55 +0000 (11:11 +0000)]
[project @ 2000-04-27 11:11:55 by simonmar]
update docs w.r.t. clean targets.

24 years ago[project @ 2000-04-27 11:06:26 by rrt]
rrt [Thu, 27 Apr 2000 11:06:26 +0000 (11:06 +0000)]
[project @ 2000-04-27 11:06:26 by rrt]
Spelt "compiled" with a "p" in a comment.

24 years ago[project @ 2000-04-27 11:04:36 by simonmar]
simonmar [Thu, 27 Apr 2000 11:04:37 +0000 (11:04 +0000)]
[project @ 2000-04-27 11:04:36 by simonmar]
remove 'veryclean' target.

24 years ago[project @ 2000-04-27 10:44:02 by simonmar]
simonmar [Thu, 27 Apr 2000 10:44:02 +0000 (10:44 +0000)]
[project @ 2000-04-27 10:44:02 by simonmar]
Give this subdir a proper target.mk, and set $(TOP) properly in
boilerplate.mk.

24 years ago[project @ 2000-04-27 10:40:43 by simonmar]
simonmar [Thu, 27 Apr 2000 10:40:43 +0000 (10:40 +0000)]
[project @ 2000-04-27 10:40:43 by simonmar]
Further cleanups to the clean targets.  Don't recurse too much for
distclean and maintainer-clean.

24 years ago[project @ 2000-04-27 10:16:13 by simonmar]
simonmar [Thu, 27 Apr 2000 10:16:13 +0000 (10:16 +0000)]
[project @ 2000-04-27 10:16:13 by simonmar]
sort out the clean targets.

- veryclean has gone away (don't know where it came from in the first
  place)

- the clean targets are now

mostlyclean <= clean <= distclean <= maintainer-clean

24 years ago[project @ 2000-04-27 10:09:01 by simonmar]
simonmar [Thu, 27 Apr 2000 10:09:01 +0000 (10:09 +0000)]
[project @ 2000-04-27 10:09:01 by simonmar]
remove unused cruft

24 years ago[project @ 2000-04-26 17:33:43 by rrt]
rrt [Wed, 26 Apr 2000 17:33:43 +0000 (17:33 +0000)]
[project @ 2000-04-26 17:33:43 by rrt]
Corrected $(findstr to $(findstring

24 years ago[project @ 2000-04-26 17:27:00 by rrt]
rrt [Wed, 26 Apr 2000 17:27:00 +0000 (17:27 +0000)]
[project @ 2000-04-26 17:27:00 by rrt]
Changed 1900 to 2000. Previously this was the oldest bit not just of GHC
source, but any sort of source.

24 years ago[project @ 2000-04-26 17:16:21 by rrt]
rrt [Wed, 26 Apr 2000 17:16:21 +0000 (17:16 +0000)]
[project @ 2000-04-26 17:16:21 by rrt]
Gave a hint about where to find noarch RPMs.

24 years ago[project @ 2000-04-26 15:35:25 by simonmar]
simonmar [Wed, 26 Apr 2000 15:35:25 +0000 (15:35 +0000)]
[project @ 2000-04-26 15:35:25 by simonmar]
we were adding the include path twice, for some bizarre reason.

24 years ago[project @ 2000-04-26 13:50:27 by simonmar]
simonmar [Wed, 26 Apr 2000 13:50:27 +0000 (13:50 +0000)]
[project @ 2000-04-26 13:50:27 by simonmar]
The return value was being lost in PROFILING mode, because the
STOP_FRAME is two words instead of one.

24 years ago[project @ 2000-04-26 11:54:28 by simonmar]
simonmar [Wed, 26 Apr 2000 11:54:28 +0000 (11:54 +0000)]
[project @ 2000-04-26 11:54:28 by simonmar]
restore the two-space sanity checking code.

24 years ago[project @ 2000-04-26 10:54:25 by simonmar]
simonmar [Wed, 26 Apr 2000 10:54:25 +0000 (10:54 +0000)]
[project @ 2000-04-26 10:54:25 by simonmar]
tidy up conditionals a bit.

24 years ago[project @ 2000-04-26 10:43:23 by simonmar]
simonmar [Wed, 26 Apr 2000 10:43:23 +0000 (10:43 +0000)]
[project @ 2000-04-26 10:43:23 by simonmar]
Add Sven's qsort foreign export dynamic test.

24 years ago[project @ 2000-04-26 10:41:45 by simonmar]
simonmar [Wed, 26 Apr 2000 10:41:45 +0000 (10:41 +0000)]
[project @ 2000-04-26 10:41:45 by simonmar]
allow for per-program LD_OPTS.

24 years ago[project @ 2000-04-26 10:17:41 by simonmar]
simonmar [Wed, 26 Apr 2000 10:17:41 +0000 (10:17 +0000)]
[project @ 2000-04-26 10:17:41 by simonmar]
Give a more informative error message in rts_checkSchedStatus().

24 years ago[project @ 2000-04-26 10:03:28 by simonmar]
simonmar [Wed, 26 Apr 2000 10:03:28 +0000 (10:03 +0000)]
[project @ 2000-04-26 10:03:28 by simonmar]
Add uncaught exception test.

24 years ago[project @ 2000-04-26 09:44:18 by simonmar]
simonmar [Wed, 26 Apr 2000 09:44:38 +0000 (09:44 +0000)]
[project @ 2000-04-26 09:44:18 by simonmar]
raisezh_fast now handles uncaught exceptions cleanly.  The affected
thread is marked as Killed, and if it is a main thread then
rts_evalIO() will return ThreadKilled as it should.

24 years ago[project @ 2000-04-26 09:29:37 by simonmar]
simonmar [Wed, 26 Apr 2000 09:29:37 +0000 (09:29 +0000)]
[project @ 2000-04-26 09:29:37 by simonmar]
comment-only clarifications; Killed means "uncaught exception".

24 years ago[project @ 2000-04-26 09:28:18 by simonmar]
simonmar [Wed, 26 Apr 2000 09:28:18 +0000 (09:28 +0000)]
[project @ 2000-04-26 09:28:18 by simonmar]
note that a return status of Killed means "uncaught exception".

24 years ago[project @ 2000-04-25 17:47:42 by andy]
andy [Tue, 25 Apr 2000 17:47:43 +0000 (17:47 +0000)]
[project @ 2000-04-25 17:47:42 by andy]
Adding trivial entry counter.

24 years ago[project @ 2000-04-25 17:43:49 by andy]
andy [Tue, 25 Apr 2000 17:43:50 +0000 (17:43 +0000)]
[project @ 2000-04-25 17:43:49 by andy]
o Adding simple counter for number of enters
o Inc version number
o Adding the start of support for mdo
o Wibble

24 years ago[project @ 2000-04-25 17:40:44 by andy]
andy [Tue, 25 Apr 2000 17:40:45 +0000 (17:40 +0000)]
[project @ 2000-04-25 17:40:44 by andy]
Trying again to remove old version of prelude

24 years ago[project @ 2000-04-25 14:57:39 by simonmar]
simonmar [Tue, 25 Apr 2000 14:57:39 +0000 (14:57 +0000)]
[project @ 2000-04-25 14:57:39 by simonmar]
Fix bug in rts_apply when profiling.

This fixes Sven's foreign export dynamic/profiling bug.

24 years ago[project @ 2000-04-25 14:19:09 by simonmar]
simonmar [Tue, 25 Apr 2000 14:19:09 +0000 (14:19 +0000)]
[project @ 2000-04-25 14:19:09 by simonmar]
Fixes to commitBuffer and commitAndReleaseBuffer to maintain the
invariant that we never leave the handle buffer in a completely full
state.  This fixes the crashes seen in recent Sparc builds.

Found with help from:  Electric Fence &:-)

24 years ago[project @ 2000-04-25 11:30:53 by rrt]
rrt [Tue, 25 Apr 2000 11:30:53 +0000 (11:30 +0000)]
[project @ 2000-04-25 11:30:53 by rrt]
Allow tests to be omitted (OMITTED_RUNTESTS), so that tests which are OS-
specific can be omitted on other OSs.

24 years ago[project @ 2000-04-25 11:27:35 by rrt]
rrt [Tue, 25 Apr 2000 11:27:35 +0000 (11:27 +0000)]
[project @ 2000-04-25 11:27:35 by rrt]
Numerous tweaks to remove out-of-date constructs and make tests Windows-
friendly.

24 years ago[project @ 2000-04-25 10:09:11 by simonmar]
simonmar [Tue, 25 Apr 2000 10:09:11 +0000 (10:09 +0000)]
[project @ 2000-04-25 10:09:11 by simonmar]
fix bug in new -ofile stuff: we were missing a '.' between the tmp
file root and the suffix.

24 years ago[project @ 2000-04-24 22:05:08 by panne]
panne [Mon, 24 Apr 2000 22:05:08 +0000 (22:05 +0000)]
[project @ 2000-04-24 22:05:08 by panne]
Use get_itbl instead of direct access to info field in
removeIndirections. This "worked" only because the probability of
hitting an indirection-like closure by chance is 5:65531 on 32bit
platforms. :-) But HOpenGL once again managed to expose this bug...

24 years ago[project @ 2000-04-23 13:27:04 by chak]
chak [Sun, 23 Apr 2000 13:27:04 +0000 (13:27 +0000)]
[project @ 2000-04-23 13:27:04 by chak]
- revised for ghc 4.07; added suggestions from Pixel <pixel@mandrakesoft.com>
- added profiling package
  [these are named ghc-prof-<version>.<arch>.rpm]

24 years ago[project @ 2000-04-22 14:30:51 by panne]
panne [Sat, 22 Apr 2000 14:30:51 +0000 (14:30 +0000)]
[project @ 2000-04-22 14:30:51 by panne]
Don't use coercion RULES with litlits (e.g. int2Word ``42''), once
again found by *the* GHC test, HOpenGL + Quake level viewer. :-)

24 years ago[project @ 2000-04-21 18:09:30 by panne]
panne [Fri, 21 Apr 2000 18:09:30 +0000 (18:09 +0000)]
[project @ 2000-04-21 18:09:30 by panne]
Include Weak.h to remove a warning

24 years ago[project @ 2000-04-21 18:07:46 by panne]
panne [Fri, 21 Apr 2000 18:07:47 +0000 (18:07 +0000)]
[project @ 2000-04-21 18:07:46 by panne]
I've bitten the bullet and cleaned up the mess around Readline. There
are actually questions to answer by autoconf:

   * Are the headers available for compilation?
   * Are the libraries (and which) available for linking?

Note that in the second case it should be the libraries on the machine
which GHC is *installed* on, not the ones on which it was compiled.
GhcLibsWithReadline is now automagically set if the headers are found,
but this can still be overridden.

24 years ago[project @ 2000-04-21 18:05:19 by panne]
panne [Fri, 21 Apr 2000 18:05:20 +0000 (18:05 +0000)]
[project @ 2000-04-21 18:05:19 by panne]
/tmp/msg

24 years ago[project @ 2000-04-21 15:59:13 by panne]
panne [Fri, 21 Apr 2000 15:59:13 +0000 (15:59 +0000)]
[project @ 2000-04-21 15:59:13 by panne]
Bumped the maximum size of tuples from 37 to 62. If this is not
wanted, use PrelTup_HC_OPTS+=-DNO_LARGE_TUPLES in build.mk.

24 years ago[project @ 2000-04-21 15:48:38 by panne]
panne [Fri, 21 Apr 2000 15:48:38 +0000 (15:48 +0000)]
[project @ 2000-04-21 15:48:38 by panne]
Further steps towards an empty build.mk:
   * GHC is now built with -O by default
   * hslibs/tools now use GhcLibToolsHcOpts, again -O by default

24 years ago[project @ 2000-04-21 15:07:45 by simonpj]
simonpj [Fri, 21 Apr 2000 15:07:45 +0000 (15:07 +0000)]
[project @ 2000-04-21 15:07:45 by simonpj]
Add loop test

24 years ago[project @ 2000-04-21 14:40:48 by simonpj]
simonpj [Fri, 21 Apr 2000 14:40:49 +0000 (14:40 +0000)]
[project @ 2000-04-21 14:40:48 by simonpj]
Remove a way to make the simplifier go into an
infinite loop.   This has been there for some weeks;
and George's UniForm tickled it.  I'm amazed nothing
else has done so.  I'll add a test.

The bad case happened when you go

let xs = 1:xs
in
foldr k z xs

Then we kept firing the foldr/cons rule.

Solution: we don't attach an unfolding *at all* to
loop breakers (Simplify.completeBinding)

24 years ago[project @ 2000-04-21 14:35:46 by simonpj]
simonpj [Fri, 21 Apr 2000 14:35:46 +0000 (14:35 +0000)]
[project @ 2000-04-21 14:35:46 by simonpj]
First I forgot to commit all the files for the
Java support.  Then I spoke the wrong CVS command.
This commit just adds the log message!

--------------------------
Add support for Java generation, written in
a lightning day with Erik Meijer

ghc -J Foo.hs

will do the business, generating Foo.java

The code is in a new directory, javaGen/, so
you'll need to cvs update -d.

I've reorganised main/CodeOutput quite a bit; it
is now much much tidier, and will accommodate new
languages quite easily.

I've also fiddled with the flags that communicate
between the driver and hsc.

GONE: -S=  -C=

NEW: -olang=xxx output language xxx
xxx can be: C, asm, java

-ofile=xxx put the output code in file xxx

BEWARE that I might have broken some of the more
cryptic stuff in ghc.lprl.

Simon

24 years ago[project @ 2000-04-21 12:59:13 by simonpj]
simonpj [Fri, 21 Apr 2000 12:59:13 +0000 (12:59 +0000)]
[project @ 2000-04-21 12:59:13 by simonpj]
And here is the commit for the driver

24 years ago[project @ 2000-04-21 12:57:54 by simonpj]
simonpj [Fri, 21 Apr 2000 12:57:54 +0000 (12:57 +0000)]
[project @ 2000-04-21 12:57:54 by simonpj]
/home/simonpj/tmp/msg

24 years ago[project @ 2000-04-20 16:45:16 by simonpj]
simonpj [Thu, 20 Apr 2000 16:45:16 +0000 (16:45 +0000)]
[project @ 2000-04-20 16:45:16 by simonpj]
Add support for Java generation, written in
a lightning day with Erik Meijer

ghc -J Foo.hs

will do the business, generating Foo.java

The code is in a new directory, javaGen/, so
you'll need to cvs update -d.

I've reorganised main/CodeOutput quite a bit; it
is now much much tidier, and will accommodate new
languages quite easily.

I've also fiddled with the flags that communicate
between the driver and hsc.

GONE: -S=  -C=

NEW: -olang=xxx output language xxx
xxx can be: C, asm, java

-ofile=xxx put the output code in file xxx

BEWARE that I might have broken some of the more
cryptic stuff in ghc.lprl.

Simon

24 years ago[project @ 2000-04-20 16:31:47 by simonpj]
simonpj [Thu, 20 Apr 2000 16:31:47 +0000 (16:31 +0000)]
[project @ 2000-04-20 16:31:47 by simonpj]
Finish TcClassDecl

24 years ago[project @ 2000-04-20 16:28:39 by panne]
panne [Thu, 20 Apr 2000 16:28:39 +0000 (16:28 +0000)]
[project @ 2000-04-20 16:28:39 by panne]
To avoid potential collisions between different modules, prefix the
names of the C stubs with the module name.

24 years ago[project @ 2000-04-20 16:22:46 by panne]
panne [Thu, 20 Apr 2000 16:22:46 +0000 (16:22 +0000)]
[project @ 2000-04-20 16:22:46 by panne]
I'm not sure if the last commit of MkId.lhs was incorrect or
incomplete. Anyway, to build hsc I've commented out the now
superfluous parameter for mkDictSelId (marked with "SUP:???").

24 years ago[project @ 2000-04-20 15:49:21 by panne]
panne [Thu, 20 Apr 2000 15:49:21 +0000 (15:49 +0000)]
[project @ 2000-04-20 15:49:21 by panne]
Package util now depends on package posix, too.
NOTE: To get Readline up and working, -lreadline and one of
-lncurses/-lcurses/-ltermcap has to be inserted, too, but this has to
be autoconf-ed somehow (later...)

24 years ago[project @ 2000-04-20 15:48:20 by simonmar]
simonmar [Thu, 20 Apr 2000 15:48:20 +0000 (15:48 +0000)]
[project @ 2000-04-20 15:48:20 by simonmar]
Update this file to the one on the web site, and add Simon's latest
notes about using the cvs- lists for bug reports about the cvs
sources.

24 years ago[project @ 2000-04-20 15:34:17 by simonmar]
simonmar [Thu, 20 Apr 2000 15:34:17 +0000 (15:34 +0000)]
[project @ 2000-04-20 15:34:17 by simonmar]
Print out cost centre names as C strings (using proper escaping for
special characters etc.).

24 years ago[project @ 2000-04-20 15:22:54 by panne]
panne [Thu, 20 Apr 2000 15:22:54 +0000 (15:22 +0000)]
[project @ 2000-04-20 15:22:54 by panne]
Improved rules for stubs. Not perfect yet, but better than before.

24 years ago[project @ 2000-04-20 15:18:58 by simonmar]
simonmar [Thu, 20 Apr 2000 15:18:58 +0000 (15:18 +0000)]
[project @ 2000-04-20 15:18:58 by simonmar]
add pprStringInCStyle :: String -> SDoc
(we already have a FAST_STRING version but not one for plain Strings).

24 years ago[project @ 2000-04-20 13:20:31 by simonmar]
simonmar [Thu, 20 Apr 2000 13:20:31 +0000 (13:20 +0000)]
[project @ 2000-04-20 13:20:31 by simonmar]
Fix for initModules when unregisterised.

24 years ago[project @ 2000-04-20 12:50:18 by simonpj]
simonpj [Thu, 20 Apr 2000 12:50:18 +0000 (12:50 +0000)]
[project @ 2000-04-20 12:50:18 by simonpj]
Dont strip directory prefix when printing src-locs

24 years ago[project @ 2000-04-20 10:56:05 by simonpj]
simonpj [Thu, 20 Apr 2000 10:56:05 +0000 (10:56 +0000)]
[project @ 2000-04-20 10:56:05 by simonpj]
- Fix bug in TcExpr.tcMonoExpr (RecordUpd ...), where I hadn't
  propagated the recent change (to be H98ish) that record selectors
  for types with a context are overloaded:
data Eq a => T a { f1 :: a }

  Here f1 :: Eq a => T a -> a

  I don't like this, but Mark persuaded me that this was the
  Right Thing if we are to have contexts in data decls at all
  (which we should not)

24 years ago[project @ 2000-04-20 07:02:37 by simonpj]
simonpj [Thu, 20 Apr 2000 07:02:37 +0000 (07:02 +0000)]
[project @ 2000-04-20 07:02:37 by simonpj]
wibble

24 years ago[project @ 2000-04-19 16:51:08 by simonmar]
simonmar [Wed, 19 Apr 2000 16:51:08 +0000 (16:51 +0000)]
[project @ 2000-04-19 16:51:08 by simonmar]
Space leak fix from Simon P.J.

24 years ago[project @ 2000-04-19 16:40:53 by simonpj]
simonpj [Wed, 19 Apr 2000 16:40:53 +0000 (16:40 +0000)]
[project @ 2000-04-19 16:40:53 by simonpj]
- Fix foreign export dynamic wibble (reported by Sven)

24 years ago[project @ 2000-04-19 16:24:00 by simonpj]
simonpj [Wed, 19 Apr 2000 16:24:00 +0000 (16:24 +0000)]
[project @ 2000-04-19 16:24:00 by simonpj]
- Don't rm the .o file when splitting.   Doing so
  forces grotesque amounts of recompilation

24 years ago[project @ 2000-04-19 12:47:55 by simonpj]
simonpj [Wed, 19 Apr 2000 12:47:55 +0000 (12:47 +0000)]
[project @ 2000-04-19 12:47:55 by simonpj]
- Arrange that -ddump-simpl-stats works whether or
  not DEBUG is defines (Ross Paterson's request)

24 years ago[project @ 2000-04-19 12:42:48 by simonmar]
simonmar [Wed, 19 Apr 2000 12:42:48 +0000 (12:42 +0000)]
[project @ 2000-04-19 12:42:48 by simonmar]
- generate the heap profiling into <prog>.hp, as advertised
- clean up RtsFlags a bit

24 years ago[project @ 2000-04-19 10:53:11 by simonmar]
simonmar [Wed, 19 Apr 2000 10:53:11 +0000 (10:53 +0000)]
[project @ 2000-04-19 10:53:11 by simonmar]
Profiling info for all the thunks herein.

24 years ago[project @ 2000-04-19 10:52:36 by simonmar]
simonmar [Wed, 19 Apr 2000 10:52:36 +0000 (10:52 +0000)]
[project @ 2000-04-19 10:52:36 by simonmar]
Profiling description info for PAP and AP_UPD.

24 years ago[project @ 2000-04-19 10:51:59 by simonmar]
simonmar [Wed, 19 Apr 2000 10:51:59 +0000 (10:51 +0000)]
[project @ 2000-04-19 10:51:59 by simonmar]
MUT_VAR needs some profiling description info.

24 years ago[project @ 2000-04-19 09:59:55 by panne]
panne [Wed, 19 Apr 2000 09:59:55 +0000 (09:59 +0000)]
[project @ 2000-04-19 09:59:55 by panne]
Corrected typo in nfib example (/ => `div`).
Added description for hp2ps's -c/-y flags.

24 years ago[project @ 2000-04-19 09:12:10 by simonmar]
simonmar [Wed, 19 Apr 2000 09:12:10 +0000 (09:12 +0000)]
[project @ 2000-04-19 09:12:10 by simonmar]
Fix a bug in previous commit, some .globls were getting thrown away.

24 years ago[project @ 2000-04-18 16:47:50 by simonmar]
simonmar [Tue, 18 Apr 2000 16:47:50 +0000 (16:47 +0000)]
[project @ 2000-04-18 16:47:50 by simonmar]
enumFrom<blah> on Ratios changed slightly recently.  The current
behaviour is correct.

24 years ago[project @ 2000-04-18 16:44:46 by simonmar]
simonmar [Tue, 18 Apr 2000 16:44:46 +0000 (16:44 +0000)]
[project @ 2000-04-18 16:44:46 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-04-18 16:27:23 by simonmar]
simonmar [Tue, 18 Apr 2000 16:27:23 +0000 (16:27 +0000)]
[project @ 2000-04-18 16:27:23 by simonmar]
Addr no longer exports A#.

24 years ago[project @ 2000-04-18 16:25:05 by simonmar]
simonmar [Tue, 18 Apr 2000 16:26:07 +0000 (16:26 +0000)]
[project @ 2000-04-18 16:25:05 by simonmar]
CCallable [Char] is no longer supported.

24 years ago[project @ 2000-04-18 15:06:19 by simonmar]
simonmar [Tue, 18 Apr 2000 15:06:19 +0000 (15:06 +0000)]
[project @ 2000-04-18 15:06:19 by simonmar]
give CAF_BLACKHOLEs a closure description/type (for profiling).

24 years ago[project @ 2000-04-18 14:54:00 by simonmar]
simonmar [Tue, 18 Apr 2000 14:54:00 +0000 (14:54 +0000)]
[project @ 2000-04-18 14:54:00 by simonmar]
Revamp this chapter for the new profiling stuff.

24 years ago[project @ 2000-04-18 11:39:07 by panne]
panne [Tue, 18 Apr 2000 11:39:07 +0000 (11:39 +0000)]
[project @ 2000-04-18 11:39:07 by panne]
Add ghcprof to file list (what about DrIFT, DtdToHaskell, Xtract and
hslibs in general?)

24 years ago[project @ 2000-04-18 11:31:56 by panne]
panne [Tue, 18 Apr 2000 11:31:56 +0000 (11:31 +0000)]
[project @ 2000-04-18 11:31:56 by panne]
Substitute libexecdir, too

24 years ago[project @ 2000-04-18 11:01:24 by simonmar]
simonmar [Tue, 18 Apr 2000 11:01:24 +0000 (11:01 +0000)]
[project @ 2000-04-18 11:01:24 by simonmar]
Add declarations so that emacs PSGML mode can find the DOCTYPE
declaration properly.

24 years ago[project @ 2000-04-17 15:49:19 by simonmar]
simonmar [Mon, 17 Apr 2000 15:49:19 +0000 (15:49 +0000)]
[project @ 2000-04-17 15:49:19 by simonmar]
Check for litlits and dll things when making top-level constrs.