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)
143 名前:デフォルトの名無しさん mailto:sage [2011/09/10(土) 21:10:10.61 ] D back in top 20! ttp://www.tiobe.com/index.php/content/paperinfo/tpci/index.html?a
144 名前:デフォルトの名無しさん mailto:sage [2011/09/10(土) 21:42:16.19 ] void main(){} 2.053 => 146,972 バイト 2.054 => 149,532 バイト 2.055 => 150,556 バイト 順調にむくんでいってる
145 名前:デフォルトの名無しさん mailto:sage [2011/09/10(土) 21:58:32.44 ] そのうち150,550 byteくらいはGCなんだろうな
146 名前:デフォルトの名無しさん mailto:sage [2011/09/10(土) 21:58:49.27 ] >>139 は間違いだった反省している むしろ今までコンパイル通ってたのがおかしかった
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にキャストする必要がでたら設計間違えてると考えたほうがいい