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
Ian Lynagh [Wed, 22 Jul 2009 14:25:45 +0000 (14:25 +0000)]
Fix cleaning with the new integer changes
Ian Lynagh [Wed, 22 Jul 2009 01:31:37 +0000 (01:31 +0000)]
Add integer-simple as a build option
Ian Lynagh [Sun, 19 Jul 2009 22:13:03 +0000 (22:13 +0000)]
Tweak whitespace
Simon Marlow [Wed, 22 Jul 2009 10:22:19 +0000 (10:22 +0000)]
thenIO, bindIO, returnIO moved to GHC.Base
Simon Marlow [Mon, 20 Jul 2009 14:50:53 +0000 (14:50 +0000)]
remove unused $(HscIfaceFileVersion)
Simon Marlow [Mon, 20 Jul 2009 14:47:51 +0000 (14:47 +0000)]
Choose external names more predictably
Now, for a compiler-generated binding "x", if "x" is referred to by
the exported "f", then it will be named "f_x" rather than something
like "x23". This means that hopefully
- compilation will more often product the same results given the
same input (the choice of names is not dependent on the
non-deterministic order of bindings within the compiler).
- less recompilation will be necessary after making changes
- navigating Core might be a bit easier.
unfortunately, compilation with -O still does not consistently produce
the same ABI. The simplifier sometimes does different things,
apparently.
Names will be longer, but I can't see a way around that.
Simon Marlow [Fri, 17 Jul 2009 12:34:49 +0000 (12:34 +0000)]
Use stable ordering in the dependencies
Fixes another cause of wobbly interface files and unnecessary recompilation.
Simon Marlow [Thu, 16 Jul 2009 13:45:49 +0000 (13:45 +0000)]
fall back on libffi for 'foreign import "wrapper"' if necessary
simonpj@microsoft.com [Wed, 22 Jul 2009 05:09:33 +0000 (05:09 +0000)]
Take account of GADTs when reporting patterm-match overlap
When matching against a GADT, some of the constructors may be impossible.
For example
data T a where
T1 :: T Int
T2 :: T Bool
T3 :: T a
f :: T Int -> Int
f T1 = 3
f T3 = 4
Here, does not have any missing cases, despite omittting T2, because
T2 :: T Bool.
This patch teaches the overlap checker about GADTs, which happily
turned out to be rather easy even though the overlap checker needs
a serious rewrite.
simonpj@microsoft.com [Mon, 20 Jul 2009 06:12:26 +0000 (06:12 +0000)]
Fix Trac #3382: desugaring of NPats
Max spotted that the short-cut rules for desugaring NPats (where
we compare against a literal) were wrong now that we have overloaded
strings.
Ian Lynagh [Sun, 19 Jul 2009 20:01:24 +0000 (20:01 +0000)]
Add a -fwarn-dodgy-exports flag; fixes #1911
This is used to control warnings that were previously unconditional.
Ian Lynagh [Sun, 19 Jul 2009 11:17:09 +0000 (11:17 +0000)]
Build terminfo if we /aren't/ on Windows, not if we /are/
Ian Lynagh [Sat, 18 Jul 2009 21:00:58 +0000 (21:00 +0000)]
Change how PACKAGES is constructed, so that everything gets cleaned properly
If Windows wasn't defined properly then the Win32 package wasn't being
cleaned, as it wasn't added to PACKAGES. Now we always add everything to
PACKAGES when CLEANING=YES.
Ian Lynagh [Sat, 18 Jul 2009 18:34:45 +0000 (18:34 +0000)]
temporarily turn off unused import warnings for the time library
Ian Lynagh [Sat, 18 Jul 2009 15:56:18 +0000 (15:56 +0000)]
Follow the split directory rename in the GHC build system rules
Ian Lynagh [Sat, 18 Jul 2009 14:55:22 +0000 (14:55 +0000)]
Add osuf to the name we use for the split dir
This avoids a collision between the directories we use when compiling
multiple ways, which in turn leads to a race condition in parallel
builds.
Ian Lynagh [Sat, 18 Jul 2009 13:45:36 +0000 (13:45 +0000)]
Temporarily turn off unused-do-bind warnings for the time package
Ian Lynagh [Sat, 18 Jul 2009 13:15:55 +0000 (13:15 +0000)]
Make ghc-cabal handle "Custom" Setup.hs files that have a configure script
Ian Lynagh [Sat, 18 Jul 2009 12:16:49 +0000 (12:16 +0000)]
Add the time library, and support for libraries in tarballs
Ian Lynagh [Fri, 17 Jul 2009 22:42:03 +0000 (22:42 +0000)]
Always serialise Int as 64bit values; fixes trac #3041
This means that, provided the values are small enough, files
serialized are portable between architectures. In particular,
.haddock files are portable.
Ian Lynagh [Fri, 17 Jul 2009 22:41:00 +0000 (22:41 +0000)]
Remove some code that has always been commented out
simonpj@microsoft.com [Fri, 17 Jul 2009 15:57:22 +0000 (15:57 +0000)]
Fix Trac #3346: tcSimplify for LHS of RULES with type equalities
Ian Lynagh [Fri, 17 Jul 2009 13:35:22 +0000 (13:35 +0000)]
Allow mixed case in the LINE pragma; patch from squadette; fixes #1817
simonpj@microsoft.com [Fri, 17 Jul 2009 12:01:54 +0000 (12:01 +0000)]
Comment only
t-peterj@microsoft.com [Wed, 24 Jun 2009 13:44:07 +0000 (13:44 +0000)]
Add missing case for eq_note.
t-peterj@microsoft.com [Fri, 26 Jun 2009 10:54:40 +0000 (10:54 +0000)]
Rename parameters to make debugging code compile.
t-peterj@microsoft.com [Thu, 18 Jun 2009 09:22:35 +0000 (09:22 +0000)]
Comment fix: use the same variable names in the conclusion as in the premise.
Ian Lynagh [Fri, 17 Jul 2009 01:08:17 +0000 (01:08 +0000)]
Typo fixes, from Alexey Mahotkin
Simon Marlow [Thu, 16 Jul 2009 12:56:43 +0000 (12:56 +0000)]
Use names like '$fOrdInt' for dfuns (and TF instances), rather than '$f21'
2 reasons for this:
- compilation is more predictable. Adding or removing an instance
is less likely to force unnecessary recompilation due to
renumbering other dfun names.
- it makes it easier to read Core / C-- / asm
The names aren't completely deterministic. To do that, we'd have to
include package and module names, which would make the symbol names
long and reduce readability. So the compromise is that if there's a
clash, we disambiguate by adding an integer suffix. This is fairly
unlikely in practice unless you're using overlapping instances.
Type family instances are handled in the same way, with the same
disambiguation strategy.
Simon Marlow [Thu, 16 Jul 2009 12:26:01 +0000 (12:26 +0000)]
Use a stable ordering for the export list in the interface
The export list was ordered according to the whim of FastStrings,
which meant that interface fingerprints could change for no good
reason, causing spurious recompilation.
Ian Lynagh [Thu, 16 Jul 2009 13:13:09 +0000 (13:13 +0000)]
Don't put all of $CFLAGS into $SRC_CC_OPTS
Instead, we just put the flags we need in there (e.g. -m64 on OS X 64).
This fixes a problem found by Simon M, where we were compiling
everything with -g, leading to a bloated RTS.
Ian Lynagh [Thu, 16 Jul 2009 00:53:14 +0000 (00:53 +0000)]
Move showOpt into DynFlags
Ian Lynagh [Thu, 16 Jul 2009 00:17:18 +0000 (00:17 +0000)]
Make the --info values printable with "ghc --print-foo"; trac #3122
Also, libdir is now part of the --info output, so this subsumes the old
--print-libdir flag.
The mode parsing was getting rather adhoc, so I've tidied it up a bit
in the process.
Simon Marlow [Thu, 16 Jul 2009 10:42:17 +0000 (10:42 +0000)]
whitespace only
Simon Marlow [Thu, 16 Jul 2009 10:41:45 +0000 (10:41 +0000)]
refactor: use packageConfigId in place of mkPackageId . package
Ian Lynagh [Tue, 14 Jul 2009 16:59:43 +0000 (16:59 +0000)]
Fix a flag name in the docs
Ian Lynagh [Tue, 14 Jul 2009 16:56:31 +0000 (16:56 +0000)]
Add the -fno-shared-implib flag
Patch from
Max Bolingbroke <batterseapower@hotmail.com>
Rerecorded to avoid conflicts.
m.niloc@gmail.com [Sat, 11 Jul 2009 13:06:47 +0000 (13:06 +0000)]
Derived Foldable instances should use Data.Foldable.foldr
Simon Marlow [Mon, 13 Jul 2009 08:35:24 +0000 (08:35 +0000)]
remove Solaris-specific hacks, now unnecessary
Matthias Kilian [Sat, 11 Jul 2009 10:02:44 +0000 (10:02 +0000)]
Simplify timestamp restoration
Manuel M T Chakravarty [Tue, 14 Jul 2009 05:45:59 +0000 (05:45 +0000)]
FIX #3272
Roman Leshchinskiy [Mon, 13 Jul 2009 09:20:32 +0000 (09:20 +0000)]
Fix warnings
Roman Leshchinskiy [Mon, 13 Jul 2009 04:42:12 +0000 (04:42 +0000)]
Separate length from data in DPH arrays
Ian Lynagh [Thu, 9 Jul 2009 16:04:22 +0000 (16:04 +0000)]
Stop using -fno-warn-unused-do-bind when compiling the libraries
They're now fixed to not generate those warnings
Ian Lynagh [Thu, 9 Jul 2009 16:04:12 +0000 (16:04 +0000)]
Remove maybePrefixMatch, using stripPrefix instead
We already require GHC 6.8 to build, and that included stripPrefix
in Data.List.
Manuel M T Chakravarty [Fri, 10 Jul 2009 06:48:34 +0000 (06:48 +0000)]
TFs: FIX #2203 (second half)
Manuel M T Chakravarty [Fri, 10 Jul 2009 04:27:28 +0000 (04:27 +0000)]
TFs: Fix should_compile/Simple8
Simon Marlow [Thu, 9 Jul 2009 13:28:50 +0000 (13:28 +0000)]
workaround new Cygwin bash CRLF behaviour
Simon Marlow [Thu, 9 Jul 2009 12:46:16 +0000 (12:46 +0000)]
Use /usr/bin/test if it exists, and fix test syntax.
Should fix Solaris build failures
Ian Lynagh [Thu, 9 Jul 2009 15:37:37 +0000 (15:37 +0000)]
Allow mixed case pragmas; #1817. Patch from squadette
This patch allow you to use "Language CPP", or even "LaNgUaGe CPP",
if you wish, as the manual claims you can.
Simon Marlow [Mon, 6 Jul 2009 09:20:31 +0000 (09:20 +0000)]
don't create inplace/bin/ghc-<version>
Ian Lynagh [Tue, 7 Jul 2009 18:18:57 +0000 (18:18 +0000)]
Fix ignored-monadic-result warnings
Ian Lynagh [Tue, 7 Jul 2009 14:47:06 +0000 (14:47 +0000)]
Fix an unused import warning
Ian Lynagh [Tue, 7 Jul 2009 14:32:16 +0000 (14:32 +0000)]
Fix unused import warnings
Ian Lynagh [Tue, 7 Jul 2009 13:35:37 +0000 (13:35 +0000)]
Fix unused import warnings
Ian Lynagh [Tue, 7 Jul 2009 13:34:27 +0000 (13:34 +0000)]
When exporting F(..), all the children of F are also exported
This fixes the unused imports warning when
Foo (F(x,y,z))
is imported and
Foo (F(..))
is exported.
Ian Lynagh [Tue, 7 Jul 2009 12:15:48 +0000 (12:15 +0000)]
Remove unused imports
simonpj@microsoft.com [Mon, 6 Jul 2009 11:25:03 +0000 (11:25 +0000)]
Major patch to fix reporting of unused imports
This patch, joint work between and Ian and Simon, fixes Trac #1074
by reporting unused import declarations much more accuratly than
before. The specification is described at
http://hackage.haskell.org/trac/ghc/wiki/Commentary/Compiler/UnusedImports
The implementation is both easier to understand than before, and shorter
too.
Also fixed are #1148, #2267
Also fixed is -ddump-minimal imports, which now works properly, fixing
Trac #1792.
simonpj@microsoft.com [Mon, 6 Jul 2009 11:22:01 +0000 (11:22 +0000)]
Trim unused imports detected by new unused-import code
Simon Marlow [Tue, 7 Jul 2009 08:50:40 +0000 (08:50 +0000)]
Avoid unnecessary recompilation after ./configure (helps #3228)
We cache the old versions of files generated by configure, so that if
configure touches the file without changing it, we can detect that and
restore the timestamp.
Simon Marlow [Tue, 7 Jul 2009 08:18:45 +0000 (08:18 +0000)]
check for tabs in compiler/ghc.cabal.in (#3344)
Simon Marlow [Tue, 7 Jul 2009 08:18:23 +0000 (08:18 +0000)]
remove tabs
Simon Marlow [Fri, 3 Jul 2009 11:46:38 +0000 (11:46 +0000)]
fix cleaning of libraries (now 'make clean' in libraries/* works again)
Manuel M T Chakravarty [Tue, 7 Jul 2009 05:54:42 +0000 (05:54 +0000)]
FIX #2677
Ian Lynagh [Sun, 5 Jul 2009 20:40:41 +0000 (20:40 +0000)]
Update driver/Makefile for the new build system
Simon Marlow [Mon, 6 Jul 2009 11:22:27 +0000 (11:22 +0000)]
Fix generational GC bug (#3348)
simonpj@microsoft.com [Mon, 6 Jul 2009 10:34:13 +0000 (10:34 +0000)]
Windows fixes to build system: use the 'find' and 'sort' found by configure
The build system should use 'find' and 'sort' that are discovered by
configure, not the ones in your path. On Windows the ones in your path
might well be the non-Unixy Windows versions.
This patch fixes the ones I tripped over. There may be more.
Ian Lynagh [Sun, 5 Jul 2009 18:04:14 +0000 (18:04 +0000)]
Follow Cabal changes
Ian Lynagh [Sun, 5 Jul 2009 16:50:09 +0000 (16:50 +0000)]
Update TODO list
Ian Lynagh [Sun, 5 Jul 2009 13:24:20 +0000 (13:24 +0000)]
Make -fext-core a dynamic flag (it was a static flag)
Duncan Coutts [Sat, 4 Jul 2009 21:22:12 +0000 (21:22 +0000)]
Update a few points about shared libs in other sections
And add links to the new shared libs section.
Duncan Coutts [Sat, 4 Jul 2009 21:21:19 +0000 (21:21 +0000)]
Document -dynload flag. Also add it and -shared to the flags reference.
Duncan Coutts [Sat, 4 Jul 2009 21:20:03 +0000 (21:20 +0000)]
Add new section on using shared libs
Duncan Coutts [Sat, 4 Jul 2009 18:05:47 +0000 (18:05 +0000)]
Document foreign import prim in the user guide
Basically just stat that it exists and refer to the ghc dev wiki
for the details, because we don't really want people using it.
Ian Lynagh [Sat, 4 Jul 2009 21:06:54 +0000 (21:06 +0000)]
For now, use -fno-warn-unused-do-bind when building the libraries
Max Bolingbroke [Thu, 2 Jul 2009 15:09:43 +0000 (15:09 +0000)]
Make changes to -fwarn-unused-do-bind and -fwarn-wrong-do-bind suggested by SPJ
Max Bolingbroke [Wed, 1 Jul 2009 20:03:44 +0000 (20:03 +0000)]
Support for -fwarn-unused-do-bind and -fwarn-wrong-do-bind, as per #3263