forked from kinaba/dlang-ref-jp
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrdmd.dd
More file actions
134 lines (95 loc) · 4.43 KB
/
rdmd.dd
File metadata and controls
134 lines (95 loc) · 4.43 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
Ddoc
$(D_S rdmd,
<h2>概要</h2>
コマンドプロンプトから:
<pre>
% cat myprog.d
import std.stdio;
void main()
{
writeln("Hello, world without explicit compilations!");
}
% rdmd myprog
Hello, world without explicit compilations!
% <blink>_</blink>
</pre>
Dのソースコード中で:
<pre>
% cat myprog.d
#!/usr/bin/rdmd
import std.stdio;
void main()
{
writeln("Hello, world with automated script running!");
}
% ./myprog.d
Hello, world with automated script running!
% <blink>_</blink>
</pre>
(Windows では $(B cat) の代わりに $(B type) を、$(B
#!/usr/bin/rdmd) の代わりに $(B #!rdmd) を、$(B rdmd)
に PATH が通して、置き換えて読んで下さい。)
<h2>詳細</h2>
$(P $(B rdmd) は $(B dmd) コンパイラを補助するツールで、
典型的な 編集-コンパイル-リンク-実行 や 編集-make-実行 のサイクルを、
編集-実行 というサイクルに早めるものです。$(B make) やその類似ツールのように、$(B rdmd)
は更新日時の情報を使って再ビルドの必要量を最小にします。
$(B make) と違い、$(B rdmd)
は、依存関係や新しいファイルの情報をユーザーの助けなく自動で取得できます。)
$(P $(B rdmd) は: $(UL
$(LI D 言語のソースコードが、
複数のファイルの関わる何段かのステップと様々な中間ファイルを経て実行可能なプログラムの形になる、
という概念をユーザーから隠蔽します。)
$(LI $(B import) を繰り返したどることで、
依存するファイルを自動的に推論します。)
$(LI $(B dmd) のコマンドラインオプションを全て認識し適切に引き渡します。)
$(LI $(B dmd) の様々なコンパイルオプション (例えば $(B
-release) と $(B -debug)) がコード生成に及ぼす影響を把握し、
不測の事態 (例えば release ビルドを動かしたかったときに
debug ビルドを動かしてしまうなど) を起こしません。)
$(LI 必要なファイルだけを再コンパイルします。例えば、
ソースコードを一切変更せず $(B rdmd) を続けて二回呼び出したときは、
実行ファイルを再度作成することはありません。)
))
<h2>使い方</h2>
$(P
$(B rdmd) [$(I dmd と rdmd に渡すオプション)] $(I progfile)[.d] [$(I プログラムに渡すオプション)]
)
$(P $(B dmd) のオプションに加え、$(B rdmd) は以下のオプションを認識します:
)
$(DL
$(DT $(B --build-only)) $(DD ビルドのみ。実行はしない。)
$(DT $(B --chatty)) $(DD dmdコマンドを、
実行する前に標準出力に表示)
$(DT $(B --compiler)=/path/to/compiler) $(DD 指定のコンパイラ
(例 gdmd) を dmd の代わりに使用)
$(DT $(B --dry-run)) $(DD 実際のコンパイルは行わず、本来実行されるはずのコマンドの列を表示だけします。
(--chatty の効果が自動的に含まれます))
$(DT $(B --eval)=code) $(DD コードを $(D_PARAM
void main(char[][] args) { ... }) で括って実行します。 (複数 --eval を指定すると、
順に評価されます。))
$(DT $(B --exclude)=package) $(DD 指定のパッケージをビルドから除外します。 (複数 --exclude を指定できます))
$(DT $(B --force)) $(DD 再ビルドを(必要ないように思われるときであっても)
強制的に実行します。)
$(DT $(B --help)) $(DD ヘルプメッセージを表示して終了します。)
$(DT $(B --loop)=code) $(DD --eval に近いですが、加えて、コードが
$(D_PARAM foreach (line; stdin.byLine()) { ... }) というループの中に入ります。)
$(DT $(B --main)) $(DD 空の $(D_PARAM void main() {}) 関数を追加。
(単体テストの実行に便利です。))
$(DT $(B --makedepend)) $(DD 依存関係を Makefile の形式で表示して終了します。)
$(DT $(B --man)) $(DD 使用方法説明のページをブラウザで開きます。)
$(DT $(B --shebang)) $(DD rdmd が shebang 行にあることを示します (先頭の引数として指定))
)
<h2>ダウンロード</h2>
$(UL $(LI 色分け整形された $(LINK2
https://github.com/D-Programming-Language/tools/blob/master/rdmd.d, ソースコード))
$(LI $(LINK2
https://raw.github.com/D-Programming-Language/tools/master/rdmd.d,
ダウンロード)))
<h2>著者</h2>
$(LINK2 http://erdani.org/, Andrei Alexandrescu)
)
Macros:
TITLE=rdmd
WIKI=rdmd
CATEGORY_DOWNLOAD=$0