| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
-fignore-breakpoints can be used to ignore breakpoints.
|
|
|
|
|
| |
This seems to be necessary to prevent readline being confused by our
SIGALRM handler.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
The recent patch to free memory in hs_exit() on Win32 unfortunately broke
profiling, because it freed the memory slightly too early.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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).
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
| |
loaded.
This is pretty important when using the linker/bytecode-compiler from binaries
other than GHCi.
|
|
|
|
|
|
|
| |
... again.
For now, I've added a TODO comment, but sooner or later this will have to
be made gcc-version-independent.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
addresses #492
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
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.
|
| |
|