[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 08/05 11:17 / Filesize : 219 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

D言語 Part15



1 名前:デフォルトの名無しさん mailto:sage [2007/10/05(金) 20:16:30 ]
プログラミング言語 D (D Programming Language) について語るスレッドです。
過去スレは >>2

■本家
ttp://www.digitalmars.com/d/
ttp://www.kmonos.net/alang/d/ (和訳)

■コンパイラ
ttp://www.digitalmars.com/d/dcompiler.html (DMD, 本家)
ttp://dgcc.sourceforge.net/ (GDC, gccフロントエンド)
ttp://gdcmac.sourceforge.net/ (GDCのmac用バイナリ)

■参考URL
ttp://f17.aaa.livedoor.jp/~labamba/ (D言語研究)
ttp://dsource.org/ (dsource)
ttp://www.sun-inet.or.jp/~yaneurao/dlang/
ttp://wisdom.sakura.ne.jp/programming/d/

182 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 21:33:12 ]
OpenGL+SDLでゲームを作っているのですが、
SDL_mixerとABAさんのsound.dを使うようにしたところ、
Out of memoryというエラーが出てクラッシュするようになってしまいました。
メモリ使いすぎかと思ったのですが、
タスクマネージャから見るとメモリ使用量はほとんど増加していないので、
どんなバグを疑えばよいですか?
ソースコードの変更点としては、数箇所にSound.playSe()とSound.playMarkedSe()を追加しただけで、
しかもこのライブラリはABAさんが実用化しているので、何が変わっているのかさっぱりです。
これを取り除くとやはり発生しなくなります。

183 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 21:34:58 ]
書き忘れ。
コンパイルは成功して、同じ用にゲームは動き、音もなるのですが、
しばらく動かしていると突然エラーが出て終了する、という状態です。

184 名前:デフォルトの名無しさん mailto:sage [2007/10/16(火) 23:33:10 ]
>>180
口元の筋肉がちょっと動いた

185 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 00:29:22 ]
D言語のコンパイラ精度ってどうなの

186 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 01:22:29 ]
正確性には欠けるな。バグだらけ

187 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 01:24:16 ]
>>182
D2.0でやってる?

188 名前:178 mailto:sage [2007/10/17(水) 02:36:03 ]
>>179
要はこういうことなんだなあ、と
www.kmonos.net/wlog/64.html#_2340060823

189 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 04:23:32 ]
爆弾キターーーー

ttp://www.digitalmars.com/d/changelog.html

What's New for D 2.006
* Transformed all of string, wstring, and dstring into invariant definitions.
  Tons of changes in function signatures and implementations rippled through the standard library.
  Initial experience with invariant strings seems to be highly encouraging.
* Implemented Overload Sets for functions and templates.

phobosの機能追加は多すぎて省略

190 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 05:04:39 ]
何か凄い凄い。
std.getoptでプログラムの引数の利用が容易に、std.fileにディレクトリ内のファイル一覧を簡単に取得する方法が無かったのが修正された、std.stdioに機能増えすぎワロタ、std.contractsが新鮮。
std.conv.parseとstd.string.munchのコンボもいい。けど、refを使ったのは別のモジュールにまとめて欲しいような気がしないでもない。



191 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 05:16:50 ]
すごい、すごいけどD1.0系列の更新が止まったように見える…
仕様が固定されたD1.0系列を使うか新機能とPhobosが見せる巻き返しを堪能するためにD2.0を使うべきか…悩ましい…

192 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 05:29:55 ]
何がすごいのかさっぱり分からん

193 名前:デフォルトの名無しさん [2007/10/17(水) 05:59:56 ]
D言語
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
           ___                _
       / ____ヽ           /  ̄   ̄ \
       |  | /, −、, -、l           /、          ヽ 
       | _| -|○ | ○||         |・ |―-、       |
   , ―-、 (6  _ー っ-´、}         q -´ 二 ヽ      |
   | -⊂) \ ヽ_  ̄ ̄ノノ          ノ_ ー  |     |
    | ̄ ̄|/ (_ ∪ ̄ / 、 \        \. ̄`  |      /
    ヽ  ` ,.|     ̄  |  |         O===== |
      `− ´ |       | _|        /          |

194 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 07:51:06 ]
な、なんだどうした何が起こった!? 日本語訳を!
良いニュースなのか悪いニュースなのか!?

195 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 07:55:39 ]
C++が使えない無能の為のプログラミング言語=D言語

196 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 08:10:22 ]
ktkr

197 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 08:15:42 ]
こりゃまたすごいのきたな。

198 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 08:24:33 ]
てかD言語ってまだ開発してたのか

199 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 09:13:04 ]
標準ライブラリって本当にPhobosからTangoに移行するん?

200 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 11:54:50 ]
>>199
定期的に話題になるよな
2.0をいじってたら、
Tangoのわなびとしか、最近思えなくなってきた。




201 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 12:05:40 ]
ttp://www.digitalmars.com/d/phobos/std_variant.html
ををVariant来た! boxはいらない子になるのかなぁ・・・

!isっていつからあった?

202 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 12:14:31 ]
あ、string系のaliasがconst(char)[]からinvariant(char)[]に変わったのか。

……どーいう意味を持つのかイマイチ分からない。
というか、未だに「invariant型」の動作がよく分からん。

invariant(char[]) book = "I, Robot";
って宣言したbookに関して、

book ~= " by Isaac Asimov";
book.length = 1;
book = "2001 Space Odyssey";
こういう動作は別に禁止されないんだよね。invariant型って、どういう目的で使えばいいの?

203 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 12:32:07 ]
>>191
D2.006の新しいPhobosの機能をD1.xに移植した人がdigitalmars.D.announsに。
std2ってやつ。



204 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 13:24:39 ]
>>202
invariant(char[]) book = "I, Robot";

invariant(char)[] book = "I, Robot";
で、意味が変わるきがするが

205 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 14:02:50 ]
>>201
!isはisが導入されたときからあったと思う

206 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 14:11:49 ]
>>204
それは同じ意味になる
www.digitalmars.com/d/final-const-invariant.html
の Invariant Doesn't Apply To Declared Symbols のあたり。

207 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 14:19:58 ]
>>202
たとえば
 class Stream {
  int opApply( int delegate(ref const(char)[] line) dg );
 }
こういう宣言だったとしたら、
string s;
 foreach(line; din) if( line[0] == '#' ) s = line;
 writeln( "#で始まってた最後の行は", s );
このコードは期待した通りに動かないかもしれない。
Streamが内部でlineの中身を勝手に再利用してるかもしれないので。
constだと、"自分が"lineの中身を書き換えることはできなくなるけど、
他のところで書き換えが起こる可能性は否定できない。

これが
 class Stream {
  int opApply( int delegate(ref invariant(char)[] line) dg );
 }
こうだったら、opApplyの実装を見るまでもなく↑のコードは普通に動く。
invariantな配列の中身はもう"誰も"書き換えないので、Streamが後で
書き換えるようなことがない。

とかそういう使い方。

208 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 14:29:13 ]
おい。invariant周りでコンパイル通らなくなったぞ。
まーた全部書き換えかよ…

209 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 14:48:24 ]
なんでもかんでもidupつけないといけないのは気持ち悪いな

210 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 15:21:42 ]
aasumeUniqueでおk



211 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 15:49:37 ]
ttp://www.digitalmars.com/d/phobos/std_contracts.html

string letters()
{
char[] result = new char['z' - 'a' + 1];
foreach (i, ref e; result)
{
e = 'a' + i;
}
return assumeUnique(result);
}

これか なるほど

212 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 19:05:34 ]
>>208
動作確認してなかったので翻訳してなかったんだが、

string, wstring, dstringの定義をinvariant付きにしました。
関数の定義と実装を(標準ライブラリ関数の影響も含めて)山ほど変更する必要があります。
invariantなstringを使ってみた最初の感想としては、かなり有望です。


なにがどう有望なのか試してないのでなんともいえませんが。

213 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 19:37:54 ]
おいおい、phobos 張り切るのもいい加減にしろよ。tango の立場がなくなっちまうじゃないか。

214 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 20:01:30 ]
walたんがTangoに「○○追加してね」っていえばいい

215 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 20:41:34 ]
D2.x用のTangoは、どうなってる? もう出てる?

216 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 20:45:46 ]
>>215
まだじゃね?

217 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 21:20:07 ]
import std.stdio, std.contracts;
void main() {
foreach(string line; lines(enforce(fopen(__FILE__)))) {
write(line);
}
}

SUGEEEE

218 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 21:22:39 ]
そんな感動するようなことじゃないが、これまでなかったのが不思議だな。

219 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 21:31:01 ]
そういう短いけれども案外実用的なコードがたくさん欲しいところ

220 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 21:31:17 ]
>>187
解決しました。
すいません、もともとあったメモリ関係のバグが、たまたま出てきた形でした。



221 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 21:45:35 ]
D言語、1系が安定しない永遠のβだった頃から注目してるけど、
1系が成熟しないままさっさと2系に移ったところを見ると
実用的になるのは3系が登場してからかなと思ってしまう。

222 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 21:51:38 ]
Dは永遠にをるたんの実験言語。
実用的になるなんてあり得ないよ。

223 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 21:59:20 ]
>>209-211
さっぱりわからんのだが・・・
idup付ける代わりにassumeUniqueで済むってことだけじゃないよな?
余計にタイプ数増えるんだが
本当はassumeUniqueは何のためのものなの?

224 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 22:05:37 ]
>>223
idupはデータのコピーが行われるが、
assumeUniqueはコピーが行われない。

225 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 22:40:23 ]
>>224
うーん
そうですか
もうちょっと暗黙のコピーが発生するのを許容して
明示的な指定が減るようになったらいいね

226 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 22:50:17 ]
テストしてなさすぎワロス
いろいろ試してみたがdmd2.006はstd.formatが壊れてるな

//>writef
//testtest1010
//%s=%dvalue200
import std.stdio;
void main(){
 writef("test", "test", 10, 10, "\n%s=%d", "value", 200, "\n");
}

227 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 23:01:33 ]
>>226
>Breaking change: std.stdio.writef can now only accept a format as its first argument.

228 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 23:21:22 ]
>>227
あ 最後に書いてあるのそういうことか thx

229 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 23:34:02 ]
stringにconstつけてみたりinvariantになったりするのはWalterたんからの「ソース見直せリファクタリング汁!!」というご命令に違いない!

230 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 23:57:41 ]
Andrei Alexandrescuありがとう、そしてがんばれー
とエールを送っておこう



231 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 01:09:50 ]
>>230
Andrei Alexandrescu先生のTMPが見られるのは今やD言語だけ!(でもない)

232 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 01:40:11 ]
gdcってdmdで言うv2.0以降はあるの?

233 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 01:46:50 ]
svnで対応してるよ。

234 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 19:31:42 ]
>>206
ありがと しらんかった

235 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 00:01:06 ]
coroutineが、phobosでほしいなぁ

236 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 00:14:29 ]
そこは言語仕様に組み込むべきだろう。

237 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 06:13:14 ]
dmd2.004 以降でこういうちょっと怪しいのをコンパイルしようとすると途中で固まる。
void main(){ f([[]]); }
void f(int[][] a){}

f(cast(int[][])[[]]); ならおk

-v 付きでコンパイルすると semantic3 までは表示されるけど code が表示されずに止まってる。
何これ?

238 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 06:40:44 ]
D言語で作られたアプリケーションって何があるよ

239 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 11:33:27 ]
Dで作ったOS
それがDOS

240 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 11:37:56 ]
ttp://www.digitalmars.com/d/phobos/std_string.html

int ifind(in const const char[] s, in const const char[] sub);

なんなんだ、const だらけかよ。
inつかっても constをこれだけ使うっていうのがなんとも・・・



241 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 12:44:04 ]
in const constってどういう意味ですかwwww
inって
invariant const scopeだったよねwwwconst三つですかwwwww

242 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 13:09:17 ]
typo
ソース見れ

243 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 13:36:42 ]
D言語でstaticライブラリをつくる方法はどうやるのでしょうか。
コンパイル激早なんで、やる必要があまりないのかもしれませんが・・・

244 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 13:50:03 ]
budなら
bud -lib main.d

何も使わないでやるなら
dmd -c main.d
lib -c -l main.lib main.obj

245 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 13:50:18 ]
>>240
なんかintつけるとDDocが変なものを生成する。

246 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 14:18:48 ]
static引数まだー?

247 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 16:20:50 ]
>>246
なにそれ

248 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 16:53:40 ]
関数名に?入れて述語ry

そういやなんで?とか!とかは識別子にならないの?

249 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 17:01:03 ]
scopeクラスが単にnew ScopeClass();でエラー出さないでしかもスコープ抜けてもデストラクタが呼ばれないですけどこれはバグ?

250 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 17:03:49 ]
やっべDMD古いからかな。新しいので試してみます。一応古いのは1.020です



251 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 17:24:27 ]
>>249
scope周りはバグだらけ。もうどうしようもない

252 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 17:40:25 ]
把握しました

253 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 17:50:04 ]
本当にconstとかinveriantとか必要なのか?
C++から移ってきたときはほしいなと思ったこともあったけど、現状のconstとinveriantを見てるとうざったさ以上の便利さを感じない…
もっと上手い方法なかったのかな…


254 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 18:03:42 ]
デリゲート便利だなw
Scheme触って帰ってきたら使わずには居られないwwww

255 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 19:50:18 ]
>>253
constまわりは、まだまだこれからって感じだと思う。
現時点では文字列をimmutableにするためにしか使われてないし。
評価を下すのはまだ早いと思う。
現状のconstまわりの仕様には問題あると思うが。

文字列(配列)のスライスはコピー作らないから、文字列をimmutableにする意味はあると思うし、現時点では、
「inveriantは文字列をimmutableにするためのもの」
って割り切って、それ以外の機能は使わないようにすれば何とかやっていけそうだと俺は感じてる。


256 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 23:12:18 ]
>>244
ありがとうございます
作れました!

257 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 02:46:33 ]
勇気出してD2を入れることにしたぞー!

258 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 07:56:12 ]
macroって結局なんなの?

259 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 13:09:30 ]
>>258
カンファレンスのをるたんのスライド見れば分かるよ。

260 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 14:45:02 ]
それでも俺は1系列を使い続ける



261 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 16:50:22 ]
>260
1系列は俺に任せてお前達は先に行け!

まで読んだ

262 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 17:38:26 ]
>>261
文字数増えてるという不思議。

263 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 18:20:58 ]
>>262
つまり行間じゃなくて字間を読んだということか

264 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 20:27:45 ]
D2.0のstring周りの改変は
暗黙のコピーがいやでしょうがない
どこでどう動いてるか把握したい
文字列で、知らぬ間にメモリをちょっとでも使われるのも嫌でたまらん
ってことかな。

スクリプトライクな手軽なコーディングを
できるだけ殺さないように、がんばってんだよね


265 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 22:14:00 ]
みんな phobos と tango のどっち使ってる?
phobos は単純明快だが機能面でちょっと不足な上にバグ多いし、
tango は機能面はある程度充実してるけどドキュメントが整備されてない上に使いにくかったりするし、
なんかこう、どっちも中途半端なんだよなぁ。


266 名前:デフォルトの名無しさん [2007/10/20(土) 22:28:27 ]
>>248
全角?も駄目なんだな。これで我慢しとけ。

bool もしかしてnullですか(Object nullかどうか調べるオブジェクト)
{
 return nullかどうか調べるオブジェクト is null;
}


267 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 00:09:01 ]
もしかしてnullですか?

268 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 00:10:25 ]
もしかしてnullですか¿

269 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 00:11:09 ]
nullですよ¡

270 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 03:22:06 ]
>>264
藻前は組み込みに向いている
Dが組み込みに対応するその日まで
Dで生き延びろ



271 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 03:25:55 ]
>>264の発言は>>264自身のことじゃなくてDの文字列仕様の意図でしょ?

272 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 07:58:34 ]
>>265
両者の良いところが全部一つに集まると、
素晴らしき真のDが誕生してどんな願いも叶えてくれると伝説にはあります

273 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 09:51:27 ]
>>270
げ、するどい 正直びっくりした。
組み込み屋です。 Dが早く使えないかねらってます。


274 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 12:02:31 ]
ちょっと和んだ

275 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 13:55:30 ]
>>273
そう考えると2.006 invariant stringは有望だなあ。
Walterたんが「リアルタイム処理ではmalloc/freeよりGCの実行制御のほうが有利なこともある」
ってるが、そういうのは確かにあるので分かる気はする。
実際free listと組み合わせるとなかなか高速に動作してくれるし。
ada並の用途になるとDも本望だろう。

276 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 14:37:40 ]
>>272
それを後の人は「闇鍋」と呼んだ。

277 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 14:57:01 ]
D1〜D7まで揃えるとDragonが(ry

278 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 15:34:37 ]
組み込み屋ってなにするひと?

279 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 15:45:17 ]
>>278
ttp://ja.wikipedia.org/wiki/組み込みシステム

280 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 15:57:58 ]
>>279
サンクス



281 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 17:11:50 ]
組み込みに関してはかなり素人で見当違いなことかもしれないんだが…
たとえばH8のマイコンがGCCのコンパイラでコンパイルできるみたいだけど、
GDCとH8を使ってD言語による組み込み向けのプログラムを作ることはできないのかな?

282 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 18:59:26 ]
GDC






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<219KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef