- 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)
- 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にダウンキャストしてもいいんじゃね?
- 248 名前:デフォルトの名無しさん mailto:sage [2011/09/29(木) 21:41:38.67 ]
- アップキャストでは・・・・
- 249 名前:デフォルトの名無しさん mailto:sage [2011/09/30(金) 05:42:46.54 ]
- 元の型が確定してるなら問題ないでしょ?
DFL程度のソースだったらTagを独自に置き換えちゃってもよさそうだけど
- 250 名前:デフォルトの名無しさん mailto:sage [2011/10/01(土) 13:11:33.01 ]
- DFLのgithubのforkは健在みたいだけど原作者どこいってもうたんや…
- 251 名前:デフォルトの名無しさん mailto:sage [2011/10/01(土) 18:27:54.38 ]
- interfaceをtagとして登録するなら…
- 252 名前:デフォルトの名無しさん mailto:sage [2011/10/02(日) 00:07:48.25 ]
- interfaceは基底クラスとは役割が違うよ
本当にそのコンテキストでinterfaceを使う必要があるのかよく考えてみて
- 253 名前:デフォルトの名無しさん mailto:sage [2011/10/02(日) 00:39:48.67 ]
- 種類も役割も様々なclassに対して一部だけ共通の側面を持たせようとする用途だから
interfaceでいいと思うんだけどなぁ
- 254 名前:デフォルトの名無しさん mailto:sage [2011/10/02(日) 02:08:09.19 ]
- interfaceはもっと身近な存在でいてほしいね
- 255 名前:デフォルトの名無しさん mailto:sage [2011/10/02(日) 04:17:02.49 ]
- Objectの派生がいい気がしてきた
- 256 名前:デフォルトの名無しさん mailto:sage [2011/10/02(日) 04:20:29.54 ]
- それともControl#tagが専用のinterfaceを受け取るべきなのかな?
でなければVariant?
- 257 名前:デフォルトの名無しさん mailto:sage [2011/10/02(日) 08:39:17.92 ]
- >>256
専用interfaceなんかにしたら既存のクラスを置けなくなっちゃう>< いやラッパかませば置けるけど意味無いし 役割的にはVariantが妥当じゃないかな
- 258 名前:デフォルトの名無しさん mailto:sage [2011/10/02(日) 16:36:03.96 ]
- 久しぶりに来たけどD言語どうなってる?
まだ破壊的仕様変更やってんの?
- 259 名前:デフォルトの名無しさん mailto:sage [2011/10/02(日) 17:02:52.31 ]
- 今はそんなでもない
主要API消滅するときも0.002バージョン分ほど猶予がある
- 260 名前:デフォルトの名無しさん mailto:sage [2011/10/02(日) 18:10:56.21 ]
- 標準ライブラリ内での名前被りが解消すれば
そこそこ安定するのではないだろうか・・・年明けくらい
- 261 名前:デフォルトの名無しさん mailto:sage [2011/10/02(日) 19:01:51.31 ]
- 言語的な仕様はほぼ固まって、
標準ライブラリを色々いじってるところって感じでいいの? 昔いじってる時いまいちイケてないライブラリだったけど ずいぶん変わったのかな
- 262 名前:デフォルトの名無しさん mailto:sage [2011/10/02(日) 19:10:28.76 ]
- ずいぶん変わった
ロケールとかエンコーディングとか微妙に基本的な部分が欠けてるような気もするが 基本的にはすごくいい感じ、だと思う、たぶん… D1の頃から「他の言語よりずいぶん早くやりたい事を書けるなぁ」と思ってたんだが そういう面ではグレードアップしてるとは実感してる
- 263 名前:デフォルトの名無しさん mailto:sage [2011/10/02(日) 19:48:44.21 ]
- ロケールとかエンコーディングとかは
やはりCJKの人間が関わらないと厳しいのだろうか
- 264 名前:デフォルトの名無しさん mailto:sage [2011/10/02(日) 20:01:58.53 ]
- D的には内部コードは全部Unicodeだからロケールとかエンコーディングとかは入出力まわりだけどうにかなればいい。
文字コード透過性だのなんだのは内部コードをUnicodeに決め打ってる時点で捨ててる。 だからsetlocaleだのmbなんたらだのは要らなくて、 「ファイルをOSのロケールからUnicodeに変換しながら読む」程度の機能さえあれば充分なはず。
- 265 名前:デフォルトの名無しさん mailto:sage [2011/10/02(日) 20:30:11.17 ]
- これも入出力の他の部分が決まらなくて足止め食らってる感が
|

|