私はストリーム融合ライブラリを自分のプロジェクトに持ち込みようとしています。私はStack(LTS 5.16)を使用しています。 Stream-fusion-0.1.2.5のバージョンをプロジェクトのCabalファイルに追加しました。また、stack.yamlの余分な依存として追加しました。ストリーム融合を構築する際の問題を解決するには
stream-fusion-0.1.2.5: configure
stream-fusion-0.1.2.5: build
-- While building package stream-fusion-0.1.2.5 using:
/Users/me/.stack/setup-exe-cache/x86_64-osx/setup-Simple-Cabal-1.22.5.0-ghc-7.10.3 --builddir=.stack-work/dist/x86_64-osx/Cabal-1.22.5.0 build --ghc-options " -ddump-hi -ddump-to-file"
Process exited with code: ExitFailure 1
Logs have been written to: /Users/me/Haskell/hqfl/.stack-work/logs/stream-fusion-0.1.2.5.log
Configuring stream-fusion-0.1.2.5...
Building stream-fusion-0.1.2.5...
Preprocessing library stream-fusion-0.1.2.5...
[1 of 3] Compiling Data.Stream (Data/Stream.hs, .stack-work/dist/x86_64-osx/Cabal-1.22.5.0/build/Data/Stream.o)
/private/var/folders/q_/qbq9bct96jj8p_c9kqbhmt840000gn/T/stack6002/stream-fusion-0.1.2.5/Data/Stream.hs:591:5: Warning:
Pattern match(es) are non-exhaustive
In an equation for ‘next’:
Patterns not matched: (_ :!: (Just (L _))) :!: S2
[2 of 3] Compiling Data.List.Stream (Data/List/Stream.hs, .stack-work/dist/x86_64-osx/Cabal-1.22.5.0/build/Data/List/Stream.o)
/private/var/folders/q_/qbq9bct96jj8p_c9kqbhmt840000gn/T/stack6002/stream-fusion-0.1.2.5/Data/List/Stream.hs:235:1: Warning:
The import of ‘seq, Int’ from module ‘Prelude’ is redundant
/private/var/folders/q_/qbq9bct96jj8p_c9kqbhmt840000gn/T/stack6002/stream-fusion-0.1.2.5/Data/List/Stream.hs:1703:10: Warning: Tab character
/private/var/folders/q_/qbq9bct96jj8p_c9kqbhmt840000gn/T/stack6002/stream-fusion-0.1.2.5/Data/List/Stream.hs:2496:1: Warning:
Rule "genericSplitAt -> fusible" may never fire
because ‘genericSplitAt’ might inline first
Probable fix: add an INLINE[n] or NOINLINE[n] pragma on ‘genericSplitAt’
/private/var/folders/q_/qbq9bct96jj8p_c9kqbhmt840000gn/T/stack6002/stream-fusion-0.1.2.5/Data/List/Stream.hs:2504:1: Warning:
Rule "genericSplitAt -> splitAt/Int" may never fire
because ‘genericSplitAt’ might inline first
Probable fix: add an INLINE[n] or NOINLINE[n] pragma on ‘genericSplitAt’
/private/var/folders/q_/qbq9bct96jj8p_c9kqbhmt840000gn/T/stack6002/stream-fusion-0.1.2.5/Data/List/Stream.hs:2516:1: Warning:
Rule "genericReplicate -> replicate/Int" may never fire
because ‘genericReplicate’ might inline first
Probable fix: add an INLINE[n] or NOINLINE[n] pragma on ‘genericReplicate’
[3 of 3] Compiling Control.Monad.Stream (Control/Monad/Stream.hs, .stack-work/dist/x86_64-osx/Cabal-1.22.5.0/build/Control/Monad/Stream.o)
/private/var/folders/q_/qbq9bct96jj8p_c9kqbhmt840000gn/T/stack6002/stream-fusion-0.1.2.5/Control/Monad/Stream.hs:136:10:
Ambiguous occurrence ‘MonadPlus’
It could refer to either ‘Control.Monad.Stream.MonadPlus’,
defined at Control/Monad/Stream.hs:124:1
or ‘GHC.Base.MonadPlus’,
imported from ‘GHC.Base’ at Control/Monad/Stream.hs:80:1-15
/private/var/folders/q_/qbq9bct96jj8p_c9kqbhmt840000gn/T/stack6002/stream-fusion-0.1.2.5/Control/Monad/Stream.hs:140:10:
Ambiguous occurrence ‘MonadPlus’
It could refer to either ‘Control.Monad.Stream.MonadPlus’,
defined at Control/Monad/Stream.hs:124:1
or ‘GHC.Base.MonadPlus’,
imported from ‘GHC.Base’ at Control/Monad/Stream.hs:80:1-15
は、どのように私はここであいまいさを解決することができます:私はプロジェクトをビルドしようとすると
はしかし、私は今、次のですか?
私はそれについて不思議で、/ test/Benchディレクトリを/ Benchに移動し、それをキャバルベンチにしました。これらは結果ですhttp://lpaste.net/163848最初の図は2番目のData.List.StreamであるData.Listです。 GHCはこれを使用せず、ビルド/折りたたみ機構を改良したばかりだと思います。 – Michael
私はあなたのエジェンドとキャバリア化されたベンチをここに[email protected]:michaelt1/stream-fusion.gitという価値があるものにしました。 – Michael