ghc-hetmet.git
23 years ago[project @ 2001-03-26 16:58:09 by simonmar]
simonmar [Mon, 26 Mar 2001 16:58:09 +0000 (16:58 +0000)]
[project @ 2001-03-26 16:58:09 by simonmar]
nearly there: linking works now

23 years ago[project @ 2001-03-26 16:56:55 by simonmar]
simonmar [Mon, 26 Mar 2001 16:56:55 +0000 (16:56 +0000)]
[project @ 2001-03-26 16:56:55 by simonmar]
we have BinDistShScripts now

23 years ago[project @ 2001-03-26 16:56:27 by simonmar]
simonmar [Mon, 26 Mar 2001 16:56:27 +0000 (16:56 +0000)]
[project @ 2001-03-26 16:56:27 by simonmar]
remove unnecessary junk

23 years ago[project @ 2001-03-26 16:55:37 by simonmar]
simonmar [Mon, 26 Mar 2001 16:55:37 +0000 (16:55 +0000)]
[project @ 2001-03-26 16:55:37 by simonmar]
Move the -monly-n-regs flags into the Makefile, necessary for .hc
bootstrapping.

23 years ago[project @ 2001-03-26 16:54:34 by simonmar]
simonmar [Mon, 26 Mar 2001 16:54:34 +0000 (16:54 +0000)]
[project @ 2001-03-26 16:54:34 by simonmar]
Moved into ghci subdirectory.

23 years ago[project @ 2001-03-26 16:54:10 by simonmar]
simonmar [Mon, 26 Mar 2001 16:54:10 +0000 (16:54 +0000)]
[project @ 2001-03-26 16:54:10 by simonmar]
Remove unused file.

23 years ago[project @ 2001-03-26 16:53:35 by simonmar]
simonmar [Mon, 26 Mar 2001 16:53:35 +0000 (16:53 +0000)]
[project @ 2001-03-26 16:53:35 by simonmar]
- make the pkgconf program independent of the location of the build
  tree - instead of Config.hs, we pass the configuration parameters in
  as options.  This is necessary for .hc bootstrapping.

- remove the ghci driver stuff, it moved to the ghci subdirectory.

- remove ghc5.hs

23 years ago[project @ 2001-03-26 16:52:03 by simonmar]
simonmar [Mon, 26 Mar 2001 16:52:03 +0000 (16:52 +0000)]
[project @ 2001-03-26 16:52:03 by simonmar]
if the STOLEN_X86_REGS arg is missing, assume 4.

23 years ago[project @ 2001-03-26 16:51:26 by simonmar]
simonmar [Mon, 26 Mar 2001 16:51:27 +0000 (16:51 +0000)]
[project @ 2001-03-26 16:51:26 by simonmar]
mini-drivers for GHC 5  (ghci moved from ghc/driver to ghc/driver/ghci, ghc
is new).

23 years ago[project @ 2001-03-26 13:43:05 by simonmar]
simonmar [Mon, 26 Mar 2001 13:43:05 +0000 (13:43 +0000)]
[project @ 2001-03-26 13:43:05 by simonmar]
oops, STABLE_NAME_info is stg_STABLE_NAME_info in the HEAD.

23 years ago[project @ 2001-03-26 13:31:46 by simonmar]
simonmar [Mon, 26 Mar 2001 13:31:46 +0000 (13:31 +0000)]
[project @ 2001-03-26 13:31:46 by simonmar]
StableNames weren't being initialized properly (the CCS field for
profiling was left out).

23 years ago[project @ 2001-03-26 12:28:15 by simonmar]
simonmar [Mon, 26 Mar 2001 12:28:15 +0000 (12:28 +0000)]
[project @ 2001-03-26 12:28:15 by simonmar]
Simplify the foreign-export stub processing.

  - DynFlags now has fields for the stub.h and stub.c filenames, for
    consistency with the normal hsc output file name.

  - codeOutput puts the stubs into these files rather than dreaming
    up new temporary names for them

  - now we don't have to move the stubs into the right place in
    DriverPipeline.

  - we do however have to inject the correct #includes into the stub.c
    file when it is generated: I'm now injecting the same includes as
    the .hc file gets plus "RtsAPI.h", which is probably more correct
    than the hacky hardcoded "Stg.h" we had before.

23 years ago[project @ 2001-03-25 19:30:23 by qrczak]
qrczak [Sun, 25 Mar 2001 19:30:23 +0000 (19:30 +0000)]
[project @ 2001-03-25 19:30:23 by qrczak]
Preprocessing hack made less ugly by moving 'tail' from usage to definition.

23 years ago[project @ 2001-03-25 13:52:46 by qrczak]
qrczak [Sun, 25 Mar 2001 13:52:46 +0000 (13:52 +0000)]
[project @ 2001-03-25 13:52:46 by qrczak]
Remove bogus comment.

23 years ago[project @ 2001-03-25 13:29:54 by simonmar]
simonmar [Sun, 25 Mar 2001 13:29:54 +0000 (13:29 +0000)]
[project @ 2001-03-25 13:29:54 by simonmar]
- include :undef in the :help message
- don't read ./.ghci if it is the same file as $HOME/.ghci

23 years ago[project @ 2001-03-25 11:08:42 by panne]
panne [Sun, 25 Mar 2001 11:08:42 +0000 (11:08 +0000)]
[project @ 2001-03-25 11:08:42 by panne]
OK, here comes the third try to get a simple string from the Makefile
into the Haskell sources in a "portable" way... Perhaps we should use
compiler/main/Config.hs's technique here.

23 years ago[project @ 2001-03-25 09:57:24 by qrczak]
qrczak [Sun, 25 Mar 2001 09:57:26 +0000 (09:57 +0000)]
[project @ 2001-03-25 09:57:24 by qrczak]
Promote (//) from a function to IArray method with an inefficient
default definition. This completely compatible change allows efficient
implementations of (//) for particular types.

Explicitly define efficient (//) for Array and UArray.

Use unsafeFreeze* instead of freeze* in (//), accum and accumArray
for Array and IArray.

Remove showList in instance Show Array (the default definition does
the job).

Add Eq, Ord and Show instances for UArray. (Would be simpler if types
in instance contexts were not required to be type variables. I didn't
use -fallow-undecidable-instances but defined instances for individual
element types separately.)

Add unsafe{Freeze,Thaw}/{STArray,IOArray,IOUArray} rules.

Fix thaw/IOUArray rule (nobody uses IOUArrays in the ST monad!).

23 years ago[project @ 2001-03-24 19:50:56 by qrczak]
qrczak [Sat, 24 Mar 2001 19:50:56 +0000 (19:50 +0000)]
[project @ 2001-03-24 19:50:56 by qrczak]
Typo in 2147483648.

23 years ago[project @ 2001-03-24 18:34:05 by qrczak]
qrczak [Sat, 24 Mar 2001 18:34:05 +0000 (18:34 +0000)]
[project @ 2001-03-24 18:34:05 by qrczak]
Fix passing library dir to ghc-pkg.

23 years ago[project @ 2001-03-24 14:58:04 by simonmar]
simonmar [Sat, 24 Mar 2001 14:58:04 +0000 (14:58 +0000)]
[project @ 2001-03-24 14:58:04 by simonmar]
Turn CSE off when compiling main/DriverState for now.  It interacts
badly with our global variable hacks, commoning up several of them into
single variables :-(

We have a proposed fix for this, which is to make the NOINLINE pragma
also mean "NO SHARING", but it isn't committed yet.

23 years ago[project @ 2001-03-23 17:41:32 by simonmar]
simonmar [Fri, 23 Mar 2001 17:41:32 +0000 (17:41 +0000)]
[project @ 2001-03-23 17:41:32 by simonmar]
Add overlapping string pattern test.

23 years ago[project @ 2001-03-23 17:34:44 by simonmar]
simonmar [Fri, 23 Mar 2001 17:34:44 +0000 (17:34 +0000)]
[project @ 2001-03-23 17:34:44 by simonmar]
Fix the long-standing overlapping patterns bug with string-literal
patterns.

23 years ago[project @ 2001-03-23 17:04:56 by simonmar]
simonmar [Fri, 23 Mar 2001 17:04:56 +0000 (17:04 +0000)]
[project @ 2001-03-23 17:04:56 by simonmar]
can't inject the stub.h include here, it's too late.

23 years ago[project @ 2001-03-23 17:04:26 by simonmar]
simonmar [Fri, 23 Mar 2001 17:04:26 +0000 (17:04 +0000)]
[project @ 2001-03-23 17:04:26 by simonmar]
don't forget to inject a #include for the stub.h file.

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.