ghc-hetmet.git
22 years ago[project @ 2002-04-05 11:33:28 by simonpj]
simonpj [Fri, 5 Apr 2002 11:33:28 +0000 (11:33 +0000)]
[project @ 2002-04-05 11:33:28 by simonpj]
More wibbles

22 years ago[project @ 2002-04-05 09:18:25 by simonpj]
simonpj [Fri, 5 Apr 2002 09:18:25 +0000 (09:18 +0000)]
[project @ 2002-04-05 09:18:25 by simonpj]
More head-healing

22 years ago[project @ 2002-04-05 08:12:21 by simonpj]
simonpj [Fri, 5 Apr 2002 08:12:22 +0000 (08:12 +0000)]
[project @ 2002-04-05 08:12:21 by simonpj]
Heal the head

22 years ago[project @ 2002-04-04 16:23:42 by simonmar]
simonmar [Thu, 4 Apr 2002 16:23:43 +0000 (16:23 +0000)]
[project @ 2002-04-04 16:23:42 by simonmar]
This is Haddock, my stab at a Haskell documentation tool.  It's not
quite ready for release yet, but I'm putting it in the repository so
others can take a look.

It uses a locally modified version of the hssource parser, extended
with support for GHC extensions and documentation annotations.

22 years ago[project @ 2002-04-04 13:15:18 by simonpj]
simonpj [Thu, 4 Apr 2002 13:15:19 +0000 (13:15 +0000)]
[project @ 2002-04-04 13:15:18 by simonpj]
---------------------------------------
A glorious improvement to CPR analysis
---------------------------------------

Working on the CPR paper, I finally figured out how to
do a decent job of taking account of strictness analyis when doing
CPR analysis.

There are two places we do that:

1.  Usually, on a letrec for a *thunk* we discard any CPR info from
the RHS.  We can't worker/wrapper a thunk.  BUT, if the let is
non-recursive
non-top-level
used strictly
we don't need to discard the CPR info, because the thunk-splitting
transform (WorkWrap.splitThunk) works.  This idea isn't new in this
commit.

2. Arguments to strict functions.  Consider

  fac n m = if n==0 then m
    else fac (n-1) (m*n)

Does it have the CPR property?  Apparently not, because it returns the
accumulating parameter, m.  But the strictness analyser will
discover that fac is strict in m, so it will be passed unboxed to
the worker for fac.  More concretely, here is the worker/wrapper
split that will result from strictness analysis alone:

  fac n m = case n of MkInt n' ->
    case m of MkInt m' ->
    facw n' m'

  facw n' m' = if n' ==# 0#
       then I# m'
       else facw (n' -# 1#) (m' *# n')

Now facw clearly does have the CPR property!  We can take advantage
of this by giving a demanded lambda the CPR property.

To make this work nicely, I've made NewDemandInfo into Maybe Demand
rather than simply Demand, so that we can tell when we are on the
first iteration.  Lots of comments about this in Note [CPR-AND-STRICTNESS].

I don't know how much all this buys us, but it is simple and elegant.

22 years ago[project @ 2002-04-04 08:49:46 by simonmar]
simonmar [Thu, 4 Apr 2002 08:49:46 +0000 (08:49 +0000)]
[project @ 2002-04-04 08:49:46 by simonmar]
An I/O error while opening/writing the output file is *not* a panic.

22 years ago[project @ 2002-04-03 11:17:05 by simonpj]
simonpj [Wed, 3 Apr 2002 11:17:05 +0000 (11:17 +0000)]
[project @ 2002-04-03 11:17:05 by simonpj]
Make -fgenerics the default

22 years ago[project @ 2002-04-03 09:45:14 by simonpj]
simonpj [Wed, 3 Apr 2002 09:45:16 +0000 (09:45 +0000)]
[project @ 2002-04-03 09:45:14 by simonpj]
-----------------------------
Put existential tyvars second
[fixes ParsecPerm lint error]
-----------------------------

In an existential data constr:

data Eq a => T a = forall b. Ord b => MkT a [b]

the type of MkT is

MkT :: forall a b . Ord b => a -> [b] -> MkT a

Note that the existential tyvars (b in this case) come *after*
the "ordinary" tyvars.

I had switched this around earlier in the week, but I'm putting
it back (and fixing a bug) because I found it really works better second.

Reason: in a case expression we may find:
case (e :: T t) of { MkT b (d:Ord b) (x:t) (xs:[b]) -> ... }
It's convenient to apply the rep-type of MkT to 't', to get
forall b. Ord b => ...
and use that to check the pattern.  Mind you, this is really only
use in CoreLint.

22 years ago[project @ 2002-04-02 13:56:32 by simonmar]
simonmar [Tue, 2 Apr 2002 13:56:34 +0000 (13:56 +0000)]
[project @ 2002-04-02 13:56:32 by simonmar]
Allow the use of 'let' for implcit bindings.

Support for 'with' is left in place for the time being, but on seeing
a 'with' we emit a non-suppressible warning about 'with' being
deprecated in favour of 'let'.

22 years ago[project @ 2002-04-02 13:21:36 by simonpj]
simonpj [Tue, 2 Apr 2002 13:21:37 +0000 (13:21 +0000)]
[project @ 2002-04-02 13:21:36 by simonpj]
-----------------------------------------------------
Fix two nasty, subtle loops in context simplification
-----------------------------------------------------

The context simplifier in TcSimplify was building a recursive
dictionary, which meant the program looped when run.  The reason
was pretty devious; in fact there are two independent causes.

Cause 1
~~~~~~~
Consider
  class Eq b => Foo a b
instance Eq a => Foo [a] a
If we are reducing
d:Foo [t] t
we'll first deduce that it holds (via the instance decl), thus:
d:Foo [t] t = $fFooList deq
deq:Eq t = ...some rhs depending on t...
Now we add d's superclasses.  We must not then overwrite the Eq t
constraint with a superclass selection!!

The only decent way to solve this is to track what dependencies
a binding has; that is what the is_loop parameter to TcSimplify.addSCs
now does.

Cause 2
~~~~~~~
This shows up when simplifying the superclass context of an
instance declaration.  Consider

  class S a

  class S a => C a where { opc :: a -> a }
  class S b => D b where { opd :: b -> b }

  instance C Int where
     opc = opd

  instance D Int where
     opd = opc

From (instance C Int) we get the constraint set {ds1:S Int, dd:D Int}
Simplifying, we may well get:
$dfCInt = :C ds1 (opd dd)
dd  = $dfDInt
ds1 = $p1 dd
Notice that we spot that we can extract ds1 from dd.

Alas!  Alack! We can do the same for (instance D Int):

$dfDInt = :D ds2 (opc dc)
dc  = $dfCInt
ds2 = $p1 dc

And now we've defined the superclass in terms of itself.

Solution: treat the superclass context separately, and simplify it
all the way down to nothing on its own.  Don't toss any 'free' parts
out to be simplified together with other bits of context.

This is done in TcInstDcls.tcSuperClasses, which is well commented.

All this from a bug report from Peter White!

22 years ago[project @ 2002-04-02 13:17:09 by simonmar]
simonmar [Tue, 2 Apr 2002 13:17:09 +0000 (13:17 +0000)]
[project @ 2002-04-02 13:17:09 by simonmar]
Make this compile with 4.08.

22 years ago[project @ 2002-04-02 13:07:48 by simonpj]
simonpj [Tue, 2 Apr 2002 13:07:48 +0000 (13:07 +0000)]
[project @ 2002-04-02 13:07:48 by simonpj]
Error message tidy up

22 years ago[project @ 2002-04-02 12:22:37 by simonmar]
simonmar [Tue, 2 Apr 2002 12:22:37 +0000 (12:22 +0000)]
[project @ 2002-04-02 12:22:37 by simonmar]
oops, accidentally committed some untested (and non-working) cleanups
in the last commit.  This commit fixes it up again.

(fixes the ByteCodeGen panic in GHCi on the HEAD)

22 years ago[project @ 2002-04-02 10:34:56 by simonmar]
simonmar [Tue, 2 Apr 2002 10:34:56 +0000 (10:34 +0000)]
[project @ 2002-04-02 10:34:56 by simonmar]
Add my build.mk file as a sample, and point to it in the comments at
the top of config.mk.

22 years ago[project @ 2002-04-02 10:27:28 by simonpj]
simonpj [Tue, 2 Apr 2002 10:27:28 +0000 (10:27 +0000)]
[project @ 2002-04-02 10:27:28 by simonpj]
Comments

22 years ago[project @ 2002-04-02 10:18:07 by simonmar]
simonmar [Tue, 2 Apr 2002 10:18:07 +0000 (10:18 +0000)]
[project @ 2002-04-02 10:18:07 by simonmar]
- Reverse the meaning of the *-prefix in the :module and :browse
  commands: '*Foo' now means the full contents of Foo, whereas just
  'Foo' means Foo's exports only.  This seems more intuitive to me,
  but the downside is that ':m Foo' doesn't do the same thing in
  GHC as Hugs (you have to say ':m *Foo' to get Hugs's behaviour).

- Update the help text

22 years ago[project @ 2002-04-02 09:09:21 by simonmar]
simonmar [Tue, 2 Apr 2002 09:09:21 +0000 (09:09 +0000)]
[project @ 2002-04-02 09:09:21 by simonmar]
The hPutBuf bug looks to be in 5.00 as well as 4.08 - so enable the
workaround on GHC <= 5.00.  Hopefully should fix bootstrapping
problems on Alpha.

22 years ago[project @ 2002-04-01 15:32:46 by panne]
panne [Mon, 1 Apr 2002 15:32:46 +0000 (15:32 +0000)]
[project @ 2002-04-01 15:32:46 by panne]
Sigbjorn's last optimization (checking for -mno-cygwin only for
mingw32 targets) kicked out -O from the default SRC_CC_OPTS. Apart
from a minor performance hit for some parts of GHC, it yields a GHCi
which can't load HSbase_cbits.o because `lstat' is unknown, at least
on SuSE 7.3.

A little investigation showed the rather arcane reason: lstat and
friends are inline functions and therefore not in libc.so, only in its
static counterpart. Normally this is not a problem at all, but the CPP
INLINE trickery in fptools/libraries/base/cbits/PrelIOUtils.c manages
to get a reference to lstat into PrelIOUtils.o if -O is not given. %-}
A similar problem exists for fstat, too.

Simple solution: Re-add -O to SRC_CC_OPTS, simplifying configure.in a
bit on the way.

22 years ago[project @ 2002-04-01 13:57:10 by simonpj]
simonpj [Mon, 1 Apr 2002 13:57:10 +0000 (13:57 +0000)]
[project @ 2002-04-01 13:57:10 by simonpj]
Use hasktags for the HSTAGS_PGM

22 years ago[project @ 2002-04-01 12:23:20 by panne]
panne [Mon, 1 Apr 2002 12:23:20 +0000 (12:23 +0000)]
[project @ 2002-04-01 12:23:20 by panne]
Fixed imports for GHC >= 5.03

22 years ago[project @ 2002-04-01 11:18:18 by panne]
panne [Mon, 1 Apr 2002 11:18:19 +0000 (11:18 +0000)]
[project @ 2002-04-01 11:18:18 by panne]
"warning: unused variable"-police

22 years ago[project @ 2002-04-01 09:24:29 by simonpj]
simonpj [Mon, 1 Apr 2002 09:24:29 +0000 (09:24 +0000)]
[project @ 2002-04-01 09:24:29 by simonpj]
Comments

22 years ago[project @ 2002-04-01 08:53:35 by simonpj]
simonpj [Mon, 1 Apr 2002 08:53:35 +0000 (08:53 +0000)]
[project @ 2002-04-01 08:53:35 by simonpj]
wibble

22 years ago[project @ 2002-04-01 08:23:30 by simonpj]
simonpj [Mon, 1 Apr 2002 08:23:36 +0000 (08:23 +0000)]
[project @ 2002-04-01 08:23:30 by simonpj]
------------------------------------
Change the treatment of the stupid
   context on data constructors
-----------------------------------

Data types can have a context:

data (Eq a, Ord b) => T a b = T1 a b | T2 a

and that makes the constructors have a context too
(notice that T2's context is "thinned"):

T1 :: (Eq a, Ord b) => a -> b -> T a b
T2 :: (Eq a) => a -> T a b

Furthermore, this context pops up when pattern matching
(though GHC hasn't implemented this, but it is in H98, and
I've fixed GHC so that it now does):

f (T2 x) = x
gets inferred type
f :: Eq a => T a b -> a

I say the context is "stupid" because the dictionaries passed
are immediately discarded -- they do nothing and have no benefit.
It's a flaw in the language.

Up to now I have put this stupid context into the type of
the "wrapper" constructors functions, T1 and T2, but that turned
out to be jolly inconvenient for generics, and record update, and
other functions that build values of type T (because they don't
have suitable dictionaries available).

So now I've taken the stupid context out.  I simply deal with
it separately in the type checker on occurrences of a constructor,
either in an expression or in a pattern.

To this end

* Lots of changes in DataCon, MkId

* New function Inst.tcInstDataCon to instantiate a data constructor

I also took the opportunity to

* Rename
dataConId --> dataConWorkId
  for consistency.

* Tidied up MkId.rebuildConArgs quite a bit, and renamed it
mkReboxingAlt

* Add function DataCon.dataConExistentialTyVars, with the obvious meaning

22 years ago[project @ 2002-04-01 08:22:38 by simonpj]
simonpj [Mon, 1 Apr 2002 08:22:38 +0000 (08:22 +0000)]
[project @ 2002-04-01 08:22:38 by simonpj]
Comments

22 years ago[project @ 2002-04-01 08:17:57 by simonpj]
simonpj [Mon, 1 Apr 2002 08:17:57 +0000 (08:17 +0000)]
[project @ 2002-04-01 08:17:57 by simonpj]
Split out FastMutInt separately

22 years ago[project @ 2002-04-01 08:17:03 by simonpj]
simonpj [Mon, 1 Apr 2002 08:17:03 +0000 (08:17 +0000)]
[project @ 2002-04-01 08:17:03 by simonpj]
Comments

22 years ago[project @ 2002-04-01 08:16:49 by simonpj]
simonpj [Mon, 1 Apr 2002 08:16:50 +0000 (08:16 +0000)]
[project @ 2002-04-01 08:16:49 by simonpj]
Import wibbles

22 years ago[project @ 2002-03-29 21:39:36 by sof]
sof [Fri, 29 Mar 2002 21:39:39 +0000 (21:39 +0000)]
[project @ 2002-03-29 21:39:36 by sof]
Front end for External Core.

Initial go at implementing a Core front end
(enabled via -fcore); work in progress (renamer
is currently not willing to slurp in & resolve
imports.)

22 years ago[project @ 2002-03-29 20:46:50 by krasimir]
krasimir [Fri, 29 Mar 2002 20:46:50 +0000 (20:46 +0000)]
[project @ 2002-03-29 20:46:50 by krasimir]
Latest Win32 implementation allows dynamic loading only for *.dll libraries. This commit add checking for *.drv libraries (drivers). This allows loading of winspool.drv needed for ObjectIO

22 years ago[project @ 2002-03-29 20:14:31 by krasimir]
krasimir [Fri, 29 Mar 2002 20:14:31 +0000 (20:14 +0000)]
[project @ 2002-03-29 20:14:31 by krasimir]
Hack hs_libraries package info for HSobjectio[1,2,3,4]

22 years ago[project @ 2002-03-28 17:52:08 by simonmar]
simonmar [Thu, 28 Mar 2002 17:52:08 +0000 (17:52 +0000)]
[project @ 2002-03-28 17:52:08 by simonmar]
In lookupTopBndrRn, if we're in an interface file, then create the
binder in the cache with the correct Module (inc. package name) rather
than making a vanilla module as we do currently.

This helps to get the package names right in names from interfaces
that we've read via checkOldIface (ie. "skipped" modules), and fixes a
bug to do with unnecessary version bumping and recompilation.

(Simon P.J. will add a better comment later)

MERGE TO STABLE

22 years ago[project @ 2002-03-28 15:31:05 by simonpj]
simonpj [Thu, 28 Mar 2002 15:31:05 +0000 (15:31 +0000)]
[project @ 2002-03-28 15:31:05 by simonpj]
Another readHoleResult glitch (fixes rn003)

22 years ago[project @ 2002-03-28 15:11:48 by sof]
sof [Thu, 28 Mar 2002 15:11:48 +0000 (15:11 +0000)]
[project @ 2002-03-28 15:11:48 by sof]
running binary-dist without having BIN_DIST set is now a no-no, I believe.

22 years ago[project @ 2002-03-28 14:46:59 by sof]
sof [Thu, 28 Mar 2002 14:46:59 +0000 (14:46 +0000)]
[project @ 2002-03-28 14:46:59 by sof]
recognise new cygwin moniker reported by config.guess

22 years ago[project @ 2002-03-28 14:43:14 by sof]
sof [Thu, 28 Mar 2002 14:43:14 +0000 (14:43 +0000)]
[project @ 2002-03-28 14:43:14 by sof]
cygwin-specific path mangling of CWD no longer reqd

22 years ago[project @ 2002-03-28 09:59:03 by simonmar]
simonmar [Thu, 28 Mar 2002 09:59:03 +0000 (09:59 +0000)]
[project @ 2002-03-28 09:59:03 by simonmar]
The test suite wins again: re-enable empty contexts in data
declarations.

22 years ago[project @ 2002-03-28 08:39:33 by stolz]
stolz [Thu, 28 Mar 2002 08:39:33 +0000 (08:39 +0000)]
[project @ 2002-03-28 08:39:33 by stolz]
posix/DLPrim now uses configure to check for RTLD_LOCAL.

22 years ago[project @ 2002-03-27 16:48:47 by simonmar]
simonmar [Wed, 27 Mar 2002 16:48:47 +0000 (16:48 +0000)]
[project @ 2002-03-27 16:48:47 by simonmar]
Sigh, recompilation checking in --make mdoe has been badly broken for
well, probably ever.

The problem is that in GHCi mode there's a restriction on the use of
object files, namely that an object file may only depend on other
up-to-date object files in order to be up-to-date itself, because we
don't have support for linking object code to interpreted code.
Unfortunately we were applying this restriction to --make compilations
too, with the result that far too much recompilation was happening.

MERGE TO STABLE

22 years ago[project @ 2002-03-27 12:35:44 by simonmar]
simonmar [Wed, 27 Mar 2002 12:35:44 +0000 (12:35 +0000)]
[project @ 2002-03-27 12:35:44 by simonmar]
Update the comment about how to add a new primop.

22 years ago[project @ 2002-03-27 12:09:00 by simonpj]
simonpj [Wed, 27 Mar 2002 12:09:02 +0000 (12:09 +0000)]
[project @ 2002-03-27 12:09:00 by simonpj]
More validity checking, esp for existential ctxt on data cons

22 years ago[project @ 2002-03-27 12:07:42 by simonpj]
simonpj [Wed, 27 Mar 2002 12:07:45 +0000 (12:07 +0000)]
[project @ 2002-03-27 12:07:42 by simonpj]
Comments and tracing only

22 years ago[project @ 2002-03-26 23:56:44 by sof]
sof [Tue, 26 Mar 2002 23:56:45 +0000 (23:56 +0000)]
[project @ 2002-03-26 23:56:44 by sof]
TEXT_BEFORE_HEAP & cygwin: same as for mingw

22 years ago[project @ 2002-03-26 23:51:27 by sof]
sof [Tue, 26 Mar 2002 23:51:27 +0000 (23:51 +0000)]
[project @ 2002-03-26 23:51:27 by sof]
initDefaultHandlers(): siginterrupt() not supported w/ cygwin

22 years ago[project @ 2002-03-26 23:47:17 by sof]
sof [Tue, 26 Mar 2002 23:47:17 +0000 (23:47 +0000)]
[project @ 2002-03-26 23:47:17 by sof]
re-add way 'p' to GhcLibWays

22 years ago[project @ 2002-03-26 22:08:44 by sof]
sof [Tue, 26 Mar 2002 22:09:20 +0000 (22:09 +0000)]
[project @ 2002-03-26 22:08:44 by sof]
mingw32_TARGET_OS -> mingw32_HOST_OS

22 years ago[project @ 2002-03-26 21:59:41 by sof]
sof [Tue, 26 Mar 2002 21:59:41 +0000 (21:59 +0000)]
[project @ 2002-03-26 21:59:41 by sof]
the platform-specific features to use to compile the compiler sources are dependent on the host, not the target platform

22 years ago[project @ 2002-03-26 20:14:38 by sof]
sof [Tue, 26 Mar 2002 20:14:38 +0000 (20:14 +0000)]
[project @ 2002-03-26 20:14:38 by sof]
only test for -mno-cygwin if the target is mingw32

22 years ago[project @ 2002-03-26 19:08:19 by simonpj]
simonpj [Tue, 26 Mar 2002 19:08:19 +0000 (19:08 +0000)]
[project @ 2002-03-26 19:08:19 by simonpj]
Fix readHoleResult bug

22 years ago[project @ 2002-03-26 16:36:09 by stolz]
stolz [Tue, 26 Mar 2002 16:36:09 +0000 (16:36 +0000)]
[project @ 2002-03-26 16:36:09 by stolz]
Add dlopen() and friends to package 'posix'.
A configure-test for RTLD_NEXT is required. Record if -ldl is
required in posix.conf.

22 years ago[project @ 2002-03-26 11:09:34 by simonmar]
simonmar [Tue, 26 Mar 2002 11:09:34 +0000 (11:09 +0000)]
[project @ 2002-03-26 11:09:34 by simonmar]
Make the closure types consecutive

22 years ago[project @ 2002-03-26 10:43:15 by simonmar]
simonmar [Tue, 26 Mar 2002 10:43:15 +0000 (10:43 +0000)]
[project @ 2002-03-26 10:43:15 by simonmar]
A couple of cleanups to the previous change: we should test
TABLES_NEXT_TO_CODE rather than USE_MINIINTERPRETER to enable the
MacOSX "plan C", and use structure field selection rather than array
indexing to get the entry code ptr from the info table.

22 years ago[project @ 2002-03-26 10:35:20 by simonmar]
simonmar [Tue, 26 Mar 2002 10:35:20 +0000 (10:35 +0000)]
[project @ 2002-03-26 10:35:20 by simonmar]
Changes to support powerpc-apple-darwin

From: Wolfgang Thaller <wolfgang.thaller@gmx.net>

22 years ago[project @ 2002-03-26 10:33:46 by simonmar]
simonmar [Tue, 26 Mar 2002 10:33:46 +0000 (10:33 +0000)]
[project @ 2002-03-26 10:33:46 by simonmar]
Changes to support powerpc-apple-macosx

From: Wolfgang Thaller <wolfgang.thaller@gmx.net>

22 years ago[project @ 2002-03-26 10:30:44 by simonmar]
simonmar [Tue, 26 Mar 2002 10:30:44 +0000 (10:30 +0000)]
[project @ 2002-03-26 10:30:44 by simonmar]
Changes to support powerpc-apple-macosx

From: Wolfgang Thaller <wolfgang.thaller@gmx.net>

22 years ago[project @ 2002-03-26 10:27:35 by simonmar]
simonmar [Tue, 26 Mar 2002 10:27:35 +0000 (10:27 +0000)]
[project @ 2002-03-26 10:27:35 by simonmar]
Changes to support powerpc-apple-macosx.

From Wolfgang Thaller <wolfgang.thaller@gmx.net>.

22 years ago[project @ 2002-03-25 15:56:00 by sof]
sof [Mon, 25 Mar 2002 15:56:00 +0000 (15:56 +0000)]
[project @ 2002-03-25 15:56:00 by sof]
hc-file-bundle: removed dangling ParseIface.hs pointer

22 years ago[project @ 2002-03-25 15:08:38 by simonpj]
simonpj [Mon, 25 Mar 2002 15:08:39 +0000 (15:08 +0000)]
[project @ 2002-03-25 15:08:38 by simonpj]
-------------------------------
Fix bugs in rank-N polymorphism
-------------------------------

Discussion with Mark showed up some bugs in the rank-N
polymorphism stuff, especally concerning the treatment of
'hole' type variables.

See especially TcMType:
newHoleTyVar
readHoleResult
zapToType

Also the treatment of conditionals and case branches
is done right now, using zapToType

22 years ago[project @ 2002-03-25 14:58:32 by simonpj]
simonpj [Mon, 25 Mar 2002 14:58:32 +0000 (14:58 +0000)]
[project @ 2002-03-25 14:58:32 by simonpj]
imports

22 years ago[project @ 2002-03-25 14:41:05 by simonpj]
simonpj [Mon, 25 Mar 2002 14:41:05 +0000 (14:41 +0000)]
[project @ 2002-03-25 14:41:05 by simonpj]
Comments

22 years ago[project @ 2002-03-25 05:21:19 by sof]
sof [Mon, 25 Mar 2002 05:21:19 +0000 (05:21 +0000)]
[project @ 2002-03-25 05:21:19 by sof]
RTS_MINGW_ONLY_SYMBOLS: added rewinddir()

22 years ago[project @ 2002-03-25 05:11:16 by sof]
sof [Mon, 25 Mar 2002 05:11:16 +0000 (05:11 +0000)]
[project @ 2002-03-25 05:11:16 by sof]
not using -lpthread w/ mingw

22 years ago[project @ 2002-03-21 11:23:59 by sebc]
sebc [Thu, 21 Mar 2002 11:24:00 +0000 (11:24 +0000)]
[project @ 2002-03-21 11:23:59 by sebc]
Implement Plan C, with correct code to detect the data and text
sections for MacOS X.
Also add a sanity check in initStorage, to make sure we are able to
make the distinction between closures and infotables.

22 years ago[project @ 2002-03-21 09:00:54 by simonpj]
simonpj [Thu, 21 Mar 2002 09:00:54 +0000 (09:00 +0000)]
[project @ 2002-03-21 09:00:54 by simonpj]
Restore lost imports for catchJust, ioErrors, accidentally removed
by Sigbjorn's commit. (Hard to spot -- it's only needed for 4.08 and earlier.)

22 years ago[project @ 2002-03-20 23:07:02 by sebc]
sebc [Wed, 20 Mar 2002 23:07:02 +0000 (23:07 +0000)]
[project @ 2002-03-20 23:07:02 by sebc]
Update a comment only.

22 years ago[project @ 2002-03-20 20:21:15 by sof]
sof [Wed, 20 Mar 2002 20:21:15 +0000 (20:21 +0000)]
[project @ 2002-03-20 20:21:15 by sof]
findPackageMod: for source imports, restrict ourselves to looking for hi-boots only

22 years ago[project @ 2002-03-20 20:20:26 by sof]
sof [Wed, 20 Mar 2002 20:20:26 +0000 (20:20 +0000)]
[project @ 2002-03-20 20:20:26 by sof]
import tidyup

22 years ago[project @ 2002-03-20 19:42:49 by sof]
sof [Wed, 20 Mar 2002 19:42:49 +0000 (19:42 +0000)]
[project @ 2002-03-20 19:42:49 by sof]
maybeHomeModule: if chasing after a source import, _only_ look for hi-boots

22 years ago[project @ 2002-03-20 14:46:17 by simonpj]
simonpj [Wed, 20 Mar 2002 14:46:18 +0000 (14:46 +0000)]
[project @ 2002-03-20 14:46:17 by simonpj]
Put module dependency info in the commentary

22 years ago[project @ 2002-03-20 11:24:42 by simonpj]
simonpj [Wed, 20 Mar 2002 11:25:35 +0000 (11:25 +0000)]
[project @ 2002-03-20 11:24:42 by simonpj]
Unravel module loop again (tested this time; sorry)

22 years ago[project @ 2002-03-19 11:37:38 by simonpj]
simonpj [Tue, 19 Mar 2002 11:37:40 +0000 (11:37 +0000)]
[project @ 2002-03-19 11:37:38 by simonpj]
Unravel accidental module loop (sorry)

22 years ago[project @ 2002-03-19 11:24:51 by simonmar]
simonmar [Tue, 19 Mar 2002 11:24:52 +0000 (11:24 +0000)]
[project @ 2002-03-19 11:24:51 by simonmar]
Fix 64-bit shift operations.

- Move the declarations of the 64-bit "primops" from PrimOps.h to
  HsBase.h where they more properly belong.

- change the names of the 64-bit shift ops to include the "unchecked"
  prefix

- add checked versions of these primops to GHC.Int and GHC.Word, and
  use them.

- update the FFI declarations in GHC.Int and GHC.Word while I'm there.

22 years ago[project @ 2002-03-18 15:27:08 by simonpj]
simonpj [Mon, 18 Mar 2002 15:27:08 +0000 (15:27 +0000)]
[project @ 2002-03-18 15:27:08 by simonpj]
More on linear implicit params

22 years ago[project @ 2002-03-18 15:23:05 by simonpj]
simonpj [Mon, 18 Mar 2002 15:23:07 +0000 (15:23 +0000)]
[project @ 2002-03-18 15:23:05 by simonpj]
Tidier printing routines for Rules

22 years ago[project @ 2002-03-18 15:22:31 by simonpj]
simonpj [Mon, 18 Mar 2002 15:22:31 +0000 (15:22 +0000)]
[project @ 2002-03-18 15:22:31 by simonpj]
Remove spurious ? in linear implicit parameter printing

22 years ago[project @ 2002-03-18 15:21:59 by simonpj]
simonpj [Mon, 18 Mar 2002 15:21:59 +0000 (15:21 +0000)]
[project @ 2002-03-18 15:21:59 by simonpj]
Fix grevious bug in linear implicit parameter splitting for free Insts

22 years ago[project @ 2002-03-18 15:21:25 by simonpj]
simonpj [Mon, 18 Mar 2002 15:21:25 +0000 (15:21 +0000)]
[project @ 2002-03-18 15:21:25 by simonpj]
Splittable class comes from GlaExts now

22 years ago[project @ 2002-03-18 09:47:35 by simonmar]
simonmar [Mon, 18 Mar 2002 09:47:35 +0000 (09:47 +0000)]
[project @ 2002-03-18 09:47:35 by simonmar]
PrelGHC ==> GHC.Prim, for what it's worth (this documentation is quite
out of date).

22 years ago[project @ 2002-03-18 09:46:35 by simonmar]
simonmar [Mon, 18 Mar 2002 09:46:35 +0000 (09:46 +0000)]
[project @ 2002-03-18 09:46:35 by simonmar]
PrelGHC ==> GHC.Prim (comments only)

22 years ago[project @ 2002-03-18 09:45:54 by simonmar]
simonmar [Mon, 18 Mar 2002 09:45:54 +0000 (09:45 +0000)]
[project @ 2002-03-18 09:45:54 by simonmar]
PrelGHC ==> GHC.Prim (in comments only)

22 years ago[project @ 2002-03-18 09:45:10 by simonmar]
simonmar [Mon, 18 Mar 2002 09:45:10 +0000 (09:45 +0000)]
[project @ 2002-03-18 09:45:10 by simonmar]
PrelGHC ==> GHC.Prim

22 years ago[project @ 2002-03-18 09:44:46 by simonmar]
simonmar [Mon, 18 Mar 2002 09:44:46 +0000 (09:44 +0000)]
[project @ 2002-03-18 09:44:46 by simonmar]
update mention of PrelGHC

22 years ago[project @ 2002-03-15 16:08:16 by simonpj]
simonpj [Fri, 15 Mar 2002 16:08:16 +0000 (16:08 +0000)]
[project @ 2002-03-15 16:08:16 by simonpj]
Import wibbles

22 years ago[project @ 2002-03-15 13:57:27 by simonmar]
simonmar [Fri, 15 Mar 2002 13:57:32 +0000 (13:57 +0000)]
[project @ 2002-03-15 13:57:27 by simonmar]
Take the old strictness analyser out of #ifdef DEBUG and put it
instead in #ifdef OLD_STRICTNESS.  DEBUG was getting a bit slow.

22 years ago[project @ 2002-03-14 17:10:14 by simonmar]
simonmar [Thu, 14 Mar 2002 17:10:14 +0000 (17:10 +0000)]
[project @ 2002-03-14 17:10:14 by simonmar]
No need to compile Printf.lhs with -fvia-c now.

22 years ago[project @ 2002-03-14 17:09:46 by simonmar]
simonmar [Thu, 14 Mar 2002 17:09:46 +0000 (17:09 +0000)]
[project @ 2002-03-14 17:09:46 by simonmar]
The foreign declaration for snprintf was wrong, because we need to
give the type of the C function after applying C's type promotion
rules.  Hence the Float argument should be a Double, because it
occurs in the vararg section of the function type.

22 years ago[project @ 2002-03-14 17:05:13 by simonmar]
simonmar [Thu, 14 Mar 2002 17:05:13 +0000 (17:05 +0000)]
[project @ 2002-03-14 17:05:13 by simonmar]
Back out previous fix, it was wrong.

22 years ago[project @ 2002-03-14 16:22:31 by simonmar]
simonmar [Thu, 14 Mar 2002 16:22:34 +0000 (16:22 +0000)]
[project @ 2002-03-14 16:22:31 by simonmar]
Misc cleanup: remove the iface pretty-printing style, and clean up
bits of StringBuffer that aren't required any more.

22 years ago[project @ 2002-03-14 15:52:13 by simonmar]
simonmar [Thu, 14 Mar 2002 15:52:14 +0000 (15:52 +0000)]
[project @ 2002-03-14 15:52:13 by simonmar]
undo accidental commits

22 years ago[project @ 2002-03-14 15:49:36 by simonpj]
simonpj [Thu, 14 Mar 2002 15:49:36 +0000 (15:49 +0000)]
[project @ 2002-03-14 15:49:36 by simonpj]
Documentation about type system extensions

22 years ago[project @ 2002-03-14 15:47:52 by simonmar]
simonmar [Thu, 14 Mar 2002 15:47:55 +0000 (15:47 +0000)]
[project @ 2002-03-14 15:47:52 by simonmar]
Remove the interface file parser, and move .hi-boot parsing into the
main parser.  The syntax of .hi-boot files is now greatly improved in
terms of readability; here's an example:

module M where
data T
f :: T -> GHC.Base.Int

note that
(a) layout can be used
(b) there's no explcit export list; everything declared
    is implicitly exported
(c) Z-encoding of names is no longer required
(d) Any identifier not declared in the current module must
    still be quailified with the module which originally
    defined it (eg. GHC.Base.Int above).

We'd like to relax (d), but that will come later.

22 years ago[project @ 2002-03-14 15:27:15 by simonpj]
simonpj [Thu, 14 Mar 2002 15:27:22 +0000 (15:27 +0000)]
[project @ 2002-03-14 15:27:15 by simonpj]
------------------------
Change
GlobalName --> ExternalName
LocalName  ->  InternalName
------------------------

For a long time there's been terminological confusion between

GlobalName vs LocalName  (property of a Name)
GlobalId vs LocalId  (property of an Id)

I've now changed the terminology for Name to be

ExternalName vs InternalName

I've also added quite a bit of documentation in the Commentary.

22 years ago[project @ 2002-03-14 15:26:53 by simonpj]
simonpj [Thu, 14 Mar 2002 15:26:54 +0000 (15:26 +0000)]
[project @ 2002-03-14 15:26:53 by simonpj]
Lots of stuff about external and internal names

22 years ago[project @ 2002-03-14 11:23:42 by simonmar]
simonmar [Thu, 14 Mar 2002 11:23:42 +0000 (11:23 +0000)]
[project @ 2002-03-14 11:23:42 by simonmar]
Turn "return e" into "return $! e" in several places to improve
performance.

22 years ago[project @ 2002-03-13 16:31:05 by simonmar]
simonmar [Wed, 13 Mar 2002 16:31:05 +0000 (16:31 +0000)]
[project @ 2002-03-13 16:31:05 by simonmar]
Remove -fall-strict

22 years ago[project @ 2002-03-13 14:37:11 by simonmar]
simonmar [Wed, 13 Mar 2002 14:37:11 +0000 (14:37 +0000)]
[project @ 2002-03-13 14:37:11 by simonmar]
Update the documentation to reflect new commands since 5.02.2:

:browse
:set args
:set prog
:show bindings
:show modules

and the new syntax for :module.

22 years ago[project @ 2002-03-13 13:51:34 by simonmar]
simonmar [Wed, 13 Mar 2002 13:51:35 +0000 (13:51 +0000)]
[project @ 2002-03-13 13:51:34 by simonmar]
Fix the -fasm/-fvia-C auto-selection again: now we're back to the
proper behaviour, namely -fasm is the default unless you specify -O or
-fvia-C, but only on arch's that support it.

I screwed it up in the previous commit, but it exposed a bug in the
NCG so it wasn't all bad :)

22 years ago[project @ 2002-03-13 13:48:32 by simonmar]
simonmar [Wed, 13 Mar 2002 13:48:32 +0000 (13:48 +0000)]
[project @ 2002-03-13 13:48:32 by simonmar]
Cope with VoidRep fields in a static constructor.

22 years ago[project @ 2002-03-13 13:48:04 by simonmar]
simonmar [Wed, 13 Mar 2002 13:48:04 +0000 (13:48 +0000)]
[project @ 2002-03-13 13:48:04 by simonmar]
It *is* possible to get VoidRep fields in a constructor, but their
representation should be empty (not a zero word).

22 years ago[project @ 2002-03-13 13:39:15 by simonmar]
simonmar [Wed, 13 Mar 2002 13:39:15 +0000 (13:39 +0000)]
[project @ 2002-03-13 13:39:15 by simonmar]
Fix panic message.