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


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

D言語 Part28



1 名前:デフォルトの名無しさん mailto:sage [2011/08/24(水) 06:02:12.35 ]
プログラミング言語 D (D Programming Language) について語るスレッドです。

■前スレ
D言語 Part27
hibari.2ch.net/test/read.cgi/tech/1303022487/

■本家
www.digitalmars.com/d/
www.d-programming-language.org/ (ドキュメント)
www.kmonos.net/alang/d/ (和訳)

■コンパイラ
www.digitalmars.com/d/dcompiler.html (DMD, 本家)
dgcc.sourceforge.net/ (GDC, gccフロントエンド)
www.dsource.org/projects/ldc (LDC, バックエンドにLLVM)

■参考URL
f17.aaa.livedoor.jp/~labamba/ (D言語研究)
f17.aaa.livedoor.jp/~labamba/?D%B8%C0%B8%ECBOF (D言語BOF)
dsource.org/ (dsource)
tinyurl.com/candcpp2d2 (C/C++に疲れた人のD言語2.0)
www.kmonos.net/alang/wnd/ (わかったつもりになるD言語)
shinh.skr.jp/d/ (SDL, SDL_*, OpenGL, GLU, glutのポーティングとか)
shoo.s20.xrea.com/shoo/programing (D言語とTangoの入門講座)
www.nicovideo.jp/mylist/4453698 (D言語で作られた芝ゲー niconico動画)
www.asahi-net.or.jp/~cs8k-cyu/ (ABA Games)
dusers.dip.jp (D言語友の会)
www.wish.sakura.ne.jp/desuno/game/Drawing (PrincessDrawing! D言語で作られた横スクロールSTG)

147 名前:デフォルトの名無しさん mailto:sage [2011/09/10(土) 22:45:55.54 ]
globMatch()はなにかおかしい…。たまにglobMatch内でAssersionFailure起こす。

148 名前:デフォルトの名無しさん mailto:sage [2011/09/10(土) 22:56:47.36 ]
なんか053から055にバージョン上げたら文脈によってnewで落ちるようになった
またGC周りの何かの予感が
自分のバグならいいけど・・いやいくないけど

149 名前:デフォルトの名無しさん mailto:sage [2011/09/10(土) 23:02:01.31 ]
>>147
'['が含まれてるパスがおかしいのは確認した

というか'['とか普通にパスに使える文字じゃないの?なんなのこの仕様

150 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 00:06:28.19 ]
第2引数何指定してる?

151 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 00:38:38.06 ]
>>149
UNIX系のシェルだと、[ABC]でAかBかCのどれか、みたいなワイルドカードが使えるものがあるんだよ。

……本当に'['を指定したい時のための記法は用意されてるんだろうか。

152 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 00:46:08.96 ]
fnmatch()には「エスケープはできません(キリッ」と書かれてのけぞったが
replace("[", "[[]")でなんとかなった
glabMatchはそれやるとassertで落ちる

153 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 05:03:12.23 ]
globMatchの第2引数では[]{}は特別な意味持ってるから開きと閉じの個数が合ってないと落ちるよ、てか落とすよ

154 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 05:20:47.30 ]
D言語のライブラリ、Tangoの次はMank(ry

155 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 08:35:13.32 ]
大人しく普通のワイルドカードで比較するか



156 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 08:45:34.34 ]
そのうち例外出すように変わるだろうね

157 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 09:40:41.88 ]
男らしく副作用が多すぎて使い物にならない関数の代表を目指してほしい

158 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 09:55:54.49 ]
strtokさんを超えてくれ

159 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 17:34:05.26 ]
ドキュメントは d-p-l のサイトだけ更新されたな
やっぱりこっちが本家なのか

日本語との照会がしづらくなるのう

160 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 18:06:34.25 ]
public auto hoge() @property { return 0; }
これがコンパイル通らないのって仕様?@2.055
public int hoge() @property { return 0; }

public auto hoge() { return 0; }
はもちろん通る

161 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 18:08:59.49 ]
std.path.getExt() -> extension() の危険な罠を回避した
手をつけるのを遅らせておいてよかった・・・

162 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 18:10:02.59 ]
@property {
public auto hoge() { return 0; }
}
でとりあえずコンパイルはできるみたい。

163 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 18:14:38.02 ]
>>161
あれどうしてあんな風になったんだろ?

164 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 18:25:14.51 ]
元の getExt() にドットが含まれない方が違和感あったから
俺はこっちがいい

165 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 19:25:24.14 ]
static if (__VERSION__ < 2055) {
std.algorithm.sort!"std.path.fcmp(a.name,b.name)<0"( list );
} else {
std.algorithm.sort!"std.path.filenameCmp(a.name,b.name)<0"( list );
}

こういうのをもっと簡単に書けないものか・・・

alias pred UZEEEEEEE



166 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 20:08:22.80 ]
何度もやるならalias使うしか

167 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 20:52:58.99 ]
std.path.rel2abs(".") -> absolutePath(".") も罠だった

カレントディレクトリ取る方法が他にあれば・・・

168 名前:デフォルトの名無しさん mailto:sage [2011/09/11(日) 21:24:59.46 ]
std.file.getcwdでええんちゃう?

なんでstd.fileなのさ

169 名前:デフォルトの名無しさん mailto:sage [2011/09/12(月) 00:53:14.41 ]
やっぱりあるんだね
Windowsユーザにその名前は盲点だった

そして最新のドキュメントからは消えている・・・

170 名前:デフォルトの名無しさん mailto:sage [2011/09/12(月) 02:11:28.75 ]
>>168
std.file と std.path は統合してもいいんじゃ?と時々思う。
分かれてるもっともらしい理由を以前ここで見た気がするが忘れた。

ttp://ideone.com/t2Ym9
2.055のバグ(?)かと思ったけど、Ideoneの出力もなんか予想と違うような…

171 名前:デフォルトの名無しさん mailto:sage [2011/09/12(月) 02:56:25.22 ]
システムコールを必要とするものしないもの、かな?妄想だけど
……だったらrel2absの意味がわからんか

172 名前:デフォルトの名無しさん mailto:sage [2011/09/13(火) 01:44:39.54 ]
原因不明でnewに失敗するんだけど
core.memory.GC.disable();すると落ちなくなる、、
何これ、、、、、

173 名前:デフォルトの名無しさん mailto:sage [2011/09/13(火) 10:23:55.95 ]
>>172
どっか別のオブジェクトのデストラクタが意図せぬ順番で走るパターン
とエスパーしてみる

174 名前:デフォルトの名無しさん mailto:sage [2011/09/13(火) 10:28:40.15 ]
ttp://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
TIOBE 順位の躍進の理由は
C++11に注目が集まって、それと比較するためとにらんでいる

D = C++11 と混同した層とかそういうデマとかもたくさんあったに違いない
だから2〜3ヶ月もすると(ry

175 名前:デフォルトの名無しさん mailto:sage [2011/09/13(火) 19:32:09.37 ]
0.2%増えたのって大きいのか小さいのか



176 名前:デフォルトの名無しさん mailto:sage [2011/09/13(火) 20:12:33.24 ]
ぐらふを見るべき
ttp://www.tiobe.com/index.php/paperinfo/tpci/D.html

177 名前:デフォルトの名無しさん mailto:sage [2011/09/13(火) 21:03:17.40 ]
数年前に何があったんだってばよ

178 名前:デフォルトの名無しさん mailto:sage [2011/09/13(火) 21:45:57.54 ]
2007年正月のはver. 1.00発表
やっと正式版になったかと思ったのも懐かしい思い出

179 名前:デフォルトの名無しさん mailto:sage [2011/09/14(水) 02:13:15.18 ]
>>174
単純にAndreiの入門書が出たからだよ。
大規模C++ソフトウェアデザインの著者だからネームバリューが凄い

180 名前:デフォルトの名無しさん mailto:sage [2011/09/14(水) 13:16:56.89 ]
MC++Dかと

181 名前:デフォルトの名無しさん mailto:sage [2011/09/15(木) 00:36:33.06 ]
ねえねえ、今のPhobosってどのくらい強力って感じなの?

182 名前:デフォルトの名無しさん mailto:sage [2011/09/15(木) 01:32:20.67 ]
std.c.stdioのprintfまじ強力

183 名前:デフォルトの名無しさん mailto:sage [2011/09/15(木) 09:33:30.30 ]
mapファイル出力して中身を見ると
16384バイトごとに必ず文字抜けする
このバグ、誰も報告してないんやろか・・・

184 名前:183 mailto:sage [2011/09/15(木) 10:00:52.37 ]
補足
OPTLINK (R) for Win32 Release 8.00.12

185 名前:デフォルトの名無しさん mailto:sage [2011/09/15(木) 17:48:44.11 ]
取り合えず報告してみて
報告済みなら誰かが重複マークをつけてくれると思って書いたらいい



186 名前:デフォルトの名無しさん mailto:sage [2011/09/15(木) 18:04:45.48 ]
バグがコミュニケーションの輪を広げるんだよ!!
D言語はウォルターの人間愛でできてるんだよ!!!

187 名前:デフォルトの名無しさん mailto:sage [2011/09/15(木) 18:09:28.85 ]
むしろ、D言語の存在そのものがバグ

188 名前:デフォルトの名無しさん mailto:sage [2011/09/15(木) 18:52:07.48 ]
書いた
d.puremagic.com/issues/show_bug.cgi?id=6673


189 名前:デフォルトの名無しさん mailto:sage [2011/09/15(木) 19:38:16.95 ]
D言語友の会 dusers.dip.jp/
久しぶりに覗いたらChangelogがちゃんと日本語化されててワロタ
というか、日本語で解説見るまで toUTF16z → toUTFz になったの気づかなかった

有志には乙と言わざるを得ない

190 名前:デフォルトの名無しさん mailto:sage [2011/09/15(木) 19:47:51.72 ]
toUTF16zの代替はtoUTFz!(wchar*)であることに気付かなくて一瞬阿鼻叫喚になったんだ

友の会の中の人は本当に乙だな

191 名前:デフォルトの名無しさん mailto:sage [2011/09/15(木) 19:54:08.98 ]
お、DWTアプリにクラス1個追加したら-gつけた時に出るようになったOPTLINKのエラーが
もう2〜3個クラス追加したら出なくなった

192 名前:デフォルトの名無しさん mailto:sage [2011/09/15(木) 23:51:38.45 ]
.NETはオワコン

193 名前:デフォルトの名無しさん mailto:sage [2011/09/16(金) 01:22:45.57 ]
opDotに@propertyつけてなかったが為に起きた、segvもせずにでたらめな値を返すバグに、数時間はまってた。
しかも単純なコードだと再現しねぇ(dmd2.055win)

194 名前:デフォルトの名無しさん mailto:sage [2011/09/16(金) 01:56:45.22 ]
え、詳しく

195 名前:デフォルトの名無しさん mailto:sage [2011/09/16(金) 06:22:39.75 ]
Dもやろうと思えばJITコンパイラ書けるよね。
Safeモードもあるし。



196 名前:デフォルトの名無しさん mailto:sage [2011/09/16(金) 10:33:12.82 ]
-safe は犠牲になったのだ・・・

197 名前:デフォルトの名無しさん mailto:sage [2011/09/16(金) 20:00:06.39 ]
Phobos「-safe? -property? 何のことです?」

198 名前:デフォルトの名無しさん mailto:sage [2011/09/16(金) 20:06:21.46 ]
memory safe D って -safe もろとも消えたと思ってたけど
SafeD ってのは別物なの?

199 名前:デフォルトの名無しさん mailto:sage [2011/09/17(土) 17:18:52.43 ]
え?safeなくなったの?
propertyはまだあるよね?

200 名前:デフォルトの名無しさん mailto:sage [2011/09/17(土) 17:47:43.97 ]
-safeは無くなったみたい
phobosさえ使わなければちゃんと機能したのになぁ…

201 名前:デフォルトの名無しさん [2011/09/17(土) 19:51:10.43 ]
さーてOS作るか

202 名前:デフォルトの名無しさん mailto:sage [2011/09/17(土) 21:01:55.83 ]
OSのバージョンアップ頻度 < 開発環境の更新頻度

203 名前:デフォルトの名無しさん mailto:sage [2011/09/17(土) 21:03:29.02 ]
DのOSか
名前はDOSで決まり

204 名前:デフォルトの名無しさん mailto:sage [2011/09/17(土) 21:22:36.14 ]
あ、DOSを使っててC言語を思いついたのかもね

205 名前:デフォルトの名無しさん mailto:sage [2011/09/17(土) 23:02:18.83 ]
>>194 すまん。193は勘違いだった。今やったら再現しないわ。
スレよごしてごめん



206 名前:デフォルトの名無しさん mailto:sage [2011/09/17(土) 23:08:27.23 ]
Dだから実は勘違いでない可能性大

207 名前:デフォルトの名無しさん mailto:sage [2011/09/18(日) 03:40:06.23 ]
opDotなんて使うのか?
もはやalias thisだろ

208 名前:デフォルトの名無しさん mailto:sage [2011/09/18(日) 09:55:18.32 ]
WinRTに対応したら
ネイティブ言語としてのまさかの覇権があるかもよ

209 名前:デフォルトの名無しさん mailto:sage [2011/09/18(日) 10:03:19.85 ]
ではまず WinRTから SJISを排除するところから

210 名前:デフォルトの名無しさん mailto:sage [2011/09/18(日) 11:26:35.64 ]
>>207
ひと手間加えるだけでECMA ScriptやLuaのような
連想配列ベースのオブジェクトが作れるという魔法の道具ですぜ。

211 名前:デフォルトの名無しさん mailto:sage [2011/09/18(日) 16:58:12.02 ]
>>210
kwsk

212 名前:デフォルトの名無しさん mailto:sage [2011/09/18(日) 17:33:19.48 ]
std.xmlか何かに無かったっけ?

213 名前:デフォルトの名無しさん mailto:sage [2011/09/18(日) 17:35:12.26 ]
魔導書2、Dの記事だけ読みてえ

214 名前:デフォルトの名無しさん mailto:sage [2011/09/18(日) 18:48:11.06 ]
記事が1つしか載らないってことはD言語は全然変態じゃないってことか…

215 名前:デフォルトの名無しさん mailto:sage [2011/09/18(日) 18:56:08.44 ]
いや、Haskellとか他の言語の記事も入ってる号で単独記事だから十分変態



216 名前:デフォルトの名無しさん [2011/09/18(日) 22:02:25.15 ]
phobosの中のような、たとえば
sizediff_t indexOf(char1, char2)(const(char1)[] s, const(char2)[] sub )
のような、
関数名(型名)(引数){}の様な構文ってどのような解釈をしたらいいんですか?
関数名(引数){}な構文しか知らないんで、どう読んで良いのか良く判りません。

217 名前:デフォルトの名無しさん mailto:sage [2011/09/18(日) 22:14:19.98 ]
www.kmonos.net/alang/d/2.0/template.html#function-templates
これです

218 名前:デフォルトの名無しさん mailto:sage [2011/09/19(月) 02:30:26.73 ]
テンプレートパラメータです

219 名前:デフォルトの名無しさん mailto:sage [2011/09/19(月) 02:31:30.43 ]
opDotってまだ使い道あったのか

220 名前:デフォルトの名無しさん mailto:sage [2011/09/20(火) 02:32:18.02 ]
immutableはsharedのひとつ?

221 名前:デフォルトの名無しさん mailto:sage [2011/09/20(火) 07:13:22.23 ]
immutableはすべてのスレッドから等しく参照してよいと定められているけど、
コンパイラがどこまでsharedとの一貫性を保ってくれるかは不明。
shared関係はなんというかまだ整理されきっていない感じ。

222 名前:デフォルトの名無しさん mailto:sage [2011/09/21(水) 15:18:23.70 ]
なぜ defineEnum が消されねばならんのだ、ぐぬぬ・・・

enum SCE_D {
COMMENT,
COMMENTLINE
}
assertEquals(std.conv.parse!SCE_D("COMMENTLINE"), SCE_D.COMMENTLINE);
----------------------------------------------------------------------
core.exception.AssertError@test.d(123): COMMENT != COMMENTLINE


223 名前:222 mailto:sage [2011/09/21(水) 15:55:58.81 ]
Issue 4744 て コードをいじった痕跡があるのに
FIX されてないじゃん
なんぞ・・・

224 名前:デフォルトの名無しさん mailto:sage [2011/09/23(金) 03:50:26.96 ]
>> 222
それコンパイル時に文字列のタプルを長さ順にソートしないといけないから
実装がえらく面倒になる。

225 名前:デフォルトの名無しさん mailto:sage [2011/09/23(金) 10:31:39.37 ]
前方一致いらない
単語切り出して完全一致を比較するだけでいいはず



226 名前:デフォルトの名無しさん mailto:sage [2011/09/23(金) 10:52:13.80 ]
Phobos 敗走・恐怖の神

何でこんな名前つけたし・・・

227 名前:デフォルトの名無しさん mailto:sage [2011/09/23(金) 10:58:40.74 ]
木星の衛星だっけ? 火星?

228 名前:デフォルトの名無しさん mailto:sage [2011/09/23(金) 11:29:34.14 ]
火星。MarsだからPhobos
純然たる恐怖の神であるDeimosよりは合ってるんじゃないかな

229 名前:デフォルトの名無しさん mailto:sage [2011/09/23(金) 19:58:08.29 ]
ヴァンパイアハンターの土偶さんのイメージがつきまとう

230 名前:デフォルトの名無しさん mailto:sage [2011/09/23(金) 22:51:35.07 ]
ウォルター「実は昔知ったのさ。日本でカセイというと別の意味もあるって事にね。おっとこれ以上の詮索は無しにしてくれ。」

231 名前:デフォルトの名無しさん mailto:sage [2011/09/24(土) 01:17:05.52 ]
誰かDでファイアーエムブレムクローン作ってくれ

232 名前:デフォルトの名無しさん mailto:sage [2011/09/24(土) 01:18:04.99 ]
231 がんばれ

233 名前:デフォルトの名無しさん mailto:sage [2011/09/25(日) 01:21:41.50 ]
それよりdioだ

234 名前:デフォルトの名無しさん mailto:sage [2011/09/25(日) 01:46:23.19 ]
邪悪の化身ッ!

235 名前:デフォルトの名無しさん mailto:sage [2011/09/25(日) 01:46:43.69 ]
無駄無駄ぁ



236 名前:デフォルトの名無しさん [2011/09/27(火) 03:19:52.49 ]
実数型のkeyを持つ連想配列にどのようにアクセスしたら良いのか判りません。

real[real] foo;
foo[0.12345] = 0.99; // ok
writef( "foo = %f", foo[0.12345] ); // NG

変数を介してもだめで、foreachはRenge violationでした。
もしかしてバグでしょうか?
それとも実数型のkeyはもてないのでしょうか?

237 名前:デフォルトの名無しさん mailto:sage [2011/09/27(火) 03:33:11.33 ]
問題なかった@DMD2.055 Win

238 名前:デフォルトの名無しさん mailto:sage [2011/09/27(火) 03:42:35.94 ]
writef だと何も出ない?けど writefln ならいけた
仕様かどうかは面倒なので調べない てかもう寝る

foreach で回すときは連想配列のプロパティを使わないとダメなはず
foreach (f; foo.keys) {
writeln(f);
writeln(foo[f]);
}


239 名前:デフォルトの名無しさん mailto:sage [2011/09/28(水) 20:45:36.41 ]
interface I {}
class C : I {}

void func(Object obj) {}
func(cast(I) new C); // コンパイルエラー

interfaceのインスタンスは無条件でObjectのインスタンスと看做していいんじゃないかなぁ
それともObjectを実装してなくてintarfaceを実装してる存在なんてものがありうるの?

240 名前:デフォルトの名無しさん mailto:sage [2011/09/28(水) 21:03:10.91 ]
元々interfaceはWindowsのCOM互換のための機能だったんだぜ
いつのまにかinterfaceからObjectにダウンキャストできるようになったけど、
COM由来のinterfaceでそれやったらどうなるか恐ろしいんだぜ。

Delphiも事情は一緒だけど……

241 名前:デフォルトの名無しさん mailto:sage [2011/09/28(水) 21:37:34.74 ]
interface から object のダウンキャストって普通なのか…

俺はなんとなく java みたいに機能追加のための方便の一種として
しか認識してないわ > interface

242 名前:デフォルトの名無しさん mailto:sage [2011/09/28(水) 23:00:43.62 ]
Javaから入ったくちだからObjectであって当たり前だと思ってた
そういうことだったのね

243 名前:デフォルトの名無しさん mailto:sage [2011/09/29(木) 00:14:13.96 ]
interfaceをObjectにキャストする必要がでたら設計間違えてると考えたほうがいい


244 名前:デフォルトの名無しさん mailto:sage [2011/09/29(木) 19:09:13.70 ]
するとinterfaceで型を定義することが間違ってるってことか…
そもそも大幅に性質の違うclassどもに便宜上一部共通の部分を作って
一緒くたに扱う必要がある時点でまずいのか?
mixinじゃコレクションは作れないしなぁ
Variantの配列なんて悪夢のような代物は見たくもないし

245 名前:デフォルトの名無しさん mailto:sage [2011/09/29(木) 20:43:40.77 ]
「interfaceをObjectにキャストしてなんかする」の部分をそのinterfaceのメソッドにしてしまえば済む話じゃね?



246 名前:デフォルトの名無しさん mailto:sage [2011/09/29(木) 20:44:26.53 ]
すまんテンパってた
>>244で書いたような事じゃObjectへのダウンキャストは発生しない

そういう状況で出てきたinterface型のオブジェクトを
DFLのControl#tag(こいつがObject型)とかにセットしようとした時に例の問題が発生するのであって
このtagは.NET由来でObjectになってるんだと思うが、こいつが本来Variantであるべきなんだ
俺が全面的に間違ってました。ごめんなさい。
だからDさん俺を破壊的変更するのはやめてください、やめて、とめ あ

247 名前:デフォルトの名無しさん mailto:sage [2011/09/29(木) 20:55:39.26 ]
DFLも.NETもわからんけど、Dで実装されたinterfaceであることが確定的に明らかなら
ふつーにObjectにダウンキャストしてもいいんじゃね?






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

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

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