@@ -237,20 +237,37 @@ <h2><a class="header" href="#rustツールチェインやクレートの内容
237
237
< li > Rust 1.35.0</ li >
238
238
< li > インストールするクレート:< a href ="https://github.com/rust-lang-ja/atcoder-rust-resources/wiki/Crates-2019 "> このページ</ a > を参照</ li >
239
239
</ ul >
240
+ < h2 > < a class ="header " href ="#内容についてのお問い合わせなど " id ="内容についてのお問い合わせなど "> 内容についてのお問い合わせなど</ a > </ h2 >
241
+ < p > 内容について質問などがありましたら、< a href ="https://github.com/rust-lang-ja/atcoder-rust-resources/issues "> GitHub Issue</ a > などでご連絡ください。</ p >
242
+ < p > なお本章のMarkdownソースファイルはGitHub < a href ="https://github.com/rust-lang-ja/atcoder-rust-resources "> rust-lang-ja/atcoder-rust-resources</ a > にあります。</ p >
240
243
< h2 > < a class ="header " href ="#素のrust環境について " id ="素のrust環境について "> 素のRust環境について</ a > </ h2 >
241
244
< p > < a href ="https://docs.google.com/spreadsheets/d/1PmsqufkF3wjKN6g1L0STS80yP4a6u-VdGiEv5uOHe0M/edit "> AtCoder 2019/7 Language Updateのスプレッドシート</ a > では、従来のようにクレートがインストールされていない「素のRust環境」の併設を望む声もあるようです。</ p >
242
- < p > 本章の内容に従って環境をセットアップした場合に、ユーザプログラム(選手が提出したプログラム)が従来のようにクレートを使用しないなら、インストールしたクレートはないものと同じになります。
243
- 使用しないクレートはユーザプログラムの実行ファイルになんら影響を与えません。
244
- このことから素のRust環境を別途用意する必要はなさそうに思えます。</ p >
245
- < p > もしそれでも心配という声があるようなら、素のRust環境を別途用意することも可能です。
246
- その場合は以下の環境変数の値を変える(または< code > unset</ code > する)ことで、本章でセットアップする環境と、素のRust環境を切り替えることができます。</ p >
245
+ < p > そのような環境を望む理由については、正直な話、よくわかりません。
246
+ 本章の手順に従ってセットアップした環境が問題なく動作するなら、わざわざ別の環境を用意する必要はないからです。
247
+ もしユーザプログラム(選手が提出したプログラム)がクレートを使わないなら、本章の手順でインストールしたクレートはないものと同じになります。
248
+ コンパイルにかかる時間やコンパイルによって生成される実行ファイルには影響を与えません。</ p >
249
+ < p > もしかしたら本章でインストールしたツール(クレート検索パス生成ツール)が何かのタイミングでうまく動かなくなり、コンパイルできなくなるなどの障害が起こることを心配しているのかもしれません。とはいえジャッジサーバの環境は固定されていますので、そういうことは起こりにくいと考えられます。</ p >
250
+ < p > もしそれでも欲しいという声があるなら、素のRust環境を別途用意することも技術的には可能です。</ p >
251
+ < h3 > < a class ="header " href ="#方法1環境は1つのままコンパイルコマンドを2種類用意する " id ="方法1環境は1つのままコンパイルコマンドを2種類用意する "> 方法1:環境は1つのまま、コンパイルコマンドを2種類用意する</ a > </ h3 >
252
+ < p > 1つ目の方法は、環境自体は本章の手順で1つだけセットアップして、コンパイルコマンドを切り替えることです。</ p >
253
+ < p > 本章でセットアップする環境では、以下のようにクレート検索パス生成ツール(< code > rustc-dep-option-generator</ code > コマンド)付きでコンパイラを実行します。</ p >
254
+ < pre > < code class ="language-console "> $ RUST_LIB=$RUST_HOME/lib
255
+ $ rustc --edition=2018 -C opt-level=3 \
256
+ $(rustc-dep-option-generator $RUST_LIB/Cargo.toml $RUST_LIB/target/release/deps) \
257
+ main.rs
258
+ </ code > </ pre >
259
+ < p > 素の環境、つまりクレートがインストールされていない環境と同じにするには、クレート検索パス生成ツールを使わずにコンパイラを実行します。</ p >
260
+ < pre > < code class ="language-console "> $ rustc --edition=2018 -C opt-level=3 main.rs
261
+ </ code > </ pre >
262
+ < p > これならクレート検索パス生成ツールが動かなくなる可能性を心配しないですみます。</ p >
263
+ < h3 > < a class ="header " href ="#方法2文字通り2つの環境を用意する " id ="方法2文字通り2つの環境を用意する "> 方法2:文字通り2つの環境を用意する</ a > </ h3 >
264
+ < p > 2つ目の方法は、本章の環境に加えて、素のRust環境も用意することです。
265
+ シェルの環境変数< code > RUSTUP_HOME</ code > と< code > CARGO_HOME</ code > を本章のものとは違う値に設定して(または< code > unset</ code > して)< code > rustup</ code > をインストールすれば、本章の環境とは別の場所にRustツールチェインがインストールでされます。</ p >
266
+ < p > コンパイルの際も環境変数の値を変えることで、本章でセットアップする環境と、素のRust環境を切り替えます。</ p >
247
267
< table > < thead > < tr > < th align ="left "> 環境変数</ th > < th align ="left "> 本章でセットアップする環境(クレートを使用できる環境)を使用する場合</ th > < th align ="left "> 素のRust環境を使用する場合</ th > </ tr > </ thead > < tbody >
248
268
< tr > < td align ="left "> < code > RUSTUP_HOME</ code > </ td > < td align ="left "> < code > /usr/local/lib/rust/rustup</ code > </ td > < td align ="left "> < code > rustup</ code > をデフォルトの場所にインストールしたのなら< code > unset RUSTUP_HOME</ code > </ td > </ tr >
249
269
< tr > < td align ="left "> < code > CARGO_HOME</ code > </ td > < td align ="left "> < code > /usr/local/lib/rust/cargo</ code > </ td > < td align ="left "> < code > cargo</ code > をデフォルトの場所にインストールしたのなら< code > unset CARGO_HOME</ code > </ td > </ tr >
250
270
</ tbody > </ table >
251
- < h2 > < a class ="header " href ="#内容についてのお問い合わせなど " id ="内容についてのお問い合わせなど "> 内容についてのお問い合わせなど</ a > </ h2 >
252
- < p > 内容について質問などがありましたら、< a href ="https://github.com/rust-lang-ja/atcoder-rust-resources/issues "> GitHub Issue</ a > などでご連絡ください。</ p >
253
- < p > なお本章のMarkdownソースファイルはGitHub < a href ="https://github.com/rust-lang-ja/atcoder-rust-resources "> rust-lang-ja/atcoder-rust-resources</ a > にあります。</ p >
254
271
<!-- -*- coding:utf-8-unix -*- -->
255
272
< h1 > < a class ="header " href ="#本章で想定している環境 " id ="本章で想定している環境 "> 本章で想定している環境</ a > </ h1 >
256
273
< h2 > < a class ="header " href ="#用語 " id ="用語 "> 用語</ a > </ h2 >
0 commit comments