ghc-hetmet.git
23 years ago[project @ 2000-08-17 15:00:13 by simonmar]
simonmar [Thu, 17 Aug 2000 15:00:13 +0000 (15:00 +0000)]
[project @ 2000-08-17 15:00:13 by simonmar]
unboxing strict fields, bug #1:

desugaring a record pattern used the
rep args rather than the original args when
expanding the pattern into a ConPat.

23 years ago[project @ 2000-08-17 14:30:26 by simonmar]
simonmar [Thu, 17 Aug 2000 14:30:26 +0000 (14:30 +0000)]
[project @ 2000-08-17 14:30:26 by simonmar]
Complete the removal of tso->splim (these are the NCG bits).

23 years ago[project @ 2000-08-17 11:36:47 by rrt]
rrt [Thu, 17 Aug 2000 11:36:47 +0000 (11:36 +0000)]
[project @ 2000-08-17 11:36:47 by rrt]
This test used a library module that no longer exists (Printf).

23 years ago[project @ 2000-08-17 11:24:49 by rrt]
rrt [Thu, 17 Aug 2000 11:24:49 +0000 (11:24 +0000)]
[project @ 2000-08-17 11:24:49 by rrt]
Test no longer applicable (fails for non-typechecking reasons: multiple
definition of main)

23 years ago[project @ 2000-08-17 11:22:33 by rrt]
rrt [Thu, 17 Aug 2000 11:22:33 +0000 (11:22 +0000)]
[project @ 2000-08-17 11:22:33 by rrt]
Updated error message.

23 years ago[project @ 2000-08-16 15:29:34 by rrt]
rrt [Wed, 16 Aug 2000 15:29:34 +0000 (15:29 +0000)]
[project @ 2000-08-16 15:29:34 by rrt]
Change use of HAVE_WIN32_DLL_SUPPORT to ENABLE_WIN32_DLL_SUPPORT, to stop
things going horribly wrong with static linking on win32.

23 years ago[project @ 2000-08-16 13:28:25 by simonmar]
simonmar [Wed, 16 Aug 2000 13:28:25 +0000 (13:28 +0000)]
[project @ 2000-08-16 13:28:25 by simonmar]
Don't just pick the back edges ({-# SOURCE #-} imports) when
collecting the list of imports for module initialisation.  It's
entirely possible that a module is only reachable from Main via {-#
SOURCE #-} imports.

23 years ago[project @ 2000-08-15 14:22:24 by simonmar]
simonmar [Tue, 15 Aug 2000 14:22:24 +0000 (14:22 +0000)]
[project @ 2000-08-15 14:22:24 by simonmar]
oops, revert part of previous commit that sneaked in by accident

23 years ago[project @ 2000-08-15 14:18:43 by simonmar]
simonmar [Tue, 15 Aug 2000 14:18:43 +0000 (14:18 +0000)]
[project @ 2000-08-15 14:18:43 by simonmar]
Make the TSO structure shorter by 2 words:

- remove splim.  It was always equal to &(tso->stack) +
  RESERVED_STACK_WORDS.

- make two enum fields 16 bits each instead of 32.

23 years ago[project @ 2000-08-15 14:12:18 by simonmar]
simonmar [Tue, 15 Aug 2000 14:12:18 +0000 (14:12 +0000)]
[project @ 2000-08-15 14:12:18 by simonmar]
this test had random end conditions; make it a bit more deterministic

23 years ago[project @ 2000-08-15 11:56:08 by simonmar]
simonmar [Tue, 15 Aug 2000 11:56:08 +0000 (11:56 +0000)]
[project @ 2000-08-15 11:56:08 by simonmar]
fail properly in ghcExit, now that we don't call error any more.

23 years ago[project @ 2000-08-15 11:48:06 by simonmar]
simonmar [Tue, 15 Aug 2000 11:48:06 +0000 (11:48 +0000)]
[project @ 2000-08-15 11:48:06 by simonmar]
Minor cleanups to a few closure types: we don't use StgPtr in
Closures.h anymore.

23 years ago[project @ 2000-08-15 11:41:19 by rrt]
rrt [Tue, 15 Aug 2000 11:41:19 +0000 (11:41 +0000)]
[project @ 2000-08-15 11:41:19 by rrt]
Add -fvia-C to cg026 (which it needs).

23 years ago[project @ 2000-08-15 11:39:17 by rrt]
rrt [Tue, 15 Aug 2000 11:39:17 +0000 (11:39 +0000)]
[project @ 2000-08-15 11:39:17 by rrt]
Updated error message for "Compilation had errors" so as not to break tests.

23 years ago[project @ 2000-08-10 10:31:46 by simonmar]
simonmar [Thu, 10 Aug 2000 10:33:22 +0000 (10:33 +0000)]
[project @ 2000-08-10 10:31:46 by simonmar]
remove unused imports

23 years ago[project @ 2000-08-10 10:20:03 by rrt]
rrt [Thu, 10 Aug 2000 10:20:03 +0000 (10:20 +0000)]
[project @ 2000-08-10 10:20:03 by rrt]
Reinstated isLocallyDefinedName test in isDllName, because nameModule can't
cope with local names.

23 years ago[project @ 2000-08-09 15:19:58 by rrt]
rrt [Wed, 9 Aug 2000 15:19:58 +0000 (15:19 +0000)]
[project @ 2000-08-09 15:19:58 by rrt]
Changed use of error for "Compilation failed" message to hPutStr stderr;
seemed better to SWM, and stops error messages being different on Windows
where RTS hooks don't work with DLLs.

23 years ago[project @ 2000-08-09 13:39:54 by rrt]
rrt [Wed, 9 Aug 2000 13:39:54 +0000 (13:39 +0000)]
[project @ 2000-08-09 13:39:54 by rrt]
Changes to Windows docs; specifically, remove advice to use -static.

23 years ago[project @ 2000-08-09 13:37:56 by rrt]
rrt [Wed, 9 Aug 2000 13:37:56 +0000 (13:37 +0000)]
[project @ 2000-08-09 13:37:56 by rrt]
Updates to Windows docs to cope with changes in new Cygwin and head of tree
GHC.

23 years ago[project @ 2000-08-09 12:05:39 by rrt]
rrt [Wed, 9 Aug 2000 12:05:39 +0000 (12:05 +0000)]
[project @ 2000-08-09 12:05:39 by rrt]
Clarified remarks about memory usage, and zapped bits specifically about
resources required to compile GHC (this is not ANNOUNCE material).

23 years ago[project @ 2000-08-09 11:45:17 by simonmar]
simonmar [Wed, 9 Aug 2000 11:45:44 +0000 (11:45 +0000)]
[project @ 2000-08-09 11:45:17 by simonmar]
remove unused import

23 years ago[project @ 2000-08-09 11:44:51 by simonmar]
simonmar [Wed, 9 Aug 2000 11:44:51 +0000 (11:44 +0000)]
[project @ 2000-08-09 11:44:51 by simonmar]
remove unused imports

23 years ago[project @ 2000-08-09 11:39:02 by simonmar]
simonmar [Wed, 9 Aug 2000 11:39:02 +0000 (11:39 +0000)]
[project @ 2000-08-09 11:39:02 by simonmar]
avoid some repetition of filenames in the primop rules.

23 years ago[project @ 2000-08-09 11:21:21 by simonmar]
simonmar [Wed, 9 Aug 2000 11:21:21 +0000 (11:21 +0000)]
[project @ 2000-08-09 11:21:21 by simonmar]
build genprimopcode at boot time.

23 years ago[project @ 2000-08-09 10:59:12 by rrt]
rrt [Wed, 9 Aug 2000 10:59:12 +0000 (10:59 +0000)]
[project @ 2000-08-09 10:59:12 by rrt]
werid -> weird

23 years ago[project @ 2000-08-09 09:56:08 by simonmar]
simonmar [Wed, 9 Aug 2000 09:56:08 +0000 (09:56 +0000)]
[project @ 2000-08-09 09:56:08 by simonmar]
make this compile with pre-4.09 GHCs.

23 years ago[project @ 2000-08-08 17:21:12 by rrt]
rrt [Tue, 8 Aug 2000 17:21:12 +0000 (17:21 +0000)]
[project @ 2000-08-08 17:21:12 by rrt]
Fix so that libHS_imp_stub is made before HSrts.dll.

23 years ago[project @ 2000-08-08 16:11:04 by rrt]
rrt [Tue, 8 Aug 2000 16:11:04 +0000 (16:11 +0000)]
[project @ 2000-08-08 16:11:04 by rrt]
Changed DLL_IMPORT_RTS to DLL_IMPORT (I had it the wrong way around).

23 years ago[project @ 2000-08-08 15:16:09 by sewardj]
sewardj [Tue, 8 Aug 2000 15:16:09 +0000 (15:16 +0000)]
[project @ 2000-08-08 15:16:09 by sewardj]
Give the included bits of Haskell their own rules in the Makefile, so
that make boot/depend work properly.

23 years ago[project @ 2000-08-07 23:37:19 by qrczak]
qrczak [Mon, 7 Aug 2000 23:37:24 +0000 (23:37 +0000)]
[project @ 2000-08-07 23:37:19 by qrczak]
Now Char, Char#, StgChar have 31 bits (physically 32).
"foo"# is still an array of bytes.

CharRep represents 32 bits (on a 64-bit arch too). There is also
Int8Rep, used in those places where bytes were originally meant.
readCharArray, indexCharOffAddr etc. still use bytes. Storable and
{I,M}Array use wide Chars.

In future perhaps all sized integers should be primitive types. Then
some usages of indexing primops scattered through the code could
be changed to then-available Int8 ones, and then Char variants of
primops could be made wide (other usages that handle text should use
conversion that will be provided later).

I/O and _ccall_ arguments assume ISO-8859-1. UTF-8 is internally used
for string literals (only).

Z-encoding is ready for Unicode identifiers.

Ranges of intlike and charlike closures are more easily configurable.

I've probably broken nativeGen/MachCode.lhs:chrCode for Alpha but I
don't know the Alpha assembler to fix it (what is zapnot?). Generally
I'm not sure if I've done the NCG changes right.

This commit breaks the binary compatibility (of course).

TODO:
* is* and to{Lower,Upper} in Char (in progress).
* Libraries for text conversion (in design / experiments),
  to be plugged to I/O and a higher level foreign library.
* PackedString.
* StringBuffer and accepting source in encodings other than ISO-8859-1.

23 years ago[project @ 2000-08-07 23:29:46 by qrczak]
qrczak [Mon, 7 Aug 2000 23:29:46 +0000 (23:29 +0000)]
[project @ 2000-08-07 23:29:46 by qrczak]
Use \{ \} in regex instead of { } for literal { }.
Hope it should be OK in theory; needed in practice here.

23 years ago[project @ 2000-08-07 16:09:03 by rrt]
rrt [Mon, 7 Aug 2000 16:09:03 +0000 (16:09 +0000)]
[project @ 2000-08-07 16:09:03 by rrt]
Add COMPILING_STDLIB symbol analagous to COMPILING_RTS for the extern vars
in stgio.h.

23 years ago[project @ 2000-08-07 16:07:53 by rrt]
rrt [Mon, 7 Aug 2000 16:07:53 +0000 (16:07 +0000)]
[project @ 2000-08-07 16:07:53 by rrt]
Add gmp.h to boot target so that it gets copied during booting (otherwise
make boot breaks down).

23 years ago[project @ 2000-08-07 16:06:38 by rrt]
rrt [Mon, 7 Aug 2000 16:06:38 +0000 (16:06 +0000)]
[project @ 2000-08-07 16:06:38 by rrt]
Use $(MV) not mv.

23 years ago[project @ 2000-08-07 14:15:43 by sewardj]
sewardj [Mon, 7 Aug 2000 14:15:43 +0000 (14:15 +0000)]
[project @ 2000-08-07 14:15:43 by sewardj]
This is the program which generates bits of primop-related Haskell
(and, soon, C) code from ghc/compiler/prelude/primops.txt.

23 years ago[project @ 2000-08-07 14:11:48 by sewardj]
sewardj [Mon, 7 Aug 2000 14:11:49 +0000 (14:11 +0000)]
[project @ 2000-08-07 14:11:48 by sewardj]
Reorganise the way primops are done.  Most of the information about
primops, their types and relevant attributes is in prelude/primops.txt.
A supporting program in fptools/ghc/utils/genprimopcode reads this
file and generates various bits of code which are #include'd into
prelude/PrimOp.lhs.  Eventually this mechanism will be extended to
generate PrelGHC.hi and C code for primops in the bytecode evaluator.

Also, add a few primops for creating, reading and writing BCOs.

23 years ago[project @ 2000-08-06 12:22:32 by panne]
panne [Sun, 6 Aug 2000 12:22:32 +0000 (12:22 +0000)]
[project @ 2000-08-06 12:22:32 by panne]
Fixed conversion of MachWord to MachInt for large literals. Although
completely untested, I believe this fixes bug #111021.

23 years ago[project @ 2000-08-06 12:19:21 by panne]
panne [Sun, 6 Aug 2000 12:19:21 +0000 (12:19 +0000)]
[project @ 2000-08-06 12:19:21 by panne]
Replaced `catchIO justIoErrors' with `catchJust ioErrors'

23 years ago[project @ 2000-08-04 23:31:43 by lewie]
lewie [Fri, 4 Aug 2000 23:31:44 +0000 (23:31 +0000)]
[project @ 2000-08-04 23:31:43 by lewie]
Port to OpenBSD from Thomas Nordin.  Please merge with 4.08 (you'll also
need the new config.guess and config.sub from the previous commit).

23 years ago[project @ 2000-08-04 23:28:04 by lewie]
lewie [Fri, 4 Aug 2000 23:28:04 +0000 (23:28 +0000)]
[project @ 2000-08-04 23:28:04 by lewie]
Pulled in latest versions from autoconf 2.13.  Necessary for OpenBSD port.

23 years ago[project @ 2000-08-04 12:04:08 by simonmar]
simonmar [Fri, 4 Aug 2000 12:04:08 +0000 (12:04 +0000)]
[project @ 2000-08-04 12:04:08 by simonmar]
wibble

23 years ago[project @ 2000-08-04 09:45:20 by simonmar]
simonmar [Fri, 4 Aug 2000 09:45:20 +0000 (09:45 +0000)]
[project @ 2000-08-04 09:45:20 by simonmar]
Another attempt at getting the pipeline stuff right.  Fixed at least
one bug.

23 years ago[project @ 2000-08-04 09:02:56 by simonmar]
simonmar [Fri, 4 Aug 2000 09:02:56 +0000 (09:02 +0000)]
[project @ 2000-08-04 09:02:56 by simonmar]
-split-objs is entirely reasonable in conjunction with -fasm

23 years ago[project @ 2000-08-03 16:47:51 by simonmar]
simonmar [Thu, 3 Aug 2000 16:47:51 +0000 (16:47 +0000)]
[project @ 2000-08-03 16:47:51 by simonmar]
wibble

23 years ago[project @ 2000-08-03 13:43:00 by simonmar]
simonmar [Thu, 3 Aug 2000 13:43:00 +0000 (13:43 +0000)]
[project @ 2000-08-03 13:43:00 by simonmar]
- Implement the mkdepend -X<dir> and --exclude-directory=<dir> options.
- some small cleanups

23 years ago[project @ 2000-08-03 13:29:46 by rrt]
rrt [Thu, 3 Aug 2000 13:29:46 +0000 (13:29 +0000)]
[project @ 2000-08-03 13:29:46 by rrt]
Removed isLocallyDefinedName test in isDllName, as SPJ's with SM's suggestion
that it's redundant.

23 years ago[project @ 2000-08-03 13:22:47 by simonmar]
simonmar [Thu, 3 Aug 2000 13:22:47 +0000 (13:22 +0000)]
[project @ 2000-08-03 13:22:47 by simonmar]
The parser didn't properly check that the constructor in a data
declaration really are constructors (ie. begin with an upper case
character).  This patch fixes the problem.

bug reported by: Tim Giesler, a couple of weeks ago.

23 years ago[project @ 2000-08-03 11:34:41 by simonmar]
simonmar [Thu, 3 Aug 2000 11:34:41 +0000 (11:34 +0000)]
[project @ 2000-08-03 11:34:41 by simonmar]
Update the documentation on the +RTS -C option, and remove the note
saying that it doesn't work.

23 years ago[project @ 2000-08-03 11:28:35 by simonmar]
simonmar [Thu, 3 Aug 2000 11:28:35 +0000 (11:28 +0000)]
[project @ 2000-08-03 11:28:35 by simonmar]
Implement +RTS -C<n>, the context switch interval flag.  This was
previously advertised in the usage message, but there was a note in
the Users' Guide stating that it didn't work.  Anwyay, I'm going to
consider it a bug and backport to 4.08.1.

23 years ago[project @ 2000-08-03 10:19:40 by simonmar]
simonmar [Thu, 3 Aug 2000 10:19:40 +0000 (10:19 +0000)]
[project @ 2000-08-03 10:19:40 by simonmar]
Add a cross-ref to the section on Packages from the mention of the
-package flag in the section on linking.

23 years ago[project @ 2000-08-02 16:32:51 by simonmar]
simonmar [Wed, 2 Aug 2000 16:32:51 +0000 (16:32 +0000)]
[project @ 2000-08-02 16:32:51 by simonmar]
remove mkdependHS from the list of directories.

23 years ago[project @ 2000-08-02 15:39:11 by simonmar]
simonmar [Wed, 2 Aug 2000 15:39:11 +0000 (15:39 +0000)]
[project @ 2000-08-02 15:39:11 by simonmar]
Remove the old mkdependHS cruft.

23 years ago[project @ 2000-08-02 15:27:25 by simonmar]
simonmar [Wed, 2 Aug 2000 15:27:25 +0000 (15:27 +0000)]
[project @ 2000-08-02 15:27:25 by simonmar]
Assimilate mkdependHS into the driver, obsoleting the old Perl version.

The functionality is pretty much identical, except a few of the flags
accepted by the old version aren't implemented (--exclude-module,
--exclude-directory, --include-module).  If anyone needs these
options, please speak up.

23 years ago[project @ 2000-08-02 14:13:26 by rrt]
rrt [Wed, 2 Aug 2000 14:13:28 +0000 (14:13 +0000)]
[project @ 2000-08-02 14:13:26 by rrt]
Many fixes to DLLisation. These were previously covered up because code was
leaking into the import libraries for DLLs, so the fact that some symbols
were thought of as local rather than in another DLL wasn't a problem.

The main problems addressed by this commit are:

1. Fixes RTS symbols working properly when DLLised. They didn't before.
2. Uses NULL instead of stg_error_entry, because DLL entry points can't be
   used as static initialisers.
3. PrelGHC.hi-boot changed to be in package RTS, and export of PrelNum and
   PrelErr moved to PrelBase, so that references to primops & the like
   are cross-DLL as they should be.
4. Pass imports around as Modules rather than ModuleNames, so that
   ModuleInitLabels can be checked to see if they're in a DLL or not.

23 years ago[project @ 2000-08-02 13:42:32 by rrt]
rrt [Wed, 2 Aug 2000 13:42:32 +0000 (13:42 +0000)]
[project @ 2000-08-02 13:42:32 by rrt]
Now copied from ghc/rts/gmp.h

23 years ago[project @ 2000-08-02 13:38:13 by rrt]
rrt [Wed, 2 Aug 2000 13:38:13 +0000 (13:38 +0000)]
[project @ 2000-08-02 13:38:13 by rrt]
Allow GMP to be compiled as a DLL.

23 years ago[project @ 2000-08-01 09:08:25 by simonpj]
simonpj [Tue, 1 Aug 2000 09:08:30 +0000 (09:08 +0000)]
[project @ 2000-08-01 09:08:25 by simonpj]
Simon's Marktoberdorf Commits

1.  Tidy up the renaming story for "system binders", such as
dictionary functions, default methods, constructor workers etc.  These
are now documented in HsDecls.  The main effect of the change, apart
from tidying up, is to make the *type-checker* (instead of the
renamer) generate names for dict-funs and default-methods.  This is
good because Sergei's generic-class stuff generates new classes at
typecheck time.

2.  Fix the CSE pass so it does not require the no-shadowing invariant.
Keith discovered that the simplifier occasionally returns a result
with shadowing.  After much fiddling around (which has improved the
code in the simplifier a bit) I found that it is nearly impossible to
arrange that it really does do no-shadowing.  So I gave up and fixed
the CSE pass (which is the only one to rely on it) instead.

3. Fix a performance bug in the simplifier.  The change is in
SimplUtils.interestingArg.  It computes whether an argment should
be considered "interesting"; if a function is applied to an interesting
argument, we are more likely to inline that function.
Consider this case
let x = 3 in f x
The 'x' argument was considered "uninteresting" for a silly reason.
Since x only occurs once, it was unconditionally substituted, but
interestingArg didn't take account of that case.  Now it does.

I also made interestingArg a bit more liberal.  Let's see if we
get too much inlining now.

4.  In the occurrence analyser, we were choosing a bad loop breaker.
Here's the comment that's now in OccurAnal.reOrderRec

    score ((bndr, rhs), _, _)
| exprIsTrivial rhs     = 3 -- Practically certain to be inlined
-- Used to have also: && not (isExportedId bndr)
-- But I found this sometimes cost an extra iteration when we have
-- rec { d = (a,b); a = ...df...; b = ...df...; df = d }
-- where df is the exported dictionary. Then df makes a really
-- bad choice for loop breaker

I also increased the score for bindings with a non-functional type, so that
dictionaries have a better chance of getting inlined early

5. Add a hash code to the InScopeSet (and make it properly abstract)
This should make uniqAway a lot more robust.  Simple experiments suggest
that uniqAway no longer gets into the long iteration chains that it used
to.

6.  Fix a bug in the inliner that made the simplifier tend to get into
a loop where it would keep iterating ("4 iterations, bailing out" message).
In SimplUtils.mkRhsTyLam we float bindings out past a big lambda, thus:
x = /\ b -> let g = \x -> f x x
    in E
becomes
g* = /\a -> \x -> f x x
x = /\ b -> let g = g* b in E

It's essential that we don't simply inling g* back into the RHS of g,
else we will be back to square 1.  The inliner is meant not to do this
because there's no benefit to the inlining, but the size calculation
was a little off in CoreUnfold.

7.  In SetLevels we were bogus-ly building a Subst with an empty in-scope
set, so a WARNING popped up when compiling some modules.  (knights/ChessSetList
was the example that tickled it.)  Now in fact the warning wasn't an error,
but the Right Thing to do is to carry down a proper Subst in SetLevels, so
that is what I have now done.  It is very little more expensive.

23 years ago[project @ 2000-07-31 10:12:19 by simonmar]
simonmar [Mon, 31 Jul 2000 10:12:19 +0000 (10:12 +0000)]
[project @ 2000-07-31 10:12:19 by simonmar]
include GMP's configure files in a src dist.

23 years ago[project @ 2000-07-31 10:06:30 by simonmar]
simonmar [Mon, 31 Jul 2000 10:06:30 +0000 (10:06 +0000)]
[project @ 2000-07-31 10:06:30 by simonmar]
x.yy.DDMMYYYY should be x.yy.YYYYMMDD for unstable snapshots.

23 years ago[project @ 2000-07-27 15:29:31 by michaelw]
michaelw [Thu, 27 Jul 2000 15:29:31 +0000 (15:29 +0000)]
[project @ 2000-07-27 15:29:31 by michaelw]
typo

23 years ago[project @ 2000-07-27 10:46:00 by simonmar]
simonmar [Thu, 27 Jul 2000 10:46:00 +0000 (10:46 +0000)]
[project @ 2000-07-27 10:46:00 by simonmar]
fix for .hc files

23 years ago[project @ 2000-07-27 10:26:04 by simonmar]
simonmar [Thu, 27 Jul 2000 10:26:04 +0000 (10:26 +0000)]
[project @ 2000-07-27 10:26:04 by simonmar]
Cleanup of the compilation pipeline.  Now the list of phases to run
for each filename is generated statically, rather than on-the-fly.

Things should be more robust; some nonsense combinations of flags and
input files are now thrown out.

23 years ago[project @ 2000-07-27 09:02:05 by sewardj]
sewardj [Thu, 27 Jul 2000 09:02:05 +0000 (09:02 +0000)]
[project @ 2000-07-27 09:02:05 by sewardj]
Redo the sparc Ccall machinery, so as to correctly handle the case
where one or more of the args to a Ccall is itself a Ccall.  Prior to
the advent of the Stix inliner, this could never happen, but now it
does.

23 years ago[project @ 2000-07-26 20:47:21 by michaelw]
michaelw [Wed, 26 Jul 2000 20:47:21 +0000 (20:47 +0000)]
[project @ 2000-07-26 20:47:21 by michaelw]
* backup files are only generated, if there is an old dependency file.

* if $Makefile is "-", print dependencies to STDOUT *without* creating
  a backup file.

*** MERGE with 4.08.1 ***

23 years ago[project @ 2000-07-26 18:11:06 by michaelw]
michaelw [Wed, 26 Jul 2000 18:11:06 +0000 (18:11 +0000)]
[project @ 2000-07-26 18:11:06 by michaelw]
added newline at EOF of package files

23 years ago[project @ 2000-07-26 14:48:16 by simonmar]
simonmar [Wed, 26 Jul 2000 14:48:16 +0000 (14:48 +0000)]
[project @ 2000-07-26 14:48:16 by simonmar]
Panic if we try to allocate more than a block's worth of memory in one
go.  No fix yet, but at least this is better than going into an
infinite loop at runtime.

23 years ago[project @ 2000-07-26 13:29:03 by simonmar]
simonmar [Wed, 26 Jul 2000 13:29:03 +0000 (13:29 +0000)]
[project @ 2000-07-26 13:29:03 by simonmar]
- add wORD_SIZE (size of an StgWord in bytes)
- add bLOCK_SIZE_W (size of a storage manager block in words)

23 years ago[project @ 2000-07-26 13:27:54 by simonmar]
simonmar [Wed, 26 Jul 2000 13:27:54 +0000 (13:27 +0000)]
[project @ 2000-07-26 13:27:54 by simonmar]
Add a constant definition for WORD_SIZE, the size of an StgWord in bytes.

23 years ago[project @ 2000-07-26 13:13:49 by simonmar]
simonmar [Wed, 26 Jul 2000 13:13:49 +0000 (13:13 +0000)]
[project @ 2000-07-26 13:13:49 by simonmar]
Revert part of the previous change, which broke the build by
generating a PrelStable.hi with some bogus kind information in it.

23 years ago[project @ 2000-07-25 18:16:53 by rrt]
rrt [Tue, 25 Jul 2000 18:16:53 +0000 (18:16 +0000)]
[project @ 2000-07-25 18:16:53 by rrt]
Advised Windows users to read the Windows installation notes for GHC before
trying to build anything.

23 years ago[project @ 2000-07-25 18:10:38 by rrt]
rrt [Tue, 25 Jul 2000 18:10:38 +0000 (18:10 +0000)]
[project @ 2000-07-25 18:10:38 by rrt]
Pointed out that Windows users should read the GHC installation guide before
trying to build anything.

23 years ago[project @ 2000-07-25 15:54:38 by simonmar]
simonmar [Tue, 25 Jul 2000 15:54:38 +0000 (15:54 +0000)]
[project @ 2000-07-25 15:54:38 by simonmar]
increase the repeat count; this bug is pretty fragile

23 years ago[project @ 2000-07-25 15:48:16 by simonmar]
simonmar [Tue, 25 Jul 2000 15:48:16 +0000 (15:48 +0000)]
[project @ 2000-07-25 15:48:16 by simonmar]
Add test for handle finalization bug, fixed in
  1.60      +1 -2      fptools/ghc/lib/std/PrelHandle.lhs
  1.15      +4 -10     fptools/ghc/lib/std/PrelIO.lhs

23 years ago[project @ 2000-07-25 15:20:10 by simonmar]
simonmar [Tue, 25 Jul 2000 15:20:10 +0000 (15:20 +0000)]
[project @ 2000-07-25 15:20:10 by simonmar]
Fix bug reported by Hannah Schroeter: reading a file lazily using
hGetContents and then closing it using hClose can cause the program to
fall over with a deadlock.

The reason is that when closing the file in lazyRead{Block,Line,Char},
we set the foreign object in the handle to nullFile__, which causes
the finalizer to run (at some point in the future).  The finalizer
takes the MVar in the handle, frees the contents, but never puts the
MVar back.  hClose then tries to take the MVar, and deadlocks.

The solution is not to set the foreign object to nullFile__ in the
first place; I'm not sure why it was done this way, and in fact it
leads to a memory leak.  hClose itself has a similar problem, leading
to a leak of the fileObject.

23 years ago[project @ 2000-07-25 12:24:14 by michaelw]
michaelw [Tue, 25 Jul 2000 12:24:14 +0000 (12:24 +0000)]
[project @ 2000-07-25 12:24:14 by michaelw]
giving the version number when asked for is NOT an error, therefore
output now goes to stdout (cf. Coding Standards)

23 years ago[project @ 2000-07-24 15:31:47 by simonmar]
simonmar [Mon, 24 Jul 2000 15:31:47 +0000 (15:31 +0000)]
[project @ 2000-07-24 15:31:47 by simonmar]
update documentation to reflect changes in the format of a package spec.

23 years ago[project @ 2000-07-24 15:16:44 by simonmar]
simonmar [Mon, 24 Jul 2000 15:16:44 +0000 (15:16 +0000)]
[project @ 2000-07-24 15:16:44 by simonmar]
Sigh, change the package definition again.  We weren't making a
distinction between libraries which need a suffix tag
(eg. libHSstd_p), and those that don't (eg. libHSstd_cbits).

The package spec now has two components for libraries, hs_libraries
(tagged) and extra_libraries (untagged).  The ordering of these
components is important: we specify that hs_libraries are linked
before extra_libraries.  This sounds problematic if you want to link
some plain C libraries before some Haskell libs, but in these cases it
should be possible to create separate packages for the two libs and
specify the dependencies explicitly.

23 years ago[project @ 2000-07-24 14:29:55 by simonmar]
simonmar [Mon, 24 Jul 2000 14:29:55 +0000 (14:29 +0000)]
[project @ 2000-07-24 14:29:55 by simonmar]
Some changes to the way FFI decls are handled:

  - a foreign export dynamic which returns a newtype of
    an Addr now works correctly.  Similarly for foreign label.

  - unlifted types are not allowed in the arguments of a foreign
    export.  Previously we generated incorrect code for these cases.

Newtypes in FFI declarations now work everywhere they should, as far
as I can see.

These changes will be backported into 4.08.1.

23 years ago[project @ 2000-07-23 10:53:11 by panne]
panne [Sun, 23 Jul 2000 10:53:12 +0000 (10:53 +0000)]
[project @ 2000-07-23 10:53:11 by panne]
Strictfp-like behaviour is the default now, which can be switched off
via -fexcess-precision. (Has anybody a better name for this option?)

23 years ago[project @ 2000-07-21 09:48:47 by rrt]
rrt [Fri, 21 Jul 2000 09:48:47 +0000 (09:48 +0000)]
[project @ 2000-07-21 09:48:47 by rrt]
Fix EXTINFO_RTS.

23 years ago[project @ 2000-07-21 09:31:46 by rrt]
rrt [Fri, 21 Jul 2000 09:31:46 +0000 (09:31 +0000)]
[project @ 2000-07-21 09:31:46 by rrt]
Add EXTINFO_RTS and use it (same as EXTFUN_RTS for info tables).

23 years ago[project @ 2000-07-21 09:11:19 by rrt]
rrt [Fri, 21 Jul 2000 09:11:19 +0000 (09:11 +0000)]
[project @ 2000-07-21 09:11:19 by rrt]
Changed ERTSF_ to EXTFUN_RTS.

23 years ago[project @ 2000-07-21 09:01:48 by rrt]
rrt [Fri, 21 Jul 2000 09:01:48 +0000 (09:01 +0000)]
[project @ 2000-07-21 09:01:48 by rrt]
Removed ERTSF_ and used EXTFUN_RTS instead, which does the same thing.

23 years ago[project @ 2000-07-21 08:45:05 by rrt]
rrt [Fri, 21 Jul 2000 08:45:05 +0000 (08:45 +0000)]
[project @ 2000-07-21 08:45:05 by rrt]
Make sure we *don't* try to make hsc_dll (as it will be identical to hsc).

23 years ago[project @ 2000-07-21 08:40:04 by rrt]
rrt [Fri, 21 Jul 2000 08:40:04 +0000 (08:40 +0000)]
[project @ 2000-07-21 08:40:04 by rrt]
Add dll as a fully-fledged way.

23 years ago[project @ 2000-07-21 08:37:30 by rrt]
rrt [Fri, 21 Jul 2000 08:37:30 +0000 (08:37 +0000)]
[project @ 2000-07-21 08:37:30 by rrt]
Make gmp.dll in DLL_PEN.

23 years ago[project @ 2000-07-21 08:35:22 by rrt]
rrt [Fri, 21 Jul 2000 08:35:22 +0000 (08:35 +0000)]
[project @ 2000-07-21 08:35:22 by rrt]
Make sure DLL_NAME only has DLL_PEN prepended if DLL_NAME has already been
set, i.e. a DLL is really to be built.

23 years ago[project @ 2000-07-20 17:06:41 by rrt]
rrt [Thu, 20 Jul 2000 17:06:41 +0000 (17:06 +0000)]
[project @ 2000-07-20 17:06:41 by rrt]
What's the story, Rory?

   My name's not Rory. Owing to circumstances not fully understood, the RTS
   used to work DLLized, even though it was largely broken. Unfortunately,
   this was recently fixed.

What used to happen?

   The EF_ macro from StgMacros.h was used to refer to primops &c.

Why was this a Bad Thing?

   Because you need to use EDF_ when building with DLLs.

What was the result?

   primops such as divExactInteger were compiled as _divExactInteger, rather
   than __imp__div_Exact_Integer, so they didn't refer to the DLL routines.

How on earth did it work?

   I'm not sure, but somehow the code for the relevant routines got linked
   into the import libraries (e.g. libHSrts_imp.a), and were thus linked
   statically into the final binary.

So that explains why the import libraries (supposedly just containing stubs)
were larger than the DLLs they were stubbing, or the static libraries, for
that matter?

   Perhaps.

Golly!

   Indeed.

What caused this code leakage?

   That's what I don't know. Perhaps a bug in the Cygwin DLL-building tools?
   I've upgraded from B20.1 to 1.1 recently.

So, what's the hack, Mac?

   My name's not Mac. I added a new macro, ERTSF_, which uses DLL_IMPORT_RTS
   to make sure that the Right Thing is always done (because you mustn't
   make DLL references to RTS routines when compiling the RTS).

Thanks for the chat, Matt!

   <punch>

23 years ago[project @ 2000-07-20 12:33:09 by rrt]
rrt [Thu, 20 Jul 2000 12:33:09 +0000 (12:33 +0000)]
[project @ 2000-07-20 12:33:09 by rrt]
4.07->4.08

23 years ago[project @ 2000-07-20 12:32:50 by rrt]
rrt [Thu, 20 Jul 2000 12:32:50 +0000 (12:32 +0000)]
[project @ 2000-07-20 12:32:50 by rrt]
Fixed a version-o.

23 years ago[project @ 2000-07-20 10:50:47 by rrt]
rrt [Thu, 20 Jul 2000 10:50:47 +0000 (10:50 +0000)]
[project @ 2000-07-20 10:50:47 by rrt]
&amp;gt; => &gt;

23 years ago[project @ 2000-07-20 10:34:42 by rrt]
rrt [Thu, 20 Jul 2000 10:34:42 +0000 (10:34 +0000)]
[project @ 2000-07-20 10:34:42 by rrt]
Updated instructions for Windows install to reflect reality as of v4.08.

23 years ago[project @ 2000-07-19 14:46:40 by rrt]
rrt [Wed, 19 Jul 2000 14:46:40 +0000 (14:46 +0000)]
[project @ 2000-07-19 14:46:40 by rrt]
Added -dll option for dll way, now a proper way.

23 years ago[project @ 2000-07-19 14:45:53 by rrt]
rrt [Wed, 19 Jul 2000 14:45:53 +0000 (14:45 +0000)]
[project @ 2000-07-19 14:45:53 by rrt]
Target dlls directly into DLL_PEN so that they don't get rebuilt all the time.

23 years ago[project @ 2000-07-19 10:07:29 by rrt]
rrt [Wed, 19 Jul 2000 10:07:29 +0000 (10:07 +0000)]
[project @ 2000-07-19 10:07:29 by rrt]
Gave driver access to bash for running system calls under Windows by writing
command out to a temp file, then sending that as the argument to "sh -". Sigh.
This is #ifdefed on mingw32_TARGET_OS; saner OSs just use system as normal.

23 years ago[project @ 2000-07-19 08:46:10 by rrt]
rrt [Wed, 19 Jul 2000 08:46:10 +0000 (08:46 +0000)]
[project @ 2000-07-19 08:46:10 by rrt]
Stop doing all system calls via "sh -c", as this messed up quoting.

23 years ago[project @ 2000-07-18 17:34:52 by rrt]
rrt [Tue, 18 Jul 2000 17:34:52 +0000 (17:34 +0000)]
[project @ 2000-07-18 17:34:52 by rrt]
oops, ghc-inplace ain't an EXE.

23 years ago[project @ 2000-07-18 17:31:02 by rrt]
rrt [Tue, 18 Jul 2000 17:31:02 +0000 (17:31 +0000)]
[project @ 2000-07-18 17:31:02 by rrt]
Added a few EXE_SUFFIXes to get the driver going on Windows.

23 years ago[project @ 2000-07-18 17:29:53 by rrt]
rrt [Tue, 18 Jul 2000 17:29:53 +0000 (17:29 +0000)]
[project @ 2000-07-18 17:29:53 by rrt]
Changed ExeSuffix to exeext (which is what configure.in actually calls it).

23 years ago[project @ 2000-07-18 17:09:02 by simonmar]
simonmar [Tue, 18 Jul 2000 17:09:02 +0000 (17:09 +0000)]
[project @ 2000-07-18 17:09:02 by simonmar]
remove hscpp