ghc-devs
Threads by month
- ----- 2025 -----
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
June 2013
- 41 participants
- 48 discussions
Hi all,
I was reading the GHC compiler commentary and the current GHC sources
and found that description here:
http://hackage.haskell.org/trac/ghc/wiki/Commentary/Compiler/TypeType#There…
did not match the code in Git.
I edited the wiki to the best of my ability but would appreciate it if
someone who understands this better could have a look over it hopefully
improve it.
Cheers,
Erik
--
----------------------------------------------------------------------
Erik de Castro Lopo
http://www.mega-nerd.com/
2
1
Ian
Following yesterday's problem I deleted
/home/simonpj/.ghc/x86_64-linux-7.7/package.conf.d/package.cache
But now 'sh validate' gives this (below), complaining that the file I deleted doesn't exist!
But it wouldn't exist on a clean machine, would it. I'm very confused.
Thanks
Simon
"inplace/bin/ghc-cabal" configure libraries/ghc-prim dist-install "" --with-ghc="/5playpen/simonpj/HEAD-1/inplace/bin/ghc-stage1" --with-ghc-pkg="/5playpen/simonpj/HEAD-1/inplace/bin/ghc-pkg" --flag=include-ghc-prim --disable-library-for-ghci --enable-library-vanilla --disable-library-profiling --enable-shared --with-hscolour="/home/simonmar/fp/bin/x86_64-unknown-linux/HsColour" --configure-option=CFLAGS="-Wall -fno-stack-protector -Werror=unused-but-set-variable -Wno-error=inline" --configure-option=LDFLAGS=" -Wl,--hash-size=31 -Wl,--reduce-memory-overheads " --configure-option=CPPFLAGS=" " --with-gcc="/usr/bin/gcc" --with-ld="/usr/bin/ld" --configure-option=--with-cc="/usr/bin/gcc" --with-ar="/usr/bin/ar" --with-ranlib="true" --with-alex="/home/simonpj/.cabal/bin/alex" --with-happy="/home/simonmar/fp/bin/x86_64-unknown-linux/happy"
Configuring ghc-prim-0.3.1.0...
/home/simonpj/.ghc/x86_64-linux-7.7/package.conf.d/package.cache: openBinaryFile: does not exist (No such file or directory)
make[1]: *** [libraries/ghc-prim/dist-install/package-data.mk] Error 1
make: *** [all] Error 2
simonpj@cam-05-unx:~/5builds/HEAD-1$
Microsoft Research Limited (company number 03369488) is registered in England and Wales
Registered office is at 21 Station Road, Cambridge, CB1 2FB
2
2
Hello,
for some time now, my builder clients are not able to reach the builder
server. If my sniffing is right then this should be on abbot.galois.com
which web claims to be working but otherwise is not pingable. Also port
4938 is open, I'm able to push some data there, but the server does not
respond with anything...
Looking on http://darcs.haskell.org/ghcBuilder/builders/ reveals that
few last builds are from May 25.
Could someone responsible for this server be so kind and restart the
builder server?
Thanks a lot!
Karel
1
0
As you'll see I've just pushed a wave of commits, of which cardinality analysis is the big one. Some of the others are performance tweaks that I discovered when benchmarking. Before pushing the wave I did a full nofib run against today's HEAD; here are the results.
Pretty modest reductions, but zero big outliers in the wrong direction.
A couple of compiler perf tests are worse, which I should look into.
Thanks to Ilya for doing a lot of the cardinality work.
Simon
--------------------------------------------------------------------------------
Program Size Allocs Runtime Elapsed TotalMem
--------------------------------------------------------------------------------
anna -1.3% -0.5% 0.18 0.18 +0.0%
ansi -2.5% -0.8% 0.00 0.00 +0.0%
atom -2.3% -0.0% -1.3% -1.3% +0.0%
awards -2.4% -0.1% 0.00 0.00 +0.0%
banner -2.8% -0.2% 0.00 0.00 +0.0%
bernouilli -2.5% -0.0% +0.0% +0.0% +0.0%
binary-trees -2.6% -0.2% -1.1% -1.1% +7.4%
boyer -2.4% -0.0% 0.07 0.07 +0.0%
boyer2 -2.6% -0.4% 0.01 0.01 +0.0%
bspt -2.1% -0.0% 0.02 0.02 +0.0%
cacheprof -2.0% -0.4% -3.6% -2.7% -5.7%
calendar -2.5% +0.2% 0.00 0.00 +0.0%
cichelli -2.6% -0.0% 0.16 0.16 +0.0%
circsim -2.3% -0.0% -2.0% -1.9% +11.5%
clausify -2.5% -0.0% 0.06 0.06 +0.0%
comp_lab_zift -2.4% -0.0% -3.0% -3.0% +14.3%
compress -2.3% -0.0% +0.0% +0.0% -33.3%
compress2 -2.7% -0.0% -8.1% -8.1% -14.3%
constraints -2.7% -1.9% -3.5% -3.5% +0.0%
cryptarithm1 -2.9% -0.0% -8.8% -8.8% -50.0%
cryptarithm2 -2.5% -0.0% 0.01 0.01 +0.0%
cse -2.5% -0.1% 0.00 0.00 +0.0%
eliza -2.7% -0.1% 0.00 0.00 +0.0%
event -2.5% -0.0% +0.0% +0.0% +0.0%
exp3_8 -2.5% -0.0% +0.0% +0.0% +0.0%
expert -2.7% -0.2% 0.00 0.00 +0.0%
fannkuch-redux -2.5% -0.0% -0.9% -0.9% +0.0%
fasta -3.3% -0.0% -0.2% -0.4% +0.0%
fem -2.4% -0.0% 0.03 0.03 +0.0%
fft -2.4% -0.0% 0.06 0.06 +0.0%
fft2 -2.2% -0.0% 0.09 0.09 +0.0%
fibheaps -2.5% -0.0% 0.05 0.05 +0.0%
fish -2.8% -0.0% 0.02 0.02 -50.0%
fluid -1.7% -0.0% 0.01 0.01 +0.0%
fulsom -2.0% -0.0% +0.4% +0.4% +33.3%
gamteb -2.3% +0.5% 0.06 0.06 +0.0%
gcd -2.5% -0.0% 0.05 0.05 +0.0%
gen_regexps -2.9% -0.1% 0.00 0.00 +0.0%
genfft -2.5% -0.0% 0.05 0.05 +0.0%
gg -2.3% -0.0% 0.02 0.02 +0.0%
grep -2.6% -0.4% 0.00 0.00 +0.0%
hidden -2.1% -0.0% -0.5% -0.3% +0.0%
hpg -2.2% -1.0% +1.7% +1.7% +0.0%
ida -2.4% -0.0% 0.13 0.12 +0.0%
infer -2.2% +0.0% 0.10 0.10 +0.0%
integer -2.4% +0.0% -2.7% -2.7% +0.0%
integrate -2.4% -0.0% +1.2% +1.2% +0.0%
k-nucleotide -6.3% -0.0% +1.1% +1.1% +0.0%
kahan -2.5% -0.0% +0.0% +0.0% +0.0%
knights -2.5% -1.6% 0.01 0.01 +0.0%
lcss -2.5% +0.0% +0.0% +0.0% +0.0%
life -2.7% -0.0% -2.8% -2.8% +0.0%
lift -2.5% -0.0% 0.00 0.00 +0.0%
listcompr -2.8% -0.0% 0.14 0.14 +0.0%
listcopy -2.8% -0.0% 0.14 0.14 +0.0%
maillist -2.9% -0.2% 0.07 0.09 +11.2%
mandel -2.4% -0.0% 0.11 0.11 +0.0%
mandel2 -2.8% -0.0% 0.00 0.00 +0.0%
minimax -2.7% -0.0% 0.00 0.00 +0.0%
mkhprog -2.8% +0.1% 0.00 0.00 +0.0%
multiplier -2.5% -0.0% -4.5% -4.5% +0.0%
n-body -3.7% -0.0% +1.2% +1.1% +0.0%
nucleic2 -2.3% -10.9% 0.10 0.10 +0.0%
para -2.6% -0.0% +0.0% +0.0% +0.0%
paraffins -2.5% -0.0% 0.20 0.20 +0.0%
parser -1.9% -0.2% 0.05 0.05 -20.0%
parstof -2.2% -0.0% 0.00 0.00 +0.0%
pic -2.4% -0.0% 0.00 0.00 +0.0%
pidigits -2.5% -0.0% -0.3% -1.0% +0.0%
power -2.2% -0.0% -1.4% -1.4% +0.0%
pretty -2.7% -0.2% 0.00 0.00 +0.0%
primes -2.6% -0.0% 0.11 0.11 +0.0%
primetest -2.5% -0.0% 0.14 0.14 +0.0%
prolog -2.4% -0.3% 0.00 0.00 +0.0%
puzzle -2.8% -0.0% -8.0% -8.0% +0.0%
queens -2.5% -0.0% 0.02 0.02 +0.0%
reptile -2.2% -0.0% 0.02 0.02 +0.0%
reverse-complem -3.3% -0.1% +4.5% +4.5% +0.0%
rewrite -2.6% -0.1% 0.02 0.02 +0.0%
rfib -2.4% -0.1% 0.03 0.03 +0.0%
rsa -2.6% -0.0% 0.03 0.03 +0.0%
scc -2.8% -0.4% 0.00 0.00 +0.0%
sched -2.5% -0.0% 0.03 0.03 +0.0%
scs -1.9% +0.0% +0.2% +0.2% +0.0%
simple -1.9% -0.0% -2.1% -2.1% +0.0%
solid -2.3% -0.0% +0.0% +0.0% +0.0%
sorting -2.8% -0.0% 0.00 0.00 +0.0%
spectral-norm -2.6% -0.1% +0.0% +0.0% +0.0%
sphere -2.3% -1.5% 0.08 0.08 +0.0%
symalg -1.7% -0.0% 0.01 0.01 +0.0%
tak -2.5% -0.0% 0.02 0.02 +0.0%
transform -2.2% -0.0% -1.8% -1.8% +0.0%
treejoin -2.9% -0.0% +0.0% +0.0% +0.0%
typecheck -2.4% -0.0% -4.4% -4.4% +0.0%
veritas -1.1% -0.0% 0.00 0.00 +0.0%
wang -2.4% -0.0% +0.0% +0.0% +0.0%
wave4main -2.4% +0.5% +0.0% +0.0% +0.0%
wheel-sieve1 -2.5% -0.0% +0.0% +0.0% +0.0%
wheel-sieve2 -2.5% -0.0% +0.0% +0.0% +0.0%
x2n1 -2.5% -0.0% 0.00 0.00 +0.0%
--------------------------------------------------------------------------------
Min -6.3% -10.9% -8.8% -8.8% -50.0%
Max -1.1% +0.5% +4.5% +4.5% +33.3%
Geometric Mean -2.5% -0.2% -1.3% -1.3% -1.5%
| -----Original Message-----
| From: ghc-commits-bounces(a)haskell.org [mailto:ghc-commits-
| bounces(a)haskell.org] On Behalf Of Simon Peyton Jones
| Sent: 06 June 2013 14:30
| To: ghc-commits(a)haskell.org
| Subject: [commit: ghc] master: Implement cardinality analysis (99d4e5b)
|
| Repository : http://darcs.haskell.org/ghc.git/
|
| On branch : master
|
| https://github.com/ghc/ghc/commit/99d4e5b4a0bd32813ff8c74e91d2dcf6b355
| 5176
|
| >---------------------------------------------------------------
|
| commit 99d4e5b4a0bd32813ff8c74e91d2dcf6b3555176
| Author: Simon Peyton Jones <simonpj(a)microsoft.com>
| Date: Fri May 3 14:50:58 2013 +0100
|
| Implement cardinality analysis
|
| This major patch implements the cardinality analysis described
| in our paper "Higher order cardinality analysis". It is joint
| work with Ilya Sergey and Dimitrios Vytiniotis.
|
| The basic is augment the absence-analysis part of the demand
| analyser so that it can tell when something is used
| never
| at most once
| some other way
|
| The "at most once" information is used
| a) to enable transformations, and
| in particular to identify one-shot lambdas
| b) to allow updates on thunks to be omitted.
|
| There are two new flags, mainly there so you can do performance
| comparisons:
| -fkill-absence stops GHC doing absence analysis at all
| -fkill-one-shot stops GHC spotting one-shot lambdas
| and single-entry thunks
|
| The big changes are:
|
| * The Demand type is substantially refactored. In particular
| the UseDmd is factored as follows
| data UseDmd
| = UCall Count UseDmd
| | UProd [MaybeUsed]
| | UHead
| | Used
|
| data MaybeUsed = Abs | Use Count UseDmd
|
| data Count = One | Many
|
| Notice that UCall recurses straight to UseDmd, whereas
| UProd goes via MaybeUsed.
|
| The "Count" embodies the "at most once" or "many" idea.
|
| * The demand analyser itself was refactored a lot
|
| * The previously ad-hoc stuff in the occurrence analyser for foldr and
| build goes away entirely. Before if we had build (\cn -> ...x... )
| then the "\cn" was hackily made one-shot (by spotting 'build' as
| special. That's essential to allow x to be inlined. Now the
| occurrence analyser propagates info gotten from 'build's stricness
| signature (so build isn't special); and that strictness sig is
| in turn derived entirely automatically. Much nicer!
|
| * The ticky stuff is improved to count single-entry thunks separately.
|
| One shortcoming is that there is no DEBUG way to spot if an
| allegedly-single-entry thunk is acually entered more than once. It
| would not be hard to generate a bit of code to check for this, and it
| would be reassuring. But it's fiddly and I have not done it.
|
| Despite all this fuss, the performance numbers are rather under-whelming.
| See the paper for more discussion.
|
| nucleic2 -0.8% -10.9% 0.10 0.10 +0.0%
| sphere -0.7% -1.5% 0.08 0.08 +0.0%
| --------------------------------------------------------------------------------
| Min -4.7% -10.9% -9.3% -9.3% -50.0%
| Max -0.4% +0.5% +2.2% +2.3% +7.4%
| Geometric Mean -0.8% -0.2% -1.3% -1.3% -1.8%
|
| I don't quite know how much credence to place in the runtime changes,
| but movement seems generally in the right direction.
|
| compiler/basicTypes/Demand.lhs | 1034 ++++++++++++++++++++++++++------
| ------
| compiler/basicTypes/MkId.lhs | 4 +-
| compiler/basicTypes/OccName.lhs | 7 +-
| compiler/cmm/CmmParse.y | 3 +-
| compiler/codeGen/StgCmmBind.hs | 44 +-
| compiler/codeGen/StgCmmTicky.hs | 25 +-
| compiler/coreSyn/CorePrep.lhs | 57 ++-
| compiler/main/DynFlags.hs | 6 +-
| compiler/simplCore/OccurAnal.lhs | 208 ++++----
| compiler/stgSyn/CoreToStg.lhs | 30 +-
| compiler/stranal/DmdAnal.lhs | 582 ++++++++++++---------
| docs/storage-mgt/ldv.tex | 6 +-
| includes/stg/Ticky.h | 7 +-
| rts/Linker.c | 8 +-
| rts/Ticky.c | 15 +-
| 15 files changed, 1302 insertions(+), 734 deletions(-)
|
|
| Diff suppressed because of size. To see it, use:
|
| git show 99d4e5b4a0bd32813ff8c74e91d2dcf6b3555176
|
| _______________________________________________
| ghc-commits mailing list
| ghc-commits(a)haskell.org
| http://www.haskell.org/mailman/listinfo/ghc-commits
1
0
Hi all,
The validate build is failing for me with the below. Does anyone know
what's up please?
Thanks
Ian
===--- building phase 0
make -r --no-print-directory -f ghc.mk phase=0 phase_0_builds
make[1]: Nothing to be done for `phase_0_builds'.
===--- building phase 1
make -r --no-print-directory -f ghc.mk phase=1 phase_1_builds
===--- building final phase
make -r --no-print-directory -f ghc.mk phase=final all
"inplace/bin/ghc-stage2" -hisuf hi -osuf o -hcsuf hc -static -H32m -O -Werror -Wall -H64m -O0 -package-name dph-prim-par-0.8.0.1 -hide-all-packages -i -ilibraries/dph/dph-prim-par/. -ilibraries/dph/dph-prim-par/dist-install/build -ilibraries/dph/dph-prim-par/dist-install/build/autogen -Ilibraries/dph/dph-prim-par/dist-install/build -Ilibraries/dph/dph-prim-par/dist-install/build/autogen -Ilibraries/dph/dph-prim-par/. -optP-include -optPlibraries/dph/dph-prim-par/dist-install/build/autogen/cabal_macros.h -package base-4.7.0.0 -package dph-base-0.8.0.1 -package dph-prim-interface-0.8.0.1 -package dph-prim-seq-0.8.0.1 -package old-time-1.1.0.1 -package random-1.0.1.1 -package vector-0.9.1 -Odph -funbox-strict-fields -fcpr-off -Wall -XHaskell98 -XTypeFamilies -XGADTs -XRankNTypes -XBangPatterns -XMagicHash -XUnboxedTuples -XTypeOperators -XFlexibleInstances -XFlexibleContexts -O2 -O -dcore-lint -fno-warn-deprecated-flags -no-user-package-db -rtsopts -Wwarn -odir libraries/dph/dph-prim-par/dist-install/build -hidir libraries/dph/dph-prim-par/dist-install/build -stubdir libraries/dph/dph-prim-par/dist-install/build -dynamic-too -c libraries/dph/dph-prim-par/./Data/Array/Parallel/Unlifted/Distributed/Data/USegd/DT.hs -o libraries/dph/dph-prim-par/dist-install/build/Data/Array/Parallel/Unlifted/Distributed/Data/USegd/DT.o -dyno libraries/dph/dph-prim-par/dist-install/build/Data/Array/Parallel/Unlifted/Distributed/Data/USegd/DT.dyn_o
Var/Type length mismatch:
[]
[s{tv a15I} [tv]]
ghc-stage2: panic! (the 'impossible' happened)
(GHC version 7.7.20130530 for x86_64-unknown-linux):
Iface Lint failure
In interface for dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Data.Vector
Unfolding of dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Data.Vector.$fDTVector_$cnewMD{v rS}
<no location info>: Warning:
In the expression: base:Control.Monad.liftM2{v rC} [gid]
@ (dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.DT.MDist{tc rD}
ghc-prim:GHC.Types.Int{(w) tc 3J} s3{tv a1Zk} [tv])
@ (vector-0.9.1:Data.Vector.Mutable.STVector{tc rB}
s3{tv a1Zk} [tv]
(vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
a4{tv a1Zi} [tv]))
@ (dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.DT.MDist{tc rD}
(vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
a4{tv a1Zi} [tv])
s3{tv a1Zk} [tv])
@ (base:GHC.ST.ST{tc rE} s3{tv a1Zk} [tv])
(base:GHC.ST.$fMonadST{v rA} [gid[DFunId]] @ s3{tv a1Zk} [tv])
(dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Data.Vector.$WMDVector{v rz} [gid[DataConWrapper]]
@ a4{tv a1Zi} [tv] @ s3{tv a1Zk} [tv])
((dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Data.Scalar.Base.$fDTInt8{v ry} [gid]
@ s3{tv a1Zk} [tv] g{v a1Zl} [lid])
`cast` (Sym
(base:GHC.ST.NTCo:ST{tc rx}[0]
<s3{tv a1Zk} [tv]>
<dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.DT.MDist{tc rD}
ghc-prim:GHC.Types.Int{(w) tc 3J} s3{tv a1Zk} [tv]>)
:: base:GHC.ST.STRep{tc r1j3}
s3{tv a1Zk} [tv]
(dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.DT.MDist{tc rD}
ghc-prim:GHC.Types.Int{(w) tc 3J} s3{tv a1Zk} [tv])
~#
base:GHC.ST.ST{tc rE}
s3{tv a1Zk} [tv]
(dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.DT.MDist{tc rD}
ghc-prim:GHC.Types.Int{(w) tc 3J}
s3{tv a1Zk} [tv])))
((\ (s4{v a21s} [lid]
:: ghc-prim:GHC.Prim.State#{(w) tc 32q} s3{tv a1Zk} [tv]) ->
case vector-0.9.1:Data.Vector.Fusion.Util.delay_inline{v rw} [gid]
@ ghc-prim:GHC.Types.Int{(w) tc 3J}
@ (ghc-prim:GHC.Types.Int{(w) tc 3J}
-> ghc-prim:GHC.Types.Int{(w) tc 3J})
ghc-prim:GHC.Classes.$fOrdInt_$cmax{v rv} [gid]
(ghc-prim:GHC.Types.I#{(w) v 6d} [gid[DataCon]] 0)
(case g{v a1Zl} [lid]
{ghc-prim:GHC.Types.Int{(w) tc 3J}}
of (wild{v a27g} [lid]
:: dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.Gang.Gang{tc rF})
{ dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.Gang.Gang{d ru} (dt{v a27R} [lid]
:: ghc-prim:GHC.Prim.Int#{(w) tc 3G})
(ds1{v a27S} [lid]
:: [base:GHC.MVar.MVar{tc r1Q2}
dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.Gang.Req{tc r1Q1}])
(ds2{v a27T} [lid]
:: base:GHC.MVar.MVar{tc r1Q2}
ghc-prim:GHC.Types.Bool{(w) tc 3c}) ->
ghc-prim:GHC.Types.I#{(w) v 6d} [gid[DataCon]]
dt{v a27R} [lid]
})
{(# ghc-prim:GHC.Prim.State#{(w) tc 32q} s3{tv a1Zk} [tv],
vector-0.9.1:Data.Vector.Mutable.MVector{tc rq}
(primitive-0.4.0.1:Control.Monad.Primitive.PrimState{tc rt}
(base:GHC.ST.ST{tc rE} s3{tv a1Zk} [tv]))
(vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
a4{tv a1Zi} [tv]) #)}
of (wild{v a27V} [lid] :: ghc-prim:GHC.Types.Int{(w) tc 3J})
{ ghc-prim:GHC.Types.I#{(w) d 6c} (n#{v a280} [lid]
:: ghc-prim:GHC.Prim.Int#{(w) tc 3G}) ->
case ghc-prim:GHC.Prim.newArray#{(w) v 920} [gid[PrimOp]]
@ (vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
a4{tv a1Zi} [tv])
@ (primitive-0.4.0.1:Control.Monad.Primitive.PrimState{tc rt}
(base:GHC.ST.ST{tc rE} s3{tv a1Zk} [tv]))
n#{v a280} [lid]
(base:GHC.Err.error{(w) v 05} [gid]
@ (vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
a4{tv a1Zi} [tv])
(ghc-prim:GHC.CString.unpackCString#{v 0k} [gid]
"MDist (Vector a) - uninitalised"#))
(s4{v a21s} [lid]
`cast` (ghc-prim:GHC.Prim.State#{(w) tc 32q}
(Sym
(primitive-0.4.0.1:Control.Monad.Primitive.TFCo:R:PrimStateST{tc rs}[0]
<s3{tv a1Zk} [tv]>))
:: ghc-prim:GHC.Prim.State#{(w) tc 32q}
s3{tv a1Zk} [tv]
~#
ghc-prim:GHC.Prim.State#{(w) tc 32q}
(primitive-0.4.0.1:Control.Monad.Primitive.PrimState{tc rt}
(base:GHC.ST.ST{tc rE}
s3{tv a1Zk} [tv]))))
{(# ghc-prim:GHC.Prim.State#{(w) tc 32q} s3{tv a1Zk} [tv],
vector-0.9.1:Data.Vector.Mutable.MVector{tc rq}
(primitive-0.4.0.1:Control.Monad.Primitive.PrimState{tc rt}
(base:GHC.ST.ST{tc rE} s3{tv a1Zk} [tv]))
(vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
a4{tv a1Zi} [tv]) #)}
of (ds1{v a282} [lid]
:: (# ghc-prim:GHC.Prim.State#{(w) tc 32q}
(primitive-0.4.0.1:Control.Monad.Primitive.PrimState{tc rt}
(base:GHC.ST.ST{tc rE} s3{tv a1Zk} [tv])),
ghc-prim:GHC.Prim.MutableArray#{(w) tc 31m}
(primitive-0.4.0.1:Control.Monad.Primitive.PrimState{tc rt}
(base:GHC.ST.ST{tc rE} s3{tv a1Zk} [tv]))
(vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
a4{tv a1Zi} [tv]) #))
{ (# (ipv{v a284} [lid]
:: ghc-prim:GHC.Prim.State#{(w) tc 32q}
(primitive-0.4.0.1:Control.Monad.Primitive.PrimState{tc rt}
(base:GHC.ST.ST{tc rE}
s3{tv a1Zk} [tv]))), (ipv1{v a285} [lid]
:: ghc-prim:GHC.Prim.MutableArray#{(w) tc 31m}
(primitive-0.4.0.1:Control.Monad.Primitive.PrimState{tc rt}
(base:GHC.ST.ST{tc rE}
s3{tv a1Zk} [tv]))
(vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
a4{tv a1Zi} [tv])) #) ->
(# ipv{v a284} [lid]
`cast` (ghc-prim:GHC.Prim.State#{(w) tc 32q}
(primitive-0.4.0.1:Control.Monad.Primitive.TFCo:R:PrimStateST{tc rs}[0]
<s3{tv a1Zk} [tv]>)
:: ghc-prim:GHC.Prim.State#{(w) tc 32q}
(primitive-0.4.0.1:Control.Monad.Primitive.PrimState{tc rt}
(base:GHC.ST.ST{tc rE} s3{tv a1Zk} [tv]))
~#
ghc-prim:GHC.Prim.State#{(w) tc 32q}
s3{tv a1Zk} [tv]),
vector-0.9.1:Data.Vector.Mutable.MVector{v rr} [gid[DataCon]]
@ (primitive-0.4.0.1:Control.Monad.Primitive.PrimState{tc rt}
(base:GHC.ST.ST{tc rE} s3{tv a1Zk} [tv]))
@ (vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
a4{tv a1Zi} [tv])
0
n#{v a280} [lid]
ipv1{v a285} [lid] #)
}
})
`cast` (Sym
(base:GHC.ST.NTCo:ST{tc rx}[0]
<s3{tv a1Zk} [tv]>
(vector-0.9.1:Data.Vector.Mutable.MVector{tc rq}
(Sym
(primitive-0.4.0.1:Control.Monad.Primitive.TFCo:R:PrimStateST{tc rs}[0]
<s3{tv a1Zk} [tv]>))
<vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
a4{tv a1Zi} [tv]>))
:: base:GHC.ST.STRep{tc r1j3}
s3{tv a1Zk} [tv]
(vector-0.9.1:Data.Vector.Mutable.MVector{tc rq}
(primitive-0.4.0.1:Control.Monad.Primitive.PrimState{tc rt}
(base:GHC.ST.ST{tc rE} s3{tv a1Zk} [tv]))
(vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
a4{tv a1Zi} [tv]))
~#
base:GHC.ST.ST{tc rE}
s3{tv a1Zk} [tv]
(vector-0.9.1:Data.Vector.Mutable.MVector{tc rq}
s3{tv a1Zk} [tv]
(vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
a4{tv a1Zi} [tv]))))
Argument value doesn't match argument type:
Fun type:
(dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.DT.MDist{tc rD}
ghc-prim:GHC.Types.Int{(w) tc 3J} s3{tv a1Zk} [tv]
-> vector-0.9.1:Data.Vector.Mutable.STVector{tc rB}
s3{tv a1Zk} [tv]
(vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
a4{tv a1Zi} [tv])
-> dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.DT.MDist{tc rD}
(vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
a4{tv a1Zi} [tv])
s3{tv a1Zk} [tv])
-> base:GHC.ST.ST{tc rE}
s3{tv a1Zk} [tv]
(dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.DT.MDist{tc rD}
ghc-prim:GHC.Types.Int{(w) tc 3J} s3{tv a1Zk} [tv])
-> base:GHC.ST.ST{tc rE}
s3{tv a1Zk} [tv]
(vector-0.9.1:Data.Vector.Mutable.STVector{tc rB}
s3{tv a1Zk} [tv]
(vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
a4{tv a1Zi} [tv]))
-> base:GHC.ST.ST{tc rE}
s3{tv a1Zk} [tv]
(dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.DT.MDist{tc rD}
(vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
a4{tv a1Zi} [tv])
s3{tv a1Zk} [tv])
Arg type:
dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.DT.MDist{tc rD}
ghc-prim:GHC.Types.Int{(w) tc 3J} s3{tv a1Zk} [tv]
-> vector-0.9.1:Data.Vector.Mutable.STVector{tc rB}
s3{tv a1Zk} [tv]
(vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
a4{tv a1Zi} [tv])
-> dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.DT.MDist{tc rD}
(vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
a4{tv a1Zi} [tv])
Arg:
dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Data.Vector.$WMDVector{v rz} [gid[DataConWrapper]]
@ a4{tv a1Zi} [tv] @ s3{tv a1Zk} [tv]
dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Data.Vector.$fDTVector_$cnewMD{v rS} = \ (@ a4{tv a1Zi} [tv])
($dUnbox{v a1Zj} [lid]
:: vector-0.9.1:Data.Vector.Unboxed.Base.Unbox{tc rW}
a4{tv a1Zi} [tv])
(@ s3{tv a1Zk} [tv])
(g{v a1Zl} [lid]
:: dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.Gang.Gang{tc rF}) ->
base:Control.Monad.liftM2{v rC} [gid]
@ (dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.DT.MDist{tc rD}
ghc-prim:GHC.Types.Int{(w) tc 3J}
s3{tv a1Zk} [tv])
@ (vector-0.9.1:Data.Vector.Mutable.STVector{tc rB}
s3{tv a1Zk} [tv]
(vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
a4{tv a1Zi} [tv]))
@ (dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.DT.MDist{tc rD}
(vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
a4{tv a1Zi} [tv])
s3{tv a1Zk} [tv])
@ (base:GHC.ST.ST{tc rE}
s3{tv a1Zk} [tv])
(base:GHC.ST.$fMonadST{v rA} [gid[DFunId]]
@ s3{tv a1Zk} [tv])
(dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Data.Vector.$WMDVector{v rz} [gid[DataConWrapper]]
@ a4{tv a1Zi} [tv]
@ s3{tv a1Zk} [tv])
((dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Data.Scalar.Base.$fDTInt8{v ry} [gid]
@ s3{tv a1Zk} [tv]
g{v a1Zl} [lid])
`cast` (Sym
(base:GHC.ST.NTCo:ST{tc rx}[0]
<s3{tv a1Zk} [tv]>
<dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.DT.MDist{tc rD}
ghc-prim:GHC.Types.Int{(w) tc 3J}
s3{tv a1Zk} [tv]>)
:: base:GHC.ST.STRep{tc r1j3}
s3{tv a1Zk} [tv]
(dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.DT.MDist{tc rD}
ghc-prim:GHC.Types.Int{(w) tc 3J}
s3{tv a1Zk} [tv])
~#
base:GHC.ST.ST{tc rE}
s3{tv a1Zk} [tv]
(dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.DT.MDist{tc rD}
ghc-prim:GHC.Types.Int{(w) tc 3J}
s3{tv a1Zk} [tv])))
((\ (s4{v a21s} [lid]
:: ghc-prim:GHC.Prim.State#{(w) tc 32q}
s3{tv a1Zk} [tv]) ->
case vector-0.9.1:Data.Vector.Fusion.Util.delay_inline{v rw} [gid]
@ ghc-prim:GHC.Types.Int{(w) tc 3J}
@ (ghc-prim:GHC.Types.Int{(w) tc 3J}
-> ghc-prim:GHC.Types.Int{(w) tc 3J})
ghc-prim:GHC.Classes.$fOrdInt_$cmax{v rv} [gid]
(ghc-prim:GHC.Types.I#{(w) v 6d} [gid[DataCon]]
0)
(case g{v a1Zl} [lid]
{ghc-prim:GHC.Types.Int{(w) tc 3J}}
of (wild{v a27g} [lid]
:: dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.Gang.Gang{tc rF})
{ dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.Gang.Gang{d ru} (dt{v a27R} [lid]
:: ghc-prim:GHC.Prim.Int#{(w) tc 3G})
(ds1{v a27S} [lid]
:: [base:GHC.MVar.MVar{tc r1Q2}
dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.Gang.Req{tc r1Q1}])
(ds2{v a27T} [lid]
:: base:GHC.MVar.MVar{tc r1Q2}
ghc-prim:GHC.Types.Bool{(w) tc 3c}) ->
ghc-prim:GHC.Types.I#{(w) v 6d} [gid[DataCon]]
dt{v a27R} [lid]
})
{(# ghc-prim:GHC.Prim.State#{(w) tc 32q}
s3{tv a1Zk} [tv],
vector-0.9.1:Data.Vector.Mutable.MVector{tc rq}
(primitive-0.4.0.1:Control.Monad.Primitive.PrimState{tc rt}
(base:GHC.ST.ST{tc rE}
s3{tv a1Zk} [tv]))
(vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
a4{tv a1Zi} [tv]) #)}
of (wild{v a27V} [lid]
:: ghc-prim:GHC.Types.Int{(w) tc 3J})
{ ghc-prim:GHC.Types.I#{(w) d 6c} (n#{v a280} [lid]
:: ghc-prim:GHC.Prim.Int#{(w) tc 3G}) ->
case ghc-prim:GHC.Prim.newArray#{(w) v 920} [gid[PrimOp]]
@ (vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
a4{tv a1Zi} [tv])
@ (primitive-0.4.0.1:Control.Monad.Primitive.PrimState{tc rt}
(base:GHC.ST.ST{tc rE}
s3{tv a1Zk} [tv]))
n#{v a280} [lid]
(base:GHC.Err.error{(w) v 05} [gid]
@ (vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
a4{tv a1Zi} [tv])
(ghc-prim:GHC.CString.unpackCString#{v 0k} [gid]
"MDist (Vector a) - uninitalised"#))
(s4{v a21s} [lid]
`cast` (ghc-prim:GHC.Prim.State#{(w) tc 32q}
(Sym
(primitive-0.4.0.1:Control.Monad.Primitive.TFCo:R:PrimStateST{tc rs}[0]
<s3{tv a1Zk} [tv]>))
:: ghc-prim:GHC.Prim.State#{(w) tc 32q}
s3{tv a1Zk} [tv]
~#
ghc-prim:GHC.Prim.State#{(w) tc 32q}
(primitive-0.4.0.1:Control.Monad.Primitive.PrimState{tc rt}
(base:GHC.ST.ST{tc rE}
s3{tv a1Zk} [tv]))))
{(# ghc-prim:GHC.Prim.State#{(w) tc 32q}
s3{tv a1Zk} [tv],
vector-0.9.1:Data.Vector.Mutable.MVector{tc rq}
(primitive-0.4.0.1:Control.Monad.Primitive.PrimState{tc rt}
(base:GHC.ST.ST{tc rE}
s3{tv a1Zk} [tv]))
(vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
a4{tv a1Zi} [tv]) #)}
of (ds1{v a282} [lid]
:: (# ghc-prim:GHC.Prim.State#{(w) tc 32q}
(primitive-0.4.0.1:Control.Monad.Primitive.PrimState{tc rt}
(base:GHC.ST.ST{tc rE}
s3{tv a1Zk} [tv])),
ghc-prim:GHC.Prim.MutableArray#{(w) tc 31m}
(primitive-0.4.0.1:Control.Monad.Primitive.PrimState{tc rt}
(base:GHC.ST.ST{tc rE}
s3{tv a1Zk} [tv]))
(vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
a4{tv a1Zi} [tv]) #))
{ (# (ipv{v a284} [lid]
:: ghc-prim:GHC.Prim.State#{(w) tc 32q}
(primitive-0.4.0.1:Control.Monad.Primitive.PrimState{tc rt}
(base:GHC.ST.ST{tc rE}
s3{tv a1Zk} [tv]))), (ipv1{v a285} [lid]
:: ghc-prim:GHC.Prim.MutableArray#{(w) tc 31m}
(primitive-0.4.0.1:Control.Monad.Primitive.PrimState{tc rt}
(base:GHC.ST.ST{tc rE}
s3{tv a1Zk} [tv]))
(vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
a4{tv a1Zi} [tv])) #) ->
(# ipv{v a284} [lid]
`cast` (ghc-prim:GHC.Prim.State#{(w) tc 32q}
(primitive-0.4.0.1:Control.Monad.Primitive.TFCo:R:PrimStateST{tc rs}[0]
<s3{tv a1Zk} [tv]>)
:: ghc-prim:GHC.Prim.State#{(w) tc 32q}
(primitive-0.4.0.1:Control.Monad.Primitive.PrimState{tc rt}
(base:GHC.ST.ST{tc rE}
s3{tv a1Zk} [tv]))
~#
ghc-prim:GHC.Prim.State#{(w) tc 32q}
s3{tv a1Zk} [tv]),
vector-0.9.1:Data.Vector.Mutable.MVector{v rr} [gid[DataCon]]
@ (primitive-0.4.0.1:Control.Monad.Primitive.PrimState{tc rt}
(base:GHC.ST.ST{tc rE}
s3{tv a1Zk} [tv]))
@ (vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
a4{tv a1Zi} [tv])
0
n#{v a280} [lid]
ipv1{v a285} [lid] #)
}
})
`cast` (Sym
(base:GHC.ST.NTCo:ST{tc rx}[0]
<s3{tv a1Zk} [tv]>
(vector-0.9.1:Data.Vector.Mutable.MVector{tc rq}
(Sym
(primitive-0.4.0.1:Control.Monad.Primitive.TFCo:R:PrimStateST{tc rs}[0]
<s3{tv a1Zk} [tv]>))
<vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
a4{tv a1Zi} [tv]>))
:: base:GHC.ST.STRep{tc r1j3}
s3{tv a1Zk} [tv]
(vector-0.9.1:Data.Vector.Mutable.MVector{tc rq}
(primitive-0.4.0.1:Control.Monad.Primitive.PrimState{tc rt}
(base:GHC.ST.ST{tc rE}
s3{tv a1Zk} [tv]))
(vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
a4{tv a1Zi} [tv]))
~#
base:GHC.ST.ST{tc rE}
s3{tv a1Zk} [tv]
(vector-0.9.1:Data.Vector.Mutable.MVector{tc rq}
s3{tv a1Zk} [tv]
(vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU}
a4{tv a1Zi} [tv]))))
Iface expr = \ @ a4
$dUnbox :: vector-0.9.1:Data.Vector.Unboxed.Base.Unbox{tc rW} a4
@ s3
g :: dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.Gang.Gang{tc rF} ->
base:Control.Monad.liftM2{v rC}
@ (dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.DT.MDist{tc rD}
ghc-prim:GHC.Types.Int{(w) tc 3J} s3)
@ (vector-0.9.1:Data.Vector.Mutable.STVector{tc rB}
s3 (vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU} a4))
@ (dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.DT.MDist{tc rD}
(vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU} a4) s3)
@ (base:GHC.ST.ST{tc rE} s3)
(base:GHC.ST.$fMonadST{v rA} @ s3)
(dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Data.Vector.$WMDVector{v rz}
@ a4
@ s3)
(dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Data.Scalar.Base.$fDTInt8{v ry}
@ s3
g)
`cast`
(Sym (base:GHC.ST.NTCo:ST{tc rx}[0]
(Refl s3)
(Refl
(dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.DT.MDist{tc rD}
ghc-prim:GHC.Types.Int{(w) tc 3J} s3))))
(\ s4 :: ghc-prim:GHC.Prim.State#{(w) tc 32q} s3 ->
case vector-0.9.1:Data.Vector.Fusion.Util.delay_inline{v rw}
@ ghc-prim:GHC.Types.Int{(w) tc 3J}
@ (ghc-prim:GHC.Types.Int{(w) tc 3J}
-> ghc-prim:GHC.Types.Int{(w) tc 3J})
ghc-prim:GHC.Classes.$fOrdInt_$cmax{v rv}
(ghc-prim:GHC.Types.I#{(w) v 6d} 0)
(case g of wild { dph-prim-par-0.8.0.1:Data.Array.Parallel.Unlifted.Distributed.Primitive.Gang.Gang{d ru} dt ds1 ds2 ->
ghc-prim:GHC.Types.I#{(w) v 6d}
dt }) of wild { ghc-prim:GHC.Types.I#{(w) d 6c} n# ->
case ghc-prim:GHC.Prim.newArray#{(w) v 920}
@ (vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU} a4)
@ (primitive-0.4.0.1:Control.Monad.Primitive.PrimState{tc rt}
(base:GHC.ST.ST{tc rE} s3))
n#
(base:GHC.Err.error{(w) v 05}
@ (vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU} a4)
(ghc-prim:GHC.CString.unpackCString#{v 0k}
"MDist (Vector a) - uninitalised"#))
s4
`cast`
(ghc-prim:GHC.Prim.State#{(w) tc 32q}
(Sym (primitive-0.4.0.1:Control.Monad.Primitive.TFCo:R:PrimStateST{tc rs}[0]
(Refl
s3)))) of ds1 { ghc-prim:GHC.Prim.(#,#){(w) d 84} ipv ipv1 ->
(# ipv
`cast`
(ghc-prim:GHC.Prim.State#{(w) tc 32q}
(primitive-0.4.0.1:Control.Monad.Primitive.TFCo:R:PrimStateST{tc rs}[0]
(Refl s3))),
vector-0.9.1:Data.Vector.Mutable.MVector{v rr}
@ (primitive-0.4.0.1:Control.Monad.Primitive.PrimState{tc rt}
(base:GHC.ST.ST{tc rE} s3))
@ (vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU} a4)
0
n#
ipv1 #) } })
`cast`
(Sym (base:GHC.ST.NTCo:ST{tc rx}[0]
(Refl s3)
(vector-0.9.1:Data.Vector.Mutable.MVector{tc rq}
(Sym (primitive-0.4.0.1:Control.Monad.Primitive.TFCo:R:PrimStateST{tc rs}[0]
(Refl s3)))
(Refl (vector-0.9.1:Data.Vector.Unboxed.Base.Vector{tc rU} a4)))))
Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug
make[1]: *** [libraries/dph/dph-prim-par/dist-install/build/Data/Array/Parallel/Unlifted/Distributed/Data/USegd/DT.o] Error 1
make: *** [all] Error 2
5
15
Dom Silvério ANA CAROLINA PINTO COSTA, LISLY KATELLY DE PAULA MARTINS, FRANCISCO HELSON DE LIMA NERES, PAULO RAFAEL PEREIRA SOARES, JOÃO CARLOS MOREIRA DE CARVALHO, DAMIÃO JOVENAL DOS SANTOS, MARIA GORETTI LIMA FREIRE, JANIMERY BARBOSA DE ABREU MELO. SHYSLAINE ARAÚJO BEZERRA, ARIANE SOARES SILVA, LUCAS MOREIRA DIAS, GILSON POLICARPO DE SÁ, REBECA DE FREITAS BARROS. Cachoeira Dourada.
Altaneira AMANDA SILVA DE MELO, LEONEL LOPES FERNANDES, FRANCISCO ALBERTO DA SILVA, PÂMELA VIRGÍNIA DE SOUZA, JOÃO CARLOS MOREIRA DE CARVALHO, DAISY CHRISTINE MELO NOGUEIRA, MARIA DENISE FEITOSA, JACQUELINE RAQUEL MENDES PATRIOTA. SAULO DEMIAN FERREIRA MAIA, ÉRICA BEZERRA DA SILVA, MAYRA FIGUEIRÊDO PEREIRA, JUAN JACKSON HOLANDA PONTE RIBEIRO, WESLEY ROGERIO ALVES. Castanheira.
Antônio Carlos ANA CAROLINA PINTO COSTA, LISLY KATELLY DE PAULA MARTINS, FRANCISCO HELSON DE LIMA NERES, PAULO RAFAEL PEREIRA SOARES, JOÃO CARLOS MOREIRA DE CARVALHO, DAMIÃO JOVENAL DOS SANTOS, MARIA GORETTI LIMA FREIRE, JANIMERY BARBOSA DE ABREU MELO. SHYSLAINE ARAÚJO BEZERRA, ARIANE SOARES SILVA, LUCAS MOREIRA DIAS, GILSON POLICARPO DE SÁ, REBECA DE FREITAS BARROS. Castanheira.
1
0
Hi all,
The plugin mechanism gives access to the program in Core; this suffices for
many but not quite all purposes. Tools that need access to the original AST
can call typecheckModule directly, but of course this requires using the
GHC API directly. Moreover, even when using the GHC API directly anyway (as
in my case), it means that tools cannot take advantage of ghc's
infrastructure for dependency tracking, recompiling only changed modules,
etc.
Hence it would be useful to have "source plugins", which can be used both
externally and when using ghc API (in the latter case I guess "hooks" would
be the more appropriate terminology). Currently "core plugins" are recorded
as part of DynFlags as
pluginModNames :: [ModuleName],
pluginModNameOpts :: [(ModuleName,String)],
This makes sense when thinking of plugins only as an external mechanism,
but is less convenient when using them as internal hooks, too. In my draft
patch I introduce a new type "HscPlugin" (described shortly) and added
sourcePlugins :: [HscPlugin],
to DynFlags. HscPlugin is a record of a pair of functions; having the
actual record here rather than a module name means that these functions
can have a non-empty closure, which is obviously convenient when using this
as a hook rather than an external plugin.
In my current version HscPlugin looks like
data HscPlugin = HscPlugin {
runHscPlugin :: forall m. MonadIO m
=> DynFlags
-> TcGblEnv
-> m TcGblEnv
, runHscQQ :: forall m. MonadIO m
=> Env TcGblEnv TcLclEnv
-> HsQuasiQuote Name
-> m (HsQuasiQuote Name)
}
runHscPlugin is the main function; it gets passed the TcGblEnv (which
contains the type checked AST as its tcd_binds field).
1
1
When I run nofib the fft2 benchmark fails with an error (see below). This happens both with HEAD
and 7.6.3. I'm setting the path to benchmarked GHC in mk/build.mk using option WithNofibHc.
Anyone else is having the same problem?
Janek
././fft2 512 < /dev/null
expected stdout not matched by reality
--- fft2.stdout7 2013-05-15 08:01:24.014049002 +0200
+++ /tmp/runtest10927.1 2013-06-04 18:06:08.401977002 +0200
@@ -1,3 +1,3 @@
-result1 = 2.59635799135966e-12
-result2 = 2.59635799135966e-12
-result3 = 4.8279900966008427e-8
+result1 = 2.6712796173433053e-12
+result2 = 2.6712796173433053e-12
+result3 = 4.827444399779779e-8
real 0m0.055s
user 0m0.049s
sys 0m0.005s
././fft2 512 < /dev/null
expected stdout not matched by reality
--- fft2.stdout7 2013-05-15 08:01:24.014049002 +0200
+++ /tmp/runtest10963.1 2013-06-04 18:06:08.507977002 +0200
@@ -1,3 +1,3 @@
-result1 = 2.59635799135966e-12
-result2 = 2.59635799135966e-12
-result3 = 4.8279900966008427e-8
+result1 = 2.6712796173433053e-12
+result2 = 2.6712796173433053e-12
+result3 = 4.827444399779779e-8
real 0m0.054s
user 0m0.047s
sys 0m0.005s
././fft2 512 < /dev/null
expected stdout not matched by reality
--- fft2.stdout7 2013-05-15 08:01:24.014049002 +0200
+++ /tmp/runtest10999.1 2013-06-04 18:06:08.602977002 +0200
@@ -1,3 +1,3 @@
-result1 = 2.59635799135966e-12
-result2 = 2.59635799135966e-12
-result3 = 4.8279900966008427e-8
+result1 = 2.6712796173433053e-12
+result2 = 2.6712796173433053e-12
+result3 = 4.827444399779779e-8
real 0m0.052s
user 0m0.044s
sys 0m0.007s
././fft2 512 < /dev/null
expected stdout not matched by reality
--- fft2.stdout7 2013-05-15 08:01:24.014049002 +0200
+++ /tmp/runtest11035.1 2013-06-04 18:06:08.712977002 +0200
@@ -1,3 +1,3 @@
-result1 = 2.59635799135966e-12
-result2 = 2.59635799135966e-12
-result3 = 4.8279900966008427e-8
+result1 = 2.6712796173433053e-12
+result2 = 2.6712796173433053e-12
+result3 = 4.827444399779779e-8
real 0m0.052s
user 0m0.046s
sys 0m0.006s
././fft2 512 < /dev/null
expected stdout not matched by reality
--- fft2.stdout7 2013-05-15 08:01:24.014049002 +0200
+++ /tmp/runtest11071.1 2013-06-04 18:06:08.816977002 +0200
@@ -1,3 +1,3 @@
-result1 = 2.59635799135966e-12
-result2 = 2.59635799135966e-12
-result3 = 4.8279900966008427e-8
+result1 = 2.6712796173433053e-12
+result2 = 2.6712796173433053e-12
+result3 = 4.827444399779779e-8
make[2]: *** [runtests] Błąd 1
Failed making all in fft2: 1
make[1]: *** [all] Błąd 1
Failed making all in spectral: 1
make: *** [all] Błąd 1
1
0