| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
GHC bits for new library organisation.
|
|
|
|
| |
use $(GHC), not $(HC)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Build System Cleanup
--------------------
This commit is intended to clear the way for automatic RPM building.
In particular, the idea is that 'make install' doesn't build anything,
so you can do
make install prefix=/some/tmp/prefix
to install everything in /some/tmp/prefix, but leave the hardwired-in
install directories the same.
For scripts that depend on the install dir (currently just the GHC
driver and mkdependHS), we now build two versions: <script>-inplace,
which is used for running the script from the build tree, and
<script>, which is the to-be-installed version.
NOTE: binary distributions are now a little bit trickier to build.
You *must* include the line "BIN_DIST=1" in your build.mk if you
intend to make a binary distribution from the current build tree.
This is because certain scripts have to be built differently, and we
don't rebuild them when doing 'make binary-dist' anymore (since 'make
binary-dist' just does a 'make install' with a re-targetted prefix,
just like the RPM builder).
Other changes
- the binary-dist machinery is now all in fptools/Makefile
- removed a gratuitous $(package)-$(version) level of
directories from the binary distribution.
- binary distributions are now placed under the package
name, rather than fptools/fptools.
- various other minor cleanups.
|
|
|
|
|
|
| |
Flatten out the tuple of bounds in the Array, MutableArray and
ByteArray datatypes. This improves performance of heavy array
manipulations quite significantly.
|
|
|
|
| |
Some small pedantic changes to get function prototypes right.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
All Simon's recent tuning changes. Rough summary follows:
* Fix Kevin Atkinson's cant-find-instance bug. Turns out that Rename.slurpSourceRefs
needs to repeatedly call getImportedInstDecls, and then go back to slurping
source-refs. Comments with Rename.slurpSourceRefs.
* Add a case to Simplify.mkDupableAlt for the quite-common case where there's
a very simple alternative, in which case there's no point in creating a
join-point binding.
* Fix CoreUtils.exprOkForSpeculation so that it returns True of (==# a# b#).
This lack meant that
case ==# a# b# of { True -> x; False -> x }
was not simplifying
* Make float-out dump bindings at the top of a function argument, as
at the top of a let(rec) rhs. See notes with FloatOut.floatRhs
* Make the ArgOf case of mkDupableAlt generate a OneShot lambda.
This gave a noticeable boost to spectral/boyer2
* Reduce the number of coerces, using worker/wrapper stuff.
The main idea is in WwLib.mkWWcoerce. The gloss is that we must do
the w/w split even for small non-recursive things. See notes with
WorkWrap.tryWw.
* This further complicated getWorkerId, so I finally bit the bullet and
make the workerInfo field of the IdInfo work properly, including
under substitutions. Death to getWorkerId. Kevin Glynn will be happy.
* Make all lambdas over realWorldStatePrimTy
into one-shot lambdas. This is a GROSS HACK.
* Also make the occurrence analyser aware of one-shot lambdas.
* Make various Prelude things into INLINE, so that foldr doesn't
get inlined in their body, so that the caller gets the benefit
of fusion. Notably in PrelArr.lhs.
|
|
|
|
| |
../compiler/msg_prel
|
|
|
|
| |
Remove some comments left in by mistake.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(this is number 9 of 9 commits to be applied together)
Usage verification changes / ticky-ticky changes:
We want to verify that SingleEntry thunks are indeed entered at most
once. In order to do this, -ticky / -DTICKY_TICKY turns on eager
blackholing. We blackhole with new blackholes: SE_BLACKHOLE and
SE_CAF_BLACKHOLE. We will enter one of these if we attempt to enter
a SingleEntry thunk twice. Note that CAFs are dealt with in by
codeGen, and ordinary thunks by the RTS.
We also want to see how many times we enter each Updatable thunk.
To this end, we have modified -ticky. When -ticky is on, we update
with a permanent indirection, and arrange that when we enter a
permanent indirection we count the entry and then convert the
indirection to a normal indirection. This gives us a means of
counting the number of thunks entered again after the first entry.
Obviously this screws up profiling, and so you can't build a ticky
and profiling compiler any more.
Also a few other changes that didn't make it into the previous 8
commits, but form a part of this set.
|
|
|
|
| |
doc tweaks
|
|
|
|
| |
makeForeignObj --> mkForeignObj
|
|
|
|
| |
finalise/finalize changes.
|
|
|
|
| |
-syslib posix gets the Haskell 98 treatment
|
|
|
|
| |
Move 4.01 onto the main trunk.
|
|
|
|
| |
Moved PosixUtil marshaling funs into CString; adjusted imports; don't use lit-lits containing NULL when we've got Addr.nullAddr
|
|
|
|
| |
More error message updates
|
|
|
|
| |
trivial syserr fix
|
|
|
|
| |
Fd <--> Handle conversion: use new IO impl
|
|
|
|
| |
Better error messages
|
|
|
|
| |
Pick up unvectorize from Util
|
|
|
|
|
| |
_setenv: off by one error when extending the env block.
(has this code ever been used in anger?)
|
|
|
|
|
| |
getEnvironment: embedding a global variable inside
a lit-lit causes it to be read just once.
|
|
|
|
| |
need Addr import.
|
|
|
|
| |
remove stray export.
|
|
|
|
| |
Added comment on the vagaries of combining runProcess and lazy file I/O
|
|
|
|
| |
fdToHandle: use openFd
|
|
|
|
| |
New function: fdToInt
|
|
|
|
| |
syslibs: generate dependencies on Prelude modules
|
|
|
|
| |
include config.h
|
|
|
|
| |
remove references to hslibs, and add \$Id\$
|
|
|
|
| |
remove spurious reference to GHC.hi (probably a cut-and-paste-o).
|
|
Library re-organisation:
All libraries now live under ghc/lib, which has the following structure:
ghc/lib/std -- all prelude files (libHS.a)
ghc/lib/std/cbits
ghc/lib/exts -- standard Hugs/GHC extensions (libHSexts.a)
-- available with '-fglasgow-exts'
ghc/lib/posix -- POSIX library (libHSposix.a)
ghc/lib/posix/cbits -- available with '-syslib posix'
ghc/lib/misc -- used to be hslibs/ghc (libHSmisc.a)
ghc/lib/misc/cbits -- available with '-syslib misc'
ghc/lib/concurrent -- Concurrent libraries (libHSconc.a)
-- available with '-concurrent'
Also, several non-standard prelude modules had their names changed to begin
with 'Prel' to reduce namespace pollution.
Addr ==> PrelAddr (Addr interface available in 'exts')
ArrBase ==> PrelArr
CCall ==> PrelCCall (CCall interface available in 'exts')
ConcBase ==> PrelConc
GHCerr ==> PrelErr
Foreign ==> PrelForeign (Foreign interface available in 'exts')
GHC ==> PrelGHC
IOHandle ==> PrelHandle
IOBase ==> PrelIOBase
GHCmain ==> PrelMain
STBase ==> PrelST
Unsafe ==> PrelUnsafe
UnsafeST ==> PrelUnsafeST
|