Lemmih [Thu, 27 Apr 2006 11:33:13 +0000 (11:33 +0000)]
Fix bug shown in the mod77 test.
Lemmih [Wed, 26 Apr 2006 11:11:43 +0000 (11:11 +0000)]
Don't init root pointers if they aren't gonna be used.
Simon Marlow [Tue, 25 Apr 2006 14:09:32 +0000 (14:09 +0000)]
Fix recompilation checking.
One-shot compilation was throwing away the old iface read by
checkOldIface, with the result that version numbers were never being
incremented. Fixes the recomp001 test too.
Simon Marlow [Tue, 25 Apr 2006 08:28:23 +0000 (08:28 +0000)]
Solaris needs -lrt for the threaded RTS
Simon Marlow [Mon, 24 Apr 2006 09:01:59 +0000 (09:01 +0000)]
fix problem with binary-dist docs
Lemmih [Fri, 21 Apr 2006 11:31:12 +0000 (11:31 +0000)]
Enable breakpoint support.
Josef Svenningsson [Thu, 20 Apr 2006 22:26:25 +0000 (22:26 +0000)]
Fixing some lexer errors with extcore
Josef Svenningsson [Thu, 20 Apr 2006 21:36:22 +0000 (21:36 +0000)]
Extcore can now handle data types without constructors
Josef Svenningsson [Thu, 20 Apr 2006 21:35:55 +0000 (21:35 +0000)]
Comments only
sven.panne@aedion.de [Fri, 21 Apr 2006 08:51:25 +0000 (08:51 +0000)]
Resurrect ProjectName
Simon Marlow [Thu, 20 Apr 2006 12:55:55 +0000 (12:55 +0000)]
Remove the section on platform support, link to the wiki page
The section in the building guide was becoming out of date, a wiki
page is much more likely to be kept fresh.
rl@cse.unsw.edu.au [Thu, 20 Apr 2006 04:42:23 +0000 (04:42 +0000)]
Fix workaround for a GHC 6.4 bug
sven.panne@aedion.de [Wed, 19 Apr 2006 14:46:09 +0000 (14:46 +0000)]
hslibs is dead, Jim...
sven.panne@aedion.de [Wed, 19 Apr 2006 14:31:38 +0000 (14:31 +0000)]
Synched .spec file with reality
sven.panne@aedion.de [Wed, 19 Apr 2006 10:37:25 +0000 (10:37 +0000)]
Add .spec file to source distribution
Simon Marlow [Wed, 19 Apr 2006 08:20:38 +0000 (08:20 +0000)]
remove paragraph about mutable objects that doesn't apply now
Simon Marlow [Tue, 18 Apr 2006 14:42:14 +0000 (14:42 +0000)]
HsBool should be HsInt, not StgBool
StgBool is mapped to C's int type. GHC doesn't currently know the
size of a C int on the target arch, it's easier to use StgInt instead.
I guess nobody ever uses Bool arguments to foreign imports/exports.
Simon Marlow [Tue, 18 Apr 2006 14:39:36 +0000 (14:39 +0000)]
handle Bool arg to foreign import "wrapper"
Fixes #746
Simon Marlow [Tue, 18 Apr 2006 14:37:14 +0000 (14:37 +0000)]
update commentry for foreign import "wrapper" handling
Simon Marlow [Tue, 18 Apr 2006 14:36:41 +0000 (14:36 +0000)]
remove vestiges of ByteArray and MutableByteArray, which are no more
simonpj@microsoft.com [Tue, 18 Apr 2006 12:56:24 +0000 (12:56 +0000)]
Comment only
simonpj@microsoft.com [Tue, 18 Apr 2006 12:53:50 +0000 (12:53 +0000)]
Fix rank-validity testing
GHC does not now do "hoisting" as it used to. Instead, it allows
foralls to the right of fuction arrows, as well as to the left.
But the type-validity tester hadn't caught up. This commit fixes
it. The test is tc203.
Incidentally, GHC still doesn't let you write
forall a. Eq a => forall b. b -> b
because we get a zillion reduce/reduce errors if we allow that. I'm
sure it's fixable. But meanwhile you have to use an auxiliary type
synonym, which is a bit stupid.
Lemmih [Tue, 18 Apr 2006 02:36:06 +0000 (02:36 +0000)]
Make the initial rdr and type scope available in the ghc-api.
Lemmih [Tue, 18 Apr 2006 02:35:18 +0000 (02:35 +0000)]
Fix minor bug in Linker.withExtendedLinkEnv
Lemmih [Tue, 18 Apr 2006 02:18:06 +0000 (02:18 +0000)]
Export 'insertSymbol' and 'insertStableSymbol'.
'insertStableSymbol' is used for exporting closures that are affected by the GC.
simonpj@microsoft.com [Fri, 14 Apr 2006 12:19:07 +0000 (12:19 +0000)]
Allow $x, as well as $(x), at top level in TH
Bulat pointed out that in Template Haskell
$x
is allowed instead of
$(x)
in expressions, but not at the top level of modules.
This commit fixes the omission. Now you can say
f x = x
$h
data T = T
and the $h will run Template Haskell just as you'd expect.
simonpj@microsoft.com [Fri, 14 Apr 2006 12:04:11 +0000 (12:04 +0000)]
Fix TH erorr recovery (test is TH_recover)
simonpj@microsoft.com [Fri, 14 Apr 2006 12:03:59 +0000 (12:03 +0000)]
Comments only
simonpj@microsoft.com [Fri, 14 Apr 2006 11:58:31 +0000 (11:58 +0000)]
Recover gracefully from a Template Haskell programmers error
If a TH programmer uses a type constructor as a data constructor,
GHC simply crashed. This commit makes it report the error in a
graceful way.
simonpj@microsoft.com [Fri, 14 Apr 2006 10:52:12 +0000 (10:52 +0000)]
Document newtype-unwrapping for IO in FFI
simonpj@microsoft.com [Wed, 12 Apr 2006 15:27:21 +0000 (15:27 +0000)]
Cosmetics in SpecConstr
SpecConstr currently uses substExpr for tiresome reasons to do with
GADTs. Unfortunately the substExpr generates some WARNINGS (when DEBUG)
is on, because we aren't adding all the in-scope Ids to the in-scope
set of the substitution.
When we move to FC these substExprs will go away, so I'm not going to
worry about this now.
simonpj@microsoft.com [Wed, 12 Apr 2006 15:23:27 +0000 (15:23 +0000)]
Improve pruning of case alternatives to account for GADTs
Consider
data T a where
T1 :: T Int
T2 :: T Bool
T3 :: T Char
f :: T Bool -> Int
f x = case x of
DEFAULT -> ...
T2 -> 3
Here the DEFAULT case covers multiple constructors (T1,T3), but none
of them can match a scrutinee of type (T Bool). So we can prune away
the default case altogether.
In implementing this, I re-factored this bit of the simplifier, elminiating
prepareAlts from SimplUtils, and putting all the work into simplAlts in
Simplify
The proximate cause was a program written by Manuel using PArrays
Simon Marlow [Wed, 12 Apr 2006 14:42:47 +0000 (14:42 +0000)]
Fix a bug in optimising division to shift right
Division by an integral log2 can't be directly optimised to a shift
right, because shift right behaves like a division that rounds to
negative infinity, whereas we want one that rounds to zero. Fix this
by adding (divisor-1) to the dividend when it is negative before
shifting. We do this without jumps, generating very slightly worse
code than gcc, which uses conditional moves on CPUs that support it.
simonpj@microsoft.com [Tue, 11 Apr 2006 13:53:34 +0000 (13:53 +0000)]
Omit lndir on Windows, as it used to be
Simon Marlow [Tue, 11 Apr 2006 13:15:31 +0000 (13:15 +0000)]
remove a trace
simonpj@microsoft.com [Tue, 11 Apr 2006 12:04:41 +0000 (12:04 +0000)]
Allow IO to be wrapped in a newtype in foreign import/export
Up to now, the silent unwrapping of newtypes in foreign import/export
has been limited to data values. But it's useful for the IO monad
itself:
newtype MyIO a = MIO (IO a)
foreign import foo :: Int -> MyIO Int
This patch allows the IO monad to be
wrapped too. This applies to foreign import "dynamic" and "wrapper",
thus
foreign import "wrapper" foo :: MyIO () -> HisIO (FunPtr (MyIO ()))
Warning: I did on the plane, and I'm no longer sure if its 100%
complete, so needs more testing. In particular the wrapper/dynamic bit.
simonpj@microsoft.com [Sun, 2 Apr 2006 21:59:11 +0000 (21:59 +0000)]
Improve newtype deriving
Ross Paterson pointed out a useful generalisation of GHC's
newtype-deriving mechanism. This implements it. The idea
is to allow
newtype Wrap m a = Wrap (m a) deriving (Monad, Eq)
where the representation type doesn't start with a type
constructor.
Actually GHC already *did* implement this, but the eta-ok
check in TcDeriv missed a case, so there was a lurking bug.
This patches fixes the documentation too. drvrun019 tests.
Simon Marlow [Tue, 11 Apr 2006 09:01:31 +0000 (09:01 +0000)]
add take to the list of functions deforestable
Simon Marlow [Tue, 11 Apr 2006 08:50:09 +0000 (08:50 +0000)]
avoid versionitis in Numeric.showHex (should fix tcrun007)
Simon Marlow [Mon, 10 Apr 2006 09:38:24 +0000 (09:38 +0000)]
add a note about full-laziness
Simon Marlow [Mon, 10 Apr 2006 08:22:24 +0000 (08:22 +0000)]
robustify the test for the top of the tree a little
Josef Svenningsson [Fri, 7 Apr 2006 16:17:38 +0000 (16:17 +0000)]
Make darcs-all work without a ghc toplevel directory
Josef Svenningsson [Fri, 7 Apr 2006 16:13:35 +0000 (16:13 +0000)]
Fix typo in darcsall warning
Simon Marlow [Fri, 7 Apr 2006 15:00:45 +0000 (15:00 +0000)]
fix source dists
Simon Marlow [Fri, 7 Apr 2006 14:38:32 +0000 (14:38 +0000)]
add a README for binary dists
Simon Marlow [Fri, 7 Apr 2006 14:38:22 +0000 (14:38 +0000)]
fix binary dists
Simon Marlow [Fri, 7 Apr 2006 08:52:19 +0000 (08:52 +0000)]
remove the last bits of the ghc/ subdir
Simon Marlow [Fri, 7 Apr 2006 10:18:39 +0000 (10:18 +0000)]
Fix a bug related to threads blocked on blackholes
We weren't making them live early enough, with the result that
finalizable objects referred to only by a thread blocked on a black
hole could be finalized too early (see conc057 test).
Simon Marlow [Fri, 7 Apr 2006 02:05:11 +0000 (02:05 +0000)]
Reorganisation of the source tree
Most of the other users of the fptools build system have migrated to
Cabal, and with the move to darcs we can now flatten the source tree
without losing history, so here goes.
The main change is that the ghc/ subdir is gone, and most of what it
contained is now at the top level. The build system now makes no
pretense at being multi-project, it is just the GHC build system.
No doubt this will break many things, and there will be a period of
instability while we fix the dependencies. A straightforward build
should work, but I haven't yet fixed binary/source distributions.
Changes to the Building Guide will follow, too.
Simon Marlow [Sat, 21 Jan 2006 18:38:28 +0000 (18:38 +0000)]
remove empty dir
Simon Marlow [Sat, 21 Jan 2006 18:37:51 +0000 (18:37 +0000)]
rempve some unused files
Lemmih [Thu, 6 Apr 2006 20:27:34 +0000 (20:27 +0000)]
Add stage2/ghci to ghc-api's import list.
Lemmih [Thu, 6 Apr 2006 18:27:24 +0000 (18:27 +0000)]
Don't build GHC with breakpoint support by default.
Lemmih [Thu, 6 Apr 2006 17:57:53 +0000 (17:57 +0000)]
GHC.Base.breakpoint isn't vaporware anymore.
-fignore-breakpoints can be used to ignore breakpoints.
Simon Marlow [Thu, 6 Apr 2006 14:48:36 +0000 (14:48 +0000)]
Add SA_RESTART flag to the timer signal handler.
This seems to be necessary to prevent readline being confused by our
SIGALRM handler.
Lemmih [Thu, 6 Apr 2006 11:22:20 +0000 (11:22 +0000)]
Better messages from HscTypes.showModMsg.
Simon Marlow [Wed, 5 Apr 2006 14:53:16 +0000 (14:53 +0000)]
Turn the "too many hs_exit()s" fatal error into a warning
Simon Marlow [Wed, 5 Apr 2006 14:51:26 +0000 (14:51 +0000)]
add freeStorage() prototype
Simon Marlow [Wed, 5 Apr 2006 13:33:44 +0000 (13:33 +0000)]
add support for x86_64; foreign import is now supported in GHCi on x86_64
Duncan Coutts [Thu, 30 Mar 2006 21:23:21 +0000 (21:23 +0000)]
Correct spelling mistake: GhcState1HcOpts -> GhcStage1HcOpts
Simon Marlow [Thu, 30 Mar 2006 13:44:51 +0000 (13:44 +0000)]
oops, undo accidental patch
Simon Marlow [Thu, 30 Mar 2006 13:41:58 +0000 (13:41 +0000)]
fix profiling on Win32
The recent patch to free memory in hs_exit() on Win32 unfortunately broke
profiling, because it freed the memory slightly too early.
Simon Marlow [Wed, 29 Mar 2006 12:02:39 +0000 (12:02 +0000)]
fix for GHC >= 6.5 again
Simon Marlow [Wed, 29 Mar 2006 11:59:13 +0000 (11:59 +0000)]
in stage1, we should get isPrint and isUpper from Compat.Unicode, not Data.Char
wolfgang.thaller@gmx.net [Wed, 29 Mar 2006 03:53:16 +0000 (03:53 +0000)]
Darwin/x86: correct stack alignment in ByteCodeFFI
wolfgang.thaller@gmx.net [Thu, 23 Mar 2006 06:17:45 +0000 (06:17 +0000)]
Deal with non-executable memory on Darwin (only an issue on Darwin/x86 so far)
Simon Marlow [Tue, 28 Mar 2006 09:39:23 +0000 (09:39 +0000)]
add forkOnzh_fast symbol
Simon Marlow [Mon, 27 Mar 2006 12:41:51 +0000 (12:41 +0000)]
Add a new primitive forkOn#, for forking a thread on a specific Capability
This gives some control over affinity, while we figure out the best
way to automatically schedule threads to make best use of the
available parallelism.
In addition to the primitive, there is also:
GHC.Conc.forkOnIO :: Int -> IO () -> IO ThreadId
where 'forkOnIO i m' creates a thread on Capability (i `rem` N), where
N is the number of available Capabilities set by +RTS -N.
Threads forked by forkOnIO do not automatically migrate when there are
free Capabilities, like normal threads do. Still, if you're using
forkOnIO exclusively, it's a good idea to do +RTS -qm to disable work
pushing anyway (work pushing takes too much time when the run queues
are large, this is something we need to fix).
Simon Marlow [Mon, 27 Mar 2006 12:23:23 +0000 (12:23 +0000)]
eliminate a warning
Simon Marlow [Mon, 27 Mar 2006 11:24:48 +0000 (11:24 +0000)]
elimiante a couple of warnings
Simon Marlow [Fri, 24 Mar 2006 16:45:41 +0000 (16:45 +0000)]
fix a warning
Simon Marlow [Fri, 24 Mar 2006 16:45:32 +0000 (16:45 +0000)]
Add some more flexibility to the multiproc scheduler
There are two new options in the -threaded RTS:
-qm Don't automatically migrate threads between CPUs
-qw Migrate a thread to the current CPU when it is woken up
previously both of these were effectively off, i.e. threads were
migrated between CPUs willy-milly, and threads were always migrated to
the current CPU when woken up. This is the first step in tweaking the
scheduling for more effective work balancing, there will no doubt be
more to come.
Duncan Coutts [Fri, 24 Mar 2006 13:26:13 +0000 (13:26 +0000)]
mkDerivedConstants.c depends on ghcplatform.h
I think this missing dep is what broke my parallel build
I used make -j2 with ghc-6.4.2.
20060323 and got:
------------------------------------------------------------------------
==fptools== make boot -wr --jobserver-fds=3,11 -j;
in /var/tmp/portage/ghc-6.4.2_pre20060323/work/ghc-6.4.2.
20060323/ghc/includes
------------------------------------------------------------------------
Creating ghcplatform.h...
Done.
gcc -O -O2 -march=k8 -pipe -Wa,--noexecstack -c mkDerivedConstants.c -o mkDerivedConstants.o
In file included from ghcconfig.h:5,
from Stg.h:42,
from Rts.h:19,
from mkDerivedConstants.c:20:
ghcplatform.h:1:1: unterminated #ifndef
Done.
With this patch applied I can no longer repoduce this build bug.
So I think this patch should be applied to the cvs ghc-6-4-branch too.
Simon Marlow [Mon, 27 Mar 2006 09:46:39 +0000 (09:46 +0000)]
small updates
Lemmih [Mon, 27 Mar 2006 03:09:50 +0000 (03:09 +0000)]
Allow users of the GHC library to specify which packages have already been loaded.
This is pretty important when using the linker/bytecode-compiler from binaries
other than GHCi.
wolfgang.thaller@gmx.net [Sat, 25 Mar 2006 22:21:00 +0000 (22:21 +0000)]
Fix Darwin/x86 stack alignment
... again.
For now, I've added a TODO comment, but sooner or later this will have to
be made gcc-version-independent.
wolfgang.thaller@gmx.net [Wed, 8 Mar 2006 17:48:41 +0000 (17:48 +0000)]
Ranlib is required on Darwin/x86, too
wolfgang.thaller@gmx.net [Fri, 24 Mar 2006 18:13:05 +0000 (18:13 +0000)]
Darwin Mangler: include alignment statements for symbol stubs
Simon Marlow [Fri, 24 Mar 2006 11:39:00 +0000 (11:39 +0000)]
mark recordMutableCap() with [R1] to avoid saving all regs across it
Simon Marlow [Fri, 24 Mar 2006 09:34:43 +0000 (09:34 +0000)]
omit the __DISCARD__() call if unregisterised
Volker Stolz [Thu, 23 Mar 2006 13:45:59 +0000 (13:45 +0000)]
Accept amd64-*-freebsd architecture
Simon Marlow [Thu, 23 Mar 2006 13:36:39 +0000 (13:36 +0000)]
gcc is getting smarter, so we need to hit it with a bigger stick
On x86_64 we are using C argument registers for global registers in
the STG machine. This is always going to be problematic when it comes
to making C calls from STG and compiling via C. Prior to GCC 4.1.0
(approx) it was possible to just assign the argument expressions to
temporaries to avoid a clash. Now, we need to add an extra dummy
function call as a barrier between the temporary assignments and the
actual call. The dummy call is removed by the mangler.
Lemmih [Sat, 18 Mar 2006 17:17:28 +0000 (17:17 +0000)]
-fno-code shouldn't be a mode.
I've removed -fno-code from Main to make it work
equally well with --make and -c.
I've also allowed it not to write hi files unless
-fwrite-iface is given.
Lemmih [Sat, 18 Mar 2006 17:18:48 +0000 (17:18 +0000)]
Don't generate stub files when -fno-code is given.
Lemmih [Sat, 18 Mar 2006 17:30:34 +0000 (17:30 +0000)]
Documentation for -fno-code and -fwrite-iface.
Simon Marlow [Wed, 22 Mar 2006 10:27:11 +0000 (10:27 +0000)]
on second thoughts, revert the ppc/darwin part of the previous patch
Simon Marlow [Wed, 22 Mar 2006 10:17:46 +0000 (10:17 +0000)]
fix for gcc 4.1.x
We need to use GNUC3_ATTRIBUTE(used) to force gcc to keep the
definition of StgRunIsImplementedInAssembler() around. In some cases
we had already made this function external rather than static to get
around the problem, but GNUC3_ATTRIBUTE(used) is a better fix.
Simon Marlow [Tue, 21 Mar 2006 11:28:20 +0000 (11:28 +0000)]
support for STM objects in the retainer profiler
addresses #492
Simon Marlow [Tue, 21 Mar 2006 11:27:33 +0000 (11:27 +0000)]
small changes to fix retainer profiling on HEAD
Simon Marlow [Tue, 21 Mar 2006 11:27:02 +0000 (11:27 +0000)]
tiny cleanup
Simon Marlow [Tue, 21 Mar 2006 10:17:50 +0000 (10:17 +0000)]
powerpc64 does not support GHCi right now
Simon Marlow [Tue, 21 Mar 2006 08:41:03 +0000 (08:41 +0000)]
oops, remove temporary testing code
Simon Marlow [Mon, 20 Mar 2006 16:34:39 +0000 (16:34 +0000)]
stopTicker(): wait for the timer thread to exit
Simon Marlow [Mon, 20 Mar 2006 09:11:23 +0000 (09:11 +0000)]
fix Win32 build
Lemmih [Sat, 18 Mar 2006 17:30:34 +0000 (17:30 +0000)]
Documentation for -fno-code and -fwrite-iface.
Lemmih [Sat, 18 Mar 2006 17:18:48 +0000 (17:18 +0000)]
Don't generate stub files when -fno-code is given.
Lemmih [Sat, 18 Mar 2006 17:17:28 +0000 (17:17 +0000)]
-fno-code shouldn't be a mode.
I've removed -fno-code from Main to make it work
equally well with --make and -c.
I've also allowed it not to write hi files unless
-fwrite-iface is given.
Lemmih [Sun, 12 Mar 2006 13:23:28 +0000 (13:23 +0000)]
Cleanup after the OPTIONS parsing was moved.
Simon Marlow [Fri, 17 Mar 2006 15:47:34 +0000 (15:47 +0000)]
fix build for certain picky versions of gcc
Simon Marlow [Fri, 17 Mar 2006 15:07:52 +0000 (15:07 +0000)]
forkProcess(): watch out for ThreadRelocated