質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Haskell

Haskellは高い機能性をもった関数型プログラミング言語で、他の手続き型プログラミング言語では難しいとされている関数でも容易に行うことができます。強い静的型付け、遅延評価などに対応しています。

Q&A

解決済

3回答

771閲覧

haddock作成時にエラーが起きる

qoopty

総合スコア15

Haskell

Haskellは高い機能性をもった関数型プログラミング言語で、他の手続き型プログラミング言語では難しいとされている関数でも容易に行うことができます。強い静的型付け、遅延評価などに対応しています。

0グッド

0クリップ

投稿2021/05/05 08:56

編集2021/05/05 12:24

haskellでhaddock作成時にエラーが起きます。

haskellでstackを使ってhaddockを出力時に
lensパッケージを削除すると
エラーが発生しなくなりました。

実行コマンド
$stack haddock .

発生している問題・エラーメッセージ

<stderr>: commitAndReleaseBuffer: invalid argument (invalid character) <stderr>: commitAndReleaseBuffer: invalid argument (invalid character) <stderr>: commitAndReleaseBuffer: invalid argument (invalid character)

該当のソースコード

Lib.hs

haskell

1module Lib where 2someFunc :: IO () 3someFunc = putStrLn "someFunc"

package.yaml

yaml

1dependencies: 2- base >= 4.7 && < 5 3- lens 4

stack.yaml

yaml

1resolver: 2 url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/17/10.yaml 3 4# User packages to be built. 5# Various formats can be used as shown in the example below. 6# 7# packages: 8# - some-directory 9# - https://example.com/foo/bar/baz-0.0.2.tar.gz 10# subdirs: 11# - auto-update 12# - wai 13packages: 14- .

試したこと

警告を抑制したらいいのかなと思って以下をしても問題解決せず

$stack haddock . --haddock-arguments "--optghc=-Wno-unused-imports" --open --ghc-options "-Wno-unused-imports"

補足情報(FW/ツールのバージョンなど)

環境
windows 10
$stack --version
Version 2.5.1, Git revision d6ab861544918185236cf826cb2028abb266d6d5 x86_64 hpack-0.33.0

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

igrep

2021/05/05 09:09

stack.yaml の中身も載せてください。そうすれば使用しているGHCやhaddockのバージョンが分かるので。
igrep

2021/05/05 11:20

本題と無関係なのでここに書きます。 stack.yamlのresolverの行ですが単に`resolver: lts-17.10` と書くだけで良いです。
igrep

2021/05/06 01:11

なるほど。しばらく新しいプロジェクトを作っていなかったので気づいてませんでしたが、今はstack newやstack initしたときのデフォルトがそうなってるんですね!
guest

回答3

0

chcp 65001
$stack haddock .

投稿2021/05/05 12:25

qoopty

総合スコア15

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

もし先ほどの回答で直らなかったのであれば、 -Wunused-imports 以外の警告もすべて無効にしてみてください。以下のコマンドでできるはずです:

stack haddock . --haddock-arguments "--optghc=-w" --open --ghc-options "-w"

「lensパッケージを削除したら発生しなかった」とのことなので、手元で stack haddock lens してみました。が、しかし再現しなかったのでこの解決策は推測ですが、stack haddock lens してみた結果、問題の <stderr>: commitAndReleaseBuffer: invalid argument (invalid character) がでるべきところ(vectorパッケージをビルドする際の警告の直後)でadjunctionsパッケージにおける警告が出ました:

adjunctions > [ 1 of 11] Compiling Control.Monad.Trans.Conts adjunctions > [ 2 of 11] Compiling Data.Functor.Contravariant.Rep adjunctions > adjunctions > src\Data\Functor\Contravariant\Rep.hs:42:17: warning: [-Wstar-is-type] adjunctions > Using 窶・窶・(or its Unicode variant) to mean 窶魯ata.Kind.Type窶・[0m adjunctions > relies on the StarIsType extension, which will become adjunctions > deprecated in the future. adjunctions > Suggested fix: use 窶狼ype窶・from 窶魯ata.Kind窶・instead. adjunctions > | adjunctions > 42 | type Rep f :: * adjunctions > | ^ adjunctions >

上記の警告における Using 窶・窶・(or its Unicode variant) to mean 窶魯ata.Kind.Type窶・窶狼ype窶・from 窶魯ata.Kind窶・instead. などと書かれている箇所は、文字化けした箇所です。
件のinvalid argument (invalid character) はこの文字(を含むバッファー)を書き出す際に発生したと考えられます。なので、お察しの通りGHCの警告を無効にすれば回避できるはずです。

この問題、invalid argument (invalid character)がでるのは問題のある文字列を出力しようとしたときなので、問題が発生したときの出力からは直接の原因が分からないので辛いですね...

投稿2021/05/05 12:03

igrep

総合スコア428

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

vector > Warning: 'fromList' is ambiguous. It is defined

などの、vectorパッケージのビルド時にでている警告は問題の原因ではないです。
一番大きな問題はその下の

<stderr>: commitAndReleaseBuffer: invalid argument (invalid character)

です。

こちらで解説しているエラーと思われるので、ひとまず、あらかじめコマンドラインで

bat

1chcp 65001

を実行してから再度 stack haddock してみてください。

投稿2021/05/05 09:06

igrep

総合スコア428

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

qoopty

2021/05/05 12:23

$chcp 65001 $stack haddock . で解決しました ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問