Ryo Yamashita

Results 42 comments of Ryo Yamashita

You can find such dependencies with `cargo +nightly udeps && cargo +nightly udeps --all-targets` because `cargo-udeps` currently skips dependencies that are not appear in the `rustc` options. ```toml [dependencies] if_chain...

How about using [`assert_cmd`](https://crates.io/crates/assert_cmd)? Then we can put crates (including `Cargo.lock`) under `tests/` as testsuites like this and run `integration-test`s with `--target-dir ./target/tests/testapp` (or `$TMPDIR/cargo_udeps_tests.************/target/sampleapp`). ``` ./cargo-udeps └── tests ├──...

> ability to specify Cargo.toml inline Referring to [this](https://github.com/rust-lang/cargo/tree/master/crates/cargo-test-support)? I didn't know it.

`--display-limit`は[`human_sizes::Size`](https://docs.rs/human-size/0.4/human_size/type.Size.html)という`"100KiB"`のような文字列を受け入れる型をそのまま利用しています。"no multiple"というメッセージは[`human_size::ParsingError::MissingMultiple`](https://docs.rs/human-size/0.4/human_size/enum.ParsingError.html#variant.MissingMultiple)のものだと思います。こちらとしてはバイト数を整数値そのままで入れることを想定していませんでした。

helpの`--display-limit `を`--display-limit `とか、整数値を受け入れるようにして`--display-limit `とかにすればわかりやすくなるかもしれませんね。

"display limit"自体は、例えばある箇所のループの回数がそれぞれ1,2,3,10^5回のテストケースA, B, C, Dがあったとき、ループ内に`eprintln!`や`dbg!`を書くとDのstderrでターミナルが埋め尽くされるためにA, B, Cのものも見れなくなる、というのが動機だったと思います。 ただデフォルト4KiBは確かに小さすぎますね。

compete.tomlで設定可能にするのもよいかも。

`test`コマンドにおける判定方法は[YAMLファイルの`match`フィールド](https://github.com/qryxip/cargo-compete#match)によって決まり、`new`/`add`/`download`コマンド時でデフォルトで設定されるのは`Lines`です。これは(サイト問わず)古い問題とかでジャッジサーバーで動いているcheckerの実装があまりにも適当だと余計な空白を入れると通らない、といったことが起こるので厳密にしたいけどLF/CRLFとnoeolくらいは許してもいいか...という理由だったと思います。記憶の限りでは。 今日`match`のバリアントとして`SplitWhitespace`を追加しました。(リリースはまだしていません) https://github.com/qryxip/snowchains/blob/f3a1a7788eccbaa8428e6443f7b5d4e698b3f834/snowchains_core/src/testsuite.rs#L797-L815 で、これからの方針として以下のものが考えているのですが、どれにしようか迷っています。 1. デフォルトを`Lines`から`SplitWhitespace`にする 2. sample outputが0単語 OR 1単語の場合のみ`SplitWhitespace`にするようにする 3. `compete.toml`にデフォルトの`match`の値についての設定を追加する。 `Checker`でユーザーがスクリプトを書いて好みの判定方法にすることができそうです。 4. `SplitWhitespace`だけ追加してデフォルトをそのままにする。 5. 別の`match`方式の追加 (`""`だけ特別扱いするようなもの等)

とりあえず`split_whitespace`で一致するときは警告を出すだけにして[v0.8.8](https://github.com/qryxip/cargo-compete/releases/tag/v0.8.8)をリリースしました。 ![Screenshot](https://user-images.githubusercontent.com/14125495/110678498-b953c400-8219-11eb-9ba7-05b38331b063.png) というのもDropbox上のテストケースだと`""`ではなく`"\n"`になってたりするのでそもそも`""`として解釈するべきではないんじゃないかと思い始めたので。といってもHTML上で両者の見分けをどうすればいいのかがわからないのですが... ![Screenshot2](https://user-images.githubusercontent.com/14125495/110678519-bd7fe180-8219-11eb-992d-4786d3891bf5.png)

あるいはintegration-testで ```rust #[allow(dead_code) #[path = "../src/bin/a.rs"] mod a; ``` ってやるか。せっかくRustに密なんだしいつかやりたい。