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)
332 名前:デフォルトの名無しさん mailto:sage [2011/10/20(木) 03:59:19.24 ] d.puremagic.com/issues/show_bug.cgi?id=6831 直せオラ! で押し通せばよかった・・・つかれた
333 名前:デフォルトの名無しさん mailto:sage [2011/10/20(木) 10:57:51.06 ] >>332 速攻でコメが来てる ・optlinkを直さないと対応できない ・linkerを書き直す計画はあるけどいつになるかわからん やっぱりoptlinkは切らないとダメだな
334 名前:デフォルトの名無しさん mailto:sage [2011/10/20(木) 19:02:40.75 ] C/C++のプログラムをソースのみで配布するのは 社会に対する罪だと気づいた
335 名前:デフォルトの名無しさん mailto:sage [2011/10/20(木) 19:35:40.51 ] うん
336 名前:デフォルトの名無しさん mailto:sage [2011/10/20(木) 20:23:27.57 ] その点Dのソースならガリガリ修正する楽しみがあって抜群の社会貢献度
337 名前:デフォルトの名無しさん mailto:sage [2011/10/21(金) 00:00:58.48 ] optlinkってoptasmとなんか関係ある?
338 名前:デフォルトの名無しさん mailto:sage [2011/10/21(金) 15:06:13.85 ] ないと思う
339 名前:デフォルトの名無しさん mailto:sage [2011/10/22(土) 11:10:54.16 ] D1からD2に移行したらDLLを動的ロードして使う部分で 謎のエラーというか色々意味不明な現象が発生するんで調べてみたら、 TLSのせいで複数回DLLがロードされているせいだった なんちゅう盲点や
340 名前:デフォルトの名無しさん mailto:sage [2011/10/22(土) 11:47:41.59 ] データ領域は徹底的にデフォTLSにする方針だからなあ 知ってればどうってことないけど、チュートリアルでなるべく周知してかないと 他言語から移行する時の軽いハマりポイントになるかもね スレッド大量に作るような方向へ向かおうとするんだと、 将来的にTLSでの静的初期化はもっと書きづらくして気軽にやれなくなったりして
341 名前:デフォルトの名無しさん mailto:sage [2011/10/22(土) 18:21:11.00 ] エラーになってくれればいいが何が起こるかわからんというのは困る
342 名前:デフォルトの名無しさん mailto:sage [2011/10/22(土) 18:29:20.71 ] そういう意味ではCとのインタフェースを残しているのがすごくマイナス システム言語の看板を掲げるならデバッガが強力じゃないとつらいな
343 名前:デフォルトの名無しさん mailto:sage [2011/10/22(土) 18:55:56.49 ] そもそもスレッドを考慮して無いdllの造りが悪いんじゃないの?
344 名前:デフォルトの名無しさん mailto:sage [2011/10/22(土) 19:17:08.83 ] 俺の為のチラ裏メモ TLS = Thread local storage
345 名前:デフォルトの名無しさん mailto:sage [2011/10/22(土) 19:28:29.22 ] Walterは特にCライブラリをダイレクトに使えるのを大事にしてる気がするので、 避けては通れなさそうなんだよな。 Cなんて実質原始CLIみたいなもんなんだけど、デフォTLS前提としない言語外環境との連携をどう考えるか。 素のstatic thisはスレッド毎に走るのに注意、shared static thisはロックに注意、で当面しのぐしか無いがー
346 名前:デフォルトの名無しさん mailto:sage [2011/10/22(土) 20:27:56.44 ] スレッド使ったことないからその辺平気だぜ
347 名前:デフォルトの名無しさん mailto:sage [2011/10/26(水) 10:38:48.83 ] Visual Dの更新キタ phbosでF1ヘルプ参照できるようになった mago debugger を選んだ場合の機能が強化されてるみたいだがよくわからん
348 名前:デフォルトの名無しさん mailto:sage [2011/10/26(水) 21:18:01.54 ] 特に理由はないんですが、GCJの過去問をDで解いてみようと思いました。 今日初めてD言語に触りました。 TopCoderとかのプログラミングコンテストでC++を使う場合は、 #defineを使ってforループの凡ミスを防ぐためにこんなことをします。 #define rep(i, n) for(int i=0; i<n; i++) こうすることで以下のようなバグをなくすことができます。 for(int i=0; i<n; i++) { for(int j=0; j<n; i++) { // i++がバグ // do something } } 代わりにこう書けるので、これに関してはバグがなくなります。 rep(i, n) { rep(j, n) { // do something } } D言語でも同じようなことができますか? できないなら諦めますが、できるならその方法をご教示ください。
349 名前:デフォルトの名無しさん mailto:sage [2011/10/26(水) 21:28:35.26 ] Dにマクロはない。ので、同じことはできない。 代替の方法については、その例に限っていえばループを foreach (i; 0..n) { // do something } で、書けばバグを防ぐ役目は果たせるな。 もしくは void rep(size_t rn, void delegate() dg) { foreach (0..rn) dg(); } ↑こういうのを定義しておけば ↓こう書ける。 rep(n, { // do something });
350 名前:デフォルトの名無しさん mailto:sage [2011/10/26(水) 22:56:40.38 ] C++でももうすぐforeach的なものが使えるからそれでいいじゃないか
351 名前:348 mailto:sage [2011/10/26(水) 22:59:11.58 ] >349 即レスありがとうございました。 動作させることができました。 拡張性が高そうなので foreach(i; 0..n) を使うことにしました。 foreach(i; 1..n) とかになっても簡単に書けそうなので。 とは言っても、もともとTangoを使っていて、それだと foreach(i; 0..n) がコンパイルできなかったので(found '..' when expecting ';' following 'for condition')、Phobosにコードを書き変えました。 PhobosだとWindowsでコンソールアプリを作るときに、文字化けしたと思うので、ちょっとイヤなんですが...。
352 名前:デフォルトの名無しさん mailto:sage [2011/10/26(水) 23:01:25.17 ] >>348 構文をこういう風に独自defineする人間の神経は疑うけどね
353 名前:デフォルトの名無しさん mailto:sage [2011/10/26(水) 23:28:04.58 ] tangoなんか使ってると恐い日本人コミッタのお兄さん達に睨まれるぞ
354 名前:デフォルトの名無しさん mailto:sage [2011/10/26(水) 23:49:54.92 ] にらまれてるしw
355 名前:デフォルトの名無しさん mailto:sage [2011/10/27(木) 07:17:55.57 ] dmd 1.071 and 2.056 release
356 名前:デフォルトの名無しさん mailto:sage [2011/10/27(木) 11:31:57.49 ] www.d-programming-language.org/intro-to-datetime.html std.datetime の解説記事ができてた。 だれか翻訳をt(ry
357 名前:デフォルトの名無しさん mailto:sage [2011/10/27(木) 13:39:27.54 ] 知ってるだろ? 法則があるのをさ……。
358 名前:デフォルトの名無しさん mailto:sage [2011/10/27(木) 16:45:13.81 ] Kには近づいてはならない!
359 名前:デフォルトの名無しさん mailto:sage [2011/10/27(木) 19:04:21.39 ] >>356 おお、簡潔な解説が出たのか!と思って行って著者名を見た時の絶望感
360 名前:デフォルトの名無しさん mailto:sage [2011/10/27(木) 23:43:09.19 ] > dmd 1.071 and 2.056 release 今回のreleaseの大きいところは Bugzilla 3748: inoutがまともに動くようになった Bugzilla 3659: structのopEqualsシグネチャ制限がなくなった Bugzilla 4022 他 CTFEでAAが結構まともに動くようになった 辺りかな。
361 名前:デフォルトの名無しさん mailto:sage [2011/10/28(金) 00:00:52.95 ] AAがなんの略だかわかんなくて五分くらい真剣に悩んだけど連想配列か
362 名前:デフォルトの名無しさん mailto:sage [2011/10/28(金) 00:41:21.27 ] > 360 dusers.dip.jp/modules/forum/index.php?topic_id=106 もう少し細かく書いた。
363 名前:デフォルトの名無しさん mailto:sage [2011/10/28(金) 00:53:39.18 ] 今回のBugFixは、Regressionのが多いね
364 名前:デフォルトの名無しさん mailto:sage [2011/10/28(金) 07:15:26.25 ] いつも乙 D2もいよいよ安定してきてしまった感が
365 名前:デフォルトの名無しさん mailto:sage [2011/10/28(金) 11:01:12.68 ] バグフィックスの数に騙されるな 新たなバグもどんどん増えているぞ コンパイルできないたすけて
366 名前:デフォルトの名無しさん mailto:sage [2011/10/28(金) 13:15:23.42 ] 落ち着いて全部のライブラリをビルドしなおすんだ
367 名前:デフォルトの名無しさん mailto:sage [2011/10/28(金) 13:32:44.02 ] GUIライブラリってある?
368 名前:デフォルトの名無しさん mailto:sage [2011/10/28(金) 18:54:26.37 ] あるよ
369 名前:デフォルトの名無しさん mailto:sage [2011/10/28(金) 19:01:44.43 ] --- do if (derived is base) return true; while ((derived = derived.base) !is null) return false; --- 2.055までこれがコンパイル通ってたという事実に驚愕しきり
370 名前:デフォルトの名無しさん mailto:sage [2011/10/28(金) 20:00:20.97 ] >>368 たとえば?
371 名前:デフォルトの名無しさん mailto:sage [2011/10/28(金) 21:09:23.72 ] dusers.dip.jp/modules/wiki/?Libraries
372 名前:デフォルトの名無しさん mailto:sage [2011/10/28(金) 21:22:12.52 ] DFL,DWT(2),wxD,gtkD,QtDは去年の段階ではかろうじて生きてた そこに載ってる他の奴は…死んでるねぇ…
373 名前:デフォルトの名無しさん mailto:sage [2011/10/28(金) 22:22:37.03 ] >>369 そういうのは結構あると思う。 メチャメチャな文法はテストしにくい。 壊そうと遊んでたらいくつか見つけたことがある
374 名前:デフォルトの名無しさん mailto:sage [2011/10/29(土) 03:48:19.15 ] DFLの非公式githubは生きてる
375 名前:デフォルトの名無しさん mailto:sage [2011/10/29(土) 06:58:28.32 ] ライブラリフルコンパイルしたら案の定通らねーwww
376 名前:デフォルトの名無しさん mailto:sage [2011/10/29(土) 17:32:00.40 ] なんの?
377 名前:デフォルトの名無しさん mailto:sage [2011/10/30(日) 03:46:05.26 ] これしき
378 名前:デフォルトの名無しさん mailto:sage [2011/10/31(月) 22:41:45.56 ] そういうのいいから
379 名前:デフォルトの名無しさん mailto:sage [2011/10/31(月) 23:03:33.24 ] base a=new const(derived);が通る?
380 名前:デフォルトの名無しさん mailto:sage [2011/11/01(火) 14:01:45.55 ] const は全くアテにならない
381 名前:デフォルトの名無しさん mailto:sage [2011/11/02(水) 00:39:57.71 ] そんなー
382 名前:デフォルトの名無しさん mailto:sage [2011/11/02(水) 00:56:58.89 ] >> 369 do { ... } while(...) の後に;が必須になったやつか。 それは確かに自分も驚いた。
383 名前:デフォルトの名無しさん mailto:sage [2011/11/02(水) 12:01:24.45 ] おー、気づかなかったw 罠にしかならないから do - until に変えてほしいわ
384 名前:デフォルトの名無しさん mailto:sage [2011/11/03(木) 11:27:22.63 ] GUIはfxlibが最低限の機能持ってて満足
385 名前:デフォルトの名無しさん mailto:sage [2011/11/03(木) 16:44:57.79 ] DWT2め、Tableにマルチバイト文字を長々と表示させて スクロールさせまくると表示だけ固まりやがる
386 名前:デフォルトの名無しさん mailto:sage [2011/11/04(金) 01:15:46.11 ] std.socketってどう変わったの?
387 名前:デフォルトの名無しさん mailto:sage [2011/11/05(土) 01:31:47.86 ] 重くなった
388 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 19:24:23.17 ] そういえばstd.loaderってあるけどあれなんなの? 使って大丈夫なの?
389 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 21:35:45.31 ] >>388 今見てみたら… Windowsの部分は、Ansi系APIつかってる (Unicode文字を含んだPATHからは読み込めない) しかもUTF-8←→Ansi変換が全くされてない (ノ∀`)アチャー
390 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 23:28:02.22 ] これだから外人は
391 名前:デフォルトの名無しさん mailto:sage [2011/11/06(日) 23:51:01.39 ] ウォルター「え・・・」
392 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 13:08:11.03 ] dmdでコンパイルしようとしたら、 OPTLINKのエラー(Error 42:Symbol Undefined)が大量に出てきた visualC#を直前に入れていたので、C#アンインストールしても、 dmd入れなおしても直んないんだけど、どうすればいい? 以下エラー内容の最初の方 OPTLINK (R) for Win32 Release 8.00.12 Copyright (C) Digital Mars 1989-2010 All rights reserved. www.digitalmars.com/ctg/optlink.html OPTLINK : Warning 23: No Stack test.obj(test) Error 42: Symbol Undefined _D3std5stdio4File6__dtorMFZv test.obj(test) Error 42: Symbol Undefined __d_local_unwind2 test.obj(test)
393 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 13:10:33.20 ] 詳細書くの忘れてた windows7 Ultimate 64bit版で起きた現象です
394 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 13:42:33.22 ] main() が無い
395 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 16:09:19.80 ] >>390-391 素人以下wwwwwwwww
396 名前:392 mailto:sage [2011/11/07(月) 17:24:59.79 ] main()は書いてる。 dmdをinstallerで入れなおしたらエラーが下に変わった (エラー内容抜粋) OPTLINK (R) for Win32 Release 8.00.12 Copyright (C) Digital Mars 1989-2010 All rights reserved. www.digitalmars.com/ctg/optlink.html C:\D\dmd2\windows\bin\..\lib\phobos.lib(dmain2) Error 42: Symbol Undefined _WideCharToMultiByte@32 C:\D\dmd2\windows\bin\..\lib\phobos.lib(dmain2) Error 42: Symbol Undefined _LocalFree@4
397 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 18:18:07.51 ] 環境変数LIBがあやしい
398 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 22:55:54.28 ] LIBってsc.iniで上書きされなかったっけ。 dmd入れ直してるならシロの気もするけど。
399 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 23:50:37.62 ] Windows 64bit って動いてたっけ?
400 名前:デフォルトの名無しさん mailto:sage [2011/11/07(月) 23:53:31.18 ] win7 premiumだけど普通にコンパイルもリンクもexeそのものも動いてるよ 64bitのexeファイルが生成されてるわけじゃないけど
401 名前:デフォルトの名無しさん mailto:sage [2011/11/08(火) 00:50:13.18 ] コンパイルオプションで 64指定しなきゃいいのか なるほど、思い出した
402 名前:sage [2011/11/08(火) 03:20:18.41 ] Windowsで生成されるコードは常に32bitコードだよ 実行したプロセスをタスクマネージャで確認すれば判る
403 名前:デフォルトの名無しさん [2011/11/08(火) 04:46:18.03 ] Windowsバイナリ生成に関して、 64bit版生成オプションは 存在してません。(キッパリ
404 名前:デフォルトの名無しさん mailto:sage [2011/11/09(水) 22:05:18.25 ] std.container.RedBlackTreeを使っていて、 「A以上B未満」な要素を列挙したいんですけどなんかうまい方法ありますか? upperBoundとlowerBoundの両方を適用できたら楽だったんですが
405 名前:デフォルトの名無しさん mailto:sage [2011/11/10(木) 23:26:40.42 ] もうやだこのOPTLINK…
406 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 00:57:10.96 ] std.containerの中身はtakeだのwalkなんとかだの!魔界か!
407 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 01:37:29.92 ] BufferedFileにSJISテキストかませると死ぬのどうにかなりませんか・・・
408 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 12:45:00.74 ] ideone.com/kdNYw こんな感じにforeachループ内で各ループのスコープ時の変数を それぞれdelegateに渡したいんだけど、結果が全てループの最後の 時のもので処理されてしまうのです。何か良い方法ありますか。 Javaのfinal的なものが必要?
409 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 13:09:25.44 ] ループ変数が使い回されてるのが原因だから。 対策はこんなか ideone.com/AZrzo なんか既視感あるな
410 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 13:33:53.70 ] なるほど、bindでいけるんですね。 ありがとうございます。
411 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 13:36:42.50 ] じゃない、引数で生成時に渡してやればいいんですね。
412 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 18:22:23.63 ] jsでよく見るパターン
413 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 21:03:39.39 ] JavaScriptの問題点を前向きにあげてけ new演算子がキモい
414 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 21:14:35.12 ] about D programing language only javascript shit
415 名前:デフォルトの名無しさん mailto:sage [2011/11/11(金) 21:40:56.68 ] 誤爆しました
416 名前:デフォルトの名無しさん mailto:sage [2011/11/12(土) 01:28:11.08 ] go back
417 名前:デフォルトの名無しさん mailto:sage [2011/11/12(土) 02:26:42.38 ] Fuck'in Javs
418 名前:デフォルトの名無しさん mailto:sage [2011/11/14(月) 05:36:52.67 ] 今年後半に入ってから随分更新が静かだと思ってたけど64bit版開発してたのかよ。 しかもD1のも 普及に向けて本腰を入れ始めたか
419 名前:デフォルトの名無しさん mailto:sage [2011/11/14(月) 06:20:03.53 ] Deimosには死ぬほど期待している
420 名前:デフォルトの名無しさん mailto:sage [2011/11/14(月) 08:00:00.23 ] いや、だからioどうするんだよw
421 名前:デフォルトの名無しさん mailto:sage [2011/11/14(月) 10:22:58.26 ] >>418 その情報を知った場所を教えてくれないかい
422 名前:デフォルトの名無しさん mailto:sage [2011/11/14(月) 13:06:56.99 ] D関連ページを www.digitalmars.com から d-programming-language.org へ引越ししてるみたいだね
423 名前:デフォルトの名無しさん mailto:sage [2011/11/14(月) 13:11:01.81 ] URLのリダイレクトが設定されて >>159 が解消される
424 名前:デフォルトの名無しさん mailto:sage [2011/11/14(月) 15:27:44.01 ] d-programming-language.org/new/ こっちの話か 古いサンプルコードが動かないみたいな 積もりに積もった問題を一気に直す積もりかな
425 名前:デフォルトの名無しさん mailto:sage [2011/11/14(月) 20:26:51.95 ] 英語わかんない僕はどうすればいいですか><
426 名前:デフォルトの名無しさん mailto:sage [2011/11/14(月) 20:32:43.31 ] つExcite翻訳 つGoogle翻訳
427 名前:デフォルトの名無しさん mailto:sage [2011/11/14(月) 21:07:56.39 ] 英語と米語とC語をまずマスターしろ それからD語
428 名前:デフォルトの名無しさん mailto:sage [2011/11/14(月) 21:23:40.19 ] 英語圏は滅ぶから日本語だけ覚えとけば問題ない
429 名前:デフォルトの名無しさん mailto:sage [2011/11/14(月) 22:22:33.63 ] つ 日本語プログラム言語「なでしこ」
430 名前:デフォルトの名無しさん mailto:sage [2011/11/14(月) 23:25:25.89 ] 滅ぶとして、でも日本のほうが滅ぶの早そう
431 名前:デフォルトの名無しさん [2011/11/15(火) 09:28:26.93 ] 全ての起源である韓国語が一番無難じゃないかな
432 名前:デフォルトの名無しさん mailto:sage [2011/11/17(木) 07:24:16.84 ] 韓国が起源ニダ