- 1 名前:デフォルトの名無しさん [2008/04/14(月) 15:16:22 ]
- プログラミング言語 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フロントエンド) ■参考URL ttp://f17.aaa.livedoor.jp/~labamba/ (D言語研究) ttp://f17.aaa.livedoor.jp/~labamba/?D%B8%C0%B8%ECBOF (D言語BOF) ttp://dsource.org/ (dsource) ttp://tinyurl.com/3da5oa (C/C++に疲れた人のD言語) ttp://www.kmonos.net/alang/wnd/ (わかったつもりになるD言語) ttp://shinh.skr.jp/d/ (SDL, SDL_*, OpenGL, GLU, glutのポーティングとか) ttp://shoo.s20.xrea.com/shoo/programing (D言語とTangoの入門講座) ttp://www.nicovideo.jp/mylist/4453698 (D言語で作られた芝ゲー niconico動画) ttp://www.asahi-net.or.jp/~cs8k-cyu/ (ABA Games) ■ IDE ttp://dronten.googlepages.com/dscite (DSciTE) ttp://forums.codeblocks.org/index.php?board=20.0 (Code::Blocks) ttp://www.dprogramming.com/entice.php (Entice Designer) ttp://www.dsource.org/projects/descent (Descent) ttp://www.dsource.org/projects/poseidon (Poseidon)
- 841 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 19:15:06 ]
- うぉるたんには髭の生えた参謀役が必要なんだな
- 842 名前:デフォルトの名無しさん mailto:sage [2008/07/25(金) 22:14:45 ]
- Tango 0.99.7 Dominik released
- 843 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 00:18:53 ]
- Dらしいboost::tupleを作ったはいいけど、コード補完のメンバ一覧が出たとたんIDEが落ちるw
- 844 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 00:27:03 ]
- このスレよりもD言語について盛んに議論されてる場所ってある?
少なくともうぉるたんについてはこのスレが一番だと思うが。
- 845 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 02:08:44 ]
- 日本にはないと思う
- 846 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 02:25:29 ]
- D1.028 phobos の std.cover の setDestDir(char[]) 関数なんだけど、
void setDestDir(char[] pathname) { srcpath = pathname; } になってるんだけど、 dstpath = pathname; だとおもうんだ。 みんなの環境はどう?
- 847 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 03:09:49 ]
- >846
2.017のPhobosでも同様になってる。 よく見つけた。Bugzillaへ行っとけ!
- 848 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 12:36:58 ]
- >847
アカウント無いし、作りたくないから頼んだ。 dstpath を修正しても何の効果もないからなんとかしろーってのもいっといてplz
- 849 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 13:08:04 ]
- めんどくさ
std.coverなんて使ってないしどうでもいい
- 850 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 20:00:08 ]
- ながれにWWWW
- 851 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 22:46:01 ]
- 最近、D言語を勉強しようかなーと悩んでるんだが
D言語ラブな人にD言語の魅力を語ってほしい ちなみに今までは、基本的にスクリプト言語(Ruby)でいろいろやってました C言語は大学の演習のみ、C++やC#は未経験
- 852 名前:デフォルトの名無しさん mailto:sage [2008/07/26(土) 23:57:33 ]
- >>851
Rubyで間に合ってたならそっち使ってた方がいいと思う D言語の凄まじさはC++をある程度やってないとわかりにくいんじゃないかな? API叩きたいとかでも色々ポーティングしなきゃならない状況だからね〜
- 853 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 00:03:40 ]
- ruby使ったこと無いから具体的に比べてはワカンネ(実際のところスクリプトメインに使ってて不満がないならrubyと比べてのメリットは少ないんじゃね? という気はする)
一般的な部分では、スタンドアロンの実行ファイルとか、ネイティブ吐く故の速度とかか。必要ないなら必要ないかなあ。 でも個人的に最大の魅力は更新待ちのwktk感。 既存のコード通らなくなる変更躊躇わないからなうぉるたん。標準ライブラリが壊れたりするんだぜ? (ちなみに当方ややM)(でもこのスレに仲間は多いと思ってる)
- 854 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 00:31:44 ]
- Ruby使いこなせてるなら、Rubyで十分。
スクリプト言語以外をそんなに触ってないなら、静的型付けとかの不自由さを感じるかも。 Dの良いところはスクリプト言語でもないのに、いろんな機能を使えるところ。他の言語に比べて多機能だと思う。
- 855 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 00:38:15 ]
- >>851
俺の場合、WindowsとLinuxの両方で使うというのがあったから、Dという選択になった。 Windows環境だけというのなら、C#の方がライブラリその他安定していて、いいと思う。 散々言われていた起動の遅さも、いつの間にか気にならないくらい速くなってるし。 ただ、LinuxのmonoはD以上に地雷が多すぎなんで、マルチプラットホームならDかなと。 C++はコンパイル速度が速ければ使うんだが、Dの速さに慣れちゃうとその遅さに耐えきれなくなってしまう。 まあ、上記はC並に速く実行する言語が使いたいという前提あっての話だから、多少遅くてもいいというのであれば、Javaでもいいのかもしれない。 Dの欠点は標準ライブラリが信用できないこと。 標準ライブラリを自力で何とかできないとDを扱うのは難しい。
- 856 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 00:41:46 ]
- >>853
> でも個人的に最大の魅力は更新待ちのwktk感。 ナカーマ
- 857 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 00:47:04 ]
- 通らなくなったコードを逐一直してまったくもううぉるたんたらおちゃめなんだからぁ的なアレ
- 858 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 00:53:39 ]
- 仕事仲間には絶対したくないけどねっ
- 859 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 01:12:52 ]
- 参照型をサポートする
タプルを関数から返せるようにする opCastをまともにする うぉるたん頼むからこのへん実装してくれ><
- 860 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 01:57:43 ]
- >>859 参照型ってなんぞ
- 861 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 02:00:40 ]
- int& a;
みたいなやつじゃね
- 862 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 02:17:44 ]
- <俺:妄想>
int a; ref(int) b = a; // 型コンストラクタ ref(int) func(ref int p) { // 参照渡し・参照戻し return p; } auto c = func(a); // is(typeof(c) == ref(int)) </俺:妄想>
- 863 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 02:18:38 ]
- htodをもう少しどうにかしてほしいな。
手直し箇所が多すぎて、気軽にCのライブラリを使いたいと思えない。
- 864 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 04:31:45 ]
- Tangoユーザの方0.99.7はどうよ?
- 865 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 04:36:28 ]
- >>848-849
ttp://f17.aaa.livedoor.jp/~labamba/?BugTrack とりあえず張っておくからw
- 866 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 05:14:19 ]
- >865
まかせた
- 867 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 06:19:14 ]
- >>864
とりあえずなんかMemory.diでエラーが出る。 ちょっとソースのぞいてみたらなんか明らかにおかしいところがあった 130: enum BlkAttr; : uint 131: {
- 868 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 08:29:18 ]
- まったくDの開発陣は・・・テスト自動化しろよな
せっかく言語がunittestとかDbCとか用意してるのに全然活用してないじゃん うぉるたんがたまにテスト通さないのは破壊的な変更しまくるからだろうけど
- 869 名前:851 mailto:sage [2008/07/27(日) 12:55:38 ]
- いろいろな意見ありがとうございます
とりあえず、更新を待ってwktkする言語だというのは伝わってきた 面白そうなので少し触ってみようと思います
- 870 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 15:43:10 ]
- もし、うぉるたんが死んだり、引退したりしたら、Dも終わるのか?
うぉるたんの跡を継ごうっていう人は出てくるのだろうか。
- 871 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 15:46:19 ]
- きっとD++がでるよ。
- 872 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 16:18:50 ]
- >>868
激しく同意。単体テスト用意しれと思うなぁ。 復帰テストはしているようだけど膨大だからかなりの時間かかってそうだし。
- 873 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 16:23:25 ]
- 単体テスト以前にコンパイルしてないんじゃ…
- 874 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 19:26:32 ]
- >>862
それは static int a;や int* a;と似たような宣言で ref int b; がスマートな気がする その場合は a == c って事でいいのかな ポインタを使わないようにした代わりにこれがあればポインタの代用がかなり効きそうだな GC周りに矛盾が生じないなら入れてほしいな
- 875 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 19:45:10 ]
- >>874
int* a; はどっちかっていうと、 const int a; // constは変数を修飾 よりは const(int) a; // constは型を修飾 に近いんじゃない? それで、refは変数の情報な気がするから、ref(T)はいらないと思う。
- 876 名前:デフォルトの名無しさん [2008/07/27(日) 19:58:19 ]
- dmd2.017 + dsource.org->Win32api Bindings
で、ウィンドウプロシジャの中から例外を投げて、 main関数に書いたcatchで拾おうとすると失敗するんだけど、こういうもんだっけ?
- 877 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 20:03:18 ]
- >>876
そういうもん。 コードの流れは、 メッセージループ -> | user32 | -> ウィンドウプロシージャ なんで、例外は戻ってこれない。
- 878 名前:876 [2008/07/27(日) 20:17:30 ]
- >>877
即レス感謝。 前いけてた気がしたのは漏れの気のせいでした。 べんきょんなったす。
- 879 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 20:55:11 ]
- えぇぇ、メッセージループの外のcatchで例外とれてるんだけどこれは何?
- 880 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 20:56:21 ]
- writeflnとかで自動的にtoString()が呼び出されると、メンバのアドレスが変っちゃうんだけどなぜ?
明示的に呼び出せば、そんなことにはならなかった アラインメントの問題?GCの問題?
- 881 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 21:01:53 ]
- >>880
コード付きで頼む
- 882 名前:880 mailto:sage [2008/07/27(日) 21:34:07 ]
- 値渡しされてるだけだったorz 正直すまんかった
>>881 ちなみに双方向リンクリスト、つまりSTLのlistみたいなやつ
- 883 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 22:46:18 ]
- Dの頭のままC#でdelegate使おうとしたら
いちいち宣言しなきゃいけないって面倒だなとおもた
- 884 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 22:49:31 ]
- >>883
ラムダ式でおk
- 885 名前:デフォルトの名無しさん mailto:sage [2008/07/27(日) 23:03:16 ]
- C#3.0からFunc<,>とか使えるんじゃなかったっけ。
- 886 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 00:33:49 ]
- GTK On Dって名前にすれば GOD ってライブラリ名にできるのにそういう風にしないのは
やはり向こうは日本と神の感覚が違うから気軽に使えないのかな
- 887 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 00:57:59 ]
- こういう場合onっていう言い方は正しいのか?
あんまり聞かない気がする。
- 888 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 01:01:34 ]
- じゃ featuring だ
- 889 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 01:04:05 ]
- overとか
- 890 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 01:08:01 ]
- ならopponだ
… oppon 〜は「…を〜と組み合わせて」という意味になる今作った単語
- 891 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 01:14:40 ]
- oppai
なんでもできる証拠なの〜
- 892 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 01:28:19 ]
- GTK of D
- 893 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 02:01:32 ]
- Tango の 0.99.7 でバックスラッシュを含んだパスが蹴られるようになったけど、さすがに面倒だぜ。
import tango.io.Console; import tango.io.FileSystem; import Path = tango.io.Path; void main(char[][] args) { auto dir = Path.parse(FileSystem.toAbsolute(Path.standard(args[0]))).path; Cout(dir).newline; } 自分の実行ファイルのディレクトリのフルパスが欲しいとき、もうちょと短く書けないかな。
- 894 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 05:11:20 ]
- www.digitalmars.com/d/archives/digitalmars/D/dwt/
dwtのはずなのにアナウンス 中身はちゃんと別みたいだけど
- 895 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 16:00:33 ]
- std.openrjって、どうしてあるの?誰が使ってるの?
というか、動かないんだけど
- 896 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 16:15:14 ]
- もうなくなるor/andなくなったんじゃなかったのか
- 897 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 17:49:37 ]
- >893
記述が長ったらしい代わりにバイナリが小さくなるのがTangoの芸風でしょ。 ちなみにPhobosなら import path; して dirname(rel2abs(args[0])) だ。
- 898 名前:デフォルトの名無しさん mailto:sage [2008/07/28(月) 23:53:45 ]
- 1.0 と 2.0 の違いって何?
C# の 1.0 と 2.0 ぐらいちがったりするの?
- 899 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 00:03:46 ]
- dmd1 致命的なバグが無い限り更新されない
dmd2 前進的で素晴らしい変更によってソースを書き直す必要が出来る このスレを読む限りMは2を使った方がいいらしいぞ
- 900 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 00:10:10 ]
- 最近はライブラリも2に対応してるし、1を使う理由ってあんまない気がするなあ。
安定性求めるなら他の言語を当たったほうがいいだろうし。
- 901 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 00:20:34 ]
- DMDScriptが使いたいだけで1使ってます
- 902 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 00:26:29 ]
- 変更点そのものは、
www.kmonos.net/alang/d/2.0/features2.html に出てる。
- 903 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 02:02:27 ]
- >>900
喧嘩売られてるような気がするのは俺の気のせいだろうな 移行しない理由が聞きたいんだよな
- 904 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 02:04:10 ]
- 何が言いたいのかさっぱり理解できない
- 905 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 02:12:21 ]
- gdc(mingw)をうまくビルドできるならば
2.0に乗り換えてみたいところだがね。 エラーが回避できなくてあきらめた。
- 906 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 07:38:52 ]
- >>903
どう考えても気のせいです
- 907 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 07:39:36 ]
- >>902
popenだけはdmd1にも入れてほしい
- 908 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 09:38:02 ]
- ところでお前ら typeof(*this)って使ってるかな?
クラス名とどっちがいい?
- 909 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 11:51:29 ]
- ジェネリックコードじゃなければクラス名の方がいい
時期尚早な過最適化は悪 by Effective C++ ?
- 910 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 11:57:08 ]
- TangoやDWTが1にしか対応してないから2使えない、って人もいるんじゃね。
>909 "premature optimization is the root of all evil." なら、出典はKnuth様 (1974年)。
- 911 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 12:46:20 ]
- 先進的な変更で言語がよくなってそれと同時に自分のコードがかっこよくなる
この喜びが毎月のように得られるのはDくらい それが私がDを使う理由・・・信じて
- 912 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 14:28:09 ]
- static foreachまだなのかなあ。
そんな複雑な変更でもない気がするんだけど、 うぉるたんは他にやりたいことあるんだろうか。
- 913 名前:デフォルトの名無しさん mailto:sage [2008/07/29(火) 16:13:48 ]
- DMDってテンプレート再帰でタプル作るとホントすごいメモリ喰うな…
- 914 名前:デフォルトの名無しさん mailto:sage [2008/07/30(水) 00:59:01 ]
- D言語はアセンブリの夢を見るか
- 915 名前:デフォルトの名無しさん mailto:sage [2008/07/30(水) 22:25:38 ]
- gc切って、delegateぶん回したらすんごいメモリをくう・・・
あたりまえかもしれんが、scopeとかで回避できんから すんごい困った
- 916 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 00:26:38 ]
- www.dsource.org/projects/blaze
これのDemoすごいなあ
- 917 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 00:42:39 ]
- あ、これ俺も遊んだwww
結構楽しいんだよなこれ
- 918 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 01:49:17 ]
- PC初期に近いの面白さだよね。
- 919 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 02:24:57 ]
- 俺の1時間を奪う憎い奴だ
- 920 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 08:26:23 ]
- template Hoge(){
if(true){} } void f(){ mixin Hoge!() } なんでif使えないの〜泣
- 921 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 08:34:29 ]
- >>920
つ static if
- 922 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 11:35:46 ]
- template mixin は宣言しか書けないのね
- 923 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 12:43:23 ]
- Lisper
C++er Der なんちゃって、えへへ
- 924 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 13:02:18 ]
- >923
PythonistaにならってDistaはどう? すくなくとも発音はしやすいよw
- 925 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 13:41:25 ]
- typeof(*this) opDot()
{ return *this; }
- 926 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 14:36:01 ]
- 痔主多?
やDなぁそんなの
- 927 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 15:33:24 ]
- D Langer
- 928 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 16:08:02 ]
- グローバル変数をスレッド間で共有できないのをディフォルトにしよう、
という案を検討してるらしい。 bartoszmilewski.wordpress.com/2008/07/30/sharing-in-d/ これだと現行のコーディングとはスタイルが随分かわっちゃうけど、 マルチスレッドの安全性を考えたら良い案だと思う。
- 929 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 17:00:35 ]
- >>924
Dildo 発音しやすいよ
- 930 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 17:12:17 ]
- 1Der
2Der
- 931 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 17:17:02 ]
- 3ダー!!
- 932 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 17:32:21 ]
- 猪木?
- 933 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 18:00:29 ]
- >>928
むしろグローバル変数いらなくね? あと例えばプロパティはsynchronized付きになるとか(俺には善し悪しがよくわからんけど) これからのマルチコアの世界に向けて最適化していった方がいいのかも
- 934 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 18:17:45 ]
- locklessがもてはやされる時代に標準でsynchronized付きとか狂気の沙汰としか。
- 935 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 18:33:27 ]
- そういうもんか
マルチスレッドプログラミングの安全性ももっとコンパイル時に保証できないのかな
- 936 名前:デフォルトの名無しさん mailto:sage [2008/07/31(木) 22:24:48 ]
- 各スレッドが触る変数を確定できるかどうかが勝負という感じかなあ。
pureなら触る変数はプロシージャからのスタックの積み方で決まるから、 そのへんはもう少し楽になる気がする
- 937 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 00:14:52 ]
- Martianじゃないか?いろんな意味で。
- 938 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 00:24:55 ]
- static typeof(this) opCall(T...)(T args)
{ return new typeof(this)(args); } newすら書くのが面倒。そんなあなたに
- 939 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 00:26:02 ]
- pure判定が通るなら原則として大丈夫だと思う。副作用がないということだし。
もうすこし緩めるとスレッドローカル変数しか触らなければ安全だと思うが、これは未実装。
- 940 名前:924=928 mailto:sage [2008/08/01(金) 01:51:55 ]
- >937
ああ、そっちの方が全然いいですね。 ところでGtkDのRC1が8月1日リリース予定なわけだがwktk
- 941 名前:デフォルトの名無しさん mailto:sage [2008/08/01(金) 15:00:45 ]
- こうか
template Constructor{ >>938 } class A{ mixin Constructor; } void main(){ A x = A(); } そういえばstructとclassをコンパチブルにできるのかなー
|

|