simonm [Fri, 15 Jan 1999 15:06:20 +0000 (15:06 +0000)]
[project @ 1999-01-15 15:06:20 by simonm]
Remove punning.
simonm [Fri, 15 Jan 1999 15:01:41 +0000 (15:01 +0000)]
[project @ 1999-01-15 15:01:41 by simonm]
#if __HASKELL1__ > 4
import Ratio (numerator, denominator)
#endif
simonm [Fri, 15 Jan 1999 14:08:21 +0000 (14:08 +0000)]
[project @ 1999-01-15 14:08:21 by simonm]
Remove Void use.
sof [Fri, 15 Jan 1999 14:06:53 +0000 (14:06 +0000)]
[project @ 1999-01-15 14:06:53 by sof]
Parser didn't like "instance Foo X where {}". Does now.
simonm [Fri, 15 Jan 1999 14:06:50 +0000 (14:06 +0000)]
[project @ 1999-01-15 14:06:50 by simonm]
wibble
simonm [Fri, 15 Jan 1999 13:32:19 +0000 (13:32 +0000)]
[project @ 1999-01-15 13:32:19 by simonm]
fix isAlphanum/isAlphaNum problems.
simonm [Fri, 15 Jan 1999 13:11:04 +0000 (13:11 +0000)]
[project @ 1999-01-15 13:11:04 by simonm]
A couple of Int type signatures to avoid H98 Integer defaulting.
simonm [Fri, 15 Jan 1999 12:57:51 +0000 (12:57 +0000)]
[project @ 1999-01-15 12:57:49 by simonm]
H98 changes for non-cygwin targets.
sewardj [Fri, 15 Jan 1999 12:47:20 +0000 (12:47 +0000)]
[project @ 1999-01-15 12:47:19 by sewardj]
Remove 'const' modifier from static closure declarations. Static
closures are meant to live in R/W data space.
sof [Fri, 15 Jan 1999 10:49:21 +0000 (10:49 +0000)]
[project @ 1999-01-15 10:49:05 by sof]
Minor syntactic h98 updates
sof [Fri, 15 Jan 1999 10:27:24 +0000 (10:27 +0000)]
[project @ 1999-01-15 10:27:24 by sof]
Recognise "-- !!!" (as well as "--!!!") as the start of an interesting
comment. The latter isn't liked by a Haskell98 tokeniser, hence the change.
sof [Fri, 15 Jan 1999 10:23:59 +0000 (10:23 +0000)]
[project @ 1999-01-15 10:23:59 by sof]
Removed debugging code that accidentally was left behind.
sof [Fri, 15 Jan 1999 10:21:43 +0000 (10:21 +0000)]
[project @ 1999-01-15 10:21:43 by sof]
lexLitChar: '\DEL' wasn't being lexed properly
sof [Thu, 14 Jan 1999 19:54:05 +0000 (19:54 +0000)]
[project @ 1999-01-14 19:53:57 by sof]
Fixes to support .hi unfoldings containing "_ccall_ dynamic"s
sof [Thu, 14 Jan 1999 19:28:43 +0000 (19:28 +0000)]
[project @ 1999-01-14 19:28:43 by sof]
Tweaked to cope with Haskell98's change to what constitutes a -- comment
sof [Thu, 14 Jan 1999 18:36:18 +0000 (18:36 +0000)]
[project @ 1999-01-14 18:36:18 by sof]
added isEmptyMVarZh macro
sof [Thu, 14 Jan 1999 18:31:17 +0000 (18:31 +0000)]
[project @ 1999-01-14 18:31:17 by sof]
Forgot to commit this before Christmas...on Win32 platforms use
VirtualAlloc() instead CreateFileMapping()&friends to ask for
mega-blocks from the OS. Windows 95-friendlier.
sof [Thu, 14 Jan 1999 18:21:51 +0000 (18:21 +0000)]
[project @ 1999-01-14 18:21:49 by sof]
Haskell 98 related changes + the addition of the MVar primop,
isEmptyMVar :: MVar a -> IO Bool
-- use with care.
sof [Thu, 14 Jan 1999 18:18:47 +0000 (18:18 +0000)]
[project @ 1999-01-14 18:18:45 by sof]
-syslib posix gets the Haskell 98 treatment
sof [Thu, 14 Jan 1999 18:17:37 +0000 (18:17 +0000)]
[project @ 1999-01-14 18:17:32 by sof]
-syslib misc meets Haskell 98.
sof [Thu, 14 Jan 1999 18:15:32 +0000 (18:15 +0000)]
[project @ 1999-01-14 18:15:28 by sof]
* Misc changes to reflect that we're now speaking Haskell 98.
* Augmented IOExts export list with
unsafeIOToST :: IO a -> ST s a
stToIO :: ST s a -> IO a
sof [Thu, 14 Jan 1999 18:13:05 +0000 (18:13 +0000)]
[project @ 1999-01-14 18:12:47 by sof]
Changes to make the Prelude comply with Haskell 98.
I claim that this completes GHC's implementation of Haskell 98 (at
least feature-wise, but there's bound to be some bugs lurking..)
sewardj [Thu, 14 Jan 1999 18:08:26 +0000 (18:08 +0000)]
[project @ 1999-01-14 18:08:26 by sewardj]
Minor Makefile mods.
sof [Thu, 14 Jan 1999 17:59:25 +0000 (17:59 +0000)]
[project @ 1999-01-14 17:58:41 by sof]
Assorted minor Haskell 98 changes:
* Maximal munch rule for "--" comments
* _ as lower-case letter, "_" is a reserved id. Prefixing unused
variable names in patterns with '_' causes the renamer not to
report such names as being unused.
* allow empty decls
* comprehensions are now list comprehensions, not monadic.
* use Monad.fail to signal pattern matching errors within
do expressions.
* remove record punning.
* empty contexts are now legal (go wild!)
* allow records with no fields
* allow newtypes with a labelled field
* default default is now (Integer, Double)
* turn off defaulting mechanism for args & res to a _ccall_.
* allow LHSs of the form (a -.- b) x = ...
* Main.main can now have type (IO a)
* nuked Void (and its use in the compiler sources.)
* deriving machinery for Enum now also generate 'succ' and 'pred'
method bindings.
simonm [Thu, 14 Jan 1999 17:15:46 +0000 (17:15 +0000)]
[project @ 1999-01-14 17:15:46 by simonm]
x86: only add -fomit-frame-pointer when compiling .hc files. It gets
in the way of debugging for normal .c files.
simonm [Thu, 14 Jan 1999 17:01:30 +0000 (17:01 +0000)]
[project @ 1999-01-14 17:01:30 by simonm]
- compile Happy with -O by default.
sof [Thu, 14 Jan 1999 16:59:51 +0000 (16:59 +0000)]
[project @ 1999-01-14 16:59:51 by sof]
Arrange for Makefile dependencies to be generated on misc
parser/ helper code.
simonm [Thu, 14 Jan 1999 16:57:07 +0000 (16:57 +0000)]
[project @ 1999-01-14 16:57:07 by simonm]
Remove a couple of non-existent closure types.
sof [Thu, 14 Jan 1999 16:55:16 +0000 (16:55 +0000)]
[project @ 1999-01-14 16:55:16 by sof]
Added indexFS,
indexFS :: FastString -> Int -> Char
simonm [Thu, 14 Jan 1999 14:43:46 +0000 (14:43 +0000)]
[project @ 1999-01-14 14:43:46 by simonm]
Oops, stack check in PAP_entry was *completely* wrong. Time for a
stack check audit.
simonm [Thu, 14 Jan 1999 14:35:04 +0000 (14:35 +0000)]
[project @ 1999-01-14 14:35:04 by simonm]
- fix stack check in PAP_entry.
sewardj [Thu, 14 Jan 1999 12:17:39 +0000 (12:17 +0000)]
[project @ 1999-01-14 12:17:39 by sewardj]
Changed expected output to match new reality.
sewardj [Thu, 14 Jan 1999 11:57:48 +0000 (11:57 +0000)]
[project @ 1999-01-14 11:57:48 by sewardj]
When -DDEBUG, in BYTE_ARR_CTS, allow GET_INFO(a) to be
&MUT_ARR_WORDS_info as well as &ARR_WORDS_info.
simonm [Thu, 14 Jan 1999 11:11:29 +0000 (11:11 +0000)]
[project @ 1999-01-14 11:11:29 by simonm]
- check failed_to_evac in scavenge_static. We might have a static
indirection (i.e. a CAF) that we can't evacuate to the oldest generation,
so we have to put it back on the old generation mutable list.
With this change, a bootstrapped compiler now compiles the libraries
successfully.
simonm [Thu, 14 Jan 1999 10:49:01 +0000 (10:49 +0000)]
[project @ 1999-01-14 10:49:01 by simonm]
- Don't forget to set failed_to_evac when evacuating a THUNK_SELECTOR
- Fix GC counting
sewardj [Wed, 13 Jan 1999 18:16:37 +0000 (18:16 +0000)]
[project @ 1999-01-13 18:16:37 by sewardj]
Changed expected output to reflect new reality.
simonm [Wed, 13 Jan 1999 17:25:59 +0000 (17:25 +0000)]
[project @ 1999-01-13 17:25:37 by simonm]
Added a generational garbage collector.
The collector is reliable but fairly untuned as yet. It works with an
arbitrary number of generations: use +RTS -G<gens> to change the
number of generations used (default 2).
Stats: +RTS -Sstderr is quite useful, but to really see what's going
on compile the RTS with -DDEBUG and use +RTS -D32.
ARR_PTRS removed - it wasn't used anywhere.
Sanity checking improved:
- free blocks are now spammed when sanity checking is turned on
- a check for leaking blocks is performed after each GC.
sewardj [Wed, 13 Jan 1999 16:47:27 +0000 (16:47 +0000)]
[project @ 1999-01-13 16:47:26 by sewardj]
Code generated by implementTagToCon() gives a useful error message
in case of invalid arguments.
simonm [Wed, 13 Jan 1999 16:26:37 +0000 (16:26 +0000)]
[project @ 1999-01-13 16:26:37 by simonm]
testing
simonm [Wed, 13 Jan 1999 11:06:24 +0000 (11:06 +0000)]
[project @ 1999-01-13 11:06:24 by simonm]
Z-encodings for '/' and '.' were both 'Zd'. Change '.' to 'Zs'.
sewardj [Tue, 12 Jan 1999 14:13:51 +0000 (14:13 +0000)]
[project @ 1999-01-12 14:13:51 by sewardj]
Added check target.
sewardj [Tue, 12 Jan 1999 14:03:27 +0000 (14:03 +0000)]
[project @ 1999-01-12 14:03:27 by sewardj]
Made FILE_OBJECT be defined for -D__HUGS__.
Changed .dll file refs to .so for -D__HUGS__.
sewardj [Tue, 12 Jan 1999 13:45:10 +0000 (13:45 +0000)]
[project @ 1999-01-12 13:45:10 by sewardj]
Created a Makefile for fptools/ghc/interpreter.
sewardj [Tue, 12 Jan 1999 10:59:26 +0000 (10:59 +0000)]
[project @ 1999-01-12 10:59:26 by sewardj]
Disabled nonblocking IO (the +128 for file flags) until missing prims
are implemented.
sewardj [Tue, 12 Jan 1999 10:53:02 +0000 (10:53 +0000)]
[project @ 1999-01-12 10:53:02 by sewardj]
Removed extraneous test following 'if ( fo->flags & FILEOBJ_NONBLOCKING_IO )'
sof [Mon, 11 Jan 1999 10:15:04 +0000 (10:15 +0000)]
[project @ 1999-01-11 10:15:04 by sof]
Fixed caching bug in FPTOOLS_END_{TEXT,DATA}_SECTION.
sof [Mon, 11 Jan 1999 09:11:52 +0000 (09:11 +0000)]
[project @ 1999-01-11 09:11:52 by sof]
Added new option -f, which forces the creation of 'todir' if it doesn't
already exist.
sof [Sun, 10 Jan 1999 17:16:45 +0000 (17:16 +0000)]
[project @ 1999-01-10 17:16:45 by sof]
Added definition of WithGhcHcVersion (but left commented out, as it's currently
unused.)
sof [Fri, 8 Jan 1999 18:14:13 +0000 (18:14 +0000)]
[project @ 1999-01-08 18:14:13 by sof]
mkdependHS: for "source" imports of the form, e.g.,
import {-# SOURCE #-} Foo
emit dependency on Foo.hi-boot-<iface-file-version-number>
rather than just Foo.hi-boot if the former exists.
simonm [Fri, 8 Jan 1999 16:14:49 +0000 (16:14 +0000)]
[project @ 1999-01-08 16:14:49 by simonm]
Generate static closures with float/double fields properly.
simonm [Fri, 8 Jan 1999 16:11:23 +0000 (16:11 +0000)]
[project @ 1999-01-08 16:11:23 by simonm]
Fix endianness problems in info table generation.
sewardj [Fri, 8 Jan 1999 15:36:58 +0000 (15:36 +0000)]
[project @ 1999-01-08 15:36:58 by sewardj]
Added -fno-asm-mangling.
simonm [Fri, 8 Jan 1999 11:42:09 +0000 (11:42 +0000)]
[project @ 1999-01-08 11:42:09 by simonm]
Add missing <p>
simonm [Fri, 8 Jan 1999 11:37:27 +0000 (11:37 +0000)]
[project @ 1999-01-08 11:37:27 by simonm]
Doc changes for revised exception interface.
kw217 [Thu, 7 Jan 1999 17:49:47 +0000 (17:49 +0000)]
[project @ 1999-01-07 17:49:47 by kw217]
Add missing export of warnPprTrace (for WARN macro).
simonpj [Thu, 7 Jan 1999 16:53:10 +0000 (16:53 +0000)]
[project @ 1999-01-07 16:53:10 by simonpj]
Fix RnEnv.mkPrintUnqualFn
simonm [Thu, 7 Jan 1999 16:39:08 +0000 (16:39 +0000)]
[project @ 1999-01-07 16:39:06 by simonm]
Revised interface to the exception library. Docs to follow.
simonm [Thu, 7 Jan 1999 15:48:40 +0000 (15:48 +0000)]
[project @ 1999-01-07 15:48:40 by simonm]
this file is NON_POSIX_SOURCE, since we use lstat.
simonm [Thu, 7 Jan 1999 15:42:33 +0000 (15:42 +0000)]
[project @ 1999-01-07 15:42:33 by simonm]
#include <unistd.h> to get prototype for vfork.
keithw [Thu, 7 Jan 1999 14:54:42 +0000 (14:54 +0000)]
[project @ 1999-01-07 14:54:42 by keithw]
Add missing pattern to tidyNote.
simonpj [Thu, 7 Jan 1999 12:48:23 +0000 (12:48 +0000)]
[project @ 1999-01-07 12:48:13 by simonpj]
Small changes to make the compiler boot itself
simonpj [Thu, 7 Jan 1999 12:47:35 +0000 (12:47 +0000)]
[project @ 1999-01-07 12:47:34 by simonpj]
Add debug macro WARN
simonm [Thu, 7 Jan 1999 11:18:22 +0000 (11:18 +0000)]
[project @ 1999-01-07 11:18:22 by simonm]
New rev5 hi-boot file.
simonm [Thu, 7 Jan 1999 11:13:29 +0000 (11:13 +0000)]
[project @ 1999-01-07 11:13:29 by simonm]
Sync up with .hi-boot file.
simonm [Wed, 6 Jan 1999 15:55:03 +0000 (15:55 +0000)]
[project @ 1999-01-06 15:55:03 by simonm]
Sort unboxed slots - part of the fix for large bitmaps.
simonm [Wed, 6 Jan 1999 12:27:47 +0000 (12:27 +0000)]
[project @ 1999-01-06 12:27:47 by simonm]
Fixes to the large bitmap code.
simonm [Wed, 6 Jan 1999 12:15:35 +0000 (12:15 +0000)]
[project @ 1999-01-06 12:15:35 by simonm]
Oops; committed wrong version. Revert previous commit.
simonm [Wed, 6 Jan 1999 11:52:43 +0000 (11:52 +0000)]
[project @ 1999-01-06 11:52:43 by simonm]
Fixes to the large bitmap code.
simonm [Wed, 6 Jan 1999 11:44:44 +0000 (11:44 +0000)]
[project @ 1999-01-06 11:44:44 by simonm]
- check for silly stack sizes in the right place
- stub the link field of the running TSO (fixes a bug in the
_ccall_GC support).
simonm [Wed, 6 Jan 1999 11:35:27 +0000 (11:35 +0000)]
[project @ 1999-01-06 11:35:27 by simonm]
trim import
simonm [Wed, 6 Jan 1999 11:29:44 +0000 (11:29 +0000)]
[project @ 1999-01-06 11:29:44 by simonm]
updates
simonpj [Tue, 5 Jan 1999 12:22:12 +0000 (12:22 +0000)]
[project @ 1999-01-05 12:22:08 by simonpj]
Fix renamer crash on bootstrap build
simonpj [Thu, 24 Dec 1998 14:46:18 +0000 (14:46 +0000)]
[project @ 1998-12-24 14:46:18 by simonpj]
Fix simplifier bug that forgot mkRhsTyLam
simonm [Wed, 23 Dec 1998 12:33:52 +0000 (12:33 +0000)]
[project @ 1998-12-23 12:33:52 by simonm]
A couple of small additions.
simonm [Wed, 23 Dec 1998 12:26:00 +0000 (12:26 +0000)]
[project @ 1998-12-23 12:26:00 by simonm]
Add strictness for fork# and par#.
simonm [Wed, 23 Dec 1998 12:12:23 +0000 (12:12 +0000)]
[project @ 1998-12-23 12:12:19 by simonm]
Update for version 4.02
simonpj [Wed, 23 Dec 1998 10:24:06 +0000 (10:24 +0000)]
[project @ 1998-12-23 10:24:06 by simonpj]
Fix strictness of NewArrayOp and NewMutVarOp in PrimOp.lhs
simonm [Tue, 22 Dec 1998 18:52:04 +0000 (18:52 +0000)]
[project @ 1998-12-22 18:52:04 by simonm]
Filter out type arguments when analysing primops.
simonm [Tue, 22 Dec 1998 18:03:27 +0000 (18:03 +0000)]
[project @ 1998-12-22 18:03:27 by simonm]
Another fix for getScrutineeTyCon: ignore Fun tycons.
simonm [Tue, 22 Dec 1998 17:00:11 +0000 (17:00 +0000)]
[project @ 1998-12-22 17:00:11 by simonm]
Remove overlapped case correctly spotted by GHC.
simonpj [Tue, 22 Dec 1998 16:31:39 +0000 (16:31 +0000)]
[project @ 1998-12-22 16:31:28 by simonpj]
1. Add primOpStrictness to PrimOp.lhs, and use it in
- the strictness analyser
- the simplifier
to deal correctly with PrimOps that are non-strict.
ToDo: use this new facility to clean up SeqOp, ParOp.
2. Fix the instance-decl-import bug, but printing de-synonym'd types
in interface files.
3. Make the simplifier treat applications with an unlifted-type arg
in the same way it would if the function was strict
(in rebuild_strict)
simonm [Tue, 22 Dec 1998 12:55:55 +0000 (12:55 +0000)]
[project @ 1998-12-22 12:55:54 by simonm]
splitAlgTyConAppThroughNewTypes becomes splitTyConAppThroughNewTypes
(i.e. it handles primitive types in addition to other TyCons). This
enables case-of-case-of-primop to compile correctly.
simonm [Tue, 22 Dec 1998 10:47:45 +0000 (10:47 +0000)]
[project @ 1998-12-22 10:47:43 by simonm]
Update .hi-boot files (Expr only takes one parameter and Var has none).
simonpj [Mon, 21 Dec 1998 12:09:32 +0000 (12:09 +0000)]
[project @ 1998-12-21 12:09:32 by simonpj]
Add PprType.hi-boot; used only for error messages in Type.lhs
simonpj [Mon, 21 Dec 1998 10:45:36 +0000 (10:45 +0000)]
[project @ 1998-12-21 10:45:36 by simonpj]
Add utils/Panic.lhs
simonpj [Mon, 21 Dec 1998 09:43:44 +0000 (09:43 +0000)]
[project @ 1998-12-21 09:43:43 by simonpj]
Remove Eval altogether
simonpj [Mon, 21 Dec 1998 09:41:09 +0000 (09:41 +0000)]
[project @ 1998-12-21 09:41:09 by simonpj]
Forgot to commit PrelGHC.hi-boot; changes to syntax of open kind in CCallable
simonpj [Mon, 21 Dec 1998 09:39:56 +0000 (09:39 +0000)]
[project @ 1998-12-21 09:39:56 by simonpj]
Forgot to commit changes to interface file munging in ghc-iface.lprl
simonpj [Mon, 21 Dec 1998 09:37:55 +0000 (09:37 +0000)]
[project @ 1998-12-21 09:37:54 by simonpj]
Fix two minor typechecker bugs
simonpj [Fri, 18 Dec 1998 17:42:39 +0000 (17:42 +0000)]
[project @ 1998-12-18 17:40:31 by simonpj]
Another big commit from Simon. Actually, the last one
didn't all go into the main trunk; because of a CVS glitch it
ended up in the wrong branch.
So this commit includes:
* Scoped type variables
* Warnings for unused variables should work now (they didn't before)
* Simplifier improvements:
- Much better treatment of strict arguments
- Better treatment of bottoming Ids
- No need for w/w split for fns that are merely strict
- Fewer iterations needed, I hope
* Less gratuitous renaming in interface files and abs C
* OccName is a separate module, and is an abstract data type
I think the whole Prelude and Exts libraries compile correctly.
Something isn't quite right about typechecking existentials though.
simonm [Tue, 15 Dec 1998 13:08:03 +0000 (13:08 +0000)]
[project @ 1998-12-15 13:08:03 by simonm]
add missing file.
simonm [Tue, 15 Dec 1998 09:41:57 +0000 (09:41 +0000)]
[project @ 1998-12-15 09:41:57 by simonm]
add missing file from the merge. The ghc-4-01 tag will be added.
simonm [Mon, 14 Dec 1998 14:57:28 +0000 (14:57 +0000)]
[project @ 1998-12-14 14:57:28 by simonm]
fix out of date references to header files.
simonpj [Thu, 10 Dec 1998 08:54:19 +0000 (08:54 +0000)]
[project @ 1998-12-10 08:54:18 by simonpj]
This massive commit is what Simon has been up to for a couple of weeks.
1. Scoped type variables are in
2. The typechecker works a bit differently.
In partiular, the compiler no longer has TcTyVars of
a different type than TyVars.
All the 's' and 'flexi' type parameters have vanished from Id, TyVar,
Type, etc.
The typchecker monad is now in the IO world (though I didn't get
around to removing the 's' parameter from the monad, but it's
no longer used)
Bottom line: significantly simpler,
fewer gratuitous conversions from TcType <-> Type
but less type security in the compiler
There was a reason for doing this now; somehow the 's' stuff
got in the way of kind inference for scoped type variables
and I lost patience with it.
3. Haskell98-style reporting of scope errors; i.e. you only get
an error if you use a variable that could mean two different things.
At the same time I did a lot of tidying-up in the renamer.
4. Mostly-complete fix to the reporting of unused variables, which
has never worked properly. (The 'mostly' bit is because it reports
those 'system' tycons like _C as unused. I'm on the job.)
5. The parser is a bit tider than it was. A few more ugn files give
a more refined C data type. I had to tackle this because of
the scoped type variables.
6. Haskell98-style fixities. Fixity decls can occur wherever a type
signature can
7. Some HsSyn changes that constitute minor tidy ups
Put TypeDecl and ClassDecl into one type [HsDecls]
Improved the HsMatch/GRHSs etc data types.
8. TcGRHSs is removed; combined into TcMatches.
I DO NOT PROMISE THAT ALL OF THIS WORKS. It compiles the Prelude,
but I have not tested it more than that. Stick to 4.01 if you want a
compiler that's sure to work.
sof [Wed, 9 Dec 1998 17:52:09 +0000 (17:52 +0000)]
[project @ 1998-12-09 17:52:09 by sof]
Added unpackCStringST - unmarshal C strings promptly
simonm [Wed, 9 Dec 1998 17:19:35 +0000 (17:19 +0000)]
[project @ 1998-12-09 17:19:35 by simonm]
- backout rev 1.11 (spammed rev 1.10)
- slide ghc-4-01 tag forward
sof [Wed, 9 Dec 1998 17:09:50 +0000 (17:09 +0000)]
[project @ 1998-12-09 17:09:50 by sof]
Stubs for implementing System.getArgs
simonm [Thu, 3 Dec 1998 17:23:30 +0000 (17:23 +0000)]
[project @ 1998-12-03 17:23:30 by simonm]
Inline PrimOps (inc. _c{call,asm}_GC_): load the arguments into
temporaries early, just in case one of the arguments is in the spot on
the stack where we want to push the return address.
simonm [Thu, 3 Dec 1998 15:24:09 +0000 (15:24 +0000)]
[project @ 1998-12-03 15:24:08 by simonm]
merge from 4.01
simonm [Thu, 3 Dec 1998 15:14:08 +0000 (15:14 +0000)]
[project @ 1998-12-03 15:14:08 by simonm]
bring in correct version