wolfgang [Tue, 11 Jan 2005 07:23:21 +0000 (07:23 +0000)]
[project @ 2005-01-11 07:23:21 by wolfgang]
Support foreign import "wrapper" with > 6 arguments on PowerPC Linux (32-bit).
This calling convention looks deceptively simple at first, but it turns out
to be hideously complex...
krasimir [Mon, 10 Jan 2005 23:48:07 +0000 (23:48 +0000)]
[project @ 2005-01-10 23:48:07 by krasimir]
createDirectoryIfMissing is added to Compat.Directory and is used in ghc-pkg.
The mingw32_HOST_OS is replaced with mingw32_TARGET_OS. I don't know why but
prior the last commit the tool was working with mingw32_HOST_OS fine but not
it isn't. Maybe I miss something. Simon, could you check whether the patch is
fine?
wolfgang [Mon, 10 Jan 2005 23:00:53 +0000 (23:00 +0000)]
[project @ 2005-01-10 23:00:53 by wolfgang]
Fix for AIX-like ABIs.
panne [Mon, 10 Jan 2005 19:01:28 +0000 (19:01 +0000)]
[project @ 2005-01-10 19:01:27 by panne]
Refactored and cleaned up ld-related tests. Only tested mildly under Linux.
wolfgang [Mon, 10 Jan 2005 18:44:40 +0000 (18:44 +0000)]
[project @ 2005-01-10 18:44:38 by wolfgang]
Handle foreign import wrapper properly for MacOS X, powerpc64-linux and AIX.
Only Mac OS X tested so far.
Pass information about argument types from DsForeign to createAdjustor encoded
as a string ('i' for integers, 'f' for floats, 'd' for doubles and 'l' for
long [64bit] integers).
simonmar [Mon, 10 Jan 2005 16:24:16 +0000 (16:24 +0000)]
[project @ 2005-01-10 16:24:16 by simonmar]
Add *.S to $(C_SRCS). Seems to do the right thing, including mkdependC.
simonmar [Mon, 10 Jan 2005 13:53:14 +0000 (13:53 +0000)]
[project @ 2005-01-10 13:53:14 by simonmar]
Obscure bugfix affecting foreign import "wrapper" with non-word-sized
argument types (eg. Double) on Windows. The list of arguments types
returned by dsFExport was the boxed types, rather than the unboxed
types, so dsFExportDynamic couldn't get the correct sizes of the
argument types to the stub function.
It's more correct now, but not totally correct (see the comment for
details).
Noticed by: Wolfgang Thaller.
simonmar [Mon, 10 Jan 2005 12:34:21 +0000 (12:34 +0000)]
[project @ 2005-01-10 12:34:21 by simonmar]
Remove copied definitions for joinFileName, splitFileName:
System.FilePath is in libghccompat now.
simonmar [Mon, 10 Jan 2005 11:45:24 +0000 (11:45 +0000)]
[project @ 2005-01-10 11:45:19 by simonmar]
Work around problems caused by limit on the length of the command line
in ld, which shows up when building OpenGL on Windows with SplitObjs=YES.
We now pass the names of the input files to ld via a linker script.
This is (probably) only supported by GNU ld, so we now have to detect
GNU ld in the configure script (yawn) and back off to the old method
if we don't have it.
desrt [Sun, 9 Jan 2005 00:29:05 +0000 (00:29 +0000)]
[project @ 2005-01-09 00:29:05 by desrt]
Modified the mangler for powerpc64. This is the last missing piece for supporting
registerised builds on PPC64.
The current state of the mangler is temporary. We're discussing a better way to take
advantage of the PPC64 ABI's unique features to provide a better way of storing info
tables.
I don't think I've changed anything that affects other platforms.
desrt [Sat, 8 Jan 2005 22:54:28 +0000 (22:54 +0000)]
[project @ 2005-01-08 22:54:28 by desrt]
Fixed this 6.4 TODO item listed on the wiki:
PowerPC Linux (32bit): Fix GHCi FFI calls for arguments that are not passed on the stack (ByteCodeFFI).
Separated the code for Darwin and Linux (for PowerPC only). Rewrote the Linux version to account for the differences in the ABIs.
All changes are inside #if powerpc_TARGET_ARCH && linux_TARGET_OS except:
- import Data.List ( mapAccumL ) (used by my code)
- small fix to a comment typo in Wolfgang's Darwin code
- changed 'undefined' to a more meaningful 'error' message if
mkMarshalCode is unimplemented
Ran regression tests. It passes them all except for the ones that are broken because of the 'wrapper' problems currently being addressed.
krasimir [Sat, 8 Jan 2005 16:37:09 +0000 (16:37 +0000)]
[project @ 2005-01-08 16:37:09 by krasimir]
system is replaced with rawSystem. This allows to use path names with embeded
spaces under Windows. This is the same story as with hsc2hs but ghc-pkg is
used only with GHC, so the change will not affect other compilers.
Cabal uses "Program Files" as default installation path and this manifests
the bug.
simonmar [Fri, 7 Jan 2005 13:06:20 +0000 (13:06 +0000)]
[project @ 2005-01-07 13:06:20 by simonmar]
Fix what looks like a cut-n-pasto in retry#: the MAYBE_GC() was
specifying readTVarzh_fast as the restart point, leading to a crash if
MAYBE_GC triggered a GC in here.
igloo [Thu, 6 Jan 2005 19:01:10 +0000 (19:01 +0000)]
[project @ 2005-01-06 19:01:10 by igloo]
Document some missing flags.
igloo [Thu, 6 Jan 2005 18:24:50 +0000 (18:24 +0000)]
[project @ 2005-01-06 18:24:50 by igloo]
Fix for ghci on sparc.
simonmar [Thu, 6 Jan 2005 16:59:22 +0000 (16:59 +0000)]
[project @ 2005-01-06 16:59:22 by simonmar]
lookupFixityRn: we should be using loadHomeInterface rather than
loadSrcInterface here, because this is a system-ish import rather than
an explicit user import. In particular, loadSrcInterface will
complain if the module in question is hidden, but this is not what we
want.
simonmar [Thu, 6 Jan 2005 15:10:24 +0000 (15:10 +0000)]
[project @ 2005-01-06 15:10:21 by simonmar]
Add Distribution.Compat to libghccompat
simonpj [Thu, 6 Jan 2005 15:05:45 +0000 (15:05 +0000)]
[project @ 2005-01-06 15:05:45 by simonpj]
Mention problem with ld on Windows
malcolm [Thu, 6 Jan 2005 14:55:02 +0000 (14:55 +0000)]
[project @ 2005-01-06 14:55:02 by malcolm]
Remove dead branch of #elif.
malcolm [Thu, 6 Jan 2005 14:54:17 +0000 (14:54 +0000)]
[project @ 2005-01-06 14:54:15 by malcolm]
When built as a ghc utility, Compat.RawSystem is always available.
When built as an nhc98 utility, -DBUILD_NHC symbol allows for getting
the best otherwise-available version of rawSystem.
malcolm [Thu, 6 Jan 2005 11:55:12 +0000 (11:55 +0000)]
[project @ 2005-01-06 11:55:12 by malcolm]
Add System.Cmd to c-files dependencies.
malcolm [Thu, 6 Jan 2005 10:44:14 +0000 (10:44 +0000)]
[project @ 2005-01-06 10:44:14 by malcolm]
It seems that ghc-6.2.x doesn't have Compat.RawSystem, so should use
System.Cmd instead. And ghc-5.04.x doesn't export rawSystem from
there either, so should use the simple inline definition.
simonpj [Thu, 6 Jan 2005 10:04:30 +0000 (10:04 +0000)]
[project @ 2005-01-06 10:04:30 by simonpj]
Wibble to ambiguity reporting
simonpj [Thu, 6 Jan 2005 09:40:06 +0000 (09:40 +0000)]
[project @ 2005-01-06 09:40:06 by simonpj]
Improve error message for top-level ambiguity
simonpj [Thu, 6 Jan 2005 09:39:42 +0000 (09:39 +0000)]
[project @ 2005-01-06 09:39:42 by simonpj]
Remove null where
simonpj [Thu, 6 Jan 2005 00:28:05 +0000 (00:28 +0000)]
[project @ 2005-01-06 00:28:05 by simonpj]
Wibble; fixes tcTyVarDetails breakage
simonpj [Wed, 5 Jan 2005 17:49:38 +0000 (17:49 +0000)]
[project @ 2005-01-05 17:49:38 by simonpj]
Add assert
wolfgang [Wed, 5 Jan 2005 16:24:44 +0000 (16:24 +0000)]
[project @ 2005-01-05 16:24:44 by wolfgang]
Don't use PK_Word64 and ASSIGN_Word64 on 64-bit machines;
they just make the .hc files harder to read without adding any benefit.
simonpj [Wed, 5 Jan 2005 15:38:31 +0000 (15:38 +0000)]
[project @ 2005-01-05 15:38:31 by simonpj]
Allow trailing semicolon in GADT constructor list
simonpj [Wed, 5 Jan 2005 15:28:54 +0000 (15:28 +0000)]
[project @ 2005-01-05 15:28:39 by simonpj]
------------------------
GADTs and unification
------------------------
1. Adjustment to typechecking of pattern matching the call to
gadtRefineTys in TcPat. Now wobbly types are treated as wild
cards in the unification process.
2. Add the WildCard possibility to the BindFlag in types/Unify.lhs
3. Some related refactoring of tcMatchTys etc.
ross [Wed, 5 Jan 2005 15:06:25 +0000 (15:06 +0000)]
[project @ 2005-01-05 15:06:25 by ross]
recent non-GHCs can use System.Cmd.rawSystem
malcolm [Wed, 5 Jan 2005 11:17:46 +0000 (11:17 +0000)]
[project @ 2005-01-05 11:17:46 by malcolm]
`rawSystem` is only available in GHC.
simonmar [Wed, 5 Jan 2005 10:26:46 +0000 (10:26 +0000)]
[project @ 2005-01-05 10:26:45 by simonmar]
Use rawSystem where appropriate.
simonpj [Tue, 4 Jan 2005 16:27:01 +0000 (16:27 +0000)]
[project @ 2005-01-04 16:26:55 by simonpj]
------------------
Fix an mdo bug
------------------
Embarassingly, this bug makes GHC either panic (for some programs) or
go into a loop (on others) in a recursive mdo that involves a
polymorphic function. Urk!
The fix is twofold:
a) add a missing bindInstsOfLocalFuns to tcStmtAndThen (RecStmt case)
b) bind the correct set of variables in dsRecStmt
I added some explanatory comments about RecStmt in HsExpr too.
The tests is mdo/should_compile/mdo006
simonmar [Tue, 4 Jan 2005 13:41:54 +0000 (13:41 +0000)]
[project @ 2005-01-04 13:41:53 by simonmar]
ghc/mk/config.mk was never being included in ordinary Makefiles. It
was only included in the top-level fptools/Makefile for the purposes
of obtaining binary distribution settings.
This fixes that problem, and now as a side-effect $(GhcHasReadline)
will start working again.
simonpj [Tue, 4 Jan 2005 10:26:35 +0000 (10:26 +0000)]
[project @ 2005-01-04 10:26:34 by simonpj]
Import trimming
simonpj [Tue, 4 Jan 2005 09:19:50 +0000 (09:19 +0000)]
[project @ 2005-01-04 09:19:50 by simonpj]
Remove redundant Subst hi-boot files
simonpj [Thu, 30 Dec 2004 22:15:19 +0000 (22:15 +0000)]
[project @ 2004-12-30 22:14:59 by simonpj]
Fix to the pre-Xmas simplifier changes, which should make
everything work again. I'd forgotten to attend to this
corner. Still not properly tested I fear.
Also remove dead code from SimplEnv, and simplify the remainder (hooray).
simonpj [Mon, 27 Dec 2004 18:28:21 +0000 (18:28 +0000)]
[project @ 2004-12-27 18:28:21 by simonpj]
Wibble
simonpj [Mon, 27 Dec 2004 11:27:56 +0000 (11:27 +0000)]
[project @ 2004-12-27 11:27:56 by simonpj]
import wibble
simonpj [Fri, 24 Dec 2004 16:15:15 +0000 (16:15 +0000)]
[project @ 2004-12-24 16:14:36 by simonpj]
---------------------------
Refactor the simplifier
---------------------------
Driven by a GADT bug, I have refactored the simpifier, and the way GHC
treats substitutions. I hope I have gotten it right. Be cautious about updating.
* coreSyn/Subst.lhs has gone
* coreSyn/CoreSubst replaces it, except that it's quite a bit simpler
* simplCore/SimplEnv is added, and contains the simplifier-specific substitution
stuff
Previously Subst was trying to be all things to all men, and that was making
it Too Complicated.
There may be a little more code now, but it's much easier to understand.
simonpj [Fri, 24 Dec 2004 11:38:20 +0000 (11:38 +0000)]
[project @ 2004-12-24 11:38:09 by simonpj]
Reset the export flag for the new bindings in LiberateCase
simonpj [Fri, 24 Dec 2004 11:03:06 +0000 (11:03 +0000)]
[project @ 2004-12-24 11:02:39 by simonpj]
Further wibbles to the scoped-tyvar story.
This commit tidies up the ATyVar in TcTyThing, making it
ATyVar Name Type
instead of the previous misleading
ATyVar TyVar Type
But the main thing is that we must take care with definitions
like this:
type T a = forall b. b -> (a,b)
f :: forall c. T c
f = ...
Here, we want only 'c' to scope over the RHS of f. The renamer ensures
that... but we must also take care that we freshly instantiate the
expanded type signature (forall c b. b -> (c,b)) before checking f's RHS,
so that we don't get false sharing between uses of T.
simonpj [Thu, 23 Dec 2004 14:59:50 +0000 (14:59 +0000)]
[project @ 2004-12-23 14:59:46 by simonpj]
Simplifications, dead code elimination
simonpj [Thu, 23 Dec 2004 13:44:10 +0000 (13:44 +0000)]
[project @ 2004-12-23 13:44:06 by simonpj]
minor nomenclature wibble
simonpj [Thu, 23 Dec 2004 11:50:57 +0000 (11:50 +0000)]
[project @ 2004-12-23 11:50:55 by simonpj]
Enable scoped type variables only where there is an explicit forall
simonpj [Thu, 23 Dec 2004 09:07:39 +0000 (09:07 +0000)]
[project @ 2004-12-23 09:07:30 by simonpj]
---------------------------------
Template Haskell: names again
---------------------------------
On 2 Dec 04 I made this commit (1.58 in Convert.lhs)
Fix a Template Haskell bug that meant that top-level names created
with newName were not made properly unique.
But that just introduced a new bug! THe trouble is that names created by
newName are NameUs; but I was *also* using NameU for names of free varaibles,
such as the 'x' in the quoted code here
f x = $( g [| \y -> (x,y) |])
But when converting to HsSyn, the x and y must be treated diffferently.
The 'x' must convert to an Exact RdrName, so that it binds to the 'x' that's
in the type environment; but the 'y' must generate a nice unique RdrName.
So this commit adds NameL for the lexically-scoped bindings like 'x'.
simonpj [Wed, 22 Dec 2004 16:59:22 +0000 (16:59 +0000)]
[project @ 2004-12-22 16:58:34 by simonpj]
----------------------------------------
Add more scoped type variables
----------------------------------------
Now the top-level forall'd variables of a type signature scope
over the right hand side of that function.
f :: a -> a
f x = ....
The type variable 'a' is in scope in the RHS, and in f's patterns.
It's implied by -fglasgow-exts, but can also be switched off independently
using -fscoped-type-variables (and the -fno variant)
simonpj [Wed, 22 Dec 2004 12:07:41 +0000 (12:07 +0000)]
[project @ 2004-12-22 12:06:13 by simonpj]
----------------------------------------
New Core invariant: keep case alternatives in sorted order
----------------------------------------
We now keep the alternatives of a Case in the Core language in sorted
order. Sorted, that is,
by constructor tag for DataAlt
by literal for LitAlt
The main reason is that it makes matching and equality testing more robust.
But in fact some lines of code vanished from SimplUtils.mkAlts.
WARNING: no change to interface file formats, but you'll need to recompile
your libraries so that they generate interface files that respect the
invariant.
simonpj [Wed, 22 Dec 2004 12:04:24 +0000 (12:04 +0000)]
[project @ 2004-12-22 12:04:14 by simonpj]
--------------------------
Add -fwarn-orphans flag
--------------------------
This gives a decent report for modules that contain 'orphan' instance and
rule declarations. These are to be avoided, because GHC has to proactively
read the interface file every single time, just in case the instance/rule is
needed.
The flag just gives a convenient way of identifying the culprits.
simonpj [Tue, 21 Dec 2004 17:09:02 +0000 (17:09 +0000)]
[project @ 2004-12-21 17:08:59 by simonpj]
---------------------------------
Template Haskell: dynamically scoped qualified names
---------------------------------
This commit adds a constructor to TH.Name, so that
nameBase (mkName "Foo.baz") == "baz"
nameModule (MkName "Foo.baz") == "Foo"
We always did parse the module name off the front, but it used to
be done in hsSyn/Convert, but now it's done in TH.Syntax, which is
a better place.
simonpj [Tue, 21 Dec 2004 16:23:23 +0000 (16:23 +0000)]
[project @ 2004-12-21 16:23:23 by simonpj]
Fix buglet in CSE
simonpj [Tue, 21 Dec 2004 12:35:10 +0000 (12:35 +0000)]
[project @ 2004-12-21 12:35:10 by simonpj]
An old commit about paths on windows
simonpj [Tue, 21 Dec 2004 12:23:03 +0000 (12:23 +0000)]
[project @ 2004-12-21 12:22:22 by simonpj]
---------------------------------
Improve handling of lexically scoped type variables
---------------------------------
If we have
f :: T a -> a
f (x :: T b) = ...
then the lexically scoped variable 'b' should refer to the rigid
type variable 'a', without any intervening wobbliness. Previously
the in-scope type variables were always mutable TyVars, which were
instantatiated to point to the type they were bound to; but since
the advent of GADTs the intervening mutable type variable is a bad
thing.
Hence
* In the type environment, ATyVar now carries a type
* The call to refineTyVars in tc_pat on SigPatIn
finds the types by matching
* Then tcExtendTyVarEnv3 extends the type envt appropriately
Rater a lot of huff and puff, but it's quite natural for ATyVar
to contain a type.
Various other small nomenclature changes along the way.
simonpj [Tue, 21 Dec 2004 12:21:16 +0000 (12:21 +0000)]
[project @ 2004-12-21 12:21:16 by simonpj]
Comments
simonpj [Tue, 21 Dec 2004 12:14:31 +0000 (12:14 +0000)]
[project @ 2004-12-21 12:14:31 by simonpj]
Remove debug output
simonpj [Tue, 21 Dec 2004 12:11:37 +0000 (12:11 +0000)]
[project @ 2004-12-21 12:11:37 by simonpj]
Comments
simonpj [Tue, 21 Dec 2004 12:09:55 +0000 (12:09 +0000)]
[project @ 2004-12-21 12:09:55 by simonpj]
Add missing NoteTy cases to unify_
simonpj [Tue, 21 Dec 2004 12:09:14 +0000 (12:09 +0000)]
[project @ 2004-12-21 12:09:14 by simonpj]
Comments only
simonpj [Tue, 21 Dec 2004 09:08:08 +0000 (09:08 +0000)]
[project @ 2004-12-21 09:08:08 by simonpj]
Fix bogon in type comparison
simonpj [Tue, 21 Dec 2004 08:52:54 +0000 (08:52 +0000)]
[project @ 2004-12-21 08:52:54 by simonpj]
Comment only
simonpj [Tue, 21 Dec 2004 08:50:27 +0000 (08:50 +0000)]
[project @ 2004-12-21 08:50:27 by simonpj]
Another wibble to the Panic change; this time on Windows
simonpj [Mon, 20 Dec 2004 17:17:10 +0000 (17:17 +0000)]
[project @ 2004-12-20 17:16:24 by simonpj]
--------------------------------
Deal properly with dual-renaming
--------------------------------
When comparing types and terms, and during matching, we are faced
with
\x.e1 ~ \y.e2
There are many pitfalls here, and GHC has never done the job properly.
Now, at last it does, using a new abstraction VarEnv.RnEnv2. See
comments there for how it works.
There are lots of consequential changes to use the new stuff, especially
in
types/Type (type comparison),
types/Unify (matching on types)
coreSyn/CoreUtils (equality on expressions),
specialise/Rules (matching).
I'm not 100% certain of that I've covered all the bases, so let me
know if something unexpected happens after you update. Maybe wait until
a nightly build has worked ok first!
panne [Sat, 18 Dec 2004 15:45:56 +0000 (15:45 +0000)]
[project @ 2004-12-18 15:45:56 by panne]
The documentation breakage continues... >:-( Fixed DocBook. Again: "make html"
(or the faster "make validate" in the case of DocBook XML) is your friend! >:-(
simonpj [Fri, 17 Dec 2004 17:43:24 +0000 (17:43 +0000)]
[project @ 2004-12-17 17:43:24 by simonpj]
Restore a test; fixes rnfail042
simonpj [Fri, 17 Dec 2004 16:13:27 +0000 (16:13 +0000)]
[project @ 2004-12-17 16:13:27 by simonpj]
Fix breakage in previous commit re signal handling
simonmar [Fri, 17 Dec 2004 15:26:07 +0000 (15:26 +0000)]
[project @ 2004-12-17 15:26:07 by simonmar]
Add entry about Ctrl-C on Windows
simonmar [Fri, 17 Dec 2004 15:19:53 +0000 (15:19 +0000)]
[project @ 2004-12-17 15:19:53 by simonmar]
Add comment about Ctrl-C/Ctrl-Break issue
simonmar [Fri, 17 Dec 2004 15:14:47 +0000 (15:14 +0000)]
[project @ 2004-12-17 15:14:47 by simonmar]
Support for Ctrl-C on Windows.
This works fine in a cmd.exe shell, but in a Cygwin bash shell you
have to press Ctrl-Break to get an interrupt. There appears to be a
long thread on the cygwin mailing list back in 2002 about this, but
life is probably too short to investigate further.
http://www.cygwin.com/ml/cygwin/2002-01/msg00163.html
simonmar [Thu, 16 Dec 2004 10:36:59 +0000 (10:36 +0000)]
[project @ 2004-12-16 10:36:57 by simonmar]
Sanity check when configuring for mingw32: make sure that $CC is a
mingw gcc before proceeding.
simonmar [Thu, 16 Dec 2004 10:23:44 +0000 (10:23 +0000)]
[project @ 2004-12-16 10:23:44 by simonmar]
--with-gcc: export the CC environment variable, so the setting gets
picked up by sub-configures. Perhaps we should be advising people to use
CC=c:/mingw/bin/gcc ./configure
because that works for all configure scripts, not just the top level one.
Background:
- We want --with-gcc to do the right thing, because we don't want
to require Cygwin users to put c:/mingw/bin first on their
path: that would break their Cygwin environment.
- The build system should work with *no* gcc on your PATH, as long
as you use --with-gcc (equivalently, CC=... ./configure).
simonpj [Thu, 16 Dec 2004 08:56:15 +0000 (08:56 +0000)]
[project @ 2004-12-16 08:56:15 by simonpj]
Darn! Forgot this commit, which killed the nightly build
simonpj [Wed, 15 Dec 2004 15:28:39 +0000 (15:28 +0000)]
[project @ 2004-12-15 15:28:39 by simonpj]
Comments only
simonpj [Wed, 15 Dec 2004 12:51:16 +0000 (12:51 +0000)]
[project @ 2004-12-15 12:51:15 by simonpj]
Make ghc/lib/compat/Compat/Directory.hs use the C function
__compat_long_path_size, rather than
__hscore_long_path_size, as the libraries/ version does
And make ghc/lib/compat/cbits/directory.c define it.
In this way we avoid spurious duplicate-symbol errors when we
compile GHC with ghc6.2.1 etc.
simonpj [Wed, 15 Dec 2004 12:15:16 +0000 (12:15 +0000)]
[project @ 2004-12-15 12:15:16 by simonpj]
Tidy the type of an interactively-bound Id before adding
it to the environment. Generally speaking, top level
environments are assumed to be in tidied form, so we
don't tidy the types before printing.
simonpj [Wed, 15 Dec 2004 12:14:06 +0000 (12:14 +0000)]
[project @ 2004-12-15 12:14:06 by simonpj]
comment
simonpj [Mon, 13 Dec 2004 12:09:25 +0000 (12:09 +0000)]
[project @ 2004-12-13 12:09:25 by simonpj]
Comments only
simonmar [Fri, 10 Dec 2004 13:34:38 +0000 (13:34 +0000)]
[project @ 2004-12-10 13:34:38 by simonmar]
stg_sel_##offset##_upd_entry: the ENTER() here is unnecessary, because
we know the closure in R1 will evaluate to a constructor, so we can
save some time by just entering it directly.
simonpj [Wed, 8 Dec 2004 15:09:14 +0000 (15:09 +0000)]
[project @ 2004-12-08 15:09:14 by simonpj]
Undo bogus 1.4 commit
simonpj [Wed, 8 Dec 2004 15:03:50 +0000 (15:03 +0000)]
[project @ 2004-12-08 15:03:50 by simonpj]
First commit for new Cmm code generation (branch)
simonpj [Wed, 8 Dec 2004 14:32:34 +0000 (14:32 +0000)]
[project @ 2004-12-08 14:32:28 by simonpj]
Comments and asserts only
simonmar [Wed, 8 Dec 2004 12:05:51 +0000 (12:05 +0000)]
[project @ 2004-12-08 12:05:51 by simonmar]
Fix bug #1073501: checkProddableBlock: invalid fixup in runtime linker
The bug manifested when trying to load an object with debugging info
(compiled with gcc -g) into GHCi.
The problem was that the object loader was ignoring the sections
containing debugging info, but then it was later trying to do
relocations for those sections, and its own sanity checking code
correctly detected that the relocations were in unknown parts of the
object file.
The fix is to ignore relocations whose target section isn't one of the
sections that we're interested in, using the same test in both cases
(the code to test section kind has been extracted). The code could
probably benefit from more refactoring: it looks like the list of
sections we build up in the first phase isn't even used in the second
phase, instead we traverse the section table in the image again. This
looks like cruft leftover from when the GC used to check whether an
address was in text or data space.
simonmar [Wed, 8 Dec 2004 10:29:01 +0000 (10:29 +0000)]
[project @ 2004-12-08 10:29:01 by simonmar]
deleteThread: don't attempt to delete threads blocked in foreign calls.
simonmar [Wed, 8 Dec 2004 09:28:57 +0000 (09:28 +0000)]
[project @ 2004-12-08 09:28:57 by simonmar]
Prevent any intermediate file deletion using
.SECONDARY:
and remove now-unnecessary .PRECIOUS and .SECONDARY targets.
Suggestion from Ashley Yakeley.
simonpj [Mon, 6 Dec 2004 10:58:06 +0000 (10:58 +0000)]
[project @ 2004-12-06 10:58:06 by simonpj]
---------------------
Bug in specialisation
---------------------
Laszlo managed to get a function like this:
foo :: Enum a => (# a, Int #)
The specialiser specialised it, resulting in an unboxed tuple
binding, which Lint objected to.
This commit adds a dummy argument to the specialised function,
very like the case for strictness analysis. For example, at
type Char we'd get
foo_char :: State# RealWorld -> (# Char, Int #)
foo_char = \_ -> ...
We use a State# type because it generates no argument-passing code
at runtime. (We should really have some other void type for this
purpose, because State# is misleading, but this way avoids extra
types.)
simonpj [Mon, 6 Dec 2004 10:51:36 +0000 (10:51 +0000)]
[project @ 2004-12-06 10:51:36 by simonpj]
------------------------------------
Bug in loop detection in TcSimplify
------------------------------------
The type-class context simplifier has been able to
build recursive dictionaries for some time: co-induction.
That is, you can build a proof for constraint C by assuming
that C holds when proving the preconditions of C.
You need to be in -fallow-undecidable-instances land to
make use of this: see comments with [RECURSIVE DICTIONARIES]
in TcSimplify.lhs.
Anyway, this is all fine, but I'd implemented it wrong! You need
to be very careful with superclasses, or you can make a bogus
loop by mistake. This commit fixes it; tests LoopOfTheDay{1,2,3}
will test it (thanks Ralf Laemmel).
simonmar [Mon, 6 Dec 2004 10:47:22 +0000 (10:47 +0000)]
[project @ 2004-12-06 10:47:22 by simonmar]
Error message fixup
panne [Sat, 4 Dec 2004 14:07:27 +0000 (14:07 +0000)]
[project @ 2004-12-04 14:07:25 by panne]
Moved GTK_CONFIG detection to ghc subdirectory (untested).
panne [Sat, 4 Dec 2004 13:48:06 +0000 (13:48 +0000)]
[project @ 2004-12-04 13:48:05 by panne]
Nuked some outdated stuff
panne [Sat, 4 Dec 2004 12:57:57 +0000 (12:57 +0000)]
[project @ 2004-12-04 12:57:57 by panne]
No need for --enable-hopengl anymore
simonpj [Fri, 3 Dec 2004 16:59:43 +0000 (16:59 +0000)]
[project @ 2004-12-03 16:59:43 by simonpj]
Make Core Lint check for 1-tuples
simonmar [Fri, 3 Dec 2004 16:25:58 +0000 (16:25 +0000)]
[project @ 2004-12-03 16:25:58 by simonmar]
Get rid of some `...' style quotes
simonpj [Fri, 3 Dec 2004 16:02:44 +0000 (16:02 +0000)]
[project @ 2004-12-03 16:02:44 by simonpj]
Update TH import
simonmar [Fri, 3 Dec 2004 15:35:59 +0000 (15:35 +0000)]
[project @ 2004-12-03 15:35:56 by simonmar]
distclean: clean config.mk only *after* doing the recursive cleaning.
Otherwise we don't clean properly in the subdirectories or sub-ways.
simonmar [Fri, 3 Dec 2004 13:57:19 +0000 (13:57 +0000)]
[project @ 2004-12-03 13:57:19 by simonmar]
- Implement expose/hide
- fix parsing of package identifiers (forgot to commit this the other day)
simonpj [Fri, 3 Dec 2004 13:49:05 +0000 (13:49 +0000)]
[project @ 2004-12-03 13:49:00 by simonpj]
A fix to kind signatures for GADT data type decls
simonpj [Fri, 3 Dec 2004 13:47:22 +0000 (13:47 +0000)]
[project @ 2004-12-03 13:47:22 by simonpj]
TH refication for primitive TyCons
simonmar [Fri, 3 Dec 2004 13:01:28 +0000 (13:01 +0000)]
[project @ 2004-12-03 13:01:28 by simonmar]
Support the --auto-ghci-libs option in conjuction with 'register'.
wolfgang [Thu, 2 Dec 2004 23:39:13 +0000 (23:39 +0000)]
[project @ 2004-12-02 23:39:13 by wolfgang]
Mac OS X/Darwin/Mach-O:
Improve handling of object files without dynamic symbol tables.
simonpj [Thu, 2 Dec 2004 17:18:32 +0000 (17:18 +0000)]
[project @ 2004-12-02 17:18:15 by simonpj]
Sorry for the fact that there are overlapping three commits in here...
1. Make -fno-monomorphism-restriction
and -fno-implicit-prelude reversible, like other flags
2. Fix a wibble in the new ImportAvails story, in RnNames.mkExportAvails
3. Fix a Template Haskell bug that meant that top-level names created
with newName were not made properly unique.