Skip to content

Commit b95ec7f

Browse files
committed
Create a initial markdown for the guide book
1 parent 3cab8f6 commit b95ec7f

16 files changed

+285
-0
lines changed

Diff for: .gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
*~
2+
/docs/

Diff for: book.toml

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# -*- coding:utf-8-unix -*-
2+
3+
[book]
4+
title = "AtCoderコンテストにRustで参加するためのガイドブック"
5+
# authors = ["rust-lang-ja authors"]
6+
# description = ""
7+
multilingual = false
8+
src = "src"
9+
10+
[build]
11+
build-dir = "docs"

Diff for: src/SUMMARY.md

+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
<!-- -*- coding:utf-8-unix -*- -->
2+
3+
# Summary
4+
5+
- [はじめに (TODO)](./introduction.md)
6+
- [AtCoderの環境について (TODO)](./todo.md)
7+
- [ソフトウェアのバージョンなど (TODO)](./todo.md)
8+
- [単一のソースファイル (TODO)](./todo.md)
9+
- [利用可能なクレート (TODO)](./todo.md)
10+
- [開発環境の準備 (TODO)](./todo.md)
11+
- [Rustツールチェインのインストール (TODO)](./todo.md)
12+
- [ソースコードエディタとデバッガの準備 (TODO)](./todo.md)
13+
- [cargo-generateテンプレート (TODO)](./todo.md)
14+
- [cargo-generateのインストール (TODO)](./todo.md)
15+
- [コンテストの参加方法 (TODO)](./todo.md)
16+
- [Cargoパッケージの作成 (TODO)](./todo.md)
17+
- [利用するクレートの選択 (TODO)](./todo.md)
18+
- [テストケースの作成 (TODO)](./todo.md)
19+
- [プログラムの作成 (TODO)](./todo.md)
20+
- [プログラムのテスト (TODO)](./todo.md)
21+
- [プログラムの提出 (TODO)](./todo.md)
22+
- [Tips(小技集) (TODO)](./todo.md)
23+
- [クレートの利用例 (TODO)](./todo.md)
24+
- [AtCoder運営者向けの情報 (TODO)](./atcoder-env/index.md)
25+
- [本書が想定する環境と利用形態 (TODO)](./atcoder-env/supported-environment.md)
26+
- [一般的なRust開発環境との違い (TODO)](./atcoder-env/differences-from-common-installation.md)
27+
- [インストール (TODO)](./atcoder-env/installation.md)
28+
- [Rustツールチェインのインストール (TODO)](./atcoder-env/installing-rust-toolchain.md)
29+
- [クレート(外部ライブラリ)のビルドとインストール (TODO)](./atcoder-env/installing-rust-crates.md)
30+
- [クレート検索パス生成プログラムのビルドとインストール(TODO)](./atcoder-env/installing-crate-path-builder.md))
31+
- [動作確認 (TODO)](./atcoder-env/post-installation.md)
32+
- [コンパイルコマンドと実行コマンド (TODO)](./atcoder-env/compiling-and-running-program.md)
33+
- [コンパイルオプションについて (TODO)](./atcoder-env/about-compile-options.md)
34+
- [コントリビュータ (TODO)](./contributors.md)

Diff for: src/atcoder-env/about-compile-options.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<!-- -*- coding:utf-8-unix -*- -->
2+
3+
# コンパイルオプションについて
4+
5+
**TODO** このページは書きかけです。

Diff for: src/atcoder-env/compiling-and-running-program.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<!-- -*- coding:utf-8-unix -*- -->
2+
3+
# コンパイルコマンドと実行コマンド
4+
5+
**TODO** このページは書きかけです。
+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<!-- -*- coding:utf-8-unix -*- -->
2+
3+
# 一般的なRust開発環境との違い
4+
5+
**TODO** このページは書きかけです。

Diff for: src/atcoder-env/index.md

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<!-- -*- coding:utf-8-unix -*- -->
2+
3+
# AtCoder運営者向けの情報
4+
5+
**TODO** このページは書きかけです。
6+
7+
本章では以下の内容について説明します。
8+
9+
- Rustツールチェインやクレート(外部ライブラリ)をジャッジサーバへインストールする手順
10+
- 提出されたプログラムのコンパイルおよび実行手順
11+

Diff for: src/atcoder-env/installation.md

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<!-- -*- coding:utf-8-unix -*- -->
2+
3+
# インストール
4+
5+
**TODO** このページは書きかけです。
6+
7+
- Rustツールチェインのインストール
8+
- クレート(外部ライブラリ)のビルドとインストール
9+
- クレートの検索パス生成プログラムのビルドとインストール
10+
- インストール後の動作確認

Diff for: src/atcoder-env/installing-crate-path-builder.md

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
<!-- -*- coding:utf-8-unix -*- -->
2+
3+
# クレート検索パス生成プログラムのビルドとインストール
4+
5+
**TODO**
6+
7+
8+
```console
9+
$ sudo -i
10+
11+
# whoami
12+
root
13+
14+
# export RUST_HOME=/usr/local/lib/rust
15+
# git clone https://github.com/rust-lang-ja/TBD.git ${RUST_HOME}/TBD ## TODO
16+
```
17+
18+
```console
19+
# whoami
20+
root
21+
22+
# cd ${RUST_HOME}/TBD ## TODO
23+
# cargo install
24+
```
25+
26+
```console
27+
## 一般ユーザで実行
28+
$ source /usr/local/lib/rust/cargo/env
29+
30+
$ TBD -V
31+
```

Diff for: src/atcoder-env/installing-rust-crates.md

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
<!-- -*- coding:utf-8-unix -*- -->
2+
3+
# クレート(外部ライブラリ)のビルドとインストール
4+
5+
**TODO**
6+
7+
- 対象となるクレートのソースコードを`/usr/local/lib/rust/lib`にダウンロードする
8+
- クレートをビルドする。
9+
ビルド済みのクレート(rlibファイル)は`/usr/local/lib/rust/lib/target/release`に出力される
10+
11+
```console
12+
$ sudo -i
13+
# whoami
14+
root
15+
16+
# export RUST_HOME=/usr/local/lib/rust
17+
# git clone https://github.com/rust-lang-ja/atcoder-rust-crates.git ${RUST_HOME}/lib
18+
```
19+
20+
```console
21+
# whoami
22+
root
23+
24+
# cd ${RUST_HOME}/lib
25+
# ./build.sh
26+
```
27+
28+
ビルドに成功すると以下のように表示されます。
29+
30+
```console
31+
TODO
32+
33+
```

Diff for: src/atcoder-env/installing-rust-toolchain.md

+67
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
<!-- -*- coding:utf-8-unix -*- -->
2+
3+
# Rustツールチェインのインストール
4+
5+
**TODO** このページは書きかけです。
6+
7+
- Rustツールチェインを`/usr/local/lib/rust`配下にインストール
8+
- インストール時はインターネット接続が必要
9+
10+
11+
## 依存ソフトウェアのインストール
12+
13+
Rustツールチェインのインストールに先立って、Rustプログラムのリンクやクレートのビルドに必要なソフトウェアをインストールします。
14+
15+
- Rustツールチェインやクレートのダウンロードに必要なもの:curl, git-core
16+
- Rustプログラムのリンク時に必要なもの:gcc, binutils
17+
- 一部のRustクレートや関連ツールのビルドに必要なもの:libssl-dev, pkg-config
18+
19+
```console
20+
$ sudo apt update
21+
$ sudo apt install -y curl git-core gcc binutils libssl-dev pkg-config
22+
```
23+
24+
25+
## Rustツールチェインのインストール
26+
27+
```console
28+
$ sudo -i
29+
30+
# whoami
31+
root
32+
33+
# export RUST_TOOLCHAIN=1.35.0
34+
# export RUST_HOME=/usr/local/lib/rust
35+
# export RUSTUP_HOME=${RUST_HOME}/rustup
36+
# export CARGO_HOME=${RUST_HOME}/cargo
37+
38+
# mkdir -p ${RUST_HOME}
39+
# curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | \
40+
sh -s -- --default-toolchain "${RUST_TOOLCHAIN}" --no-modify-path
41+
```
42+
43+
44+
## コマンド検索パスの設定
45+
46+
Rust使用させたいLinuxユーザのシェルの初期設定ファイル(例`.bashrc`)に以下のコマンドを追加します。
47+
48+
```bash
49+
source /usr/local/lib/rust/cargo/env
50+
```
51+
52+
これにより`/usr/local/lib/rust/cargo/bin`がコマンド検索パス(`PATH`)に追加されます。
53+
54+
55+
## インストール結果の確認
56+
57+
```console
58+
## 一般ユーザで実行
59+
$ source /usr/local/lib/rust/cargo/env
60+
61+
$ rustc -V
62+
63+
$ cargo -V
64+
65+
$ rustup -V
66+
67+
```

Diff for: src/atcoder-env/post-installation.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<!-- -*- coding:utf-8-unix -*- -->
2+
3+
# インストール後の動作確認
4+
5+
**TODO** このページは書きかけです。

Diff for: src/atcoder-env/supported-environment.md

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
<!-- -*- coding:utf-8-unix -*- -->
2+
3+
# 本書が想定する環境と利用形態
4+
5+
**TODO** このページは書きかけです。
6+
7+
## 用語
8+
9+
本章で用いる用語には以下のものがあります。
10+
11+
- **ユーザプログラム**
12+
- 選手が提出したプログラムのこと
13+
- **Rustツールチェイン**
14+
- Rustコンパイラ、ビルドツール兼パッケージマネージャのCargo、Rustの標準ライブラリなど
15+
- **Rustクレート**
16+
- Rustのライブラリのこと。クレート(crate)木箱の意味。Rustユーザが作成した無数のクレートが、セントラルリポジトリのcrates.ioで公開されている
17+
18+
## 想定する環境
19+
20+
本章ではAtCoderのジャッジサーバ環境として、以下のものを想定しています。
21+
22+
- Ubuntu 18.04 LTS x86_64
23+
- ユーザプログラムは何らかのコンテナ内で実行される
24+
- インターネットなどのネットワークアクセスは不可
25+
- 物理メモリ、ディスクファイルサイズ、プロセス数などの制限あり
26+
- プログラミング言語ごとにファイルシステムが分かれているわけではない
27+
- たとえば提出言語としてBashやPythonを選択したときに、他の言語のコンパイラを実行するようなスクリプトを提出・実行できる
28+
- (このようなプログラムを提出することは推奨はされないが、現状は可能となっている)
29+
- プログラムが作成したファイルはテストケースの実行ごとに削除される
30+
- ユーザプログラムをコンパイル・実行するLinuxユーザは、単一のユーザなのか、複数のユーザなのかは不明
31+
- 本書では複数ユーザの場合でも対応できるよう、Rustツールチェインやクレートを、ジャッジサーバ上の全Linuxユーザがread-onlyでアクセスできる場所(`/usr/local/lib/rust`)にインストールする

Diff for: src/contributors.md

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<!-- -*- coding:utf-8-unix -*- -->
2+
3+
# コントリビュータ
4+
5+
**TODO** このページは書きかけです。
6+

Diff for: src/introduction.md

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<!-- -*- coding:utf-8-unix -*- -->
2+
3+
# はじめに
4+
5+
**TODO** このページは書きかけです。
6+
7+
本書はAtCoderのコンテストにRustで参加するためのガイドブックです。
8+
9+
- AtCoderの環境について
10+
- 開発環境のセットアップ
11+
- コンテストの参加方法
12+
- AtCoder向けテンプレートパッケージを使用したRustプログラムの開発方法
13+
- Tips(小技集)
14+
- AtCoder運営者向けの情報
15+
- ジャッジサーバへのインストール手順
16+
- 提出されたプログラムのコンパイルおよび実行手順
17+
18+
## AtCoderとは?
19+
20+
**TODO**
21+
22+
## なぜRustなのか?
23+
24+
**TODO** (Pros/Cons)

Diff for: src/todo.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<!-- -*- coding:utf-8-unix -*- -->
2+
3+
# TODO
4+
5+
このページは未作成です。

0 commit comments

Comments
 (0)