| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
This is just an assertion, in effect: we should never enter a PAP, but
for convenience we previously attached the PAP apply code to the PAP
info table. The problem with this was that it makes it harder to track
down bugs that result in entering a PAP...
|
|
|
|
|
|
|
|
|
|
|
| |
In SMP mode a THUNK can change to an IND at any time. The generic
apply code (stg_ap_p etc.) examines a closure to determine how to
apply it to its arguments, if it is a THUNK it must enter it first in
order to evaluate it. The problem was that in order to enter the
THUNK, we were re-reading the info pointer, and possibly ending up
with an IND instead of the original THUNK. It isn't safe to enter the
IND, because it points to a function (functions are never "entered",
only applied). Solution: we must not re-read the info pointer.
|
|
|
|
|
|
| |
Contributed by Duncan Coutts, with changes to merge into the HEAD.
This isn't the full deal, ghc-pkg still modifies files only, but it's
enough to help the Gentoo folk along.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We now have more stg_ap entry points: stg_ap_*_fast, which take
arguments in registers according to the platform calling convention.
This is faster if the function being called is evaluated and has the
right arity, which is the common case (see the eval/apply paper for
measurements).
We still need the stg_ap_*_info entry points for stack-based
application, such as an overflows when a function is applied to too
many argumnets. The stg_ap_*_fast functions actually just check for
an evaluated function, and if they don't find one, push the args on
the stack and invoke stg_ap_*_info. (this might be slightly slower in
some cases, but not the common case).
|
| |
|
| |
|
| |
|
|
|
|
|
| |
For one thing this is the right thing to do anyway, it's what other tools do.
Secondly it allows haddock to produce accurate source code links.
|
|
|
|
|
| |
Initialise part of a structure to NULL to avoid a gcc warning
I haven't checked the code on this one to be sure this isn't just a bug.
|
|
|
|
| |
Use correct format specifier for a size_t value
|
|
|
|
| |
Include string.h in unlit, fixing gcc "implicit declaration" warnings
|
|
|
|
|
|
| |
Fix Windows build
Patch submitted by: Esa Ilari Vuokko <eivuokko at gmail.com>
|
|
|
|
| |
sort packages by name and version in the 'ghc-pkg list' output
|
|
|
|
|
|
|
|
| |
when GHC_PACKAGE_PATH is set, treat the database at the bottom of the
stack as the "global" one, ie. the one we modify by default. This
means that GHC_PACKAGE_PATH can be used to set up a virtual GHC
package environment into which packages can be installed using Cabal,
without setting anything other than GHC_PACKAGE_PATH.
|
|
|
|
| |
fix for pre-6.0 ghc's
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Add support for the GHC_PACKAGE_PATH environment variable, which
specifies a :-separated (;-separated on Windows) list of package
database files. If the list ends in : (; on Windows), then the
normal user and global databases are added.
GHC_PACKAGE_PATH is searched left-to-right for packages, like
$PATH, but unlike -package-conf flags, which are searched
right-to-left. This isn't ideal, but it seemed the least worst to me
(command line flags always override right-to-left (except -i),
whereas the PATH environment variable overrides left-to-right, I chose
to follow the environment variable convention). I can always change
it if there's an outcry.
- Rationalise the interpretation of --user, --global, and -f on the
ghc-pkg command line. The story is now this: --user and --global
say which package database to *act upon*, they do not change the
shape of the database stack. -f pushes a database on the stack, and
also requests that the specified database be the one to act upon, for
commands that modify the database. If a database is already on the stack,
then -f just selects it as the one to act upon.
This means you can have a bunch of databases in GHC_PACKAGE_PATH, and
use -f to select the one to modify.
|
|
|
|
|
|
| |
Never use an installed Cabal package when building GHC (except when
bootstrapping in stages 2 & 3). This insulates us from changes the
user may have made to their Cabal installation.
|
|
|
|
|
|
| |
add a newline after error messages
MERGE to STABLE
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Tidyup, and make all the commands that take a package identifier
behave the same. Previously, naming a package without a version
number only matched the same package identifier, if you wanted to
match multiple packages you had to say P-*. However, the new list and
latest commands behave differently, which was inconsistent.
I believe the previous behaviour was for backwards compatibility with
packages that had no version number. However, it's unlikely that this
is ever useful, so I've changed the semantics so that a package name
on its own matches all versions of that package.
|
|
|
|
|
|
|
|
|
| |
- Add "ghc-pkg list <pkg>" to list packages matching <pkg>
- Add "ghc-pkg latest <pkg>" to show the latest version of <pkg>
- Add --simple-output option to produce a more easily slurpable output
from ghc-pkg list.
Patch from Lennart Kolmodin <kolmodin at dtek.chalmers.se>
|
|
|
|
| |
Rmoeve a few lines that are provided by lib/compat/compat.mk
|
|
|
|
| |
Add casts to silence warnings when using Solaris' simple-minded isupper() macro.
|
|
|
|
| |
oops, bring runghc in on the shared-compat.mk game
|
|
|
|
|
|
|
|
| |
Move the boilerplate Makefile code for using libghccompat.a into a
shared .mk file, lib/compat/compat.mk. libghccompat.a is really a
poor-mans package, but to make it a real package would mean dealing
with variationg in the package support of different GHC versions, so
this is easier for now.
|
|
|
|
|
| |
While acting as warning police, I tried to clean up the #ifdef chaos a
little bit, I hope nothing has been broken due to that... :-]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Implement some more error checking to catch some cases where
registering a package will lead to a package database containing
conflicts, which would otherwise prevent GHC from being used without
any -hide-package options.
In 'update' mode, instead of complaining about conflicts, we now
attempt to hide any packages which would cause a conflict. Previously
this was limited to just older versions of the current package, now it
applies to all packages which contain, or depend on packages which
contain, modules which conflict with any module belonging to the
current package or a dependency of it.
Unfortunately we still can't cope with conflicts that cross the
boundary between the user package databse and the global one. We will
need some kind of white-out mechanism in order to be able to hide a
global package in the user database.
|
|
|
|
| |
Fix and hopefully rationalise the #ifdefs for rawSystem/system/runProcess.
|
|
|
|
|
|
| |
Use runProcess instead of system if the former is available and we would like
to redirect stdout of the new process. system is unsafe if you have spaces
in the file path or you have / instead of \ on Windows.
|
|
|
|
|
| |
Re-instate support for environment variable expansion and the -D flag.
Now it is done pre-parsing, however.
|
|
|
|
|
|
| |
Small code-size optimisation: I forgot to add a specialised case for
functions with no argument words (which might happen if the function
takes a void argument, for example).
|
|
|
|
| |
fprintf(stderr,..) --> debugBelch(...)
|
|
|
|
| |
tweak to handle ghc-6.1 compilation. Merge to STABLE
|
|
|
|
| |
Various fixes to ghcprof, from Christian Maeder <maeder@tzi.de>. Thanks!
|
|
|
|
|
|
| |
Allow args to be passed to GHC from runghc
syntax: runghc [-f GHCPATH] [GHC-ARGS] FILE ARG...
|
|
|
|
| |
Pass -ignore-dot-ghci to GHC
|
|
|
|
| |
blackhole updates
|
|
|
|
| |
Further to previous patch: only create the user database if we're modifying
|
|
|
|
|
| |
Be a bit less eager about creating the user database: now we only
create it when explicitly asked to use it with --user.
|
|
|
|
| |
oops, forgot to clean runhaskell
|
|
|
|
| |
Define __CYGWIN32__ for nhc98 build of hsc2hs.
|
|
|
|
| |
give 'runhaskell' the 'exeext' treatment too
|
|
|
|
| |
explicitly use 'exeext' to avoid cygwin 'cp' weirdity
|
|
|
|
|
| |
Build & install runhaskell, but only install it if there isn't already
a $(bindir)/runhaskell.
|
|
|
|
| |
Clean up Version.hs for distclean target
|
|
|
|
| |
Warning police
|
|
|
|
| |
rearrange includes
|
|
|
|
| |
For some reason rev. 1.71 undid rev. 1.70. Restore it.
|
|
|
|
|
|
|
|
|
|
|
| |
Rename fields in InstalledPackageInfo for consistency with
PackageDescription & buildInfo:
extra-libs (extraLibraries) --> extra-libraries (extraLibraries)
extra-cc-opts (extraCcOpts) --> cc-options (ccOptions)
extra-ld-opts (extraLdOpts) --> ld-options (ldOptions)
extra-hugs-opts (extraHugsOpts) --> hugs-options (hugsOptions)
extra-frameworks (extraFrameworks) --> frameworks (frameworks)
|
|
|
|
| |
Fix test in findPackages
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Change in semantics:
- commands which only inspect the databse (list,describe,field)
now take into account the user database unless --global is
given. This behaviour matches GHC, which also uses the user
database by default.
- However, commands which modify the database still use the
global database, unless --user is given.
Also, allow P-* to be given as a package identifier, which means
"all versions of package P".
|