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()
Simon Marlow [Tue, 28 Jul 2009 10:38:55 +0000 (10:38 +0000)]
fix warning
Simon Marlow [Tue, 28 Jul 2009 10:27:07 +0000 (10:27 +0000)]
fix warning
Simon Marlow [Tue, 28 Jul 2009 10:17:31 +0000 (10:17 +0000)]
fix a warning
Simon Marlow [Tue, 28 Jul 2009 10:04:34 +0000 (10:04 +0000)]
Be a bit more sensible about choosing external OccNames
Instead of chr_$wchr, we now just get $wchr. In general, when an
OccName is system-generated, we leave it out of the final external
name, preferring to use the name of the exported parent instead (which
is necessarily a user-written name).
Names should be no less deterministic, but should be shorter and more
readable.
Simon Marlow [Mon, 27 Jul 2009 14:45:24 +0000 (14:45 +0000)]
Remove old 'foreign import dotnet' code
It still lives in darcs, if anyone wants to revive it sometime.
Simon Marlow [Mon, 27 Jul 2009 09:47:19 +0000 (09:47 +0000)]
remove a couple of ToDos
Simon Marlow [Mon, 27 Jul 2009 09:10:12 +0000 (09:10 +0000)]
buildinfo files need a $$(wildcard)
Simon Marlow [Mon, 27 Jul 2009 09:09:46 +0000 (09:09 +0000)]
Slight tweak to avoid overflowing the command-line size in bindist
Not a real fix: if this bites us again we'll have to rethink
Simon Marlow [Mon, 27 Jul 2009 09:09:03 +0000 (09:09 +0000)]
avoid (benign) error about overriding rules for binary-dist
Ian Lynagh [Sun, 26 Jul 2009 19:49:15 +0000 (19:49 +0000)]
Give a better error message for hidden packages when building Cabal package
Fixes #3168
Ian Lynagh [Sun, 26 Jul 2009 18:19:34 +0000 (18:19 +0000)]
Add a -fbuilding-cabal-package flag
This means GHC knows whether it's building a Cabal package, or just
Haskell sources. For example, it may wish to give different error
messages when building a Cabal package.
Ian Lynagh [Sat, 25 Jul 2009 13:47:03 +0000 (13:47 +0000)]
Add an extension to disable n+k patterns
Ian Lynagh [Fri, 24 Jul 2009 22:12:44 +0000 (22:12 +0000)]
Fix a warning on Windows
Ian Lynagh [Fri, 24 Jul 2009 21:08:25 +0000 (21:08 +0000)]
Remove GHC's haskell98 dependency
Simon Marlow [Fri, 24 Jul 2009 15:00:10 +0000 (15:00 +0000)]
add number of bytes to +RTS -DS leak reports
Simon Marlow [Fri, 24 Jul 2009 14:59:56 +0000 (14:59 +0000)]
free the gc_thread structures during shutdown
Simon Marlow [Fri, 24 Jul 2009 14:26:20 +0000 (14:26 +0000)]
Add atomic_inc()/atomic_dec(), and use them to replace gc_running_mutex
This also fixes a memory leak on Windows with -threaded, because we
were calling initMutex(&gc_running_mutex) for each GC, which allocates
memory.
Simon Marlow [Thu, 23 Jul 2009 15:21:38 +0000 (15:21 +0000)]
Rewrite the foreign import string parser using ReadP
And kill the duplicate one in HsSyn.Convert
Simon Marlow [Thu, 23 Jul 2009 13:23:45 +0000 (13:23 +0000)]
point to the wiki
Simon Marlow [Thu, 23 Jul 2009 11:10:26 +0000 (11:10 +0000)]
Remove note about avoiding use of #def in libraries
It should be safe to use now that we aren't relying on C prototypes
for foreign functions in via-C code.
Simon Marlow [Thu, 23 Jul 2009 09:12:30 +0000 (09:12 +0000)]
refactorings
simonpj@microsoft.com [Thu, 23 Jul 2009 15:58:03 +0000 (15:58 +0000)]
Fix Trac #3391: make generic to/from bindings only for newly-declared types
Before this patch we were bogusly making to/from bindings for all data types
in the TcGblEnv. But that is wrong when we have multiple "chunks" of
bindings in Template Haskell. We should start from the declarations
themselves. Easy.
simonpj@microsoft.com [Thu, 23 Jul 2009 15:24:11 +0000 (15:24 +0000)]
Print explicit braces and semicolons in do-notation
By printing explicit braces we make it more likely that pretty-printed
code will be acceptable if fed back into GHC.
See http://www.haskell.org/pipermail/glasgow-haskell-users/2009-July/017554.html
simonpj@microsoft.com [Thu, 23 Jul 2009 13:25:58 +0000 (13:25 +0000)]
Documentation for stand-alone deriving (Trac #3012)
Simon Marlow [Thu, 23 Jul 2009 12:19:13 +0000 (12:19 +0000)]
Windows only: set the encoding on stdin to utf8
Otherwise it defaults to latin1.
simonpj@microsoft.com [Thu, 23 Jul 2009 13:01:45 +0000 (13:01 +0000)]
Fix Trac #3012: allow more free-wheeling in standalone deriving
In standalone deriving, we now do *not* check side conditions.
We simply generate the code and typecheck it. If there's a type
error, it's the programmer's problem.
This means that you can do 'deriving instance Show (T a)', where
T is a GADT, for example, provided of course that the boilerplate
code does in fact typecheck.
I put some work into getting a decent error message. In particular
if there's a type error in a method, GHC will show the entire code
for that method (since, after all, the user did not write it).
Most of the changes are to achieve that goal.
Still to come: changes in the documentation.
simonpj@microsoft.com [Thu, 23 Jul 2009 13:01:08 +0000 (13:01 +0000)]
Use the ErrMsg record type
simonpj@microsoft.com [Thu, 23 Jul 2009 12:59:03 +0000 (12:59 +0000)]
Stop generating redundant parens in 'deriving' code
This makes the code printed by -ddump-deriv look prettier
simonpj@microsoft.com [Thu, 23 Jul 2009 12:57:56 +0000 (12:57 +0000)]
Wibble to printing tuple sections
simonpj@microsoft.com [Thu, 23 Jul 2009 06:55:04 +0000 (06:55 +0000)]
Fix Trac #3193: improve line number reporting for equality constraints
When reporting an error from a failed equality constraint, we were
setting the *context* but not the *line number* in TcTyFuns.eqInstMisMatch
As a result, the line number didn't match the context at all. It's
trivial to fix.
I'm 99% certain this fixes #3193, but it's too complicated to
reproduce, so I have not actually tested it.
simonpj@microsoft.com [Thu, 23 Jul 2009 06:49:32 +0000 (06:49 +0000)]
Add fmapM_maybe :: Monad m => (a -> m b) -> Maybe a -> m (Maybe b)
This function isn't used at the moment, but Max added it, and it
looks useful.
simonpj@microsoft.com [Thu, 23 Jul 2009 06:38:59 +0000 (06:38 +0000)]
Add tuple sections as a new feature
This patch adds tuple sections, so that
(x,,z) means \y -> (x,y,z)
Thanks for Max Bolinbroke for doing the hard work.
In the end, instead of using two constructors in HsSyn, I used
just one (still called ExplicitTuple) whose arguments can be
Present (LHsExpr id)
or Missing PostTcType
While I was at it, I did a bit of refactoring too.
Simon Marlow [Thu, 23 Jul 2009 07:50:30 +0000 (07:50 +0000)]
NetBSD defines _REENTRANT in its header files, so compiling ghc gives
redefinition warnings for all files that are including includes/Rts.h.
Contributed by: Krister Walfridsson <krister.walfridsson@gmail.com>
Samuel Bronson [Wed, 22 Jul 2009 17:03:54 +0000 (17:03 +0000)]
includes/TSO.h: kill trailing whitespace
Samuel Bronson [Wed, 22 Jul 2009 16:30:11 +0000 (16:30 +0000)]
Say what StgTSOBlockInfo is for, where to read about it.
Ian Lynagh [Wed, 22 Jul 2009 15:10:48 +0000 (15:10 +0000)]
Make the Integer library used directly configurable in GHC and base
Rather than indirecting through an integer package