Simon Marlow [Mon, 17 Aug 2009 09:11:05 +0000 (09:11 +0000)]
comment fix
Simon Marlow [Thu, 6 Aug 2009 11:28:59 +0000 (11:28 +0000)]
remove unused file
Simon Marlow [Thu, 6 Aug 2009 09:54:17 +0000 (09:54 +0000)]
Fix unregisterised build
Manuel M T Chakravarty [Tue, 18 Aug 2009 12:14:25 +0000 (12:14 +0000)]
FIX #3405
Thomas Schilling [Mon, 17 Aug 2009 14:23:52 +0000 (14:23 +0000)]
Make the dynamic linker thread-safe.
The current implementation is rather pessimistic. The persistent
linker state is now an MVar and all exported Linker functions are
wrapped in modifyMVar calls. This is serves as a big lock around all
linker functions.
There might be a chance for more concurrency in a few places. E.g.,
extending the closure environment and loading packages might be
independent in some cases. But for now it's better to be on the safe
side.
Thomas Schilling [Mon, 17 Aug 2009 00:48:19 +0000 (00:48 +0000)]
Make access to NameCache atomic. Sometimes needs a lock.
'readBinIface' updates the name cache in a way that is hard to use
with atomicModifyIORef, so this patch introduces a lock for this case.
All other updates use atomicModifyIORef.
Having a single lock is quite pessimistic, so it remains to be seen
whether this will become a problem. In principle we only need to make
sure that we do not load the same file concurrently (or that it's
idempotent). In practice we also need to ensure that concurrent reads
do not cancel each other out (since the new NameCache may be based on
an outdated version).
Thomas Schilling [Sun, 16 Aug 2009 23:19:20 +0000 (23:19 +0000)]
Make updates to the Finder caches atomic. Well, almost.
Flushing and uncaching a single module is not completely atomic since
both caches a cleared separately. However, flushing is only done when
changing the working directory which shouldn't be done concurrently to
other threads. Uncaching is only done in 'summariseModule' which
requires some more work to become thread-safe anyway.
Thomas Schilling [Sun, 16 Aug 2009 23:13:16 +0000 (23:13 +0000)]
Make updates to the external package state atomic.
Thomas Schilling [Wed, 22 Jul 2009 23:13:42 +0000 (23:13 +0000)]
Minor documentation fixes.
Ian Lynagh [Sun, 16 Aug 2009 20:03:26 +0000 (20:03 +0000)]
bindist fix
Ian Lynagh [Sun, 16 Aug 2009 19:00:43 +0000 (19:00 +0000)]
Build fixes
Ian Lynagh [Fri, 14 Aug 2009 22:54:31 +0000 (22:54 +0000)]
Remove the old platform code from the bindist configure.ac
Ian Lynagh [Fri, 14 Aug 2009 22:45:49 +0000 (22:45 +0000)]
Make our install variables etc compliant with GNU standards; fixes #1924
simonpj@microsoft.com [Fri, 14 Aug 2009 11:02:14 +0000 (11:02 +0000)]
Improve fix to Trac #3007
This patch tides up Ian's fix a little. In particular, if if you
{-# SOURCE #-} import a module from a different package, you now
get a much more civlised error message.
Ian Lynagh [Thu, 13 Aug 2009 16:24:35 +0000 (16:24 +0000)]
Only look up whether a module's SOURCE-imported if it's in the current package
Suppose we import anotherPackage:M, which exports things from
anotherPackage:Internal. Then GHC will want to read
anotherPackage:Internal.hi.
However, if we have also SOURCE-imported thisPackage:Internal then
we don't want GHC to try to read anotherPackage:Internal.hi-boot
instead.
The mapping that tells us whether a module is SOURCE-imported uses just
the module name for the key, so we have to check the package ID before
looking it up.
Fixes #3007.
simonpj@microsoft.com [Thu, 13 Aug 2009 16:11:54 +0000 (16:11 +0000)]
Fix Trac #3409: type synonyms that discard their arguments
Type synonyms that don't mention one of their type parameters on the
RHS are a pain in the neck. This patch fixes a long-standing bug (that
simply has not appeared before) in that exprType could return a type
mentioning an existentially-quantified variable (in one of those ignored
argument positions).
See CoreUtils Note [Existential variables and silly type synonyms]
The fix is not entirely beautiful, but it works, and is very localised.
Ian Lynagh [Wed, 12 Aug 2009 18:59:12 +0000 (18:59 +0000)]
Add support for multi-line deprecated pragmas; trac #3303
Ian Lynagh [Wed, 12 Aug 2009 13:38:17 +0000 (13:38 +0000)]
Fix a sanity check; fixes #3089
Ian Lynagh [Tue, 11 Aug 2009 22:01:46 +0000 (22:01 +0000)]
Skip "Cabal check" for certain packages that we know will fail
Ian Lynagh [Tue, 11 Aug 2009 21:58:39 +0000 (21:58 +0000)]
Fix "Cabal check" warnings
Ian Lynagh [Tue, 11 Aug 2009 21:25:59 +0000 (21:25 +0000)]
Check Cabal packages when validating
This checks that hackage would accept the packages.
Currently warnings are printed, but don't result in failure.
Ian Lynagh [Tue, 11 Aug 2009 14:53:00 +0000 (14:53 +0000)]
Include a pointer to GHC.Exts in the generated GHC.Prim docs
simonpj@microsoft.com [Tue, 11 Aug 2009 14:36:55 +0000 (14:36 +0000)]
Refactor, and improve error messages (cf Trac #3395)
The Convert stuff should not panic if the programmer hands over an
invalid TH term; instead it should give a graceful error message.
Largely this had been done, but not for do-blocks, so this patch
fixes that problem.
Moreover, I did some refactoring and tidying up, which is why
so many lines of code have changed
simonpj@microsoft.com [Mon, 10 Aug 2009 16:43:20 +0000 (16:43 +0000)]
Fix Trac #3421: a typo in TysPrim
This is just a blatant typo, where Any1 :: *->* was getting mixed
up with Any :: *.
simonpj@microsoft.com [Mon, 10 Aug 2009 14:11:58 +0000 (14:11 +0000)]
Improve the recent changes to overlap-checking for view patters
The previous patch simply gave up for view patterns; this version
instead treats them like n+k patterns and gives signficantly better
results.
Less code, too.
Max Bolingbroke [Fri, 17 Jul 2009 22:49:03 +0000 (22:49 +0000)]
Turn group into a special_id when TransformListComp is on
Ian Lynagh [Sun, 9 Aug 2009 18:07:01 +0000 (18:07 +0000)]
Make Constants shareable with the base package
Ian Lynagh [Sun, 9 Aug 2009 15:42:58 +0000 (15:42 +0000)]
Minor refactoring
Alexander Dunlap [Fri, 7 Aug 2009 18:48:41 +0000 (18:48 +0000)]
FIX #2395 (ViewPatterns trigger bad Check errors)
Ian Lynagh [Sat, 8 Aug 2009 22:25:37 +0000 (22:25 +0000)]
Pass -m32 to gcc on i386 and ppc OS X
This makes GHC work even if you are actually running it in 64bit mode,
e.g. on OS X 10.6 Snow.
Ian Lynagh [Sat, 8 Aug 2009 18:44:07 +0000 (18:44 +0000)]
Fix bindist creation
This is a bit kludgy. We've hit the maximum number of arguments you can
have in the for loop for adding files to the bindist list, so this just
splits the list in 2.
Ian Lynagh [Sat, 8 Aug 2009 17:57:56 +0000 (17:57 +0000)]
Put the library haddock docs in the html subdirectory of docdir
Ian Lynagh [Sat, 8 Aug 2009 11:20:34 +0000 (11:20 +0000)]
Install the main doc index page, and also put it in bindists
Alexander Dunlap [Sat, 1 Aug 2009 01:23:35 +0000 (01:23 +0000)]
FIX BUILD: Remove harmful dnls and identifier typo in aclocal.m4
Ian Lynagh [Fri, 7 Aug 2009 15:21:51 +0000 (15:21 +0000)]
Fix the build on OS X
Simon Marlow [Mon, 3 Aug 2009 10:44:13 +0000 (10:44 +0000)]
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
Ian Lynagh [Fri, 7 Aug 2009 13:07:31 +0000 (13:07 +0000)]
Add a kludge to fix building shared libs
The .dyn_hi files currently depend on the .dyn_hi files of modules that
they import. But they actually want the .hi files of modules from
another package.This we make the .dyn_hi files depend on the .hi files
so we are sure that they exist and are up-to-date.
Ian Lynagh [Fri, 7 Aug 2009 00:54:45 +0000 (00:54 +0000)]
Leave dyn in GhcLibWays when validating
Ian Lynagh [Thu, 6 Aug 2009 16:43:20 +0000 (16:43 +0000)]
Build shared library support by default on platforms that support it
Ian Lynagh [Thu, 6 Aug 2009 14:13:59 +0000 (14:13 +0000)]
Update the libffi filenames to follow the new version number
Stops make going into an infinite rebuilding loop
Simon Marlow [Thu, 6 Aug 2009 09:30:21 +0000 (09:30 +0000)]
Fix ticky build
Simon Marlow [Thu, 6 Aug 2009 08:17:47 +0000 (08:17 +0000)]
add #include <sys/types.h> (hopefully fixes OS X build)
Simon Marlow [Wed, 5 Aug 2009 10:22:17 +0000 (10:22 +0000)]
profiling build fix
Simon Marlow [Wed, 5 Aug 2009 09:35:39 +0000 (09:35 +0000)]
profiling build fixes
Simon Marlow [Wed, 5 Aug 2009 09:25:37 +0000 (09:25 +0000)]
#include fix
Simon Marlow [Mon, 3 Aug 2009 21:45:45 +0000 (21:45 +0000)]
use C99-style array initialisers
Simon Marlow [Mon, 3 Aug 2009 21:09:48 +0000 (21:09 +0000)]
use C99-style array initialisers
Simon Marlow [Mon, 3 Aug 2009 21:03:04 +0000 (21:03 +0000)]
move termios prototypes into a public header
Simon Marlow [Mon, 3 Aug 2009 21:02:29 +0000 (21:02 +0000)]
move StgEntCounter type into its own header
Simon Marlow [Mon, 3 Aug 2009 20:32:52 +0000 (20:32 +0000)]
Common up two closure type -> string tables
Also, use C99-style array initialisers
Simon Marlow [Mon, 3 Aug 2009 20:29:40 +0000 (20:29 +0000)]
Rename primops from foozh_fast to stg_foozh
For consistency with other RTS exported symbols
Simon Marlow [Mon, 3 Aug 2009 20:21:51 +0000 (20:21 +0000)]
remove the GUM closure types
Simon Marlow [Mon, 3 Aug 2009 20:11:48 +0000 (20:11 +0000)]
use C99-style array initialisers
Simon Marlow [Mon, 3 Aug 2009 19:59:35 +0000 (19:59 +0000)]
Remove final bits of the old .NET support
Simon Marlow [Sun, 2 Aug 2009 19:07:52 +0000 (19:07 +0000)]
fast make omits all GHC stages
Simon Marlow [Sun, 2 Aug 2009 19:07:33 +0000 (19:07 +0000)]
fast make omits dependencies in ghc/ too
Simon Marlow [Sun, 2 Aug 2009 19:06:51 +0000 (19:06 +0000)]
remove unnecessary -#include options
Simon Marlow [Sun, 2 Aug 2009 19:06:14 +0000 (19:06 +0000)]
mention that INCLUDE pragmas are accepted, but ignored
Simon Marlow [Sun, 2 Aug 2009 19:05:35 +0000 (19:05 +0000)]
Deprecate the -#include flag
Simon Marlow [Sat, 1 Aug 2009 22:21:18 +0000 (22:21 +0000)]
remove docuumentation for -#include option
Simon Marlow [Tue, 4 Aug 2009 09:21:15 +0000 (09:21 +0000)]
fix off-by-one in memory allocation
Simon Marlow [Mon, 3 Aug 2009 15:05:33 +0000 (15:05 +0000)]
Windows build fix
Simon Marlow [Mon, 3 Aug 2009 14:23:46 +0000 (14:23 +0000)]
Windows build fixes
Simon Marlow [Mon, 3 Aug 2009 13:28:47 +0000 (13:28 +0000)]
move gc_alloc_block to make it visible on 32-bit
Simon Marlow [Mon, 3 Aug 2009 13:19:33 +0000 (13:19 +0000)]
Windows build fixes
Simon Marlow [Mon, 3 Aug 2009 12:04:15 +0000 (12:04 +0000)]
x86_64 warning fix
Simon Marlow [Mon, 3 Aug 2009 11:59:55 +0000 (11:59 +0000)]
x86_64 warning fixes
Simon Marlow [Mon, 3 Aug 2009 11:36:03 +0000 (11:36 +0000)]
x86_64 build fix: declare gc_alloc_block_sync
Simon Marlow [Sun, 2 Aug 2009 21:32:04 +0000 (21:32 +0000)]
RTS tidyup sweep, first phase
The first phase of this tidyup is focussed on the header files, and in
particular making sure we are exposinng publicly exactly what we need
to, and no more.
- Rts.h now includes everything that the RTS exposes publicly,
rather than a random subset of it.
- Most of the public header files have moved into subdirectories, and
many of them have been renamed. But clients should not need to
include any of the other headers directly, just #include the main
public headers: Rts.h, HsFFI.h, RtsAPI.h.
- All the headers needed for via-C compilation have moved into the
stg subdirectory, which is self-contained. Most of the headers for
the rest of the RTS APIs have moved into the rts subdirectory.
- I left MachDeps.h where it is, because it is so widely used in
Haskell code.
- I left a deprecated stub for RtsFlags.h in place. The flag
structures are now exposed by Rts.h.
- Various internal APIs are no longer exposed by public header files.
- Various bits of dead code and declarations have been removed
- More gcc warnings are turned on, and the RTS code is more
warning-clean.
- More source files #include "PosixSource.h", and hence only use
standard POSIX (1003.1c-1995) interfaces.
There is a lot more tidying up still to do, this is just the first
pass. I also intend to standardise the names for external RTS APIs
(e.g use the rts_ prefix consistently), and declare the internal APIs
as hidden for shared libraries.
Simon Marlow [Mon, 27 Jul 2009 21:51:03 +0000 (21:51 +0000)]
replace sparc-specific Int64 code with calls to platform-independent macros
Simon Marlow [Sun, 28 Jun 2009 21:11:47 +0000 (21:11 +0000)]
remove old incarnation of .NET support
Simon Marlow [Mon, 3 Aug 2009 14:49:31 +0000 (14:49 +0000)]
Windows build fix
Simon Marlow [Mon, 3 Aug 2009 12:49:16 +0000 (12:49 +0000)]
rts_stop_on_exception is a C int, not a W_
amazing this hasn't caused any problems before now
Simon Marlow [Mon, 3 Aug 2009 11:28:03 +0000 (11:28 +0000)]
Fix #3412: the worker of an Id might not be a local Id
Simon Marlow [Mon, 3 Aug 2009 10:44:13 +0000 (10:44 +0000)]
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
Simon Marlow [Sat, 20 Jun 2009 21:41:13 +0000 (21:41 +0000)]
remove dead code
Simon Marlow [Wed, 29 Jul 2009 13:43:48 +0000 (13:43 +0000)]
fix warnings
Simon Marlow [Wed, 29 Jul 2009 13:21:25 +0000 (13:21 +0000)]
Implement "ghc --abi-hash M1 M2 ..."
This prints a combined hash of the ABIs exposed by the modules listed
on the command line. It will be used by Cabal for generating a
package Id based on the actual ABI of a package.
Ian Lynagh [Sun, 2 Aug 2009 19:57:59 +0000 (19:57 +0000)]
Clean GMP properly; fixes #3411
Ian Lynagh [Sun, 2 Aug 2009 16:12:37 +0000 (16:12 +0000)]
Fix permissions when installing
Ian Lynagh [Sun, 2 Aug 2009 11:42:02 +0000 (11:42 +0000)]
Fix creation of library doc index, and put the library docs in bindists
Ian Lynagh [Sun, 2 Aug 2009 10:39:44 +0000 (10:39 +0000)]
Remove a TODO item that's been done
Ian Lynagh [Sat, 1 Aug 2009 22:41:55 +0000 (22:41 +0000)]
Add a publish-docs rule
Ian Lynagh [Sat, 1 Aug 2009 22:25:51 +0000 (22:25 +0000)]
Add docs to bindists
Ian Lynagh [Sat, 1 Aug 2009 21:26:04 +0000 (21:26 +0000)]
Fix "make show" in a bindist
Ian Lynagh [Sat, 1 Aug 2009 20:46:24 +0000 (20:46 +0000)]
Make the new build system install the documentation
Ian Lynagh [Sat, 1 Aug 2009 19:52:21 +0000 (19:52 +0000)]
whitespace tweaks in rules/docbook.mk
Ian Lynagh [Sat, 1 Aug 2009 18:28:17 +0000 (18:28 +0000)]
Fix configure when alex/happy are installed to a directory containing spaces
Ian Lynagh [Sat, 1 Aug 2009 15:32:03 +0000 (15:32 +0000)]
Allow more than 64k instructions in a BCO; fixes #789
Ian Lynagh [Sat, 1 Aug 2009 13:28:29 +0000 (13:28 +0000)]
If ghci runs out of labels, panic
Ian Lynagh [Sat, 1 Aug 2009 13:00:14 +0000 (13:00 +0000)]
Fix the 64k insns overflow check in ghci, and add more checks
Ian Lynagh [Thu, 30 Jul 2009 14:31:29 +0000 (14:31 +0000)]
Fix cleaning the integer package
Ian Lynagh [Thu, 30 Jul 2009 14:30:31 +0000 (14:30 +0000)]
Fix warnings when building with the HEAD
Ian Lynagh [Thu, 30 Jul 2009 10:55:32 +0000 (10:55 +0000)]
Remove some redundant fromIntegral's
Ian Lynagh [Thu, 30 Jul 2009 10:53:51 +0000 (10:53 +0000)]
Fix space problems in ghci
We were making arrays with range (0, n-1) which is bad if n == 0 now
that we are using Word types.
Ian Lynagh [Wed, 29 Jul 2009 13:09:11 +0000 (13:09 +0000)]
Make the types we use when creating GHCi bytecode better match reality
We were keeping things as Int, and then converting them to Word16 at
the last minute, when really they ought to have been Word16 all along.
Ian Lynagh [Tue, 28 Jul 2009 13:44:36 +0000 (13:44 +0000)]
Add an (Outputable Word16) instance
Ian Lynagh [Tue, 28 Jul 2009 12:34:44 +0000 (12:34 +0000)]
Fix whitespace in ByteCodeAsm.lhs
Simon Marlow [Wed, 29 Jul 2009 07:54:33 +0000 (07:54 +0000)]
Add CHECK(p), like ASSERT(p) but works even when !defined(DEBUG)
For inexpensive assertions
Simon Marlow [Wed, 29 Jul 2009 07:53:07 +0000 (07:53 +0000)]
enable the x86-specific versions of atomic_inc()/atomic_dec()