ghc.git
6 years agoAvoid allocating while holding a lock (#8242)
Takano Akio [Fri, 6 Sep 2013 10:55:37 +0000 (19:55 +0900)] 
Avoid allocating while holding a lock (#8242)

This reverts commit 6770663f764db76dbb7138ccb3aea0527d194151.

If the program enters the garbage collector with the closure
lock held, it will confuse the garbage collector and will
result in an infinite loop in evacuate().

Signed-off-by: Austin Seipp <aseipp@pobox.com>
6 years agoDefault to infinite stack size (#8189)
Austin Seipp [Sun, 8 Sep 2013 07:08:45 +0000 (02:08 -0500)] 
Default to infinite stack size (#8189)

When servicing a stack overflows, only throw an exception to the given
thread if the user explicitly set a max stack size, using +RTS -K.
Otherwise just service it normally and grow the stack.

In case we actually run out of *heap* (stack chuncks are allocated on
the heap), then we need to bail by calling the stackOverflow() hook and
exit immediately.

Authored-by: Ben Gamari <bgamari.foss@gmail.com>
Signed-off-by: Austin Seipp <aseipp@pobox.com>
6 years agoresurrected -fdicts-strict, off by default
Nicolas Frisby [Wed, 17 Jul 2013 15:39:25 +0000 (10:39 -0500)] 
resurrected -fdicts-strict, off by default

also added -fdmd-tx-dict-sel, on by default

6 years agoRecord PAP allocation to CCCS.
Edward Z. Yang [Sat, 7 Sep 2013 21:16:37 +0000 (14:16 -0700)] 
Record PAP allocation to CCCS.

Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
6 years agoFix ghc-pkg list --simple-output not being alphabetical (#8245).
Niklas Hambüchen [Fri, 6 Sep 2013 14:23:24 +0000 (23:23 +0900)] 
Fix ghc-pkg list --simple-output not being alphabetical (#8245).

It was sorted by version number so far.

I also added a sort to the normal output (without --simple-output)
since the source it comes from does not guarantee sortedness.

Signed-off-by: Austin Seipp <aseipp@pobox.com>
6 years agoAdd basic support for GHCJS
Austin Seipp [Fri, 6 Sep 2013 18:18:11 +0000 (13:18 -0500)] 
Add basic support for GHCJS

This patch encompasses most of the basic infrastructure for GHCJS. It
includes:

  * A new extension, -XJavaScriptFFI
  * A new architecture, ArchJavaScript
  * Parser and lexer support for 'foreign import javascript', only
    available under -XJavaScriptFFI, using ArchJavaScript.
  * As a knock-on, there is also a new 'WayCustom' constructor in
    DynFlags, so clients of the GHC API can add custom 'tags' to their
    built files. This should be useful for other users as well.

The remaining changes are really just the resulting fallout, making sure
all the cases are handled appropriately for DynFlags and Platform.

Authored-by: Luite Stegeman <stegeman@gmail.com>
Signed-off-by: Austin Seipp <aseipp@pobox.com>
6 years agoFix link to launchbury93natural
Joachim Breitner [Fri, 6 Sep 2013 09:10:25 +0000 (11:10 +0200)] 
Fix link to launchbury93natural

6 years agoWindows: load eh_frame as rodata, fixes #8237
Edward Z. Yang [Fri, 6 Sep 2013 06:34:58 +0000 (23:34 -0700)] 
Windows: load eh_frame as rodata, fixes #8237

Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
6 years agoTemporary Haskeline fix for Windows build.
Edward Z. Yang [Fri, 6 Sep 2013 01:38:45 +0000 (18:38 -0700)] 
Temporary Haskeline fix for Windows build.

Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
6 years agodocs only: update the release notes with atomic primops
Ryan Newton [Thu, 5 Sep 2013 22:38:25 +0000 (18:38 -0400)] 
docs only: update the release notes with atomic primops

6 years agoIgnore drectve sections, partially fixing #7056
Edward Z. Yang [Thu, 5 Sep 2013 00:43:35 +0000 (17:43 -0700)] 
Ignore drectve sections, partially fixing #7056

Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
6 years agoFix annoying iOS linker warnings (#8208)
Austin Seipp [Wed, 4 Sep 2013 22:35:53 +0000 (17:35 -0500)] 
Fix annoying iOS linker warnings (#8208)

Authored-by: Luke Iannini <lukexi@me.com>
Signed-off-by: Austin Seipp <aseipp@pobox.com>
6 years agoUpdate `Cabal` to 1.18.0 final
Herbert Valerio Riedel [Wed, 4 Sep 2013 21:59:06 +0000 (23:59 +0200)] 
Update `Cabal` to 1.18.0 final

6 years agoUpdate `containers` to 0.5.3.1 release
Herbert Valerio Riedel [Wed, 4 Sep 2013 18:50:15 +0000 (20:50 +0200)] 
Update `containers` to 0.5.3.1 release

6 years agodocumentation and comments for -ffun-to-thunk and -flate-dmd-anal
Nicolas Frisby [Wed, 4 Sep 2013 18:25:30 +0000 (13:25 -0500)] 
documentation and comments for -ffun-to-thunk and -flate-dmd-anal

6 years agoAdd a --no-dph flag to ./validate
Austin Seipp [Wed, 4 Sep 2013 18:15:40 +0000 (13:15 -0500)] 
Add a --no-dph flag to ./validate

Under --slow, the DPH tests can take incredible amounts of time to run.
And on some platforms, we may not have a fully working linker in order
to build DPH etc anyway. So this provides a way to turn it off.

This flag is off by default, but should your specify it, you can skip
the required 'dph' libraries in a build, should you remove them from the
source tree.

Signed-off-by: Austin Seipp <aseipp@pobox.com>
6 years agoMake sure -fcmm-sink is passed to Parser properly
Austin Seipp [Wed, 4 Sep 2013 16:23:03 +0000 (11:23 -0500)] 
Make sure -fcmm-sink is passed to Parser properly

Parser.hs needs to be compiled with -fcmm-sink on x86 platforms, so the
register allocator doesn't run out of stack slots. Previously, we had to
do some CPP hacks in order to emit an #ifdef into the file - this is
because we preprocess it once up front, and run the preprocessor again
when we compile it.

There's two cases: the boostrap compiler is > 7.8, and the stage1 parser
needs the flag, or the stage1 compiler is compiling the stage2
Parser.hs, and needs the flag..

The previous approach was super fragile with Clang. The more principled
fix is to instead do this through the build system.

This fixes #8182.

Signed-off-by: Austin Seipp <aseipp@pobox.com>
6 years agoRemove -fglasgow-exts from --help
Austin Seipp [Wed, 4 Sep 2013 16:13:30 +0000 (11:13 -0500)] 
Remove -fglasgow-exts from --help

It's been deprecated for who knows how long, and gives a warning.

Signed-off-by: Austin Seipp <aseipp@pobox.com>
6 years agoAdd --show-options to --help (#8190)
Austin Seipp [Wed, 4 Sep 2013 16:06:33 +0000 (11:06 -0500)] 
Add --show-options to --help (#8190)

Signed-off-by: Austin Seipp <aseipp@pobox.com>
6 years agoTurn manual Typeable instances into errors; fixes #8132
Jose Pedro Magalhaes [Wed, 4 Sep 2013 08:09:17 +0000 (10:09 +0200)] 
Turn manual Typeable instances into errors; fixes #8132

6 years agoFix definition of DefinerOfRegs for CmmForeignCall
Jan Stolarek [Wed, 4 Sep 2013 13:11:40 +0000 (14:11 +0100)] 
Fix definition of DefinerOfRegs for CmmForeignCall

And update comments

6 years agoMake role inference work on the source type of a data con
Simon Peyton Jones [Wed, 4 Sep 2013 11:07:01 +0000 (12:07 +0100)] 
Make role inference work on the source type of a data con

When inferring roles it is Much More Kosher to work on the source
type, as written by the user, rather than the representation type as
computed by GHC.  Error messages may be better and, more subtly, the
representation type is the result of a pretty complicated calculation
and I'm worried about accidental cycles.

6 years agoPut the interface-file typechecking of IfUnpackCo inside forkM
Simon Peyton Jones [Wed, 4 Sep 2013 11:05:01 +0000 (12:05 +0100)] 
Put the interface-file typechecking of IfUnpackCo inside forkM

Now that IfBangs can contain coercions, which can mention the
very type being typechecked, the tc_strict call must be inside
forkM. This led to Trac #8221

6 years agoImprove debug tracing a bit
Simon Peyton Jones [Wed, 4 Sep 2013 11:02:56 +0000 (12:02 +0100)] 
Improve debug tracing a bit

6 years agoFix over-eager unpacking in isUnpackableType
Simon Peyton Jones [Wed, 4 Sep 2013 11:02:42 +0000 (12:02 +0100)] 
Fix over-eager unpacking in isUnpackableType

This bug meant that we tried to unpack Link in

  data Link a = MkLink !(Link a)

when -funbox-small-strict-fields was on.  See Trac #8221.

6 years agoDon't refer to oc->next after freeing oc.
Simon Marlow [Wed, 4 Sep 2013 10:08:10 +0000 (11:08 +0100)] 
Don't refer to oc->next after freeing oc.

6 years agoFix printf formats for pathchar on Windows (where it's wchar_t, not char)
Simon Marlow [Wed, 4 Sep 2013 10:00:12 +0000 (11:00 +0100)] 
Fix printf formats for pathchar on Windows (where it's wchar_t, not char)

6 years agoDon't move Capabilities in setNumCapabilities (#8209)
Simon Marlow [Wed, 4 Sep 2013 09:37:10 +0000 (10:37 +0100)] 
Don't move Capabilities in setNumCapabilities (#8209)

We have various problems with reallocating the array of Capabilities,
due to threads in waitForReturnCapability that are already holding a
pointer to a Capability.

Rather than add more locking to make this safer, I decided it would be
easier to ensure that we never move the Capabilities at all.  The
capabilities array is now an array of pointers to Capabaility.  There
are extra indirections, but it rarely matters - we don't often access
Capabilities via the array, normally we already have a pointer to
one.  I ran the parallel benchmarks and didn't see any difference.

6 years agoHack-fix build breakage on Linux/GCC from fc4856f9
Herbert Valerio Riedel [Wed, 4 Sep 2013 08:00:08 +0000 (10:00 +0200)] 
Hack-fix build breakage on Linux/GCC from fc4856f9

For some reason, the new `GccIsClang` variable introduced via
fc4856f9e811d9a23ae9212f43a09ddf5ef12b26 for addressing #8148
isn't set explicitly to `NO`; so this simply changes the test
`ifeq $(GccIsClang) NO` to `ifneq $(GccIsClang) YES` which
should fix the build with and w/o Clang.

6 years agoMake validate play nice with clang (for Xcode 5 command line tools)
Manuel M T Chakravarty [Wed, 4 Sep 2013 05:29:03 +0000 (15:29 +1000)] 
Make validate play nice with clang (for Xcode 5 command line tools)

* This partially fixes #8148. However, --with-ghc-4.8 will still not work given the rather dubious m4 macros and the failures in the test suite due to '-nodefaultlibs' still need to be fixed.

6 years agoAllow non-Nominal covars (bugfix)
Richard Eisenberg [Tue, 3 Sep 2013 14:27:02 +0000 (10:27 -0400)] 
Allow non-Nominal covars (bugfix)

6 years agoFix #7918
Edsko de Vries [Tue, 3 Sep 2013 11:51:10 +0000 (12:51 +0100)] 
Fix #7918

6 years agoComments and type synonym in CmmSink
Jan Stolarek [Tue, 3 Sep 2013 10:51:51 +0000 (11:51 +0100)] 
Comments and type synonym in CmmSink

6 years agoComment only
Simon Peyton Jones [Tue, 3 Sep 2013 08:10:35 +0000 (09:10 +0100)] 
Comment only

6 years agoImprove Linting in GHCi (fixes Trac #8215)
Simon Peyton Jones [Tue, 3 Sep 2013 08:10:26 +0000 (09:10 +0100)] 
Improve Linting in GHCi (fixes Trac #8215)

The original problem was that we weren't bringing varaibles bound in the
interactive context into scope before Linting the result of a top-level
declaration in GHCi.  (We were doing this for expressions.)

Moreover I found that we weren't Linting the result of desugaring
a GHCi expression, which we really should be doing.

It took me a bit of time to unravel all this, and I did some refactoring
to make it easier next time.

  * CoreMonad contains the Lint wrappers that get the right
    environments into place.  It always had endPass and lintPassResult
    (which Lints bindings), but now it has lintInteractiveExpr.

  * Both use a common function CoreMonad.interactiveInScope to find
    those in-scope variables.

Quite a bit of knock-on effects from this, but nothing exciting.

6 years agoPatch by lukexi.
Gabor Greif [Tue, 3 Sep 2013 02:14:48 +0000 (04:14 +0200)] 
Patch by lukexi.

Fixing #8217 for the unix(-like) case.

6 years agoExtend `packages` by 4th column for upstream repo
Herbert Valerio Riedel [Mon, 2 Sep 2013 14:32:28 +0000 (16:32 +0200)] 
Extend `packages` by 4th column for upstream repo

By keeping the repository url in the `packages` file scripts such as
source:ghc/sync-all can pick it up. Moreover, it's easier to
automatically validate for correctness than the
wiki:Repositories/Upstream page.

6 years agoComments only
Jan Stolarek [Mon, 2 Sep 2013 13:25:58 +0000 (14:25 +0100)] 
Comments only

6 years agoImprove documentation for the 7.8 release
Simon Peyton Jones [Mon, 2 Sep 2013 08:51:42 +0000 (09:51 +0100)] 
Improve documentation for the 7.8 release

* Document ExplicitNamespaces
* Improve documentation of ambiguity, and AllowAmbiguousTypes
* Improve documentation of overlapping/incoherent instance rules
* List language extensions in alphabetical order

6 years agoMake Specialise close over kind variables (fixes Trac #8196)
Simon Peyton Jones [Mon, 2 Sep 2013 08:49:40 +0000 (09:49 +0100)] 
Make Specialise close over kind variables (fixes Trac #8196)

This is a lingering bug from the introduction of polymorphic kinds.
In the specialiser we were specialising over a type, but failing
to specialise over the kinds it mentions.

The fix is simple: add a call to closeOverKinds.

Most of the patch is to add closeOverKinds, and to use it in a few
other places where we are doing essentially the same thing.

6 years agoRemove the final vestiges of InlineWrappers
Simon Peyton Jones [Mon, 2 Sep 2013 08:46:59 +0000 (09:46 +0100)] 
Remove the final vestiges of InlineWrappers

Part of Nick Frisby's patch (c080f727ba5f83921b842fcff71e9066adbdc250)
for late demand-analysis removed the over-zealous short-cut whereby
strictness wrappers were not spelled out in detail in interface files.

This patch completes the process by
 * removing InlineWrapper from UnfoldingSource
 * removing IfWrapper from IfaceUnfolding

There was a tiny bit of special ad-hocery for wrappers, in OccurAnal,
but fortunately that too turns out to be rendered irrelevant by
the more uniform treatment, and after that there was no need
to remember which functions are wrappers.

6 years agoExplicit import lists for StgCmmProf.
Edward Z. Yang [Thu, 8 Aug 2013 21:46:29 +0000 (14:46 -0700)] 
Explicit import lists for StgCmmProf.

Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
6 years agoComment fix
Gabor Greif [Sat, 31 Aug 2013 21:39:51 +0000 (23:39 +0200)] 
Comment fix

6 years agominor: remove tabs from file
Ryan Newton [Sat, 31 Aug 2013 20:10:05 +0000 (16:10 -0400)] 
minor: remove tabs from file

6 years agoMerge branch 'master' into atomics
Ryan Newton [Sat, 31 Aug 2013 19:28:02 +0000 (15:28 -0400)] 
Merge branch 'master' into atomics

6 years agoTeach `validate` script how to `--help`
Herbert Valerio Riedel [Sat, 31 Aug 2013 14:42:06 +0000 (16:42 +0200)] 
Teach `validate` script how to `--help`

This basically turns the comment at the beginning of the `validate`
shell script into an interactive `--help` output plus some minor additions.

6 years agoUpdate `haskeline` library to latest HEAD
Herbert Valerio Riedel [Sat, 31 Aug 2013 08:19:55 +0000 (10:19 +0200)] 
Update `haskeline` library to latest HEAD

(+ 3 outstanding local patches)

6 years agoNote unloadObj changes in release notes.
Austin Seipp [Fri, 30 Aug 2013 22:40:38 +0000 (17:40 -0500)] 
Note unloadObj changes in release notes.

Signed-off-by: Austin Seipp <aseipp@pobox.com>
6 years agoTypo in release notes regarding -dynamic-too
Austin Seipp [Fri, 30 Aug 2013 22:40:23 +0000 (17:40 -0500)] 
Typo in release notes regarding -dynamic-too

Signed-off-by: Austin Seipp <aseipp@pobox.com>
6 years agoUpdate time to 1.4.1 release
Herbert Valerio Riedel [Fri, 30 Aug 2013 15:27:00 +0000 (17:27 +0200)] 
Update time to 1.4.1 release

6 years agoFix off-by-one error in FastString.getFastStringTable (#8110)
Patrick Palka [Fri, 30 Aug 2013 15:14:40 +0000 (11:14 -0400)] 
Fix off-by-one error in FastString.getFastStringTable (#8110)

The function was reading past the end of the FastString table, causing
the -dfaststring-stats option to behave unpredictably.

6 years agoExport languageExtensions as part of the API.
Jan Stolarek [Fri, 30 Aug 2013 14:19:16 +0000 (15:19 +0100)] 
Export languageExtensions as part of the API.

Fixes #8200

6 years agoFix comment typos that interfere with syntax highlighting
Patrick Palka [Thu, 21 Mar 2013 14:40:16 +0000 (10:40 -0400)] 
Fix comment typos that interfere with syntax highlighting

6 years agoHaddockify documentation in HsBinds and HsExpr
Dan Frumin [Thu, 29 Aug 2013 20:14:02 +0000 (20:14 +0000)] 
Haddockify documentation in HsBinds and HsExpr

Fixes #8201

6 years agoUpdate binary to 0.7.1.0 release
Herbert Valerio Riedel [Fri, 30 Aug 2013 12:51:54 +0000 (14:51 +0200)] 
Update binary to 0.7.1.0 release

6 years agoUpdate containers to 0.5.2.1 release
Herbert Valerio Riedel [Fri, 30 Aug 2013 11:04:12 +0000 (13:04 +0200)] 
Update containers to 0.5.2.1 release

(+ local fix for PolyTypeable)

6 years agoFix minor error regarding NumDecimals.
Austin Seipp [Fri, 30 Aug 2013 07:01:32 +0000 (02:01 -0500)] 
Fix minor error regarding NumDecimals.

Signed-off-by: Austin Seipp <aseipp@pobox.com>
6 years agoRelease note blurb about IncoherentInstances.
Austin Seipp [Fri, 30 Aug 2013 03:15:31 +0000 (22:15 -0500)] 
Release note blurb about IncoherentInstances.

Signed-off-by: Austin Seipp <aseipp@pobox.com>
6 years agoImprove documentation of the new IncoherentInstances behaviour
Joachim Breitner [Mon, 19 Aug 2013 10:24:18 +0000 (12:24 +0200)] 
Improve documentation of the new IncoherentInstances behaviour

Signed-off-by: Austin Seipp <aseipp@pobox.com>
6 years agoLiberalising IncoherentInstances
Joachim Breitner [Mon, 19 Aug 2013 08:24:25 +0000 (10:24 +0200)] 
Liberalising IncoherentInstances

(Almost) as suggested by SPJ on
http://www.haskell.org/pipermail/glasgow-haskell-users/2013-July/022651.html
(fixes #8141)

Signed-off-by: Austin Seipp <aseipp@pobox.com>
6 years agoAdd flag docs for -dynamic-too (#8181)
Austin Seipp [Thu, 29 Aug 2013 22:59:40 +0000 (17:59 -0500)] 
Add flag docs for -dynamic-too (#8181)

Signed-off-by: Austin Seipp <aseipp@pobox.com>
6 years agoTreat EPERM error from mmap as an OOM (#7500)
Reid Barton [Wed, 28 Aug 2013 20:16:08 +0000 (16:16 -0400)] 
Treat EPERM error from mmap as an OOM (#7500)

Linux can give back EPERM from an mmap call when a user program attempts
to map pages near `mmap_min_addr`, which is a kernel security measure to
prevent people from mapping pages at address 0. We may do this when we
hint to mmap what address to map the pages to.

However, it's theoretically possible we're not actually out of memory -
we could have continuously mapped pages at some other place far away
from `mmap_min_addr` and succeeded instead. So as an added precaution,
if mmap for a given addr gives us EPERM, we'll also attempt to map
*again*, but without the address hint. Maybe the kernel can do the right
thing.

However, while testing #7500, the amount of free address space we could
have otherwise used only turns out to be about 139MB. Which isn't really
a lot. So, given that, we *also* otherwise treat EPERM as an out of
memory error.

This fixes #7500.

Signed-off-by: Austin Seipp <aseipp@pobox.com>
6 years agoAdd release notes about -dynamic-too
Austin Seipp [Thu, 29 Aug 2013 22:44:23 +0000 (17:44 -0500)] 
Add release notes about -dynamic-too

See #8181.

Signed-off-by: Austin Seipp <aseipp@pobox.com>
6 years agoAdd -fwarn-overloaded-literals to release notes.
Austin Seipp [Thu, 29 Aug 2013 22:37:56 +0000 (17:37 -0500)] 
Add -fwarn-overloaded-literals to release notes.

Signed-off-by: Austin Seipp <aseipp@pobox.com>
6 years agoRemove some redundancy.
Austin Seipp [Thu, 29 Aug 2013 22:36:17 +0000 (17:36 -0500)] 
Remove some redundancy.

Signed-off-by: Austin Seipp <aseipp@pobox.com>
6 years agoRevert "Check for integer overflow in osGetMBlocks"
Austin Seipp [Thu, 29 Aug 2013 22:30:16 +0000 (17:30 -0500)] 
Revert "Check for integer overflow in osGetMBlocks"

This reverts commit 48865521de6638240819b3979edbb3d33401dc8e.

Signed-off-by: Austin Seipp <aseipp@pobox.com>
6 years agoRevert "Paranoid integer overflow check in my_mmap"
Austin Seipp [Thu, 29 Aug 2013 22:30:14 +0000 (17:30 -0500)] 
Revert "Paranoid integer overflow check in my_mmap"

This reverts commit 1ce65edbff90fc8103062a1f94258ecc0c682309.

Signed-off-by: Austin Seipp <aseipp@pobox.com>
6 years agoRevert "Paranoid integer overflow check in osGetMBlocks"
Austin Seipp [Thu, 29 Aug 2013 22:30:11 +0000 (17:30 -0500)] 
Revert "Paranoid integer overflow check in osGetMBlocks"

This reverts commit 1247dff7b852d45dc5006ae8be33ac991cc76c74.

Signed-off-by: Austin Seipp <aseipp@pobox.com>
6 years agoParanoid integer overflow check in osGetMBlocks
Reid Barton [Wed, 28 Aug 2013 21:13:41 +0000 (17:13 -0400)] 
Paranoid integer overflow check in osGetMBlocks

Signed-off-by: Austin Seipp <aseipp@pobox.com>
6 years agoParanoid integer overflow check in my_mmap
Reid Barton [Wed, 28 Aug 2013 21:13:21 +0000 (17:13 -0400)] 
Paranoid integer overflow check in my_mmap

Signed-off-by: Austin Seipp <aseipp@pobox.com>
6 years agoCheck for integer overflow in osGetMBlocks
Reid Barton [Wed, 28 Aug 2013 21:08:19 +0000 (17:08 -0400)] 
Check for integer overflow in osGetMBlocks

Fixes Trac #5188.

Signed-off-by: Austin Seipp <aseipp@pobox.com>
6 years agoDocument :kind! in ghci built-in help
Reid Barton [Thu, 29 Aug 2013 03:00:47 +0000 (23:00 -0400)] 
Document :kind! in ghci built-in help

Signed-off-by: Austin Seipp <aseipp@pobox.com>
6 years agosimplified the .hi format and added the -flate-dmd-anal flag (fixes #7782)
Nicolas Frisby [Thu, 22 Aug 2013 20:05:30 +0000 (15:05 -0500)] 
simplified the .hi format and added the -flate-dmd-anal flag (fixes #7782)

cf http://ghc.haskell.org/trac/ghc/wiki/LateDmd

6 years agoImprove docs for -XNegativeLiterals
Simon Peyton Jones [Thu, 29 Aug 2013 12:01:16 +0000 (13:01 +0100)] 
Improve docs for -XNegativeLiterals

6 years agoRefactor to avoid gratuitous DEBUG warning
Simon Peyton Jones [Wed, 28 Aug 2013 15:38:54 +0000 (16:38 +0100)] 
Refactor to avoid gratuitous DEBUG warning

6 years agoImprove TcSimplify.approximateWC, fixing Trac #8155
Simon Peyton Jones [Wed, 28 Aug 2013 15:37:59 +0000 (16:37 +0100)] 
Improve TcSimplify.approximateWC, fixing Trac #8155

See Note [ApproximateWC]

6 years agoImprove debug error message for applyTypeToArgs
Simon Peyton Jones [Wed, 28 Aug 2013 14:13:30 +0000 (15:13 +0100)] 
Improve debug error message for applyTypeToArgs

6 years agoDisplay the full type environment when reporting type holes
Simon Peyton Jones [Wed, 28 Aug 2013 14:12:17 +0000 (15:12 +0100)] 
Display the full type environment when reporting type holes

This fixes Trac #8191.

The patch also adds and documents a new flag -fmax-relevant-bindings=N
which lets you control how many bindings in the type environment are shown.

6 years agoRevert "Update submodules"
Jan Stolarek [Thu, 29 Aug 2013 12:12:04 +0000 (13:12 +0100)] 
Revert "Update submodules"

This reverts commit 6df74382986fad6d9132e03e1f19303be8f19672.

6 years agoUpdate submodules
Jan Stolarek [Thu, 29 Aug 2013 11:57:36 +0000 (12:57 +0100)] 
Update submodules

I didn't notice that rebase did not update submodules. Fixing now.

6 years agoOptimize self-recursive tail calls
Jan Stolarek [Thu, 29 Aug 2013 09:57:04 +0000 (10:57 +0100)] 
Optimize self-recursive tail calls

This patch implements loopification optimization. It was described
in "Low-level code optimisations in the Glasgow Haskell Compiler" by
Krzysztof Woś, but we use a different approach here. Krzysztof's
approach was to perform optimization as a Cmm-to-Cmm pass. Our
approach is to generate properly optimized tail calls in the code
generator, which saves us the trouble of processing Cmm. This idea
was proposed by Simon Marlow. Implementation details are explained
in Note [Self-recursive tail calls].

Performance of most nofib benchmarks is not affected. There are
some benchmarks that show 5-7% improvement, with an average improvement
of 2.6%. It would require some further investigation to check if this
is related to benchamrking noise or does this optimization really
help make some class of programs faster.

As a minor cleanup, this patch renames forkProc to forkLneBody.
It also moves some data declarations from StgCmmMonad to
StgCmmClosure, because they are needed there and it seems that
StgCmmClosure is on top of the whole StgCmm* hierarchy.

6 years agoWhitespaces and comment formatting
Jan Stolarek [Thu, 29 Aug 2013 09:56:48 +0000 (10:56 +0100)] 
Whitespaces and comment formatting

6 years agoUpdate `bytestring` library to latest HEAD
Herbert Valerio Riedel [Thu, 29 Aug 2013 08:20:26 +0000 (10:20 +0200)] 
Update `bytestring` library to latest HEAD

This also folds the new upstream repo at Github into GHC's `bytestring` Git
repo, so that we can directly track upstream from there in the future.

6 years agoUpdate Cabal to 1.18.0 RC2
Herbert Valerio Riedel [Thu, 29 Aug 2013 08:12:58 +0000 (10:12 +0200)] 
Update Cabal to 1.18.0 RC2

6 years agoMore docs for -XNumDecimals
Austin Seipp [Thu, 29 Aug 2013 04:18:16 +0000 (23:18 -0500)] 
More docs for -XNumDecimals

Signed-off-by: Austin Seipp <aseipp@pobox.com>
6 years agoFix validate failure.
Austin Seipp [Thu, 29 Aug 2013 01:16:46 +0000 (20:16 -0500)] 
Fix validate failure.

Signed-off-by: Austin Seipp <aseipp@pobox.com>
6 years agoWibbles.
Austin Seipp [Wed, 28 Aug 2013 22:36:05 +0000 (17:36 -0500)] 
Wibbles.

Signed-off-by: Austin Seipp <aseipp@pobox.com>
6 years agoMention iOS cross compilation in release notes.
Austin Seipp [Wed, 28 Aug 2013 22:28:55 +0000 (17:28 -0500)] 
Mention iOS cross compilation in release notes.

Signed-off-by: Austin Seipp <aseipp@pobox.com>
6 years agoWibbles.
Austin Seipp [Wed, 28 Aug 2013 22:25:08 +0000 (17:25 -0500)] 
Wibbles.

Signed-off-by: Austin Seipp <aseipp@pobox.com>
6 years agoDocument -XNegativeLiterals in the relase notes.
Austin Seipp [Wed, 28 Aug 2013 22:25:00 +0000 (17:25 -0500)] 
Document -XNegativeLiterals in the relase notes.

Signed-off-by: Austin Seipp <aseipp@pobox.com>
6 years agoDetabify RnPat.lhs
Austin Seipp [Wed, 28 Aug 2013 22:18:47 +0000 (17:18 -0500)] 
Detabify RnPat.lhs

Signed-off-by: Austin Seipp <aseipp@pobox.com>
6 years agoImplement -XNumDecimals (#7266)
Austin Seipp [Wed, 28 Aug 2013 22:14:06 +0000 (17:14 -0500)] 
Implement -XNumDecimals (#7266)

Under -XNumDecimals, it's possible to specify an integer literal using
compact "floating point" syntax for any floating literal constant which
also happens to be an integer. This lets us write

    1.2e6 :: Integer

instead of:

    1200000 :: Integer

This also makes some amendments to the users guide.

Authored-by: Shachaf Ben-Kiki <shachaf@gmail.com>
Signed-off-by: Austin Seipp <aseipp@pobox.com>
6 years agoApplicative instance for Ghc and GhcT
Dan Frumin [Mon, 26 Aug 2013 14:53:37 +0000 (14:53 +0000)] 
Applicative instance for Ghc and GhcT

Fixes #8175.

Signed-off-by: Austin Seipp <aseipp@pobox.com>
6 years agoRework how iOS does linking (#8127)
Austin Seipp [Wed, 28 Aug 2013 21:55:42 +0000 (16:55 -0500)] 
Rework how iOS does linking (#8127)

iOS has some particular constraints about how applications can be built:

 * We must generate a static library (.a) since XCode does the final
   link.
 * We need to carefully give the right set of arguments to libtool in
   the case we're generating an archive.
 * Dynamic linking isn't supported.
 * It can only be done on OS X.

This patch cleans up all of the above. We add a new flag `-staticlib`
(only supported on Darwin) that allows us to produce archive files using
libtool, and a -pgmlibtool flag to control which 'libtool' executable to
use.

This fixes #8127. I believe this is the last piece missing from the iOS
cross compiler.

Authored-by: Luke Iannini <lukexi@me.com>
Authored-by: Maxwell Swadling <maxwellswadling@gmail.com>
Authored-by: Stephen Blackheath <...@blacksapphire.com>
Signed-off-by: Austin Seipp <aseipp@pobox.com>
6 years agoClarify comments about apartness
Richard Eisenberg [Wed, 28 Aug 2013 16:09:33 +0000 (12:09 -0400)] 
Clarify comments about apartness

6 years agoAdd check for obsolete `darcs.haskell.org` repo urls
Herbert Valerio Riedel [Wed, 28 Aug 2013 15:56:15 +0000 (17:56 +0200)] 
Add check for obsolete `darcs.haskell.org` repo urls

If the check detects an obsolete URL, show a warning and tell the user how
to invoke `sync-all` in order to update the local Git repo to point to the new
repository URLs.

This is related to #8121

6 years agoImprove error messages for roles by writing role names out
Richard Eisenberg [Wed, 28 Aug 2013 02:07:39 +0000 (22:07 -0400)] 
Improve error messages for roles by writing role names out

6 years agoFix Trac #8186.
Richard Eisenberg [Tue, 27 Aug 2013 21:39:08 +0000 (17:39 -0400)] 
Fix Trac #8186.

Parallel list comprehensions are now handled in DsMeta.

6 years agoUpdate `-ddump-minimal-imports` entry in user's guide
Herbert Valerio Riedel [Tue, 27 Aug 2013 20:54:41 +0000 (22:54 +0200)] 
Update `-ddump-minimal-imports` entry in user's guide

The entry is updated to mention explicitly the feature implemented
for #7957, as well as rewording and improving the docbook markup.

Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>
6 years agoMake `-ddump-minimal-imports` honour `-dumpdir` flag
Herbert Valerio Riedel [Sun, 25 Aug 2013 15:24:14 +0000 (17:24 +0200)] 
Make `-ddump-minimal-imports` honour `-dumpdir` flag

The `-dumpdir` flag was added via 668c860b361f16 but failed to
take care of `-ddump-minimal-imports`'s output.
This commit makes up for that omission.

This addresses #7957

Signed-off-by: Herbert Valerio Riedel <hvr@gnu.org>