| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
| |
Fixes an ASSERTION failure with concprog001, -threaded -debug, +RTS -N2
|
|
|
|
|
|
|
|
|
|
| |
This has no effect with static libraries, but when the RTS is in a
shared library it does two things:
- it prevents the function from being exposed by the shared library
- internal calls to the function can use the faster non-PLT calls,
because the function cannot be overriden at link time.
|
|
|
|
|
| |
Should help to fix the build on OpenBSD (together with a corresponding
patch to libraries/base).
|
| |
|
|
|
|
|
|
|
|
| |
When there are some absolute include dirs, don't create arguments
like -Ilibraries/base//usr/local/include.
I need this fix for injecting the iconv include dir (which is
/usr/local/include on OpenBSD) into the build of libraries/base.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
rolling back:
Mon Aug 3 11:44:13 BST 2009 Simon Marlow <marlowsd@gmail.com>
UNDO: Add -r option to darcs-all, and remove push-all (#3375)
Contributed by: seliopou@gmail.com
This patch modifies darcs-all to have feature parity with push-all by
recognizing two new options.
* -i, equivalent to --ignore-failure in push-all
* -r <repo>, specifies the remote repository darcs commands will use
Some example commands:
Get the libraries from a repository of your choosing. This is useful
when working with a git mirror:
$ ./darcs-all -r http://darcs.haskell.org get
Pull changes. Used to be:
$ ./push-all --pull http://darcs.haskell.org
Is now:
$ ./darcs-all -r http://darcs.haskell.org pull
Or to use the default remote of the ghc repository:
$ ./darcs-all pull
M ./darcs-all -79 +33
A ./push-all
|
| |
|
|
|
|
|
|
|
|
| |
We need to change a dependency on
pkg-inplace
to
pkg-$abihash
when installing
|
| |
|
|
|
|
|
|
|
| |
We were running into problems like:
for f in LICENSE configure config.sub config.guess [...]
make[2]: execvp: /bin/sh: Argument list too long
This patch moves the loop into make, rather than the shell.
|
| |
|
|
|
|
|
|
|
|
|
| |
That is, unless we're printing in LeftMode, where we bypass encoding
for speed. This is safe, because LeftMode is used for outputting C or
asm, where everyting is Z-encoded and hence ASCII.
Error messages and other compiler output containing Unicode will now
appear correctly according to the locale settings.
|
|
|
|
|
|
|
| |
I've updated the wiki page about the RTS headers
http://hackage.haskell.org/trac/ghc/wiki/Commentary/SourceTree/Includes
to reflect the new layout and explain some of the rationale. All the
header files now point to this page.
|
| |
|
| |
|
|
|
|
|
| |
See commentary at
http://hackage.haskell.org/trac/ghc/wiki/Commentary/Packages
|
|
|
|
|
|
| |
This is just a tiny refactoring. In general, we're trying to
get rid of parser errors in favour of later, more civlised, errors.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The issue here is this:
type ItemColID a b = Int -- Discards a,b
get :: ItemColID a b -> a -> ItemColID a b
get (x :: ItemColID a b) = x :: ItemColID a b
The pattern signature for 'x' doesn't actually rigidly bind a,b.
This crashed GHC 6.10 with a 'readFilledBox' panic. Now we fail
with an erroe message
With the new outside-in algorithm we'll be able to accept this program.
|
|
|
|
|
|
|
|
|
| |
This is needed both for per-session parallelism and for allowing
multiple concurrent sessions in the same process. With the help of
atomicModifyIORef and unsafePerformIO it is also quite fast--an MVar
would most likely be slower. On a full compilation of Cabal's head
branch it was about 1-2 percent slower, but then overall compilation
times varied by about 4 percent, so I think it's worth it.
|
| |
|
| |
|
|
|
|
|
| |
For: FastStrings, Names, and Bin values. This makes .hi files smaller
on 64-bit platforms, while also making the format a bit more robust.
|
|
|
|
|
|
| |
We now have a dummy 32/64-bit field near the beginning of a .hi file
for backward-compatibility reasons; see comments (Note [dummy iface
field]) in BinIface.hs.
|
| |
|
|
|
|
| |
It breaks the unregisterised build on IA64.
|
| |
|
|
|
|
|
| |
Without this, concurrent updates to the EPS could introduce
overlapping instances (even though they came from the same module).
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Somehow I'd forgotten to instantiate the coercion that is stored in a
'NewtypeDerived' constructor in an InstInfo. The necessary code is
in TcInstDcls.tc_inst_decl2.
The result was ghc: panic! (the 'impossible' happened)
(GHC version 6.10.3 for x86_64-unknown-linux):
No match in record selector Var.tcTyVarDetails
because we were looking at an (uninstantiated) TyVar instead of
an (instantiated) TcTyVar.
|
|
|
|
| |
Fixes linking with -dynamic
|
|
|
|
|
|
| |
This fixes linking hello world with -dynamic. I've also added some more
variables, so there is less duplication between the different ways of
linking.
|
|
|
|
|
| |
Also, -fPIC causes an error if the target is registerised and has no
native code generator.
|
|
|
|
| |
This gives about a 15% performance boost in GHCi for me. nice!
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
'lilac' helpful pin-pointed a space leak that was due to a specialised
function being insufficiently strict. Here's the new comment in SpecConstr:
Note [Transfer strictness]
~~~~~~~~~~~~~~~~~~~~~~~~~~
We must transfer strictness information from the original function to
the specialised one. Suppose, for example
f has strictness SS
and a RULE f (a:as) b = f_spec a as b
Now we want f_spec to have strictess LLS, otherwise we'll use call-by-need
when calling f_spec instead of call-by-value. And that can result in
unbounded worsening in space (cf the classic foldl vs foldl')
See Trac #3437 for a good example.
The function calcSpecStrictness performs the calculation.
|
| |
|
|
|
|
|
| |
When configuring packages, enable library profiling and shared libraries
based on the ways in GhcLibWays.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
rolling back:
* use cas() to claim the closure in copyPart(), to match copy_tag()
* rename whitehole_spin to evac_collision, and update it properly
This introduced a new failure in parallel GC. I'll rollback for now
until I've fixed it.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It is possible for the program to allocate single object larger than a
block, without going through the normal large-object mechanisms that
we have for arrays and threads and so on.
The GC was assuming that no object was larger than a block, but #3424
contains a program that breaks the assumption. This patch removes the
assumption. The objects in question will still be copied, that is
they don't get the normal large-object treatment, but this case is
unlikely to occur often in practice.
In the future we may improve things by generating code to allocate
them as large objects in the first place.
|
| |
|
|
|
|
|
| |
I'm not sure what happened here, but the ordering of tests was messed
up, with the result that the GHC version check was being omitted.
|
|
|
|
|
| |
It was invoking $(TOP)/inplace/bin/ghc rather than
$(TOP)/inplace/bin/ghc-stage2
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Make C { A.a } work with punning, expanding to C { A.a = a }
* Make it so that, with -fwarn-unused-matches,
f (C {..}) = x
does not complain about the bindings introduced by the "..".
* Make -XRecordWildCards implies -XDisambiguateRecordFields.
* Overall refactoring of RnPat, which had become very crufty.
In particular, there is now a monad, CpsRn, private to RnPat,
which deals with the cps-style plumbing. This is why so many
lines of RnPat have changed.
* Refactor the treatment of renaming of record fields into two passes
- rnHsRecFields1, used both for patterns and expressions,
which expands puns, wild-cards
- a local renamer in RnPat for fields in patterns
- a local renamer in RnExpr for fields in construction and update
This make it all MUCH easier to understand
* Improve documentation of record puns, wildcards, and disambiguation
|