| 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.
|
| |
|
|
|
| |
revert rev. 1.22 again, just in case this is the cause of the
segfaults reported on OpenBSD and SuSE.
|
| |
|
|
| |
un-revert rev. 1.22, it wasn't the cause of last weekend's breakage
|
| |
|
|
|
| |
something has gone wrong; I don't have time right now to find out
exactly what, so revert rev. 1.22 in an attempt to fix it.
|
| |
|
|
| |
cosmetic
|
| |
|
|
|
| |
Omit the __DISCARD__() call in FB_ if __GNUC__ >= 3. It doesn't
appear to be necessary now, and it prevents some gcc optimisations.
|
| |
|
|
|
|
|
|
|
|
| |
* Some preprocessors don't like the C99/C++ '//' comments after a
directive, so use '/* */' instead. For consistency, a lot of '//' in
the include files were converted, too.
* UnDOSified libraries/base/cbits/runProcess.c.
* My favourite sport: Killed $Id$s.
|
| |
|
|
| |
Update comment
|
| |
|
|
|
| |
x86_64: Add __DISCARD__() function call to the tailcall sequence to
work around bugs in gcc (see comment for details).
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Rationalise the BUILD,HOST,TARGET defines.
Recall that:
- build is the platform we're building on
- host is the platform we're running on
- target is the platform we're generating code for
The change is that now we take these definitions as applying from the
point of view of the particular source code being built, rather than
the point of view of the whole build tree.
For example, in RTS and library code, we were previously testing the
TARGET platform. But under the new rule, the platform on which this
code is going to run is the HOST platform. TARGET only makes sense in
the compiler sources.
In practical terms, this means that the values of BUILD, HOST & TARGET
may vary depending on which part of the build tree we are in.
Actual changes:
- new file: includes/ghcplatform.h contains platform defines for
the RTS and library code.
- new file: includes/ghcautoconf.h contains the autoconf settings
only (HAVE_BLAH). This is so that we can get hold of these
settings independently of the platform defines when necessary
(eg. in GHC).
- ghcconfig.h now #includes both ghcplatform.h and ghcautoconf.h.
- MachRegs.h, which is included into both the compiler and the RTS,
now has to cope with the fact that it might need to test either
_TARGET_ or _HOST_ depending on the context.
- the compiler's Makefile now generates
stage{1,2,3}/ghc_boot_platform.h
which contains platform defines for the compiler. These differ
depending on the stage, of course: in stage2, the HOST is the
TARGET of stage1. This was wrong before.
- The compiler doesn't get platform info from Config.hs any more.
Previously it did (sometimes), but unless we want to generate
a new Config.hs for each stage we can't do this.
- GHC now helpfully defines *_{BUILD,HOST}_{OS,ARCH} automatically
in CPP'd Haskell source.
- ghcplatform.h defines *_TARGET_* for backwards compatibility
(ghcplatform.h is included by ghcconfig.h, which is included by
config.h, so code which still #includes config.h will get the TARGET
settings as before).
- The Users's Guide is updated to mention *_HOST_* rather than
*_TARGET_*.
- coding-style.html in the commentary now contains a section on
platform defines. There are further doc updates to come.
Thanks to Wolfgang Thaller for pointing me in the right direction.
|
| |
|
|
|
|
|
| |
rtsconfig, smrep: fixes to not put info next to code (like ia64)
machregs: define registers for powerpc64 - same as ppc32
tailcalls: for now do tailcalls as normal calls. (ok on powerpc since
calls don't grow the stack and we don't care about LR anyway)
|
| |
|
|
| |
Merge backend-hacking-branch onto HEAD. Yay!
|
| |
|
|
| |
#ifdef IN_STG_CODE -> #if IN_STG_CODE
|
| |
|
|
| |
Alpha fixes.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Initial x86-64 (aka amd64) support.
Unregisterised it works perfectly. Registerised, I think it's almost
there, except that I seem to be running into the known codegen bug in
GCC with register variables (bug #7871 in the gcc bugzilla), which
means registerised support is basically hosed until the GCC folks
can get their act together.
We get 8 more registers on amd64, but only 2 more callee-saves
registers. The calling convention seems to pass args in registers by
default, using the previously-callee-saves %rsi and %rdi as two of the
new arg registers.
I think GHCi should work, since we already have 64-bit ELF support
thanks to Mat Chapman's work on the IA64 port. I haven't tried GHCi,
though.
The native code generator should be a breeze, because it's so similar
to plain x86.
|
| |
|
|
| |
Prefix a double-underscore to a variable in a macro, to avoid conflicts.
|
| |
|
|
|
| |
Use __DISCARD__ to prevent overly aggressive optimization by certain
gcc versions on the Alpha. Thanks to Jeffrey Lewis!
|
| |
|
|
|
|
|
|
|
| |
Initial mangling and tailcalls support for IA64.
Function prologues and epilogues are deleted and we use a single register
stack frame throughout (with a little register renaming in the mangler...)
Dropthrough from fast to slow entry point is also implemented.
Tailcalls are marked and converted into jumps at mangle time.
|
| |
|
|
| |
Preliminary support for GCC 3.1 on MacOS X
|
| |
|
|
|
|
| |
Changes to support powerpc-apple-macosx
From: Wolfgang Thaller <wolfgang.thaller@gmx.net>
|
| |
|
|
|
| |
Fix for tail-calling on HP-UX, and a lengthy explanation, thanks to
Andy Bennet <andy_bennet@hp.com>.
|
| |
|
|
|
| |
merge before-ghci -> before-ghci-branch-merged into the ghc
(non-compiler) parts of the tree.
|
| |
|
|
|
|
| |
Changed a bunch of `#endif FOO' to `#endif /* FOO */', the former is
not strictly ANSI (don't know if the latter is, but `gcc -Wall -ansi
-pedantic' is silent then).
|
| |
|
|
| |
hppa1.1 support, first cut.
|
| |
|
|
| |
Copyright police.
|
|
|
Move 4.01 onto the main trunk.
|