ghc-hetmet.git
23 years ago[project @ 2001-03-23 16:36:20 by simonmar]
simonmar [Fri, 23 Mar 2001 16:36:23 +0000 (16:36 +0000)]
[project @ 2001-03-23 16:36:20 by simonmar]
Changes to support bootstrapping the compiler from .hc files.  It's
not quite working yet, but it's not far off.

  - the biggest change is that any injected #includes are now placed in
    the .hc file at generation time, rather than compilation time.  I
    can't see any reason not to do this - it makes it clear by looking at
    the .hc file which files are being #included, it means one less
    temporary file at compilation time, and it means the .hc file is more
    standalone.

  - all the gruesomeness is in mk/bootstrap.mk, which handles building
    .hc files without a ghc driver.

23 years ago[project @ 2001-03-23 16:25:02 by simonmar]
simonmar [Fri, 23 Mar 2001 16:25:02 +0000 (16:25 +0000)]
[project @ 2001-03-23 16:25:02 by simonmar]
add ghc-pkg

23 years ago[project @ 2001-03-23 15:25:30 by simonmar]
simonmar [Fri, 23 Mar 2001 15:25:30 +0000 (15:25 +0000)]
[project @ 2001-03-23 15:25:30 by simonmar]
document :def and :undef

23 years ago[project @ 2001-03-23 14:52:30 by simonpj]
simonpj [Fri, 23 Mar 2001 14:52:30 +0000 (14:52 +0000)]
[project @ 2001-03-23 14:52:30 by simonpj]
Add comment

23 years ago[project @ 2001-03-23 14:52:17 by simonpj]
simonpj [Fri, 23 Mar 2001 14:52:17 +0000 (14:52 +0000)]
[project @ 2001-03-23 14:52:17 by simonpj]
Improve printing slightly

23 years ago[project @ 2001-03-23 14:51:54 by simonpj]
simonpj [Fri, 23 Mar 2001 14:51:54 +0000 (14:51 +0000)]
[project @ 2001-03-23 14:51:54 by simonpj]
Fix renamer error that prevented PrelBase compiling

23 years ago[project @ 2001-03-23 13:00:39 by rrt]
rrt [Fri, 23 Mar 2001 13:00:39 +0000 (13:00 +0000)]
[project @ 2001-03-23 13:00:39 by rrt]
Include config.h, not Stg.h

23 years ago[project @ 2001-03-23 12:29:07 by simonmar]
simonmar [Fri, 23 Mar 2001 12:29:07 +0000 (12:29 +0000)]
[project @ 2001-03-23 12:29:07 by simonmar]
Add test for :def, :undef

23 years ago[project @ 2001-03-23 12:12:18 by simonmar]
simonmar [Fri, 23 Mar 2001 12:12:18 +0000 (12:12 +0000)]
[project @ 2001-03-23 12:12:18 by simonmar]
make :def work again

23 years ago[project @ 2001-03-23 12:11:26 by simonmar]
simonmar [Fri, 23 Mar 2001 12:11:26 +0000 (12:11 +0000)]
[project @ 2001-03-23 12:11:26 by simonmar]
unused import

23 years ago[project @ 2001-03-23 10:47:21 by simonpj]
simonpj [Fri, 23 Mar 2001 10:47:21 +0000 (10:47 +0000)]
[project @ 2001-03-23 10:47:21 by simonpj]
Comments, plus dead code elim

23 years ago[project @ 2001-03-23 10:46:27 by simonpj]
simonpj [Fri, 23 Mar 2001 10:46:27 +0000 (10:46 +0000)]
[project @ 2001-03-23 10:46:27 by simonpj]
-----------------------------------
Correct size calculations for INLINE notes
-----------------------------------

Amazingly, CoreUnfold.size_up wasn't treating an InlineMe note
as small.  (InlineMe was only dealt with at top level.)  As
the comment now says:

  -- This can be important.  If you have an instance decl like this:
  --  instance Foo a => Foo [a] where
  --    {-# INLINE op1, op2 #-}
  --    op1 = ...
  --    op2 = ...
  -- then we'll get a dfun which is a pair of two INLINE lambdas

This fixes a problem Manuel encountered.

23 years ago[project @ 2001-03-23 10:44:08 by simonpj]
simonpj [Fri, 23 Mar 2001 10:44:08 +0000 (10:44 +0000)]
[project @ 2001-03-23 10:44:08 by simonpj]
-----------------------------------
Remove a redundant test in WorkWrap
-----------------------------------

We were making a worker/wrapper for an INLINE
function when it wasn't necessary, and that's a Bad Idea.
As the comment with WorkWrap.tryWW now says:

-- It's very important to refrain from w/w-ing an INLINE function
-- If we do so by mistake we transform
-- f = __inline (\x -> E)
-- into
-- f = __inline (\x -> case x of (a,b) -> fw E)
-- fw = \ab -> (__inline (\x -> E)) (a,b)
-- and the original __inline now vanishes, so E is no longer
-- inside its __inline wrapper.  Death!  Disaster!

There was one case when we did w/w it (to do with coercions),
but it turned out to be a vestige, as the OUT OF DATE NOTE says.

23 years ago[project @ 2001-03-23 09:33:22 by qrczak]
qrczak [Fri, 23 Mar 2001 09:33:22 +0000 (09:33 +0000)]
[project @ 2001-03-23 09:33:22 by qrczak]
hsc2hs lexical rules clarified.

23 years ago[project @ 2001-03-22 12:12:23 by simonmar]
simonmar [Thu, 22 Mar 2001 12:12:23 +0000 (12:12 +0000)]
[project @ 2001-03-22 12:12:23 by simonmar]
Move the bug reporting section earlier, and mention the SourceForge
bug tracker.

Update the release notes.

I think I'm just about done in here...

23 years ago[project @ 2001-03-22 11:20:36 by simonpj]
simonpj [Thu, 22 Mar 2001 11:20:36 +0000 (11:20 +0000)]
[project @ 2001-03-22 11:20:36 by simonpj]
Improve error message for ambiguity

23 years ago[project @ 2001-03-22 11:19:28 by simonpj]
simonpj [Thu, 22 Mar 2001 11:19:28 +0000 (11:19 +0000)]
[project @ 2001-03-22 11:19:28 by simonpj]
Improve error reporting for signatures not in scope

23 years ago[project @ 2001-03-22 11:00:54 by simonpj]
simonpj [Thu, 22 Mar 2001 11:00:54 +0000 (11:00 +0000)]
[project @ 2001-03-22 11:00:54 by simonpj]
Add a bit more info about -fno-implicit-prelude

23 years ago[project @ 2001-03-22 03:51:08 by hwloidl]
hwloidl [Thu, 22 Mar 2001 03:51:13 +0000 (03:51 +0000)]
[project @ 2001-03-22 03:51:08 by hwloidl]
-*- outline -*-
Time-stamp: <Thu Mar 22 2001 03:50:16 Stardate: [-30]6365.79 hwloidl>

This commit covers changes in GHC to get GUM (way=mp) and GUM/GdH (way=md)
working. It is a merge of my working version of GUM, based on GHC 4.06,
with GHC 4.11. Almost all changes are in the RTS (see below).

GUM is reasonably stable, we used the 4.06 version in large-ish programs for
recent papers. Couple of things I want to change, but nothing urgent.
GUM/GdH has just been merged and needs more testing. Hope to do that in the
next weeks. It works in our working build but needs tweaking to run.
GranSim doesn't work yet (*sigh*). Most of the code should be in, but needs
more debugging.

ToDo: I still want to make the following minor modifications before the release
- Better wrapper skript for parallel execution [ghc/compiler/main]
- Update parallel docu: started on it but it's minimal [ghc/docs/users_guide]
- Clean up [nofib/parallel]: it's a real mess right now (*sigh*)
- Update visualisation tools (minor things only IIRC) [ghc/utils/parallel]
- Add a Klingon-English glossary

* RTS:

Almost all changes are restricted to ghc/rts/parallel and should not
interfere with the rest. I only comment on changes outside the parallel
dir:

- Several changes in Schedule.c (scheduling loop; createThreads etc);
  should only affect parallel code
- Added ghc/rts/hooks/ShutdownEachPEHook.c
- ghc/rts/Linker.[ch]: GUM doesn't know about Stable Names (ifdefs)!!
- StgMiscClosures.h: END_TSO_QUEUE etc now defined here (from StgMiscClosures.hc)
                     END_ECAF_LIST was missing a leading stg_
- SchedAPI.h: taskStart now defined in here; it's only a wrapper around
              scheduleThread now, but might use some init, shutdown later
- RtsAPI.h: I have nuked the def of rts_evalNothing

* Compiler:

- ghc/compiler/main/DriverState.hs
  added PVM-ish flags to the parallel way
  added new ways for parallel ticky profiling and distributed exec

- ghc/compiler/main/DriverPipeline.hs
  added a fct run_phase_MoveBinary which is called with way=mp after linking;
  it moves the bin file into a PVM dir and produces a wrapper script for
  parallel execution
  maybe cleaner to add a MoveBinary phase in DriverPhases.hs but this way
  it's less intrusive and MoveBinary makes probably only sense for mp anyway

* Nofib:

- nofib/spectral/Makefile, nofib/real/Makefile, ghc/tests/programs/Makefile:
  modified to skip some tests if HWL_NOFIB_HACK is set; only tmp to record
  which test prgs cause problems in my working build right now

23 years ago[project @ 2001-03-21 15:33:47 by simonmar]
simonmar [Wed, 21 Mar 2001 15:33:47 +0000 (15:33 +0000)]
[project @ 2001-03-21 15:33:47 by simonmar]
remove bits left over from STG hugs.

23 years ago[project @ 2001-03-21 15:14:27 by simonmar]
simonmar [Wed, 21 Mar 2001 15:14:27 +0000 (15:14 +0000)]
[project @ 2001-03-21 15:14:27 by simonmar]
tidy up, indent, and make this match reality

23 years ago[project @ 2001-03-21 14:26:30 by simonmar]
simonmar [Wed, 21 Mar 2001 14:26:30 +0000 (14:26 +0000)]
[project @ 2001-03-21 14:26:30 by simonmar]
Fix for a harmless assertion failure (reachable_from included package
modules).

Also, clean up the downsweep code, and make it more efficient.

23 years ago[project @ 2001-03-21 14:25:37 by simonmar]
simonmar [Wed, 21 Mar 2001 14:25:37 +0000 (14:25 +0000)]
[project @ 2001-03-21 14:25:37 by simonmar]
GHCi test updates

23 years ago[project @ 2001-03-21 11:17:00 by sewardj]
sewardj [Wed, 21 Mar 2001 11:17:00 +0000 (11:17 +0000)]
[project @ 2001-03-21 11:17:00 by sewardj]
Implement tagToEnum# for the bytecode system.  Blargh.  We spot tail-calls
   tagToEnum# <type> arg
and emit code to push the arg, then do a bytecode test-sequence to
determine what value it is, push the relevant constructor, and merge
control flow again, at a label which does the normal tail-call
sequence: slide the constructor down to the sequel and enter it.

Blargyle, or as some would say, barferama.

23 years ago[project @ 2001-03-21 10:56:04 by sewardj]
sewardj [Wed, 21 Mar 2001 10:56:04 +0000 (10:56 +0000)]
[project @ 2001-03-21 10:56:04 by sewardj]
RTS support for the ugly tagToEnum# hack.  Actually a very general
thing -- just a bytecode unconditional jump, so we can do more general
control-flow in BCOs.

23 years ago[project @ 2001-03-20 21:21:46 by panne]
panne [Tue, 20 Mar 2001 21:21:46 +0000 (21:21 +0000)]
[project @ 2001-03-20 21:21:46 by panne]
SuSE's Version 7.1 once again broke DocBook, so as a last resort we
use a home-made CATALOG.   >:-(

23 years ago[project @ 2001-03-20 15:57:30 by simonmar]
simonmar [Tue, 20 Mar 2001 15:57:30 +0000 (15:57 +0000)]
[project @ 2001-03-20 15:57:30 by simonmar]
play quoting games to hopefully get this to build with both ghc-4.08.2
and ghc-4.11+.

23 years ago[project @ 2001-03-20 15:37:52 by simonmar]
simonmar [Tue, 20 Mar 2001 15:37:52 +0000 (15:37 +0000)]
[project @ 2001-03-20 15:37:52 by simonmar]
- add index terms
- elaborate the description of the 'it' variable

23 years ago[project @ 2001-03-20 15:37:05 by simonmar]
simonmar [Tue, 20 Mar 2001 15:37:05 +0000 (15:37 +0000)]
[project @ 2001-03-20 15:37:05 by simonmar]
markup fix.

23 years ago[project @ 2001-03-20 15:36:40 by simonmar]
simonmar [Tue, 20 Mar 2001 15:36:40 +0000 (15:36 +0000)]
[project @ 2001-03-20 15:36:40 by simonmar]
Split the primitives section out into a separate file, and add a
paragraph discouraging its use.

23 years ago[project @ 2001-03-20 15:19:02 by simonmar]
simonmar [Tue, 20 Mar 2001 15:19:02 +0000 (15:19 +0000)]
[project @ 2001-03-20 15:19:02 by simonmar]
- update documentation for SPECIALISE pragma
- change upper-case markup to lower-case

23 years ago[project @ 2001-03-20 14:53:24 by simonmar]
simonmar [Tue, 20 Mar 2001 14:53:24 +0000 (14:53 +0000)]
[project @ 2001-03-20 14:53:24 by simonmar]
put the GHCi chapter before the "using GHC" chapter.

23 years ago[project @ 2001-03-20 14:53:04 by simonmar]
simonmar [Tue, 20 Mar 2001 14:53:04 +0000 (14:53 +0000)]
[project @ 2001-03-20 14:53:04 by simonmar]
update (no -optCrts -Rgc-timing, -no-link-chk)

23 years ago[project @ 2001-03-20 14:52:29 by simonmar]
simonmar [Tue, 20 Mar 2001 14:52:29 +0000 (14:52 +0000)]
[project @ 2001-03-20 14:52:29 by simonmar]
update (no more -optCrts)

23 years ago[project @ 2001-03-20 14:51:47 by simonmar]
simonmar [Tue, 20 Mar 2001 14:51:47 +0000 (14:51 +0000)]
[project @ 2001-03-20 14:51:47 by simonmar]
remove unnecessary parens

23 years ago[project @ 2001-03-20 12:50:14 by sewardj]
sewardj [Tue, 20 Mar 2001 12:50:14 +0000 (12:50 +0000)]
[project @ 2001-03-20 12:50:14 by sewardj]
Document new profiling options.

23 years ago[project @ 2001-03-20 12:37:25 by simonpj]
simonpj [Tue, 20 Mar 2001 12:37:25 +0000 (12:37 +0000)]
[project @ 2001-03-20 12:37:25 by simonpj]
-------------------------------------
Be less keen about inlining primops
-------------------------------------

Marcin pointed out that it's bad to take

let x = a +# (b *# c)
in
x + f x + g x

and inline x to get

(a +# (b *# c)) +
f (a +# (b *# c)) +
g (a +# (b *# c))

Yet that's just what we were doing.  The offending clause is
in PrimOp.primOpIsCheap, which regards some primop applications
as 'cheap' (and hence freely duplicable).

For now, I've made it return False.  Let's see what that does.

23 years ago[project @ 2001-03-20 12:30:46 by simonpj]
simonpj [Tue, 20 Mar 2001 12:30:46 +0000 (12:30 +0000)]
[project @ 2001-03-20 12:30:46 by simonpj]
Fix orphan calculation (again)

23 years ago[project @ 2001-03-20 12:09:55 by simonmar]
simonmar [Tue, 20 Mar 2001 12:09:55 +0000 (12:09 +0000)]
[project @ 2001-03-20 12:09:55 by simonmar]
add note about installing DocBook toolchain on FreeBSD

23 years ago[project @ 2001-03-20 11:37:21 by simonmar]
simonmar [Tue, 20 Mar 2001 11:37:21 +0000 (11:37 +0000)]
[project @ 2001-03-20 11:37:21 by simonmar]
a couple of micro-optimisations

23 years ago[project @ 2001-03-20 10:34:19 by simonmar]
simonmar [Tue, 20 Mar 2001 10:34:19 +0000 (10:34 +0000)]
[project @ 2001-03-20 10:34:19 by simonmar]
fix and elaborate the documentation for <literal>extra_libraries</literal>

23 years ago[project @ 2001-03-20 10:13:06 by simonmar]
simonmar [Tue, 20 Mar 2001 10:13:06 +0000 (10:13 +0000)]
[project @ 2001-03-20 10:13:06 by simonmar]
GHCi test update

23 years ago[project @ 2001-03-20 09:18:28 by simonmar]
simonmar [Tue, 20 Mar 2001 09:18:28 +0000 (09:18 +0000)]
[project @ 2001-03-20 09:18:28 by simonmar]
put the NUL terminator in the right place in stringToStringBuffer.

23 years ago[project @ 2001-03-19 18:23:45 by sewardj]
sewardj [Mon, 19 Mar 2001 18:23:45 +0000 (18:23 +0000)]
[project @ 2001-03-19 18:23:45 by sewardj]
Don't create an installation-time Makefile (target binary-dist).

23 years ago[project @ 2001-03-19 18:15:59 by sewardj]
sewardj [Mon, 19 Mar 2001 18:15:59 +0000 (18:15 +0000)]
[project @ 2001-03-19 18:15:59 by sewardj]
Basic support for the simplified installation story.

23 years ago[project @ 2001-03-19 16:26:09 by simonpj]
simonpj [Mon, 19 Mar 2001 16:26:09 +0000 (16:26 +0000)]
[project @ 2001-03-19 16:26:09 by simonpj]
Comments only

23 years ago[project @ 2001-03-19 16:24:37 by simonpj]
simonpj [Mon, 19 Mar 2001 16:24:37 +0000 (16:24 +0000)]
[project @ 2001-03-19 16:24:37 by simonpj]
---------------------------------------------
Be more eager to inline for an applied coerce
---------------------------------------------

Given this:

(coerce T f) x y

SimplUtils.interestingCallContext was returning False (uninteresting
call context).  This is wrong: it's a very intersting context.

Darn those coerces!  They are scheduled for destruction, but meanwhile,
this makes matters a bit better.

23 years ago[project @ 2001-03-19 16:22:51 by simonpj]
simonpj [Mon, 19 Mar 2001 16:22:51 +0000 (16:22 +0000)]
[project @ 2001-03-19 16:22:51 by simonpj]
-------------------------------------------------------
Be more careful about floating out from  INLINE pragmas
-------------------------------------------------------

Given this:

x = __inline__ (f (g y))

we were floating the (g y) out as a MFE, thus:

lvl = g y
x = __inline__ (f lvl)

This is bad.  The (g y) redex gets outside the __inline__ envelope,
and may never get inlined.

The solution involved a bit of fiddling in SetLevels.

23 years ago[project @ 2001-03-19 16:22:00 by simonmar]
simonmar [Mon, 19 Mar 2001 16:22:01 +0000 (16:22 +0000)]
[project @ 2001-03-19 16:22:00 by simonmar]
Fix a problem with the 'it' variable in GHCi.  New bindings for 'it'
were getting confused with old bindings, because we always used the
same 'it' name.

Now, we generate a new unique for 'it' each time around.

Also, make sure that any existing variables shadowed by new
command-line bindings are correctly removed from the environments to
avoid space leaks.

23 years ago[project @ 2001-03-19 16:20:44 by simonpj]
simonpj [Mon, 19 Mar 2001 16:20:44 +0000 (16:20 +0000)]
[project @ 2001-03-19 16:20:44 by simonpj]
------------------------------------
Be more gung-ho about INLINE pragmas
------------------------------------

When we see

{-# INLINE f #-}
f = g $ h

should we inline f inside a lambda?  Previously we said 'no'
because f looks like a redex, but that's a great mistake sometimes.
So this commit is more gung-ho: if you say INLINE that's what you get.

The changes are to exprIsDupable and exprIsCheap.

23 years ago[project @ 2001-03-19 16:17:44 by simonmar]
simonmar [Mon, 19 Mar 2001 16:17:44 +0000 (16:17 +0000)]
[project @ 2001-03-19 16:17:44 by simonmar]
exprIsAtom shouldn't return True for an SCC.

23 years ago[project @ 2001-03-19 16:17:27 by simonpj]
simonpj [Mon, 19 Mar 2001 16:17:27 +0000 (16:17 +0000)]
[project @ 2001-03-19 16:17:27 by simonpj]
-------------------------------
PS to: Improve orphan-module resolution
-------------------------------

{This comment got missed out of the previous commit.}

I also moved mkFinalIface from HscMain to MkIface, where it is much tidier.
(This is related, because it's mkFinalIface that now sets mi_orphan.)

23 years ago[project @ 2001-03-19 16:15:29 by simonpj]
simonpj [Mon, 19 Mar 2001 16:15:29 +0000 (16:15 +0000)]
[project @ 2001-03-19 16:15:29 by simonpj]
Reorder the calls to
tcSimplifyTop
and
tcCheckMain

in TcModule.  We must to tcCheckMain first, else we get a bogus
complaint when compiling

main = return ()

(Something about ambiguous monad.)

23 years ago[project @ 2001-03-19 16:13:22 by simonpj]
simonpj [Mon, 19 Mar 2001 16:13:23 +0000 (16:13 +0000)]
[project @ 2001-03-19 16:13:22 by simonpj]
-------------------------------
Improve orphan-module resolution
-------------------------------

Consider the following rule (and there are lots of these in
the Prelude):

fromIntegral T = fromIntegral_T

where T is defined in the module being compiled.

is an orphan.  Of course it isn't, an declaring it an orphan would
make the whole module an orphan module, which is bad.

This commit arranges to determine orphan rules, and the orphan-hood
of a module, much later than before.  (Before mi_orphan was set by
the renamer, now it is set by MkIface.)

23 years ago[project @ 2001-03-19 16:08:37 by simonpj]
simonpj [Mon, 19 Mar 2001 16:08:37 +0000 (16:08 +0000)]
[project @ 2001-03-19 16:08:37 by simonpj]
Update NOTES

23 years ago[project @ 2001-03-19 10:23:45 by simonmar]
simonmar [Mon, 19 Mar 2001 10:25:32 +0000 (10:25 +0000)]
[project @ 2001-03-19 10:23:45 by simonmar]
PutFullMVar went away

23 years ago[project @ 2001-03-16 21:47:41 by qrczak]
qrczak [Fri, 16 Mar 2001 21:47:41 +0000 (21:47 +0000)]
[project @ 2001-03-16 21:47:41 by qrczak]
Use strerror instead of our own errno descriptions.

23 years ago[project @ 2001-03-16 18:15:14 by simonmar]
simonmar [Fri, 16 Mar 2001 18:15:14 +0000 (18:15 +0000)]
[project @ 2001-03-16 18:15:14 by simonmar]
Re-instate filtering of the CAF refs for recursive bindings.  This may
be the cause of GC being real slow on a bootstrapped compiler right now.

23 years ago[project @ 2001-03-16 14:36:19 by sewardj]
sewardj [Fri, 16 Mar 2001 14:36:19 +0000 (14:36 +0000)]
[project @ 2001-03-16 14:36:19 by sewardj]
prelude/PrimOp_HC_OPTS += -H80m at least until we figure out why
ghc-5.0 is leaking space so badly.

23 years ago[project @ 2001-03-16 10:29:57 by simonmar]
simonmar [Fri, 16 Mar 2001 10:29:57 +0000 (10:29 +0000)]
[project @ 2001-03-16 10:29:57 by simonmar]
remove 4 old primops

23 years ago[project @ 2001-03-16 10:07:02 by simonmar]
simonmar [Fri, 16 Mar 2001 10:07:02 +0000 (10:07 +0000)]
[project @ 2001-03-16 10:07:02 by simonmar]
wibbles

23 years ago[project @ 2001-03-16 10:05:01 by simonmar]
simonmar [Fri, 16 Mar 2001 10:05:01 +0000 (10:05 +0000)]
[project @ 2001-03-16 10:05:01 by simonmar]
add -package lang

23 years ago[project @ 2001-03-16 10:04:31 by simonmar]
simonmar [Fri, 16 Mar 2001 10:04:31 +0000 (10:04 +0000)]
[project @ 2001-03-16 10:04:31 by simonmar]
remove bogus import

23 years ago[project @ 2001-03-16 09:07:41 by qrczak]
qrczak [Fri, 16 Mar 2001 09:07:41 +0000 (09:07 +0000)]
[project @ 2001-03-16 09:07:41 by qrczak]
Compile hsc2hs with -O.
Remove INLINE pragmas - they actually degrade performance by 2%.

23 years ago[project @ 2001-03-15 20:35:49 by qrczak]
qrczak [Thu, 15 Mar 2001 20:35:50 +0000 (20:35 +0000)]
[project @ 2001-03-15 20:35:49 by qrczak]
Finish the destruct story:
* Add lengthArray0, destructArray, destructArray0 to module MarshalArray.
* Call destruct in withObject, withArray, withArray0.
* Document destruct and friends.

23 years ago[project @ 2001-03-15 16:17:24 by simonmar]
simonmar [Thu, 15 Mar 2001 16:17:24 +0000 (16:17 +0000)]
[project @ 2001-03-15 16:17:24 by simonmar]
markup wibble

23 years ago[project @ 2001-03-15 16:17:06 by simonmar]
simonmar [Thu, 15 Mar 2001 16:17:06 +0000 (16:17 +0000)]
[project @ 2001-03-15 16:17:06 by simonmar]
document -fignore-asserts

23 years ago[project @ 2001-03-15 16:16:24 by simonmar]
simonmar [Thu, 15 Mar 2001 16:16:24 +0000 (16:16 +0000)]
[project @ 2001-03-15 16:16:24 by simonmar]
nearly finished GHCi docs.

23 years ago[project @ 2001-03-15 16:16:05 by simonmar]
simonmar [Thu, 15 Mar 2001 16:16:05 +0000 (16:16 +0000)]
[project @ 2001-03-15 16:16:05 by simonmar]
- document new <command>ghc-pkg</command> tool
- document <literal>source_dirs</literal> field

23 years ago[project @ 2001-03-15 15:54:35 by simonmar]
simonmar [Thu, 15 Mar 2001 15:54:35 +0000 (15:54 +0000)]
[project @ 2001-03-15 15:54:35 by simonmar]
- Don't duplicate the definition of PackageConfig, instead hackily #include
  it from ../utils/ghc-pkg/Package.hs.

- Add missing source_dir fields to PackageSrc.hs.

23 years ago[project @ 2001-03-15 15:53:28 by simonmar]
simonmar [Thu, 15 Mar 2001 15:53:28 +0000 (15:53 +0000)]
[project @ 2001-03-15 15:53:28 by simonmar]
Remove package management support into a separate tool (ghc-pkg), and
don't duplicate the definition of PackageConfig.

23 years ago[project @ 2001-03-15 15:51:38 by simonmar]
simonmar [Thu, 15 Mar 2001 15:51:38 +0000 (15:51 +0000)]
[project @ 2001-03-15 15:51:38 by simonmar]
New package management tool, basically a broken-out version of ghc
--list-packages, --add-package and --remove-package.

These flags will be removed from GHC; use ghc-pkg instead.

23 years ago[project @ 2001-03-15 12:07:54 by simonmar]
simonmar [Thu, 15 Mar 2001 12:07:54 +0000 (12:07 +0000)]
[project @ 2001-03-15 12:07:54 by simonmar]
fix up markup

23 years ago[project @ 2001-03-15 11:26:27 by simonmar]
simonmar [Thu, 15 Mar 2001 11:26:27 +0000 (11:26 +0000)]
[project @ 2001-03-15 11:26:27 by simonmar]
Do a better job of telling the user whether we're interpreting a
module or using an existing object file.

eg.

   Main> :load A
   Skipping  D                ( D.hs, D.o )
   Compiling C                ( C.hs, interpreted )
   Skipping  B                ( B.hs, B.o )
   Compiling Main             ( A.hs, interpreted )
   Main>

23 years ago[project @ 2001-03-15 11:23:19 by simonmar]
simonmar [Thu, 15 Mar 2001 11:23:19 +0000 (11:23 +0000)]
[project @ 2001-03-15 11:23:19 by simonmar]
clean up, implement ~-expansion for :cd.

23 years ago[project @ 2001-03-15 10:00:32 by simonmar]
simonmar [Thu, 15 Mar 2001 10:00:32 +0000 (10:00 +0000)]
[project @ 2001-03-15 10:00:32 by simonmar]
newlines in strings aren't allowed.

23 years ago[project @ 2001-03-15 07:40:06 by qrczak]
qrczak [Thu, 15 Mar 2001 07:40:06 +0000 (07:40 +0000)]
[project @ 2001-03-15 07:40:06 by qrczak]
Add missing quote mark.

23 years ago[project @ 2001-03-14 23:19:42 by simonpj]
simonpj [Wed, 14 Mar 2001 23:19:42 +0000 (23:19 +0000)]
[project @ 2001-03-14 23:19:42 by simonpj]
-------------------------------
Fix the dreaded export list bug
-------------------------------

With unfailing regularity I manage to get the following wrong:

module A(f) where
  f = ...

module B(f) where
  import A(f)

We must ensure that if A.f changes its type (etc) then B.hi
gets changed, so that people who import B will get recompiled.

There's a large comment with RnIfaces.mkImportInfo, and some
reorganisation in Rename, with a few mainly cosmetic consequences
in RnEnv.

[Simon: I think this will fix the 'OccurAnal not recompiled' problem.]

23 years ago[project @ 2001-03-14 21:22:48 by sebc]
sebc [Wed, 14 Mar 2001 21:22:48 +0000 (21:22 +0000)]
[project @ 2001-03-14 21:22:48 by sebc]
When compiling C bits, prefix CC_OPTS with -optc.

23 years ago[project @ 2001-03-14 17:53:04 by sewardj]
sewardj [Wed, 14 Mar 2001 17:53:04 +0000 (17:53 +0000)]
[project @ 2001-03-14 17:53:04 by sewardj]
Don't try and do `take' of a negative number in compMsg.  The Golden
Lemon award for 2001 goes to <name_deleted_to_protect_the_guilty_party>.

23 years ago[project @ 2001-03-14 17:48:45 by simonmar]
simonmar [Wed, 14 Mar 2001 17:48:45 +0000 (17:48 +0000)]
[project @ 2001-03-14 17:48:45 by simonmar]
Fix a bug which has been causing all SPECIALISE pragmas to be thrown
away.

23 years ago[project @ 2001-03-14 15:26:00 by simonpj]
simonpj [Wed, 14 Mar 2001 15:26:01 +0000 (15:26 +0000)]
[project @ 2001-03-14 15:26:00 by simonpj]
-------------------------------------
Import more rules, and fix usage info
-------------------------------------

1. A rule wasn't being slurped in that should have been.
Reason: wordToWord32# was in the 'TypeEnv', because it's a primop,
so the renamer thought it was already slurped in, which is true.
But it forgot to use the TypeEnv as a source of gates when deciding
which rules to pull in.  Result: a useful rule for the primop wasn't
making it in.  Thanks to Marcin for isolating this one.

2. RnIfaces.recordTypeEnvSlurp (was recordVSlurp) was blindly adding
the name to the iVSlurp set, but the iVSlurp set is supposed to contain
only "big" names (tycons, classes, and Ids that aren't data cons,
class ops etc).  We need to get the big name from the thing.
Mildly tiresomely, this means we have to keep the Class inside
the TyCon derived from that class.   Hence updates to TyCon and Class.

23 years ago[project @ 2001-03-14 15:25:53 by simonpj]
simonpj [Wed, 14 Mar 2001 15:25:53 +0000 (15:25 +0000)]
[project @ 2001-03-14 15:25:53 by simonpj]
Import wibble

23 years ago[project @ 2001-03-14 15:21:25 by simonpj]
simonpj [Wed, 14 Mar 2001 15:21:25 +0000 (15:21 +0000)]
[project @ 2001-03-14 15:21:25 by simonpj]
Remove dead code, and fix fvs1 -> fvs2 in coreTopBindsToStg

23 years ago[project @ 2001-03-14 15:01:04 by sewardj]
sewardj [Wed, 14 Mar 2001 15:01:04 +0000 (15:01 +0000)]
[project @ 2001-03-14 15:01:04 by sewardj]
mut_user_time_during_GC() and mut_user_time(): don't forget to do
TICK_TO_DBL of the result -- if not done, heap profiling times are
off by a factor of 100.

23 years ago[project @ 2001-03-14 14:44:34 by simonmar]
simonmar [Wed, 14 Mar 2001 14:44:34 +0000 (14:44 +0000)]
[project @ 2001-03-14 14:44:34 by simonmar]
don't consider SCC annotations in an argument to be trivial.

23 years ago[project @ 2001-03-14 12:13:02 by rrt]
rrt [Wed, 14 Mar 2001 12:13:02 +0000 (12:13 +0000)]
[project @ 2001-03-14 12:13:02 by rrt]
Add Config.hs generation to Makefile to make TMPDIR work in KludgedSystem.

23 years ago[project @ 2001-03-14 12:05:06 by simonmar]
simonmar [Wed, 14 Mar 2001 12:05:06 +0000 (12:05 +0000)]
[project @ 2001-03-14 12:05:06 by simonmar]
Fix CAF reference tracking for let-no-escapes.

23 years ago[project @ 2001-03-14 11:18:18 by sewardj]
sewardj [Wed, 14 Mar 2001 11:18:18 +0000 (11:18 +0000)]
[project @ 2001-03-14 11:18:18 by sewardj]
Add closure selection for heap profiling.  You can use
-hc{cc_names}, -hd{descrs}, -hy{types}, -hm{mods} to restrict profiled
closures to the specified sets.  Multiple restrictions are allowed.

23 years ago[project @ 2001-03-14 10:16:19 by rrt]
rrt [Wed, 14 Mar 2001 10:16:19 +0000 (10:16 +0000)]
[project @ 2001-03-14 10:16:19 by rrt]
Get 'dis /tmp offa ma back, it stops me doin' Windows hack!

23 years ago[project @ 2001-03-14 10:14:13 by rrt]
rrt [Wed, 14 Mar 2001 10:14:13 +0000 (10:14 +0000)]
[project @ 2001-03-14 10:14:13 by rrt]
Don't use /tmp.

23 years ago[project @ 2001-03-14 10:13:30 by rrt]
rrt [Wed, 14 Mar 2001 10:13:30 +0000 (10:13 +0000)]
[project @ 2001-03-14 10:13:30 by rrt]
Ban /tmp. TMPDIR r00lz!

23 years ago[project @ 2001-03-14 10:12:36 by rrt]
rrt [Wed, 14 Mar 2001 10:12:36 +0000 (10:12 +0000)]
[project @ 2001-03-14 10:12:36 by rrt]
Don't use /tmp. /tmp has bad karma!

23 years ago[project @ 2001-03-14 10:11:16 by rrt]
rrt [Wed, 14 Mar 2001 10:11:16 +0000 (10:11 +0000)]
[project @ 2001-03-14 10:11:16 by rrt]
/tmp -> TMPDIR (don't worry dudes, it's just a comment!)

23 years ago[project @ 2001-03-13 21:21:27 by qrczak]
qrczak [Tue, 13 Mar 2001 21:21:27 +0000 (21:21 +0000)]
[project @ 2001-03-13 21:21:27 by qrczak]
Add 'destruct :: Ptr a -> IO ()' method to class Storable. Thanks
Wojciech Moczydlowski <khaliff@astercity.net> for the suggestion.

It should free memory associated with the object (except the object
pointer itself). A default definition does nothing, but will be
non-trivial for some C structs.

The canonical ForeignPtr finalizer for a malloced data object would be
'destruct p >> free p'.

23 years ago[project @ 2001-03-13 17:46:56 by rrt]
rrt [Tue, 13 Mar 2001 17:46:56 +0000 (17:46 +0000)]
[project @ 2001-03-13 17:46:56 by rrt]
Use TMPDIR, not /tmp.

23 years ago[project @ 2001-03-13 17:30:57 by simonmar]
simonmar [Tue, 13 Mar 2001 17:30:57 +0000 (17:30 +0000)]
[project @ 2001-03-13 17:30:57 by simonmar]
update expected output

23 years ago[project @ 2001-03-13 17:16:52 by simonmar]
simonmar [Tue, 13 Mar 2001 17:19:07 +0000 (17:19 +0000)]
[project @ 2001-03-13 17:16:52 by simonmar]
update expected output

23 years ago[project @ 2001-03-13 17:12:43 by simonmar]
simonmar [Tue, 13 Mar 2001 17:12:43 +0000 (17:12 +0000)]
[project @ 2001-03-13 17:12:43 by simonmar]
update expected output

23 years ago[project @ 2001-03-13 17:08:36 by simonmar]
simonmar [Tue, 13 Mar 2001 17:08:36 +0000 (17:08 +0000)]
[project @ 2001-03-13 17:08:36 by simonmar]
fix up for GHCi