1 名前:デフォルトの名無しさん mailto:sage [2012/07/31(火) 00:05:43.45 ] プログラミング言語 D (D Programming Language) について語るスレッドです。 ■本家 dlang.org/ - 公式(英語) www.kmonos.net/alang/d/ - 公式の和訳 d.puremagic.com/issues/ - D言語バグ報告 https://github.com/D-Programming-Language - D言語開発リポジトリ ■Wiki dusers.dip.jp/ - D言語友の会(日本語フォーラムあり) prowiki.org/wiki4d/ - Wiki4D(公認Wiki) ■前スレ D言語 Part29 toro.2ch.net/test/read.cgi/tech/1329714331/ ■過去スレ、関連スレ makimo.to:8000/cgi-bin/search/search.cgi?q=D%8C%BE%8C%EA&sf=2&all=on&view=table&shw=5000
2 名前:デフォルトの名無しさん mailto:sage [2012/07/31(火) 00:06:46.04 ] ■IDE www.dsource.org/projects/visuald - Visual D(Visual Studioプラグイン) code.google.com/a/eclipselabs.org/p/ddt/ - DDT(Eclipseプラグイン) ■ライブラリ www.dsource.org/projects/dwt - DWT(GUIライブラリ) www.dsource.org/projects/gtkd - GtkD(GUIライブラリ) https://github.com/Rayerd/dfl - DFL(GUIライブラリ・非公式最新版) www.dsource.org/projects/derelict - Derelict(SDL/OpenGLなどのポーティング) www.ku6.jp/keyword6/1.html - 傾き指向プログラミング(SDLなどのポーティング) ■D言語で作られたゲーム www.nicovideo.jp/mylist/4453698 - D言語で作られた芝ゲー niconico動画 www.asahi-net.or.jp/~cs8k-cyu/ - ABA Games
3 名前:デフォルトの名無しさん [2012/07/31(火) 00:13:20.33 ] で
4 名前:デフォルトの名無しさん mailto:sage [2012/08/01(水) 13:54:31.73 ] でつ・
5 名前:デフォルトの名無しさん mailto:sage [2012/08/01(水) 15:14:05.70 ] 新スレ・
6 名前:デフォルトの名無しさん mailto:sage [2012/08/02(木) 22:51:27.42 ] >>1 乙 うぉるたんかわいいようぉるたん
7 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 00:34:12.48 ] 新スレだ!D2.060だ!
8 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 00:50:15.69 ] 最近更新してもコンパイル通っちゃったり修正箇所少なかったりしてかなしい
9 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 00:51:38.13 ] dmdでコンパイルエラー出ないと悲しくなる だがoptlink、てめーはだめだ
10 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 01:26:19.67 ] うぉるたんが2.060をさっさとリリースして Win64を進めるんじゃー ってゆってたから年内には改善されるかもしれない いや、やっぱり年内は無理かな
11 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 07:45:12.43 ] >>8 い、いいことじゃん…
12 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 12:17:28.98 ] あ?
13 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 14:45:44.09 ] い?
14 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 16:14:45.79 ] を?
15 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 16:46:34.88 ] implibとか入ってるDigital Marsのbup.zipをウィルスセキュリティZEROがウィルス扱いして隔離するんだけど・・・
16 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 16:51:07.42 ] >>1 乙
17 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 16:53:00.33 ] >>8-9 コンパイルエラー駆動開発
18 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 17:05:26.63 ] >>15 VIRUS TOTALでは反応しない ttps://www.virustotal.com/url/e6d440059ad650064eed600044801706e7988a8cfc6322e9a976918c6d74f014/analysis/1344067418/ 自己判断でドゾー
19 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 17:51:06.23 ] コンパイルエラーを直すのが一種のパズルゲームのように面白いのはDの利点だよ
20 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 20:10:22.50 ] 次のバージョン辺りから いままでルーズな感じだったのを constチェックをうるさくつけるようになるってこと?
21 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 20:12:11.38 ] 片山くん、俺は君を信じてWondersに乗っかることにしたから 今後も飽きずに対応してくれな じゃ、ちょっと大型アプリケーション作りに行ってくるわ
22 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 20:54:09.64 ] >>18 Zeroのことだから誤認だと思ったけどやはり・・・
23 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 21:47:22.14 ] D用のfreeglutって無かったでした?
24 名前:デフォルトの名無しさん mailto:sage [2012/08/04(土) 21:49:19.72 ] ある
25 名前:デフォルトの名無しさん [2012/08/04(土) 21:59:55.00 ] doko?
26 名前:デフォルトの名無しさん mailto:sage [2012/08/05(日) 00:14:59.77 ] Derelict3 ni aru yo
27 名前:デフォルトの名無しさん mailto:sage [2012/08/05(日) 00:25:37.34 ] >>前スレ978 ざっとコード見たけどまあ頑張ってるんじゃない? でも日本でPublic domainという時点でNG
28 名前:デフォルトの名無しさん mailto:sage [2012/08/05(日) 00:51:20.30 ] こういう狭い考えの奴らがスパゲッティーコードを量産し始めるんだろうな
29 名前:デフォルトの名無しさん mailto:sage [2012/08/05(日) 01:56:30.20 ] >>26 arigato. dakedo hayamatte jibunde porting sicyatta yo!! ima sample ugoita toko
30 名前:片山博文MZボット ◆0lBZNi.Q7evd mailto:sage [2012/08/06(月) 13:51:14.29 ] >>21 これからもサポートやります。 >>27 MITライセンスにしようか?
31 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 14:09:48.51 ] 自由に使って良いよって意味合いで公開してるんだからPublic Domainでも大丈夫 日本の著作権の考え方と衝突するって言うけど 作者の意図が上のような状態なら そもそも権利に関して衝突する状況がまず存在しないよ 開発を継続するのなら gitとか使える所で公開したほうがいいと思う
32 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 17:24:24.57 ] githubに上げてくだされー
33 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 22:24:59.38 ] Javaからの移植で浮動小数点数の初期化でハマった こういうハマリポイントまとめておくと後で便利そうと思ったので頑張ってやらない
34 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 22:53:32.35 ] すいません。 std.net.curlで一部のUTF8ページの日本語部分が文字化けするのですが、どうすれば良いのでしょうか? import std.net.curl; import std.stdio; void main(){ auto content = get("www.yahoo.co.jp/ "); write(content); //文字化けなし auto content1 = get("www.excite.co.jp/ "); write(content1); //日本語が文字化け }
35 名前:デフォルトの名無しさん mailto:sage [2012/08/06(月) 23:04:37.40 ] 実は名乗ってる文字コードと真の文字コードが違う… なんてことはないか、さすがに
36 名前:34 mailto:sage [2012/08/07(火) 00:52:18.13 ] その後しらべた所、content-typeのcharset指定がなかったので、ISO-8859-1でデコードされていました。 ubyteで返してchar[]にcastしたら正常に動きました。ライブラリにエンコード指定の方法が欲しいですね。 ありがとうございました。
37 名前:片山博文MZボット ◆0lBZNi.Q7evd [2012/08/07(火) 12:17:46.08 ] Wonders ver.1.03 katahiromz.web.fc2.com/d/wonders.html D1でもビルド可能に。MITライセンスになる。 wonders: 仕様変更。 shobjidl, shlwapi: バグ修正。 tchar: 強化、仕様変更。 commdef: commctrl, commoncontrolsから共通部分を分離。
38 名前:片山博文MZボット ◆0lBZNi.Q7evd [2012/08/07(火) 14:00:21.81 ] >>32 https://github.com/katahiromz/wonders ちょっと手間取った。
39 名前:デフォルトの名無しさん mailto:sage [2012/08/07(火) 15:03:55.26 ] あるスレッドからTLS変数を一切使わないからTLSコピーしないでほしいんだけどなんか方法ない?
40 名前:デフォルトの名無しさん mailto:sage [2012/08/07(火) 21:39:29.68 ] ?
41 名前:デフォルトの名無しさん mailto:sage [2012/08/07(火) 21:44:49.68 ] 勝手にコピーとかしないんじゃ?
42 名前:デフォルトの名無しさん mailto:sage [2012/08/07(火) 22:51:29.59 ] スレッドの数だけコピーされるのがイヤってことでしょ 全部 shared もしくは D1 w
43 名前:デフォルトの名無しさん mailto:sage [2012/08/07(火) 22:54:30.63 ] __gsharedでいいじゃん
44 名前:デフォルトの名無しさん mailto:sage [2012/08/07(火) 23:20:51.86 ] TLSは普通に使うんだけど、特定のスレッドからはアクセスしないので 「このスレッドからはTLSを使いませんよ」宣言が欲しいってことでは
45 名前:デフォルトの名無しさん mailto:sage [2012/08/07(火) 23:33:26.62 ] 方法無さそうだなあ
46 名前:デフォルトの名無しさん mailto:sage [2012/08/07(火) 23:39:47.24 ] 自前のTLS実装作る
47 名前:デフォルトの名無しさん mailto:sage [2012/08/08(水) 01:40:56.10 ] 片山さん、ついでにdirect2dのポーティングもやってくだしあ><
48 名前:デフォルトの名無しさん mailto:sage [2012/08/08(水) 23:40:43.56 ] >>39 taskPoolで最低限の初期化を我慢して使い回すか、std.randomのrndGenみたいに使うまでTLSの初期化を遅延するかどっちか? Threadクラス改造すれば静的コンストラクタ呼び出さないのもいけそうだけど。
49 名前:片山博文MZボット ◆0lBZNi.Q7evd [2012/08/09(木) 12:46:33.26 ] Wonders ver.1.04 https://github.com/katahiromz/wonders katahiromz.web.fc2.com/d/wonders.html commdefとcommoncontrolsをcommctrlに統合。 gdiplus, fourcc, mmstream, directx/ddraw, directx/ddstreamを追加。 directx関係のimportを最適化。
50 名前:片山博文MZボット ◆0lBZNi.Q7evd mailto:sage [2012/08/09(木) 12:58:24.29 ] >>47 Direct2Dはどのヘッダでしょうか?
51 名前:片山博文MZボット ◆0lBZNi.Q7evd mailto:sage [2012/08/09(木) 14:17:06.42 ] >>50 ぐぐったら d2d1.h, d2d1helper.h, d2d1helper.h, d2derr.hって出てきた。 ポートするぞ。
52 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 17:37:25.07 ] githubを使い始めたり 片山くんが何気に成長しとるw
53 名前:片山博文MZボット ◆0lBZNi.Q7evd mailto:sage [2012/08/09(木) 22:10:43.23 ] d2d1、d2d1helperのポートは難易度高い
54 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 23:53:52.41 ] フォント表示にdwrite.h、画像表示にwincodec.hも必要。
55 名前:デフォルトの名無しさん mailto:sage [2012/08/09(木) 23:54:51.49 ] 泣き言は完成してから聞く
56 名前:デフォルトの名無しさん mailto:sage [2012/08/10(金) 00:01:26.59 ] ゲーム用サウンドはDirectSoundが廃止になって今はXAudio2が主流だから、DirectXをサポートするならXAudio2はあったほうがいいかも
57 名前:デフォルトの名無しさん mailto:sage [2012/08/10(金) 15:59:09.76 ] d2dはcomのモデルみたいだから大変かもね
58 名前:デフォルトの名無しさん mailto:sage [2012/08/10(金) 19:49:01.67 ] ttp://dpaste.dzfl.pl/88cd7bc7 > 878.d(6): Error: function compileme878.C2.method cannot override a non-virtual function ちょっと何言ってるか分かんないですね
59 名前:デフォルトの名無しさん mailto:sage [2012/08/10(金) 20:02:11.02 ] ttp://dpaste.dzfl.pl/6f91f1d6 というかpackageってなんなんだ? 漠然とmoduleのことだと思ってたんだけどとんだ間違いで俺が間抜けなだけなのかな
60 名前:デフォルトの名無しさん mailto:sage [2012/08/10(金) 20:19:35.53 ] パッケージはモジュールの集まり もっとわかりやすく言うとディレクトリ
61 名前:デフォルトの名無しさん mailto:sage [2012/08/10(金) 20:21:04.03 ] >>60 なるほろThx そういえばJavaもそうだった だとするとpackageでvirtualじゃなくなるのは単なるバグか
62 名前:デフォルトの名無しさん mailto:sage [2012/08/10(金) 20:59:44.38 ] d.puremagic.com/issues/show_bug.cgi?id=1161 まだこんなのも残ってるんだぜ
63 名前:デフォルトの名無しさん mailto:sage [2012/08/10(金) 21:17:00.70 ] privateで装飾すると非仮想関数として固定されるのと同じじゃない?
64 名前:デフォルトの名無しさん mailto:sage [2012/08/10(金) 21:26:54.11 ] 仮想関数 ttp://www.kmonos.net/alang/d/function.html#virtual-functions 全ての非staticかつ非privateかつ非templateなメンバ関数は、 仮想関数です。 これは非効率的に聞こえるかもしれませんが、 コード生成時にDはクラス階層を全て把握していますので、 オーバーライドされていない関数への呼び出しは全て最適化されて non-virtual になります。 アクセス保護属性 ttp://www.kmonos.net/alang/d/attribute.html#ProtectionAttribute package は、モジュールは違っても同じパッケージに属するコードからの アクセスは許可するようにprivateを拡張したものです。 これは、モジュールがネストしたパッケージの中にある場合は、 最も内側のパッケージについてのみ適用されます。
65 名前:デフォルトの名無しさん mailto:sage [2012/08/10(金) 21:43:49.25 ] するとJavaのpackage-privateみたいな属性は存在しないってことかな
66 名前:デフォルトの名無しさん mailto:sage [2012/08/10(金) 23:42:06.27 ] 納得いかない import std.stdio; extern(C) void f(int n) { writeln(typeid(&f)); } void main() { f(0); } ⇒ void()*
67 名前:デフォルトの名無しさん mailto:sage [2012/08/10(金) 23:55:09.40 ] writelnがアレなだけかね pragma(msg, typeof(&f)); // void function(int n)
68 名前:デフォルトの名無しさん mailto:sage [2012/08/10(金) 23:55:46.33 ] あ、typeidか
69 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 09:26:21.49 ] Dで使用する以下の関数を持つdllの作成について教えてください。dll作成はVisualStudio2010(32bit)を利用します。 現状以下の手順でdllを作成&使用していますが、関数呼び出し時object.Error: Access Violationとなってしまいます。 どこかおかしいところがあれば指摘お願いします。 以下手順です 【1.dll作成】 --- xxx.c --- __declspec(dllexport) int __stdcall func(int (*f)(int, int), int x, int y); int __stdcall func(int (*f)(int, int), int x, int y){ return f(x, y);} 【2.implibでxxx.libを作成】 implib /system xxx.lib xxx.def ---xxx.def--- LIBRARY "xxx.dll" EXPORTS _func@12 【3.dソースで利用】 dmd src.d xxx.lib --- src.d --- extern(System){ int func(int function(int, int) f, int x, int y); int f0(int x, int y){return x + y;} } void main(){ func(&f, 1, 2); // object.Error: Access Violation }
70 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 09:28:30.65 ] 訂正 x func(&f, 1, 2); // object.Error: Access Violation ○ func(&f0, 1, 2); // object.Error: Access Violation
71 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 09:51:13.09 ] xxx.cのfuncの引数のfにも__stdcallをつければ通る
72 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 10:08:47.76 ] >>71 どうもです。動きました。
73 名前:片山博文MZボット ◆0lBZNi.Q7evd [2012/08/11(土) 11:32:33.86 ] Wonders ver.1.05 https://github.com/katahiromz/wonders katahiromz.web.fc2.com/d/wonders.html wincodec, dispdib, wownt{16,32}, directx/{d2derr,dxgiformat, d2dbasetypes,d3d10_1,d3d10sdklayers,d2d1,d2d1helper, d3d10_1shader,dcommon,dwrite,d3dcommon,id3d10blob}を追加。 mswsock, winsock2: バグ修正。
74 名前:片山博文MZボット ◆0lBZNi.Q7evd mailto:sage [2012/08/11(土) 11:41:55.14 ] GUID定数は、externじゃなくて値埋め込みの方がいいかな?
75 名前:片山博文MZボット ◆0lBZNi.Q7evd mailto:sage [2012/08/11(土) 12:13:11.06 ] 構造体は、クラスで継承できなかった。
76 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 12:23:02.22 ] 個人の日記帳
77 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 13:10:27.52 ] twitterだな
78 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 13:20:54.73 ] うん
79 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 13:51:36.12 ] githubに登録したんだから使う人はそっち見るだろう 失礼だけど需要のほとんど無いライブラリのリビジョンが上がる度に書き込むのはどうかと思うよ
80 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 17:38:07.15 ] 値型のconst変数の存在価値がわからない immutableかenumでいいじゃん
81 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 19:41:07.36 ] ポインタがあるからじゃ?
82 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 22:13:54.70 ] >>75 次は関数パラメータのconst対応行ってみようか
83 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 22:19:46.85 ] 鬼が居るw
84 名前:デフォルトの名無しさん mailto:sage [2012/08/11(土) 23:02:36.64 ] IDEも作ってもらわなきゃ困る なんかもう色々と最強なやつな
85 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 00:09:07.60 ] 現状だとVisualDの開発に参加するのが一番だろうね
86 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 00:43:23.84 ] 変数の中身をちゃんと見られるようになれば・・・
87 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 00:48:57.50 ] どうも動きを見てると Release版の静的ライブラリを読み込んでいる部分が展開されないような雰囲気
88 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 01:57:47.08 ] ここのスレの住人はD言語の成長を暖かく見守ってるようでいいな 他の言語のスレは自分が使ってる言語をクソ糞言ってて気が滅入ってくるよ…
89 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 02:04:11.04 ] まあアレだ 食う前に十分太らせないと 肉の旨いもマズいも無いってな
90 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 02:05:08.76 ] ていうか、ある意味ではあんま変わらんよね。 クソ!(歓喜)みたいな。
91 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 02:18:00.42 ] >>88 !!!D言語に欠点など無いからだ!!!!
92 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 07:30:06.05 ] こんなインファイトの殴り合いをかけてくるクソがあるかッ!
93 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 11:26:50.74 ] www.kmonos.net/alang/d/struct.html >構造体にデストラクタのあるフィールドを持たせることはできません。 え?! dlang.org/struct.html >Unions may not have fields that have destructors. なんだ共用体か・・・
94 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 11:34:11.21 ] 残念ながら・・・
95 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 12:27:37.70 ] 共用体のメンバごとにデストラクタ呼んでたらえらいことになるなw
96 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 12:37:53.11 ] Dのデストラクタの信用ならなさは異常
97 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 12:57:56.04 ] 初歩的な質問なんだけど,プログラムを終了するときってどうすればいいんだ? 例外が発生したら writeln(ex); した後に自分を終了したいんだけど。 core.Runtime.terminate(); を使えばいいのかな?
98 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 13:21:06.55 ] Cの関数は普通に使えるんでstd.c.process.exitもあるし、 あるいはmainまで伝播させてreturnとか。
99 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 13:43:00.96 ] >>98 Thanks! 使い方がまずいのか, std.c.process.exit だと scope(exit) hoge(); が実行されなかったので, 素直にmainまで伝搬させることにしました。
100 名前:デフォルトの名無しさん mailto:sage [2012/08/12(日) 13:50:00.88 ] andreiは例外投げろ、それがDのやり方だっていってるね