ghc.git
5 years agoRevert "Fix typos 'resizze'"
Gabor Greif [Sat, 16 Aug 2014 17:20:18 +0000 (19:20 +0200)] 
Revert "Fix typos 'resizze'"
this is z-encoding (as hvr tells me)

This reverts commit 425d5178af55620efa00e6e16426f491c63ad533.

5 years agoFix typos 'resizze'
Gabor Greif [Sat, 16 Aug 2014 17:10:46 +0000 (19:10 +0200)] 
Fix typos 'resizze'

5 years agoImplement {resize,shrink}MutableByteArray# primops
Herbert Valerio Riedel [Sat, 16 Aug 2014 07:49:30 +0000 (09:49 +0200)] 
Implement {resize,shrink}MutableByteArray# primops

The two new primops with the type-signatures

  resizeMutableByteArray# :: MutableByteArray# s -> Int#
                          -> State# s -> (# State# s, MutableByteArray# s #)

  shrinkMutableByteArray# :: MutableByteArray# s -> Int#
                          -> State# s -> State# s

allow to resize MutableByteArray#s in-place (when possible), and are useful
for algorithms where memory is temporarily over-allocated. The motivating
use-case is for implementing integer backends, where the final target size of
the result is either N or N+1, and only known after the operation has been
performed.

A future commit will implement a stateful variant of the
`sizeofMutableByteArray#` operation (see #9447 for details), since now the
size of a `MutableByteArray#` may change over its lifetime (i.e before
it gets frozen or GCed).

Test Plan: ./validate --slow

Reviewers: ezyang, austin, simonmar

Reviewed By: austin, simonmar

Differential Revision: https://phabricator.haskell.org/D133

5 years agoMake configure's sed(1) expression for GHC_LDFLAGS more BSD-friendly.
Gabor Pali [Fri, 15 Aug 2014 15:45:18 +0000 (16:45 +0100)] 
Make configure's sed(1) expression for GHC_LDFLAGS more BSD-friendly.

5 years agoLlvmMangler: Be more selective when mangling object types
Ben Gamari [Fri, 15 Aug 2014 15:11:17 +0000 (11:11 -0400)] 
LlvmMangler: Be more selective when mangling object types

Summary:
We previously did a wholesale replace of `%function` to `%object` to
mangle object `.type` annotations. This is bad as it can end up
replacing appearances of `"%function"` in the user's code. We now look
for a proper `.type` keyword before performing the replacement.

Thanks to @rwbarton for pointing out the bug.

Test Plan:
Previously,

    $ echo 'main = putStrLn "@function"' > test.hs
    $ ghc -fllvm test.hs
    $ ./test
    @object

Now,
    $ echo 'main = putStrLn "@function"' > test.hs
    $ ghc -fllvm test.hs
    $ ./test
    @function

Reviewers: rwbarton, austin

Reviewed By: rwbarton, austin

Subscribers: phaskell, simonmar, relrod, ezyang, carter

Differential Revision: https://phabricator.haskell.org/D150

GHC Trac Issues: #9439

5 years agoDeclare `ghc-head` to be haddock's upstream branch
Herbert Valerio Riedel [Thu, 14 Aug 2014 17:51:01 +0000 (19:51 +0200)] 
Declare `ghc-head` to be haddock's upstream branch

This will affect commands such as

   git submodule update --remote utils/haddock

to use `ghc-head` instead of the default `master` branch

5 years agoImplement new CLZ and CTZ primops (re #9340)
Herbert Valerio Riedel [Mon, 11 Aug 2014 16:56:57 +0000 (18:56 +0200)] 
Implement new CLZ and CTZ primops (re #9340)

This implements the new primops

  clz#, clz32#, clz64#,
  ctz#, ctz32#, ctz64#

which provide efficient implementations of the popular
count-leading-zero and count-trailing-zero respectively
(see testcase for a pure Haskell reference implementation).

On x86, NCG as well as LLVM generates code based on the BSF/BSR
instructions (which need extra logic to make the 0-case well-defined).

Test Plan: validate and succesful tests on i686 and amd64

Reviewers: rwbarton, simonmar, ezyang, austin

Subscribers: simonmar, relrod, ezyang, carter

Differential Revision: https://phabricator.haskell.org/D144

GHC Trac Issues: #9340

5 years agoRemove out of date TODO
Edward Z. Yang [Wed, 13 Aug 2014 16:00:20 +0000 (17:00 +0100)] 
Remove out of date TODO

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
5 years agoExplicitly version test for package key support.
Edward Z. Yang [Wed, 13 Aug 2014 10:30:26 +0000 (11:30 +0100)] 
Explicitly version test for package key support.

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
5 years agoHave ghc-pkg use an old-style package key when it's not provided.
Edward Z. Yang [Wed, 13 Aug 2014 13:04:10 +0000 (14:04 +0100)] 
Have ghc-pkg use an old-style package key when it's not provided.

Summary:
When this occurs, it means that the user is using an old version of Cabal.
In that case, don't barf out: just go ahead and install it as an old-style
package key.  The user won't be able to link multiple versions together,
but that should not be a problem because their Cabal can't handle it anyway.

What happens if old-style are mixed up with new-style?  Well, currently
with Cabal, it's indistinguishable.  However, if at some later point we
add private dependencies, libraries compiled with old style linker names
are incompatible with each other.  We'll cross that road when we come
to it.

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
Test Plan: validate

Reviewers: tibbe, hvr, austin

Subscribers: simonmar, relrod, ezyang, carter

Differential Revision: https://phabricator.haskell.org/D154

5 years agoStgCmmPrim: add note to stop using fixed size signed types for sizes
Johan Tibell [Tue, 12 Aug 2014 18:28:14 +0000 (20:28 +0200)] 
StgCmmPrim: add note to stop using fixed size signed types for sizes

We use fixed size signed types to e.g. represent array sizes. This
means that the size can overflow.

5 years agoAdd some Haddocks to SMRep
Johan Tibell [Tue, 12 Aug 2014 07:34:27 +0000 (09:34 +0200)] 
Add some Haddocks to SMRep

5 years agoshouldInlinePrimOp: Fix Int overflow
Johan Tibell [Thu, 7 Aug 2014 15:07:00 +0000 (17:07 +0200)] 
shouldInlinePrimOp: Fix Int overflow

There were two overflow issues in shouldInlinePrimOp. The first one is
due to a negative CmmInt literal being created if the array size was
given as larger than 2^63-1 (on a 64-bit platform.) This meant that
large array sizes could compare as being smaller than
maxInlineAllocSize.

The second issue is that we casted the Integer to an Int in the
comparison, which again meant that large array sizes could compare as
being smaller than maxInlineAllocSize.

The attempt to allocate a large array inline then caused a segfault.

Fixes #9416.

5 years agoTestsuite wibbles around #9200
Richard Eisenberg [Fri, 8 Aug 2014 12:14:52 +0000 (08:14 -0400)] 
Testsuite wibbles around #9200

5 years agoUpdate manual (#9200).
Richard Eisenberg [Thu, 7 Aug 2014 12:53:11 +0000 (08:53 -0400)] 
Update manual (#9200).

5 years agoRemove NonParametricKinds (#9200)
Richard Eisenberg [Thu, 7 Aug 2014 12:37:05 +0000 (08:37 -0400)] 
Remove NonParametricKinds (#9200)

This commit also removes 'KindCheckingStrategy' and related gubbins,
instead including the notion of a CUSK into HsDecls.

5 years agoChange treatment of CUSKs for synonyms and families (#9200).
Richard Eisenberg [Thu, 7 Aug 2014 12:28:32 +0000 (08:28 -0400)] 
Change treatment of CUSKs for synonyms and families (#9200).

5 years agoAdded more testing for #9200. (polykinds/T9200b)
Richard Eisenberg [Thu, 7 Aug 2014 12:19:22 +0000 (08:19 -0400)] 
Added more testing for #9200. (polykinds/T9200b)

5 years agoChange definition of CUSK for data and class definitions (#9200).
Richard Eisenberg [Wed, 6 Aug 2014 13:56:50 +0000 (09:56 -0400)] 
Change definition of CUSK for data and class definitions (#9200).

Now, a CUSK is when (and only when) all type variables are annotated.
This allows classes to participate in polymorphic recursion.

5 years agoTest #9200. (polykinds/T9200)
Richard Eisenberg [Mon, 4 Aug 2014 01:37:45 +0000 (21:37 -0400)] 
Test #9200. (polykinds/T9200)

5 years agoTest #9415 (typecheck/should_fail/T9415)
Richard Eisenberg [Wed, 6 Aug 2014 13:54:37 +0000 (09:54 -0400)] 
Test #9415 (typecheck/should_fail/T9415)

5 years agoFix #9415.
Richard Eisenberg [Wed, 6 Aug 2014 13:51:26 +0000 (09:51 -0400)] 
Fix #9415.

Abort typechecking when we detect a superclass cycle error, as
ambiguity checking in the presence of superclass cycle errors can
cause a loop.

5 years agoFix Trac #9371.
Richard Eisenberg [Sun, 3 Aug 2014 22:40:30 +0000 (18:40 -0400)] 
Fix Trac #9371.

This was very simple: lists of different lengths are
*maybe* apart, not *surely* apart.

5 years agoTest #9371 (indexed-types/should_fail/T9371)
Richard Eisenberg [Sun, 3 Aug 2014 21:54:54 +0000 (17:54 -0400)] 
Test #9371 (indexed-types/should_fail/T9371)

5 years agox86: zero extend the result of 16-bit popcnt instructions (#9435)
Reid Barton [Tue, 12 Aug 2014 15:11:46 +0000 (11:11 -0400)] 
x86: zero extend the result of 16-bit popcnt instructions (#9435)

Summary:
The 'popcnt r16, r/m16' instruction only writes the low 16 bits of
the destination register, so we have to zero-extend the result to
a full word as popCnt16# is supposed to return a Word#.

For popCnt8# we could instead zero-extend the input to 32 bits
and then do a 32-bit popcnt, and not have to zero-extend the result.
LLVM produces the 16-bit popcnt sequence with two zero extensions,
though, and who am I to argue?

Test Plan:
 - ran "make TEST=cgrun071 EXTRA_HC_OPTS=-msse42"
 - then ran again adding "WAY=optasm", and verified that
   the popcnt sequences we generate match the ones produced
   by LLVM for its @llvm.ctpop.* intrinsics

Reviewers: austin, hvr, tibbe

Reviewed By: austin, hvr, tibbe

Subscribers: phaskell, hvr, simonmar, relrod, ezyang, carter

Differential Revision: https://phabricator.haskell.org/D147

GHC Trac Issues: #9435

5 years agoAdd CMOVcc insns to x86 NCG
Herbert Valerio Riedel [Mon, 11 Aug 2014 10:38:09 +0000 (12:38 +0200)] 
Add CMOVcc insns to x86 NCG

This is a pre-requisite for implementing count-{leading,trailing}-zero
prim-ops (re #9340) and may be useful to NCG to help turn some code into
branch-less code sequences.

Test Plan: Compiles and validates in combination with clz/ctz primop impl

Reviewers: ezyang, rwbarton, simonmar, austin

Subscribers: simonmar, relrod, ezyang, carter

Differential Revision: https://phabricator.haskell.org/D141

5 years agoAdd bit scan {forward,reverse} insns to x86 NCG
Herbert Valerio Riedel [Mon, 11 Aug 2014 07:54:36 +0000 (09:54 +0200)] 
Add bit scan {forward,reverse} insns to x86 NCG

This is a pre-requisite for implementing count-{leading,trailing}-zero
prim-ops (re #9340)

Reviewers: ezyang, rwbarton, simonmar, austin

Subscribers: simonmar, relrod, ezyang, carter

Differential Revision: https://phabricator.haskell.org/D141

5 years agoRe-add `--no-dph` option to ./validate
Herbert Valerio Riedel [Tue, 12 Aug 2014 12:35:57 +0000 (14:35 +0200)] 
Re-add `--no-dph` option to ./validate

This was removed in bb003086599c2ac166cfb3aa710480713adb5a2f
and caused some buildbots to stop working. So this commit just
re-adds it as a no-op (wrt the current default).

5 years agotestsuite/base: update .gitignore
Austin Seipp [Mon, 11 Aug 2014 20:39:10 +0000 (15:39 -0500)] 
testsuite/base: update .gitignore

Signed-off-by: Austin Seipp <austin@well-typed.com>
5 years agoUnbreak travis by not passing --no-dph
Joachim Breitner [Mon, 11 Aug 2014 21:39:11 +0000 (23:39 +0200)] 
Unbreak travis by not passing --no-dph

5 years agostg/Prim.h: drop redundant #ifdef
Sergei Trofimovich [Mon, 11 Aug 2014 18:18:36 +0000 (21:18 +0300)] 
stg/Prim.h: drop redundant #ifdef

Summary:
Noticed by Herbert Valerio Riedel

Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Test Plan: build test

Reviewers: simonmar, austin, hvr

Reviewed By: hvr

Subscribers: rwbarton, phaskell, simonmar, relrod, ezyang, carter

Differential Revision: https://phabricator.haskell.org/D143

5 years agox86: Always generate add instruction in MO_Add2 (#9013)
Reid Barton [Mon, 11 Aug 2014 13:33:13 +0000 (09:33 -0400)] 
x86: Always generate add instruction in MO_Add2 (#9013)

Test Plan:
 - ran validate
 - ran T9013 test with all ways
 - ran CarryOverflow test with all ways, for good measure

Reviewers: austin, simonmar

Reviewed By: simonmar

Differential Revision: https://phabricator.haskell.org/D137

5 years agoMake IntAddCOp, IntSubCOp into GenericOps
Reid Barton [Sun, 10 Aug 2014 21:39:51 +0000 (17:39 -0400)] 
Make IntAddCOp, IntSubCOp into GenericOps

... in preparation for backend-specific implementations.

No functional changes in this commit (except in panic messages
for ill-formed Cmm).

Differential Revision: https://phabricator.haskell.org/D138

5 years agoEliminate some code duplication in x86 backend (genCCall32/64)
Reid Barton [Sun, 10 Aug 2014 21:16:42 +0000 (17:16 -0400)] 
Eliminate some code duplication in x86 backend (genCCall32/64)

Summary:
No functional changes except in panic messages.

These functions were identical except for
- x87 operations in genCCall32
- the fallback to genCCall32'/64'
- "32" vs "64" in panic messages (one case was wrong!)
- minor syntactic or otherwise non-functional differences.

Test Plan:
Ran "validate --no-dph --slow" before and after the change.
Only differences were two tests that failed before the change but not after,
further investigation revealed that those tests are in fact erratic.

Reviewers: simonmar, austin

Reviewed By: austin

Subscribers: phaskell, simonmar, relrod, ezyang, carter

Differential Revision: https://phabricator.haskell.org/D139

5 years agoImprove seq documentation; part of trac issue #9390
Michael Snoyman [Sun, 10 Aug 2014 20:54:01 +0000 (15:54 -0500)] 
Improve seq documentation; part of trac issue #9390

Summary: Signed-off-by: Michael Snoyman <michael@snoyman.com>

Test Plan: Review documentation change

Reviewers: simonpj, austin

Reviewed By: austin

Subscribers: phaskell, hvr, simonmar, relrod, ezyang, carter

Differential Revision: https://phabricator.haskell.org/D136

GHC Trac Issues: #9390

5 years agofix darwin threaded static linking by removing -lpthread option #9189
Bob Ippolito [Sun, 10 Aug 2014 20:53:12 +0000 (15:53 -0500)] 
fix darwin threaded static linking by removing -lpthread option #9189

Summary: Signed-off-by: Bob Ippolito <bob@redivi.com>

Test Plan: See repro instructions in trac #9189

Reviewers: austin

Reviewed By: austin

Subscribers: phaskell, simonmar, relrod, ezyang, carter

Differential Revision: https://phabricator.haskell.org/D120

GHC Trac Issues: #9189

5 years agorts: Remove trailing whitespace and tabs from Printer.c
Austin Seipp [Sun, 10 Aug 2014 20:50:42 +0000 (15:50 -0500)] 
rts: Remove trailing whitespace and tabs from Printer.c

Signed-off-by: Austin Seipp <austin@well-typed.com>
5 years agorts/Printer.c: drop zcode mangling/demangling support in C code
Sergei Trofimovich [Sun, 10 Aug 2014 20:47:51 +0000 (15:47 -0500)] 
rts/Printer.c: drop zcode mangling/demangling support in C code

Summary:
GHC's RTS contains ancient Zdecode code which changed format a bit.
It's easier to drop broken part and show original names.

The patch changes output for './hello +RTS -Da' (apply)
from such gibberish:

    stg_ap_v_ret... PAP/1(0x92922a, &i!_-&i!_:<.s_r=Z)
    stg_ap_0_ret... base:GHC.MVar.MVar(0x7fd3d1f040f8)
    stg_ap_v_ret... THUNK(&i!_-&i!_i!f.Z)
    stg_ap_v_ret... PAP/1(0x92c1f3, EO_:<.s_r=Z, EP_:<.s_r=Z)
    stg_ap_0_ret... ghc-prim:GHC.Tuple.(,)(0x7fd3d1f04209, 0x7fd3d1f041fa)
    stg_ap_0_ret... ghc-prim:GHC.Types.:(0x7fd3d1f04301, 0x7fd3d1f042ea)
    stg_ap_0_ret... THUNK(3F0_i!f.Z, 0x9152a1)
    stg_ap_0_ret... FUN/3(&s=_GHCziIOziFD_z/fB_ff=r=/IOFD14_i!f.Z)
    stg_ap_ppv_ret... FUN/3(&s=_GHCziIOziFD_z/fB_ff=r=/IOFD14_i!f.Z)
    stg_ap_0_ret... FUN/2(&s=_GHCziIOziFD_z/fIOD=vi:=FD15_i!f.Z)
    stg_ap_pv_ret... FUN/2(&s=_GHCziIOziFD_z/fIOD=vi:=FD15_i!f.Z)
    stg_ap_0_ret... base:GHC.IO.Handle.Types.FileHandle(5'A_:<.s_r=Z, 0x7fd3d1f04ef0)
    stg_ap_v_ret... THUNK(*>_&+_2__+/_i!f.Z, 0x7fd3d1f0602a, 0x7fd3d1f04f10)
    stg_ap_v_ret... PAP/1(0x7fd3d1f0602a, 0x7fd3d1f04f10)

to something more readable:

    stg_ap_v_ret... PAP/1(0x92922a, <Main_main_closure>[0x90b710])
    stg_ap_0_ret... base:GHC.MVar.MVar(0x7f1e256040f8)
    stg_ap_v_ret... THUNK(<Main_main_info>[0x4046c8])
    stg_ap_v_ret... PAP/1(0x92c1f3, <sEO_closure>[0x90b6f0], <sEP_closure>[0x90b6d0])
    stg_ap_0_ret... ghc-prim:GHC.Tuple.(,)(0x7f1e25604209, 0x7f1e256041fa)
    stg_ap_0_ret... ghc-prim:GHC.Types.:(0x7f1e25604301, 0x7f1e256042ea)
    stg_ap_0_ret... THUNK(<s3F0_info>[0x434f70], 0x9152a1)
    stg_ap_0_ret... FUN/3(<base_GHCziIOziFD_zdfBufferedIOFD14_info>[0x5f5198])
    stg_ap_ppv_ret... FUN/3(<base_GHCziIOziFD_zdfBufferedIOFD14_info>[0x5f5198])
    stg_ap_0_ret... FUN/2(<base_GHCziIOziFD_zdfIODeviceFD15_info>[0x5f7c60])
    stg_ap_pv_ret... FUN/2(<base_GHCziIOziFD_zdfIODeviceFD15_info>[0x5f7c60])
    stg_ap_0_ret... base:GHC.IO.Handle.Types.FileHandle(<r5qA_closure>[0x91a920], 0x7f1e25604ef0)
    stg_ap_v_ret... THUNK(<stg_ap_2_upd_info>[0x6b1c60], 0x7f1e2560602a, 0x7f1e25604f10)
    stg_ap_v_ret... PAP/1(0x7f1e2560602a, 0x7f1e25604f10)

First observed on '+RTS -Di' (interpreter) on unregisterised builds.

Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Test Plan: built 'hello world' with -debug in moth modes and ran under '+RTS -Da'

Reviewers: simonmar, austin, ezyang

Reviewed By: austin, ezyang

Subscribers: phaskell, rwbarton, simonmar, relrod, ezyang, carter

Differential Revision: https://phabricator.haskell.org/D116

5 years agochange topHandler02/topHandler03 tests to use signal_exit_code function
Karel Gardas [Sun, 10 Aug 2014 20:40:37 +0000 (22:40 +0200)] 
change topHandler02/topHandler03 tests to use signal_exit_code function

Test Plan: validate

Reviewers: simonmar, austin

Reviewed By: austin

Subscribers: phaskell, simonmar, relrod, ezyang, carter

Differential Revision: https://phabricator.haskell.org/D127

5 years agoDon't build or test dph by default
Austin Seipp [Sun, 10 Aug 2014 19:10:22 +0000 (14:10 -0500)] 
Don't build or test dph by default

Signed-off-by: Austin Seipp <austin@well-typed.com>
5 years agofix T4981-V3 to avoid DOS line endings
Karel Gardas [Sun, 10 Aug 2014 20:32:52 +0000 (22:32 +0200)] 
fix T4981-V3 to avoid DOS line endings

5 years agofix T4981-V3 and T9208 tests for no newline at end of file warning
Karel Gardas [Sun, 10 Aug 2014 20:28:05 +0000 (22:28 +0200)] 
fix T4981-V3 and T9208 tests for no newline at end of file warning

Test Plan: validated on Linux and tested on Solaris

Reviewers: ezyang, austin

Reviewed By: ezyang, austin

Subscribers: phaskell, simonmar, relrod, ezyang, carter

Differential Revision: https://phabricator.haskell.org/D134

5 years agofix T4201 to avoid GNU grep specific -B option by usage of pure POSIX tools
Karel Gardas [Sun, 10 Aug 2014 20:19:31 +0000 (22:19 +0200)] 
fix T4201 to avoid GNU grep specific -B option by usage of pure POSIX tools

Test Plan: validated on Linux and tested on Solaris

Reviewers: austin

Reviewed By: austin

Subscribers: phaskell, simonmar, relrod, ezyang, carter

Differential Revision: https://phabricator.haskell.org/D135

5 years agoTweak linting rules.
Edward Z. Yang [Sat, 9 Aug 2014 01:05:53 +0000 (02:05 +0100)] 
Tweak linting rules.

Summary:
- Removed the default text rule that was applied to all files; it
  produced way too many spurious warnings.  For now, text lint is applied
  to C, Haskell and Shell.  Add more if you care.

- Makefiles and shell scripts had their max line length bumped a healthy
  amount.

A pile of files still fail to lint, so these might even still be too
aggressive.

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
Test Plan: none

Reviewers: hvr, austin

Subscribers: simonmar, relrod, ezyang, carter

Differential Revision: https://phabricator.haskell.org/D131

5 years agosystools info: fix warning about C compiler (message said about linker)
Sergei Trofimovich [Sun, 10 Aug 2014 19:12:28 +0000 (22:12 +0300)] 
systools info: fix warning about C compiler (message said about linker)

Summary: Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>

Test Plan: build-tested

Reviewers: austin

Reviewed By: austin

Subscribers: phaskell, simonmar, relrod, ezyang, carter

Differential Revision: https://phabricator.haskell.org/D132

5 years agoClarify documentation of addIntC#, subIntC#
Reid Barton [Sat, 9 Aug 2014 23:24:12 +0000 (19:24 -0400)] 
Clarify documentation of addIntC#, subIntC#

5 years agoAdd a test for plusWord2#, addIntC#, subIntC#
Reid Barton [Sat, 9 Aug 2014 23:20:53 +0000 (19:20 -0400)] 
Add a test for plusWord2#, addIntC#, subIntC#

5 years agoRemove obsolete "-- #hide" Haddock pragmas
Reid Barton [Sat, 9 Aug 2014 19:12:42 +0000 (15:12 -0400)] 
Remove obsolete "-- #hide" Haddock pragmas

The modules already have the modern version {-# OPTIONS_HADDOCK hide #-}.

5 years agoAdd test case for #9013
Reid Barton [Sat, 9 Aug 2014 19:08:34 +0000 (15:08 -0400)] 
Add test case for #9013

5 years agotestsuite: add list of llvm_ways
Reid Barton [Sat, 9 Aug 2014 18:49:33 +0000 (14:49 -0400)] 
testsuite: add list of llvm_ways

5 years agoTweak Haddock in GHC.Types
Reid Barton [Sat, 9 Aug 2014 18:01:20 +0000 (14:01 -0400)] 
Tweak Haddock in GHC.Types

5 years agoTweak Haddock markup in GHC.Magic
Reid Barton [Sat, 9 Aug 2014 02:29:51 +0000 (22:29 -0400)] 
Tweak Haddock markup in GHC.Magic

5 years agoconfigure.ac: drop unused HAVE_BIN_SH
Sergei Trofimovich [Sat, 9 Aug 2014 13:48:57 +0000 (16:48 +0300)] 
configure.ac: drop unused HAVE_BIN_SH

Summary:
This hugs heritage gone away with commit f1dffa0224c9e8dcf1d3908e888e7d683485791b
in 2001

Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Test Plan: tried to find HAVE_BIN_SH in internet, no success

Reviewers: simonmar, austin

Reviewed By: austin

Subscribers: phaskell, simonmar, relrod, ezyang, carter

Differential Revision: https://phabricator.haskell.org/D117

5 years agoFix path in cabal file
Mateusz Kowalczyk [Fri, 8 Aug 2014 16:25:33 +0000 (18:25 +0200)] 
Fix path in cabal file

Update Haddock submodule

5 years agoImplement the final change to INCOHERENT from Trac #9242
Simon Peyton Jones [Fri, 8 Aug 2014 07:35:14 +0000 (08:35 +0100)] 
Implement the final change to INCOHERENT from Trac #9242

The change here is to make INCOHERENT slightly more permissive:

  if the selected candidate is incoherent
  then ignore all unifying candidates

This allows us to move the {-# INCOHERENT #-} pragma from
  from   instance Typeable (f a)
  to     Typeable (n:Nat) and Typable (s:Symbol)
where it belongs, and where Trac #9242 said it should be.

I don't think this will affect anyone.

I've updated the user manual.

5 years agoUpdate Haddock to attoparsec-0.12.1. Adjust perf.
Mateusz Kowalczyk [Fri, 8 Aug 2014 04:13:13 +0000 (06:13 +0200)] 
Update Haddock to attoparsec-0.12.1. Adjust perf.

Please adjust the perf number on your platform if/when it fails. It
should improve slightly. Updates submodule.

5 years agoUpdate perf number for T5642
Joachim Breitner [Thu, 7 Aug 2014 21:27:12 +0000 (23:27 +0200)] 
Update perf number for T5642

This  +4% increase (from -1% before) was caused by 1fc60ea. But that
commit did not cause any other regressions, so I’m not investigating
further.

5 years agotestsuite: add signal_exit_code function to the driver
Karel Gardas [Thu, 7 Aug 2014 20:00:25 +0000 (22:00 +0200)] 
testsuite: add signal_exit_code function to the driver

Summary:
New function signal_exit_code hides differences between target platforms
handling of fatal error signals and the applications' exit codes. E.g.
on Linux the application exit code which receives fatal error signal
is encoded as 128 + signal value. On the other hand on Solaris
the application exit code is signal value alone.

Test Plan: validated on Linux and tested on Solaris

Reviewers: austin, simonmar

Reviewed By: simonmar

Subscribers: phaskell, simonmar, relrod, ezyang, carter

Differential Revision: https://phabricator.haskell.org/D122

5 years agoghci: tweak option list indentation in ':show packages'
Sergei Trofimovich [Thu, 7 Aug 2014 15:48:03 +0000 (18:48 +0300)] 
ghci: tweak option list indentation in ':show packages'

Summary:
Caught by './validate --slow' in 'ghci/scripts/ghci024'.

Commit 207875293fea07aa90efe215369629b657d1875a changed indentation a bit:

    --- ./ghci/scripts/ghci024.stdout       2014-07-31 12:05:34.000000000 +0300
    +++ ./ghci/scripts/ghci024.run.stdout   2014-08-07 17:19:23.000000000 +0300
    @@ -33,4 +33,4 @@
     active package flags: none
     ~~~~~~~~~~ Testing :show packages, including the ghc package
     active package flags:
    -  -package ghc
    +-package ghc

Patch restores indentation.

Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Test Plan: passed validate, tested manually

Reviewers: austin, ezyang

Reviewed By: ezyang

Subscribers: phaskell, simonmar, relrod, ezyang, carter

Differential Revision: https://phabricator.haskell.org/D126

5 years ago[no-ci] Track Haddock submodule change: ignore TAGS.
Edward Z. Yang [Thu, 7 Aug 2014 13:23:57 +0000 (14:23 +0100)] 
[no-ci] Track Haddock submodule change: ignore TAGS.

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
5 years agoPermanently accept the Haddock performance number bump, and add some TODOs
Edward Z. Yang [Thu, 7 Aug 2014 13:15:13 +0000 (14:15 +0100)] 
Permanently accept the Haddock performance number bump, and add some TODOs

I bisected the performance difference in Haddock and found it was due to
d6aec63c009c4e57181900eb03847d7dc0fc3c7c, which I accidentally picked up
when updating Haddock 00b8f8c5b378fc679639ebe81238cf42d92aa607.  The
performance regression is justified by the fact that we are now actually
processing URLs in Haddock comments that we were not previously, so
there would be more allocation.  Time use was not affected.

The TODOs simply reflect the fact that we need updated numbers for
32-bit Linux and Windows.  Please add them when you get a chance.

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
5 years agoGive the Unique generated by strings a tag '$', fixes #9413.
Edward Z. Yang [Wed, 6 Aug 2014 10:55:06 +0000 (11:55 +0100)] 
Give the Unique generated by strings a tag '$', fixes #9413.

Summary:
Previously, we allocated uniques for strings starting at zero, which
means the tag bits in the unique are zero, which means that printing a
Unique for a string will start with a null byte.  This is bad.  So
instead, start our numbering with the tag byte as '$' (as in $tring).
This is hard coded so we don't have to worry about the optimizer
reducing the expression.

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
Test Plan: validate

Reviewers: hvr, simonmar, austin

Subscribers: simonmar, relrod, ezyang, carter

Differential Revision: https://phabricator.haskell.org/D123

GHC Trac Issues: #9413

5 years agoFix some typos in recent comments/notes
Gabor Greif [Thu, 7 Aug 2014 11:22:25 +0000 (13:22 +0200)] 
Fix some typos in recent comments/notes

5 years agoTest Trac #9390
Simon Peyton Jones [Thu, 7 Aug 2014 09:08:00 +0000 (10:08 +0100)] 
Test Trac #9390

5 years agoAdd has_side_effets to the raise# primop
Simon Peyton Jones [Thu, 7 Aug 2014 06:56:28 +0000 (07:56 +0100)] 
Add has_side_effets to the raise# primop

According to the definition of has_side_effets in PrimOp,
raise# clearly has side effects!  In practice it makes little
difference becuase the fact that it returns bottom is more
important... but still it's better to say it right.

5 years agoRefactor the handling of case-elimination
Simon Peyton Jones [Thu, 7 Aug 2014 06:47:28 +0000 (07:47 +0100)] 
Refactor the handling of case-elimination

Mainly in Simplify.rebuildCase.  The old code wasn't wrong, but I kept
mis-understanding it.  This patch cuts splits out "pure seq" from "strict
let", which makes it much easier to grok.

5 years agoExtensive Notes on can_fail and has_side_effects
Simon Peyton Jones [Thu, 7 Aug 2014 06:46:24 +0000 (07:46 +0100)] 
Extensive Notes on can_fail and has_side_effects

In fixing Trac #9390 I discovered that I *still* didn't really understand
what the can_fail and has_side_effects properties of a PrimOp mean, precisely.

The big new things I learned are

* has_side_effects needs to be true only of *write* effects,
  Reads (which are, strictly speaking, effects) don't matter here.

* has_side_effects must be true of primops that can throw a synchronous
  Haskell exception (eg raiseIO#)

* can_fail is true only of primops that can cause an *unchecked* (not
  Haskell) system exception, like divide by zero, or accessing memory
  out of range through an array read or write.

I've documented all this now.  The changes in this patch are only
in comments.

5 years agoDocument the maintenance of the let/app invariant in the simplifier
Simon Peyton Jones [Mon, 4 Aug 2014 15:37:57 +0000 (16:37 +0100)] 
Document the maintenance of the let/app invariant in the simplifier

It's not obvious why the simplifier generates code that correctly satisfies
the let/app invariant.   This patch does some minor refactoring, but the main
point is to document pre-conditions to key functions, namely that the rhs
passed in satisfies the let/app invariant.

There shouldn't be any change in behaviour.

5 years agoMake buildToArrPReprs obey the let/app invariant
Simon Peyton Jones [Mon, 4 Aug 2014 12:03:09 +0000 (13:03 +0100)] 
Make buildToArrPReprs obey the let/app invariant

Vectorise.Generic.PAMethods.buildToArrPReprs was building an expression like
   pvoids# (lengthSels2# sels)
which does not satisfy the let/app invariant.  It should be more like
  case lengthSels2# sels of l -> pvoids# l

This was caught by Core Lint (once it was taught to check for the invariant)

5 years agoWhen desugaring Use the smart mkCoreConApps and friends
Simon Peyton Jones [Fri, 1 Aug 2014 15:56:10 +0000 (16:56 +0100)] 
When desugaring Use the smart mkCoreConApps and friends

This is actually the bug that triggered Trac #9390.  We had
an unboxed tuple (# writeArray# ..., () #), and that writeArray#
argument isn't ok-for-speculation, so disobeys the invariant.

The desugaring of unboxed tuples was to blame; the fix is easy.

5 years agoDon't float into unlifted function arguments
Simon Peyton Jones [Fri, 1 Aug 2014 15:53:21 +0000 (16:53 +0100)] 
Don't float into unlifted function arguments

We were inadvertently destroying the let/app invariant,
by floating into an unlifted function argument.

5 years agoMake Core Lint check the let/app invariant
Simon Peyton Jones [Fri, 1 Aug 2014 15:41:52 +0000 (16:41 +0100)] 
Make Core Lint check the let/app invariant

If we have an invariant, Lint should jolly well check it.

(And indeed, adding this test throws up Lint errors that
are fixed in separate patches.)

5 years agoAdd Output instance for OrdList
Simon Peyton Jones [Fri, 1 Aug 2014 15:40:18 +0000 (16:40 +0100)] 
Add Output instance for OrdList

5 years agoTiny refactoring, plus comments; no change in behaviour
Simon Peyton Jones [Fri, 1 Aug 2014 15:39:47 +0000 (16:39 +0100)] 
Tiny refactoring, plus comments; no change in behaviour

5 years agoMove Outputable instance for FloatBind to the data type definition
Simon Peyton Jones [Fri, 1 Aug 2014 15:39:20 +0000 (16:39 +0100)] 
Move Outputable instance for FloatBind to the data type definition

5 years agoComments and white space
Simon Peyton Jones [Fri, 1 Aug 2014 15:38:33 +0000 (16:38 +0100)] 
Comments and white space

5 years agofix T658b/T5776 to use POSIX grep -c instead of GNU's --count
Karel Gardas [Wed, 6 Aug 2014 22:11:45 +0000 (00:11 +0200)] 
fix T658b/T5776 to use POSIX grep -c instead of GNU's --count

5 years agofix linker_unload test for ghc configurations with --with-gmp-libraries
Karel Gardas [Wed, 6 Aug 2014 21:29:46 +0000 (23:29 +0200)] 
fix linker_unload test for ghc configurations with --with-gmp-libraries

The issue is presented in Makefile logic where it attempts to start
linker_unload and pass it HSinteger-gmp library for unload,
but the library name is prefixed with two directories names. The first
is of ghc's integer-gmp/build itself and another is the directory name
passed to --with-gmp-libraries= configure parameter. The testcase then
fails on unloading integer-gmp/build directory thinking that this is
a library to unload. The issue is solved by cuting (head -1) the first
library name from the list and using this for unloading the HSinteger-gmp
library. I use head -1 instead of cut -d ' ' here since ghc may be
installed into the directory with space(s) in its name like in the case
when running validate.

5 years agofix linker_unload test _FILE_OFFSET_BITS redefined warning on Solaris/i386
Karel Gardas [Wed, 6 Aug 2014 21:22:31 +0000 (23:22 +0200)] 
fix linker_unload test _FILE_OFFSET_BITS redefined warning on Solaris/i386

5 years agoMark type-rep not as expect_broken when debugged
Joachim Breitner [Wed, 6 Aug 2014 20:29:41 +0000 (22:29 +0200)] 
Mark type-rep not as expect_broken when debugged

Thanks to slyfox for noticing this reregression.

5 years agoRevert "fix linker_unload test on Solaris/i386 platform"
Karel Gardas [Wed, 6 Aug 2014 19:52:20 +0000 (21:52 +0200)] 
Revert "fix linker_unload test on Solaris/i386 platform"

This reverts commit 65e5dbcd3971cb3ef5b9073096e5d063034b90c1.

5 years agoTemporarily bump Haddock numbers; I'm going to fix it.
Edward Z. Yang [Tue, 5 Aug 2014 18:03:58 +0000 (11:03 -0700)] 
Temporarily bump Haddock numbers; I'm going to fix it.

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
5 years agoFilter out null bytes from trace, and warn accordingly, fixing #9395.
Edward Z. Yang [Tue, 5 Aug 2014 16:55:00 +0000 (09:55 -0700)] 
Filter out null bytes from trace, and warn accordingly, fixing #9395.

Summary:
Previously, if you ran trace "foo\0bar", the output was truncated so
that everything after the null byte was omitted.  This was terrible.
Now we filter out null bytes, and emit an extra trace saying that
null bytes were filtered out.

NB: we CANNOT fix debugBelch, because all printf variants *always*
respect null bytes, even if you're using string precision such as
%.*s.  The alternative would have been to introduce a new function
debugRawBelch which did not use format strings and took an explicit
string length, but I decided we generally should avoid putting null
bytes in our trace messages, and warn the user.

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
Test Plan: validate

Reviewers: hvr, austin

Subscribers: simonmar, relrod, ezyang, carter

Differential Revision: https://phabricator.haskell.org/D121

GHC Trac Issues: #9395

5 years agoUpdate Haddock submodule to know about profiling.
Edward Z. Yang [Tue, 5 Aug 2014 16:35:53 +0000 (17:35 +0100)] 
Update Haddock submodule to know about profiling.

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
5 years agoconfigure.ac: drop unused VOID_INT_SIGNALS
Sergei Trofimovich [Tue, 5 Aug 2014 14:44:49 +0000 (17:44 +0300)] 
configure.ac: drop unused VOID_INT_SIGNALS

Summary:
Another macro borrowed from hugs, gone aways in
commit 528a7d2cf1c90408d60028bb1fec85124d539476

Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Test Plan: build-tested

Reviewers: simonmar, austin, ezyang

Reviewed By: austin, ezyang

Subscribers: phaskell, simonmar, relrod, ezyang, carter

Differential Revision: https://phabricator.haskell.org/D118

5 years ago[no-ci] Minor bugfixes in Backpack docs.
Edward Z. Yang [Tue, 5 Aug 2014 13:24:45 +0000 (14:24 +0100)] 
[no-ci] Minor bugfixes in Backpack docs.

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
5 years agoThinning and renaming modules from packages on the command line.
Edward Z. Yang [Sat, 2 Aug 2014 12:50:00 +0000 (13:50 +0100)] 
Thinning and renaming modules from packages on the command line.

Summary:
This patch set adds support for extra syntax on -package and related
arguments which allow you to thin and rename modules from a package.
For example, this argument:

    -package "base (Data.Bool as Bam, Data.List)"

adds two more modules into scope, Bam and Data.List, without adding
any of base's other modules to scope.

These flags are additive: so, for example, saying:

    -hide-all-packages -package base -package "base (Data.Bool as Bam)"

will provide both the normal bindings for modules in base, as well as
the module Bam.

There is also a new debug flag -ddump-mod-map which prints the state
of the module mapping database.  H = hidden, E = exposed (so for
example EH says the module in question is exported, but in a hidden
package.)

Module suggestions have been minorly overhauled to work better with reexports:
if you have -package "base (Data.Bool as Bam)" and mispell Bam, GHC
will suggest "Did you mean Bam (defined via package flags to be
base:Data.Bool)"; and generally you will get more accurate information.
Also, fix a bug where we suggest the -package flag when we really need
the -package-key flag.

NB: The renaming afforded here does *not* affect what wired in
symbols GHC generates.  (But it does affect implicit prelude!)

ToDo: add 'hiding' functionality, to make it easier to support the alternative
prelude use-case.

ToDo: Cabal support

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
Test Plan: new tests and validate

Reviewers: simonpj, simonmar, hvr, austin

Subscribers: simonmar, relrod, ezyang, carter

Differential Revision: https://phabricator.haskell.org/D113

GHC Trac Issues: #9375

5 years agoRefactor PackageFlags so that ExposePackage is a single constructor.
Edward Z. Yang [Fri, 1 Aug 2014 18:07:03 +0000 (19:07 +0100)] 
Refactor PackageFlags so that ExposePackage is a single constructor.

You can parametrize over the different selection by using a
different PackageArg.  This helps reduce code duplication.

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
5 years agoRefactor package state, also fixing a module reexport bug.
Edward Z. Yang [Fri, 1 Aug 2014 17:03:20 +0000 (18:03 +0100)] 
Refactor package state, also fixing a module reexport bug.

Instead of building a multiply indirected data structure and querying
it on every import, we now have two data structures moduleToPkgConf
and moduleToPkgConfAll.  moduleToPkgConf is a single-level UniqFM that
is intended to be used for most valid imports; however, it does not
contain any information useful for error reporting.  If an error is
occurred, we then query moduleToPkgConfAll, which contains a more
comprehensive view of the package database.  This field is lazily
initialized (so this means we're retaining the package database list,
but this should be fine because we're already maintaining the entries
of the list.)  Additionally, the full view doesn't keep track of a boolean
toggle for visibility/exposure anymore, but instead tracks the *provenance*
of how the module binding came to be (the ModuleOrigin data type).

Additionally, we move the logic for determining if a module is exposed
or not from Finder.lhs and put it in Packages.lhs; this information is
communicated via the LookupResult data type.  Unfortunately, we can't
directly return a FindResult, because this data type is defined in
HscTypes which depends on Packages.  This is going to change some more
in the near future when I add thinning/renaming to package flags; the
error messages will need to be more flexible.

I've also slightly changed the semantics of error messages for package
qualified imports.  Previously, if we didn't find any package qualified
imports, but there were hidden modules in a *different* package, the error
message would prefer mentioning those as opposed to providing suggestions.
Now, if a module is hidden but in the wrong package, we won't mention it;
instead, it will get mentioned with the other module suggestions.  I
was too lazy to write a test, but I can add one if people would like.

The module reexport bug was, package q reexported p:P as Conflict,
and package r reexported p:P2 as Conflict, this was *not* reported as
a conflict, because the old logic incorrectly decided that P and P2 were
the same module on account of being from the same package.  The logic here
has been corrected.

Contains haddock submodule update.

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
5 years agoMake PackageState an abstract type.
Edward Z. Yang [Fri, 1 Aug 2014 11:35:15 +0000 (12:35 +0100)] 
Make PackageState an abstract type.

Summary: Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>

Test Plan: validate

Reviewers: simonpj, simonmar, hvr, austin

Subscribers: simonmar, relrod, ezyang, carter

Differential Revision: https://phabricator.haskell.org/D107

5 years agoDisable ghc-pkg accepting multiple package IDs (differing package keys) for now.
Edward Z. Yang [Wed, 30 Jul 2014 12:54:46 +0000 (13:54 +0100)] 
Disable ghc-pkg accepting multiple package IDs (differing package keys) for now.

Duncan requested that ghc-pkg not accept duplicate package IDs (foo-0.1)
by default until the higher level tools can accommodate it.  Until then
you'll need to use the --multi-instance flag to install multiple copies in
the package database.

I think reusing the --multi-instance flag is dodgy, because that can be used
to cause duplicate package keys; but there is a mode of use of the database
where package keys are unique.

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
5 years agoPackage keys (for linking/type equality) separated from package IDs.
Edward Z. Yang [Fri, 18 Jul 2014 13:48:47 +0000 (14:48 +0100)] 
Package keys (for linking/type equality) separated from package IDs.

This patch set makes us no longer assume that a package key is a human
readable string, leaving Cabal free to "do whatever it wants" to allocate
keys; we'll look up the PackageId in the database to display to the user.
This also means we have a new level of qualifier decisions to make at the
package level, and rewriting some Safe Haskell error reporting code to DTRT.

Additionally, we adjust the build system to use a new ghc-cabal output
Make variable PACKAGE_KEY to determine library names and other things,
rather than concatenating PACKAGE/VERSION as before.

Adds a new `-this-package-key` flag to subsume the old, erroneously named
`-package-name` flag, and `-package-key` to select packages by package key.

RFC: The md5 hashes are pretty tough on the eye, as far as the file
system is concerned :(

ToDo: safePkg01 test had its output updated, but the fix is not really right:
the rest of the dependencies are truncated due to the fact the we're only
grepping a single line, but ghc-pkg is wrapping its output.

ToDo: In a later commit, update all submodules to stop using -package-name
and use -this-package-key.  For now, we don't do it to avoid submodule
explosion.

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
Test Plan: validate

Reviewers: simonpj, simonmar, hvr, austin

Subscribers: simonmar, relrod, carter

Differential Revision: https://phabricator.haskell.org/D80

5 years agoDisable package auto-hiding if -hide-all-packages is passed
Edward Z. Yang [Thu, 31 Jul 2014 17:11:22 +0000 (18:11 +0100)] 
Disable package auto-hiding if -hide-all-packages is passed

Summary:
This is in preparation for thinning/renaming package arguments, which allow
users to rename modules of packages they import.  In situations like this,
it may be desirable to load multiple copies of a package at different versions
explicitly under different names.

Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu>
Test Plan: validate

Reviewers: simonpj, simonmar, hvr, austin

Subscribers: simonmar, relrod, ezyang, carter

Differential Revision: https://phabricator.haskell.org/D106

5 years agofix topHandler03 execution on Solaris where shell signals SIGTERM correctly
Karel Gardas [Mon, 4 Aug 2014 13:15:54 +0000 (08:15 -0500)] 
fix topHandler03 execution on Solaris where shell signals SIGTERM correctly

Summary:
This patch fixes topHandler03 execution on Solaris where
shell correctly signals SIGTERM as exit status 15.

Test Plan: validate

Reviewers: austin

Reviewed By: austin

Subscribers: phaskell, simonmar, relrod, ezyang, carter

Differential Revision: https://phabricator.haskell.org/D112

5 years agofix openFile003 test on Solaris/i386 (platform output is not needed anymore)
Karel Gardas [Mon, 4 Aug 2014 13:15:39 +0000 (08:15 -0500)] 
fix openFile003 test on Solaris/i386 (platform output is not needed anymore)

Test Plan: validate

Reviewers: austin

Reviewed By: austin

Subscribers: phaskell, simonmar, relrod, ezyang, carter

Differential Revision: https://phabricator.haskell.org/D114

5 years agoghc --make: add nicer names to RTS threads (threaded IO manager, make workers)
Sergei Trofimovich [Mon, 4 Aug 2014 13:10:33 +0000 (08:10 -0500)] 
ghc --make: add nicer names to RTS threads (threaded IO manager, make workers)

Summary:
The patch names most of RTS threads
and ghc (the tool) threads.

It makes nicer debug and eventlog output for ghc itself.

Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Test Plan: ran debugged ghc under '+RTS -Ds'

Reviewers: simonmar, austin

Reviewed By: austin

Subscribers: phaskell, simonmar, relrod, ezyang, carter

Differential Revision: https://phabricator.haskell.org/D101

5 years agofix linker_unload test on Solaris/i386 platform
Karel Gardas [Mon, 4 Aug 2014 13:10:11 +0000 (08:10 -0500)] 
fix linker_unload test on Solaris/i386 platform

Summary:
This patch set fixes two issues in linker_unload test case
on Solaris/i386 platform. First there is an issue in linker_unload.c
which causes warning to be emitted about _FILE_OFFSET_BITS redefined.
This is solved by including ghcconfig.h as a first header file.
Another issue is that on Solaris and its builders we use to configure
ghc with --with-gmp-libraries=/usr/lib and this causes issue with
test case Makefile's logic. It attempts to start linker_unload
and pass it HSinteger-gmp library for unload, but the library
name is prefixed with two directories names. The first is of
ghc's integer-gmp/build itself and another is the directory name
passed to --with-gmp-libraries= configure parameter. In case
of Solaris this is /usr/lib. The testcase then fails on unloading
integer-gmp/build directory thinking that this is a library to unload.
This issue is solved by cuting the first library name from the list
and using this for unloading the HSinteger-gmp library.

Test Plan: validate

Reviewers: ezyang, austin

Reviewed By: ezyang, austin

Subscribers: phaskell, simonmar, relrod, ezyang, carter

Differential Revision: https://phabricator.haskell.org/D110

5 years agoUse 'install' command for 'inplace/' install as we do in 'make install'
Sergei Trofimovich [Mon, 4 Aug 2014 13:09:44 +0000 (08:09 -0500)] 
Use 'install' command for 'inplace/' install as we do in 'make install'

Summary:
On hardened gentoo ghc-stage2 does not work as-is,
as it uses runtime code generation/loading, thus
ghc0stage2 needs to be marked in a special way
(via POSIX extened attributes).

Before the patch we used 'cp -p' command, which
does not preserve that marking. It leads to buid
failure on hardened. Hardened's 'install' does
preserve POSIX xattrs, thus patch uses it instead.

'inplace/' directory can be seen the same way as target
for 'make install', thus using the same facilities
to install files to 'inplace/' sounds more consistent.

Reported-by: Jay Yang
Gentoo-bug: https://bugs.gentoo.org/518734
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
Test Plan: tested ghc installation on vanilla and hardened distributions

Reviewers: austin

Reviewed By: austin

Subscribers: phaskell, simonmar, relrod, ezyang, carter

Differential Revision: https://phabricator.haskell.org/D108

5 years agodocs: fix typo: 'OVERLAPPINGP' -> 'OVERLAPPING'
Sergei Trofimovich [Mon, 4 Aug 2014 13:09:29 +0000 (08:09 -0500)] 
docs: fix typo: 'OVERLAPPINGP' -> 'OVERLAPPING'

Summary: Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>

Test Plan: proofread

Reviewers: ezyang, austin

Reviewed By: ezyang, austin

Subscribers: phaskell, ezyang, simonmar, relrod, carter

Differential Revision: https://phabricator.haskell.org/D100

5 years agoTerminate in forkProcess like in real_main
Edsko de Vries [Mon, 4 Aug 2014 13:09:11 +0000 (08:09 -0500)] 
Terminate in forkProcess like in real_main

Test Plan: validate

Reviewers: simonmar, austin

Reviewed By: simonmar, austin

Subscribers: phaskell, simonmar, relrod, carter

Differential Revision: https://phabricator.haskell.org/D99

GHC Trac Issues: #9377