D言語 Part27

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
プログラミング言語 D (D Programming Language) について語るスレッドです。

■前スレ
http://hibari.2ch.net/test/read.cgi/tech/1293500945/

■本家
ttp://www.digitalmars.com/d/
ttp://www.kmonos.net/alang/d/ (和訳)

■コンパイラ
http://www.digitalmars.com/d/dcompiler.html (DMD, 本家)
http://dgcc.sourceforge.net/ (GDC, gccフロントエンド)
http://www.dsource.org/projects/ldc (LDC, バックエンドにLLVM)

■参考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/candcpp2d2 (C/C++に疲れた人のD言語2.0)
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)
ttp://dusers.dip.jp (D言語友の会)
ttp://www.wish.sakura.ne.jp/desuno/game/Drawing (PrincessDrawing! D言語で作られた横スクロールSTG)
2デフォルトの名無しさん:2011/04/17(日) 15:44:03.69
E
3デフォルトの名無しさん:2011/04/17(日) 15:47:44.07
4デフォルトの名無しさん:2011/04/18(月) 02:46:38.23
ぬるぽ
5デフォルトの名無しさん:2011/04/18(月) 13:24:15.49
       ._
┌――─┴┴─――┐
│    >>1 乙    │
└―――┬┬─――┘
        ││   ./
      ゛゛'゛'゛ /
         /
     | \/
     \ \
      \ノ
6デフォルトの名無しさん:2011/04/20(水) 21:19:42.95
999なら2012年中くらいにはD2の仕様が固まる
7デフォルトの名無しさん:2011/04/20(水) 21:24:45.72
ワラタ
8デフォルトの名無しさん:2011/04/20(水) 22:31:42.36
そして phobos2.1が登場する
9デフォルトの名無しさん:2011/04/20(水) 23:09:54.11
void main() {
  phobos2_1.io.Stdout.Stdout("hello, world!").newline;
}
10デフォルトの名無しさん:2011/04/21(木) 01:23:16.97
2ヶ月たったな・・・ハァハァ
11デフォルトの名無しさん:2011/04/23(土) 03:44:26.57
なにか動きはないのかね
12デフォルトの名無しさん:2011/04/23(土) 11:29:59.40
interface I {
 void func1();
 void func2();
}
abstract class C1 : I {
 override void func1() {}
}
class C2 : C1 {
 override void func1() {} // ok
// override void func2() {} // だめ
 void func2() {} // ok
}

孫の実装はoverrideじゃないというのか…
これのせいでBlackHoleがエラーになって嵌ってもうた
13デフォルトの名無しさん:2011/04/23(土) 12:33:40.21
>>12
・インターフェイスの継承は、継承したクラスにだけ効力がある。
・そもそも、インターフェイスの仮想関数には実装が無いので、 override は不要。(そのコードの C2.func1() には必要)
・どうしても気になるなら、 C2 にも I を継承させてみるとか。
・初めて知ったけど、 abstract なクラスって、なんでインターフェイス全部実装しなくてもいいんだ?
14デフォルトの名無しさん:2011/04/23(土) 12:38:42.13
ん・・・、 C2 の func2() コメントアウトしたら、 I の関数が実装されてないって怒られた。
まあ、軽い仕様抜けかね。 実害は無いけど。
15デフォルトの名無しさん:2011/04/23(土) 13:03:27.43
>>13
BlackHoleがoverrideつける必要がそもそも無いんだな
16デフォルトの名無しさん:2011/04/23(土) 16:46:32.79
>>12
overrideは実装を覆い隠しますって意味じゃなかった?
func2はC2で初めて実装するからそれが正しい挙動だと思うけど違うの?
17デフォルトの名無しさん:2011/04/23(土) 17:56:07.42
>>16
だとするとC1の実装にoverrideがついてるのがOKなのがおかしい
Javaでは確かインタフェースの実装に@Overrideがついてたらエラーになったと思う
そして例によってドキュメントにはテキトーなことしか書いてなかったりする…
18デフォルトの名無しさん:2011/04/23(土) 17:57:31.42
>>13
初耳の仕様がたくさん!
19デフォルトの名無しさん:2011/04/24(日) 10:19:08.26
>>17
> Javaでは確かインタフェースの実装に@Overrideがついてたらエラーになったと思う
それ1.6で変更されたはず。変更前の1.5ではエラーになるけど。
20デフォルトの名無しさん:2011/04/26(火) 18:06:59.39
D言語をこれから始めよう(同人ゲーム制作)と思っている物なのですが、
やっぱり、2.0をやった方がいいのでしょうか?

昔、Dを触れたときに、ちょっと見ないうちに予約語Levelで変更されたりで長期使う気が起きなかったのですが、
今観てみたら1.0はメンテナンスと成っていて、なんか安定(? 破壊的変更はもう起こらない?)しているように見えるので
そっちを使ってみたいと思っています。が、
公式の翻訳サイトさんだと、これから始めるプロジェクトには2.0を と書いてあるのですが、
1.0じゃなくて2.0を使うメリットはなんでしょうか?
(その逆に、2.0じゃなくて1.0を使う場合のデメリットなどはあるのでしょうか?)
また、2.0で今後破壊的変更が起こりそうな部分とか分かっているのでしょうか?

#公式の翻訳サイトさんの 1.0から2.0 の部分を読んだ限りでは、1.0の方が
#今後破壊的変更の確率が大幅に低い分だけ魅力的に見えたので、使っている方々のご意見をお願いいたします。
21デフォルトの名無しさん:2011/04/26(火) 19:29:36.54
2.0はだいぶ安定してきてるけどまだ破壊的変更があるかもしんないね
言語レベルではともかくライブラリレベルではまだまだありそう

<del>D1が安定してるのは幻想</del>D1は言語的には使いやすいC++という感じだけど、
とにかく標準ライブラリが弱い。Cの標準ライブラリに毛が生えたくらいのもん。
Tangoという次期標準を目指してた強力なライブラリがあるんだけど、
ライセンスがアレだったり本来の標準ライブラリを無効化してしまったり
命名規約がクソだったりして(特に日本では)評判が悪い上にまだ1.0が出てない

D1とD2は言語レベルで別物といってもいいくらい変更が入ってるので、
これから置いていかれる一方のD1を使って本当に将来後悔しないの?D2へ移行するの大変だよ?というのもある

という感じで、開発そのものを長く継続するつもりである場合はD2を、
とりあえず今ソフトを完成させるんだ、ということであればD1を、選ぶのが個人的にはいいかなと思ってる
D1のライブラリの弱さは大和魂か何かで何とかする
あと、D1+Tangoは破壊的変更がありうるので要注意
22デフォルトの名無しさん:2011/04/26(火) 19:36:44.73
>>20
目的が同人ゲームならC#とかC++の方がいいかと
Dを使う人はDを使うためにソフトを作っているのです
23デフォルトの名無しさん:2011/04/26(火) 19:43:16.88
>>20
は既に C++あたりを習得済みとエスパーしつつ
破壊的変更がそれほどイヤなら
D言語なんかとんでもない! という他ない

このスレは破壊的変更を喜ぶマゾが多数を占めていて感覚がマヒしている
24デフォルトの名無しさん:2011/04/26(火) 20:01:40.44
破壊的変更が怖い、でもscope文とかめっちゃ使いたい
そんなときにはこれ「2.xxxバージョン決め打ち」その後バージョンうpしても無視
そして言語のバグで悩む
25デフォルトの名無しさん:2011/04/26(火) 20:03:11.50
ひーひー言いながら使ってるのを見てるのが楽しい
そういう言語だ
26デフォルトの名無しさん:2011/04/26(火) 20:04:34.49
>>20
D1からD2で特に強化された機能は、
マルチスレッドプログラミングのサポートと、
標準ライブラリの超充実と、C++とのインターフェイスか。
これらの機能に魅力がなければ、D1でもいいかと。
27デフォルトの名無しさん:2011/04/26(火) 20:10:25.60
>>20
客観的にC#使った方が効率いいのは分かってるけど
Dを使うこと自体に意味があるって感じだよね・・・ まさに>>22

これから始める同人てことで

 ・ゲーム作ることが目的ならC#
 ・.NETが嫌ならC++かスクリプト系
 ・プログラミング自体を楽しみたいならD2
 ・D1を選ぶくらいの弱腰ならC#

俺は仕事以外はもうDの最新版ばっかだな。Dは嫁
28デフォルトの名無しさん:2011/04/26(火) 20:13:25.86
>>24
D1にもscope文はある
遅延評価もある
29デフォルトの名無しさん:2011/04/26(火) 20:25:54.02
property += xxを
property = property + xxに展開してくれると聞いて始めたD2ですが
いまだにこれをしてくれません
騙されたッッ
30デフォルトの名無しさん:2011/04/26(火) 21:21:44.10
D1にはクロージャがないからなぁ
31デフォルトの名無しさん:2011/04/26(火) 21:59:06.59
クロージャって、何に使うの?
32デフォルトの名無しさん:2011/04/26(火) 22:01:18.16
継続
33デフォルトの名無しさん:2011/04/26(火) 22:10:17.92
GUIのイベント処理とかに便利
34デフォルトの名無しさん:2011/04/26(火) 22:15:06.69
GUIのイベント処理と言われてもピンとこないな。
デリゲートに対して言うならピンと来るけども。
35デフォルトの名無しさん:2011/04/26(火) 22:31:29.58
>>32
外側の変数を直接使えるのがいい
しかもJavaでfinal変数を使うときと違って変更できる
36デフォルトの名無しさん:2011/04/26(火) 22:32:12.00
安価間違えた…
37デフォルトの名無しさん:2011/04/26(火) 22:44:06.38
>>35
それはクラスのインスタンスを作ってやるのとどう違うの?
38デフォルトの名無しさん:2011/04/26(火) 22:47:14.22
>>37
39デフォルトの名無しさん:2011/04/26(火) 22:47:26.01
>>34
普通にコールバックの話じゃないの
俺の知る限り20年以上前から言われてる事
40デフォルトの名無しさん:2011/04/26(火) 23:18:11.48
自分で調べてきちゃった♪

...すまん。
41デフォルトの名無しさん:2011/04/26(火) 23:24:38.24
>>29
組み込みのlengthなんかはしてくれるんじゃなかったっけ。
42デフォルトの名無しさん:2011/04/26(火) 23:26:13.56
foreachが隠れクロージャになってるおかげで
変数のスコープがどうの言われるバグにぶち当たった
まだまだだな
43デフォルトの名無しさん:2011/04/26(火) 23:31:52.11
>>42
詳しく。

...バグの方を。
44デフォルトの名無しさん:2011/04/26(火) 23:40:28.15
>>37
継続いいよ継続
↓はあんまいい例じゃないけど

void button_onClick()
{
  auto o = new LocalObject;
  TimerProc(
    100, // 100ms後にタイマイベントがキューイングされ下のクロージャが呼出される
    {
      // ここはoを作成した場所と処理順的にも時間的にも離れているが
      // あたかも連続しているかのように処理を書ける
      doSomething(o);
    }
  );
}
45デフォルトの名無しさん:2011/04/26(火) 23:41:59.18
try-finallyとscopeガード文の差みたいなもんで
前者でもできないことはないがものすごくめんどくせぇ、ってことだな
46デフォルトの名無しさん:2011/04/26(火) 23:42:22.86
>>43
ごめん、もう忘れた。半月くらい前で再現方法とかもメモってないし
既存のバグレポートで似たやつを見かけたけど
同じかどうか判断できなかった
ttp://www.digitalmars.com/d/archives/digitalmars/D/bugs/Issue_5730_New_Error_variable_has_scoped_destruction_cannot_build_closure_28799.html
47デフォルトの名無しさん:2011/04/26(火) 23:49:03.97
>>44
それは確かに便利。
...自分が使う機会はあるだろうか。
48デフォルトの名無しさん:2011/04/26(火) 23:53:55.95
あ、継続って継続の事かと思ったら、継続の方か。
49デフォルトの名無しさん:2011/04/26(火) 23:55:17.82
>>46
それ、クロージャとあまり関係無さそうだけど...
50デフォルトの名無しさん:2011/04/27(水) 01:15:12.48
>>42 >>46
の再現コードがでけた
ttp://ideone.com/s95QK

コレクションクラスが絡んでて切り出しに困った
opApplyなんて初めて使ったわ
51デフォルトの名無しさん:2011/04/27(水) 01:53:30.52
>>21-28
どうも、ありがとうございました。
エスパーされてる通り、普段はC++(とruby)を使ってるBoost大好きっ子だったのですが、
ふと、振り返ったときに、Boostって本当に黒魔術で無理くりコンパイラとかを使ってるだけの
実はバッドノウハウの塊で、C++を使うというお題目のために思考硬化してるんじゃ?
Boostの使い方だけ上手くなってて、どんどんと袋小路に自分から突っ込んでいっていないか?
本当にプログラマーとしていいのだろうか?

だとしたら、そろそろ本業以外では新しい言語を勉強しておくべきだろう。
と思っていて、「Dが面白そうじゃないかな?」と考えていました。
 #Rubyは{}じゃなくてbegin endな所が、どうも本気でやる気に成れない。
 #コンパイルが通る事で得られる確証がないのでなんとなく、大きな物を作るに抵抗が。
 #2.0が見えてきたり(噂の標準化も進んでるらしかったり)で、
 #そもそも、本腰入れて勉強しなおすには、「待ち」だろう…と。
みなさんにC#が良い。C#が良いと推薦されたので、そちらに「D言語への期待」をぶつけたいと思います。

D言語の発展と繁栄を願って、
                   それでは。
52デフォルトの名無しさん:2011/04/27(水) 03:28:29.59
>>50
似たようなエラーがこれでも出た。
ttp://ideone.com/XgK3W

デストラクタのある構造体をクロージャで持ち出すともう駄目らしい。
なぜ 50 のような条件(クロージャその1が無いと通るとか)になるのかようわからんわ
53デフォルトの名無しさん:2011/04/27(水) 04:02:34.84
>>51
>だとしたら

だとしなかったらどうするのと
54デフォルトの名無しさん:2011/04/27(水) 04:22:17.17
>>53
なにを突っかかってるんだ?
55デフォルトの名無しさん:2011/04/27(水) 07:17:46.75
C#は先進的かつ素直ないい言語だよ
頑張ってくれ

さて、また今日も先進的すぎるじゃじゃ馬をあやす作業がはじまるお…
56デフォルトの名無しさん:2011/04/27(水) 10:30:50.75
前のスレで確かこんな話が出てた

C#はすでに崖っぷち
Dの方が3歩くらい先を行ってる
57デフォルトの名無しさん:2011/04/27(水) 12:38:40.68
つまり先に崖の下に落ちているんですね
58デフォルトの名無しさん:2011/04/27(水) 13:25:44.20
まだ、崖の下と決まったわけじゃない。
もしかしたら、万に一つかもしれないが、天高く飛び立つその第一歩なのかもしれない。
59デフォルトの名無しさん:2011/04/27(水) 18:55:47.32
キリ
60デフォルトの名無しさん:2011/04/27(水) 23:06:52.06
崖の底に落ちても2歩は歩いたんだね。殺しても死なない言語!
61デフォルトの名無しさん:2011/04/27(水) 23:25:34.61
崖から落ちてるのに気付かなかっただけさ
62デフォルトの名無しさん:2011/04/27(水) 23:27:27.94
std.algorithmにソート済みのrangeを探索する関数があったような気がしたんだけど
無くなったのかな
それとも夢でも見てたのかな
63デフォルトの名無しさん:2011/04/28(木) 00:08:16.99
find
64デフォルトの名無しさん:2011/04/28(木) 00:11:15.23
findって二分探索とかしてくれんの?
65デフォルトの名無しさん:2011/04/28(木) 00:48:25.40
std.range
assumeSorted でインスタンスつくって
canFind でどうかな

ただし有り無しの判断しかできない
66デフォルトの名無しさん:2011/04/28(木) 00:51:18.64
あ、ごめん
SortedRangeのcontainsとかlowerBoundとかequalRangeとかってやつじゃね
algorithmじゃなくてrangeだけど
67デフォルトの名無しさん:2011/04/28(木) 01:29:59.17
ぶっちゃけ破壊的変更って苦じゃなくね??
良い方へ向かってるって思うからかな?
68デフォルトの名無しさん:2011/04/28(木) 01:45:58.67
Dの更新についていくだけで勝手にコードがリファクタリングされていってるんだぜ・・・フフフ
6967:2011/04/28(木) 02:17:21.99
とか言ってたら下記のような見たことないウィンドウが出て
リンクに失敗した・・・。こういうのは苦。。。

---------------------------
Unexpected OPTLINK Termination at EIP=0042785B
---------------------------
EAX=0007C224 EBX=00000202 ECX=00000002 EDX=01610000
ESI=0043E86C EDI=01614000 EBP=0012FFF0 ESP=0012FF74
First=00402000
---------------------------
OK
---------------------------
70デフォルトの名無しさん:2011/04/28(木) 06:59:19.69
そいつはdmdじゃなくてOPTLINKのせい…たぶん

-gをつけないと出ないことがある
71デフォルトの名無しさん:2011/04/28(木) 07:02:07.57
>>66
おお、こんなところに…ありがとう

Phobosって強力になっていくのはわかるんだけど
見通しとかわかりやすさがどんどん落ちてる気がする
72デフォルトの名無しさん:2011/04/29(金) 01:03:12.80
趣味で使うんならF#オヌヌメ
73デフォルトの名無しさん:2011/04/29(金) 10:07:48.14
>>71
気がしてるだけってならまだ幸せ
74デフォルトの名無しさん:2011/04/29(金) 14:08:02.33
>14
abstractじゃないクラスは先祖からたどったときに全ての関数を実装済みにする必要があるってだけだから、仕様抜けではないんじゃ?
7552:2011/04/29(金) 20:56:16.47
ttp://ideone.com/c4Kue

catchした例外がnullという恐怖
76デフォルトの名無しさん:2011/04/29(金) 20:57:11.66
鼻水でた。例外にも程があるだろww
77デフォルトの名無しさん:2011/04/29(金) 22:37:29.75
メンバへのポインタもてないのかよ
78デフォルトの名無しさん:2011/04/30(土) 02:52:49.36
これは何がどうなっているんだ
79デフォルトの名無しさん:2011/04/30(土) 03:54:00.48
D言語でTCPソケットのサーバーを書くのに参考になるページが見つかりません。
相手のホスト情報の取得、マルチスレッドでの実装、などが必要です。

色々漁ったけど、クラスの説明が断片的すぎて、使い方がわかりません。
まともなリッファレンスや、参考にできるようなソースをご存知でしたら、
教えてください。おねがいします。
80デフォルトの名無しさん:2011/04/30(土) 11:29:01.12
それ以前にstd.socketの全面刷新はいつだ
81デフォルトの名無しさん:2011/04/30(土) 14:12:16.51
そういえば使ってはいけないリストに載ってたな
そろそろテスト段階だったりするんだろうか?
82デフォルトの名無しさん:2011/04/30(土) 14:47:38.00
今のstd.socketを使うならDのドキュメントよりJavaのサンプルを探したほうが参考になる気がする
似たような構造だったよね?
8375:2011/04/30(土) 15:12:05.41
>>76-78
俺も何をされたのかわからなかったが、とりあえずレポートしときました。

>>81
使ってはいけないリストkwsk
84デフォルトの名無しさん:2011/04/30(土) 15:18:00.45
>>83
ttp://d.hatena.ne.jp/repeatedly/20101224/1293197986
これかな。

そういや気になってたんだがmetastringsってなんか代替あるの?
単純に邪悪?
85デフォルトの名無しさん:2011/04/30(土) 15:21:54.86
>>84 の使ってはいけないリスト
テンプレに入れとくべきだったな
86デフォルトの名無しさん:2011/04/30(土) 16:11:14.72
std.stream難民・・・
8779:2011/04/30(土) 17:31:04.61
え、結局、Cのsys/以下のライブラリをつかえば、安全・・・?
なんだかなぁ・・・。
88デフォルトの名無しさん:2011/04/30(土) 17:38:03.56
>>87
そうじゃなくて、あなたが自分でライブラリを作って、
Phboosに入れたいんだけど!ってMLに殴り込みかけて
Phobosのコミッターになればすべて解決。
89デフォルトの名無しさん:2011/04/30(土) 17:44:35.20
D 言語って C++ 1x の別名なのか・・・。
知らんかった!
90デフォルトの名無しさん:2011/04/30(土) 17:54:25.54
すべてIOの仕様が決まらないのが悪いってのが結論でおk?
91デフォルトの名無しさん:2011/04/30(土) 18:12:23.20
D言語を愛してはいるが別に深く関わりたくはない
92デフォルトの名無しさん:2011/04/30(土) 18:18:34.72
なんでIO決まらないのよ
93デフォルトの名無しさん:2011/04/30(土) 18:33:13.46
>>92
他の言語でもI/Oは難しい問題で、
いままで他の言語のいいところをパクリまくって来た
D言語も同じところまで到達してしまったから。
94デフォルトの名無しさん:2011/04/30(土) 19:31:04.53
>>80
非同期に関する処理との連携部分で止まっている
新しいSocketからはselectとかは削除する予定なんだけど
そうすると非同期モジュールが入らない限りその辺こなせるものがごっそり無くなることになる
でも非同期もIOの一部だから〜という感じでストップ

>>82
どっちかというと.NETの劣化版
http://msdn.microsoft.com/ja-jp/library/system.net.sockets.socket_members(v=VS.80).aspx
95デフォルトの名無しさん:2011/04/30(土) 21:05:20.27
>>79
ホストの何の情報が必要なのかは知らないけど、情報送りたい側が自分で収集して送るしかないんじゃね。
マルチスレッドの方は何がしたいのか分からんからなんとも言えない。

わかりやすい情報? そんなの期待する方が(ry
96デフォルトの名無しさん:2011/04/30(土) 22:41:58.06
>>84
レスありがd!
ここに載ってるやつを使えばイイ(破壊が来る)って事だよな!
97デフォルトの名無しさん:2011/05/01(日) 04:38:51.92
無茶しやがって・・・
98デフォルトの名無しさん:2011/05/01(日) 08:24:09.20
これが生粋のD言語erか…
99デフォルトの名無しさん:2011/05/01(日) 09:31:56.77
配列中で指定の要素が最初に出てくる位置を知りたいときに使う関数はありますか?
findかと思ったのですがrangeを返してくるのでコレジャナイ感があります
100デフォルトの名無しさん:2011/05/01(日) 11:43:38.54
>>84
今は CTFE があるから metastrings は無くてもいいよね
って話をどこかで見た気がする

DMD 2.052ではstd.string.formatもsformatもCTFE出来ないな
代わりなんてなかった
他に理由があるなら俺も知りたい
101デフォルトの名無しさん:2011/05/01(日) 11:55:57.57
構造体扱っててメンバへのポインタ無いと辛いんだが何か代替策ないかな・・・classなら問題ないんだが
102デフォルトの名無しさん:2011/05/01(日) 12:45:32.79
え、メンバへのポインタ取れないの?
.offsetof とか使えってこと??
103デフォルトの名無しさん:2011/05/01(日) 13:16:08.60
>>99
countUntilだと思う
range関係の関数で配列を扱うときのコレジャナイ感は異常
104デフォルトの名無しさん:2011/05/01(日) 13:30:08.02
日本語訳に入ってないやつだw
さすがに std.datetime以外の変更分だけでも更新してほしいと思うココロ

さて、俺のソースも直しておくか・・・
105デフォルトの名無しさん:2011/05/01(日) 15:24:29.98
レンジの途中Aから始まって、レンジの終わりまで行ったら先頭を差して、Aに到達するまでイテレートする。
そんな新しいレンジを生み出すユーティリティ関数はありませんか?
106デフォルトの名無しさん:2011/05/01(日) 15:31:32.35
>>105
cycleで無限レンジに拡張して、popFrontN(A)した後、元のレンジの長さ分takeすればおk
単品だと無さそうだなー
107デフォルトの名無しさん:2011/05/01(日) 16:21:11.11
std.array.array(range[A..$]) ~ std.array.array(range[0..A])
108デフォルトの名無しさん:2011/05/01(日) 19:27:18.24
チルダよりchainの方がよさそう
109デフォルトの名無しさん:2011/05/01(日) 19:41:18.30
>>103
countUntilって名前からは計数するように思えるんだがなあ
findの結果の先頭を取るのではないの?
名前だけで話してるけど
110デフォルトの名無しさん:2011/05/01(日) 20:24:33.11
.>>109
うん、ぶっちゃけ俺もどうかと思ったけど
indexOf()を使おうとして「countUntil使えやゴルァ」って言われちゃったからなぁ
111デフォルトの名無しさん:2011/05/01(日) 21:38:31.23
きっとD3では
 グローバルシンボルの名前かぶるのがウザイから
 全部クラスのスタティックメンバにしちゃうよ☆
って言い出すに違いない
112デフォルトの名無しさん:2011/05/01(日) 21:42:44.22
むしろグローバルシンボルの名前かぶるのがウザイからimport廃止
113デフォルトの名無しさん:2011/05/02(月) 15:09:53.87
>>103
載っていないものもあるんですね、助かりました
114デフォルトの名無しさん:2011/05/03(火) 08:45:19.34
std.typecons の defineEnum って deprecated って書いてあるけど
これ使う代わりにどうしたら良いんだろう?

115デフォルトの名無しさん:2011/05/03(火) 17:59:11.51
>>114
std.conv.toで相互変換できるからそれで
116デフォルトの名無しさん:2011/05/03(火) 20:45:41.58
以下のように書いたのですが、実行時エラーになります。
・・・
int j = 0;
Thread[] thread_Clas;
thread_Clas.length = 100;

for(j = 0; j < thread_Clas.length; j++){
thread_Clas[j] = new Thread(&thread , cast(void*)j);//ここでひっかかる。
・・・
}
・・・
何がまずいんでしょうか?
117114:2011/05/03(火) 22:24:16.85
>>115
まぢですか。 conv さんは何でもできるなぁ。
コンパイル時以外にも使いたいけどできるかな。
試してみます。ありがとう!
118デフォルトの名無しさん:2011/05/03(火) 23:14:45.12
昆布つえええ
119デフォルトの名無しさん:2011/05/03(火) 23:15:24.07
>>116
何したいのか意味不明だけどエスパーするとthreadの中でスタックオーバーフローしてる
120デフォルトの名無しさん:2011/05/03(火) 23:22:00.75
isだのtoだのまじはんぱねえ
121デフォルトの名無しさん:2011/05/03(火) 23:54:55.97
>>119
1つ目でセグメンテーション違反で止まるんだ。

やりたい事は、C++でいうところの
int i = 0;
hogeClass** tp;
tp = new hogeClass* [100];
for(i = 0; i < 100; i++){
tp[i] = new hogeClass(i);
}
的なものなのだが。
122デフォルトの名無しさん:2011/05/04(水) 00:13:18.65
>>121
Threadが自前のクラスではなくてstd.thread.Threadだと仮定すると
Threadのコンストラクタ第2引数はthreadのスタックサイズの指定だと思うんだけど
その辺は大丈夫?
123デフォルトの名無しさん:2011/05/04(水) 00:13:55.08
訂正
×std.thread
○core.thread
124デフォルトの名無しさん:2011/05/04(水) 00:17:17.36
>>121
newで落ちるならむしろこっちか
this( void function() fn, size_t sz = 0 )
in
{
  assert( fn );  ←
}
125デフォルトの名無しさん:2011/05/04(水) 00:40:38.16
使っているのは、std.threadですね。
D言語で開発する手始めに、どこまでスレッドを吐けるかを検証してみようと思ったのですが、
なれない言語で、困惑してます。
126デフォルトの名無しさん:2011/05/04(水) 01:00:49.11
あぁ、cast(void*)jをcast(void*)(&j)にしたら動きました。
参照にするの忘れてた。
127デフォルトの名無しさん:2011/05/04(水) 01:32:49.51
D1だと…
128デフォルトの名無しさん:2011/05/04(水) 02:45:41.63
D2スレとD1スレが必要だな
129デフォルトの名無しさん:2011/05/04(水) 03:03:42.85
スレッドが1022しか吐けないないのだが、これはどうしたものか・・・。
thread.dをちょっといじくってみたが、変わらなかった・・・。
130デフォルトの名無しさん:2011/05/04(水) 06:31:05.15
間違ってたらゴメン。

静的配列のサイズには上限があったはず。
動的配列使ってみては?
131130:2011/05/04(水) 06:35:06.02
ゴメン、動的配列にはすでにしてるんだね。
132デフォルトの名無しさん:2011/05/04(水) 16:23:18.87
スレッドを1000個も使う局面ってちょっと思いつかないんだけど
アクタークラスとかで十分なんじゃ
133デフォルトの名無しさん:2011/05/04(水) 16:46:49.37
>>129
Windows?
普通はどれくらい作れるの?
134129:2011/05/04(水) 17:54:41.83
>>133
Linux(x64版)です。C/C++(Pthread)だと4万5千くらいスレッド吐けるので、
Dのstd.threadの最大スレッドが少ないなぁと・・・・。
えーと、クライアント数5000のサーバーを書こうかと思っています。

設計上、1万くらいスレッドが必要なのですが、全然足りません。
宣言そのものは65536以上いけるんですが、start()が1022個目でエラーで止まりますね。
std.thred.d の static Thread[0x400] allThreads; を改変して、
static Thread[0x4000] allThreads;にしても、リストの上限が増えません。
135デフォルトの名無しさん:2011/05/04(水) 19:13:30.91
そういえば、同じインスタンスでstart()を呼び出すと、未定義動作になるんだっけ。
136129:2011/05/04(水) 19:53:43.07
too many threads とエラーがでるので、リストがいっぱいになっているはずなのですが、
リストの長さを増やしてもどうにもならない・・・。
137129:2011/05/04(水) 21:09:18.80
結局、pthredを直接使うことに。
どうも皆様、お騒がせしました。どうもありがとうございました。

そういえば、usleep的なものを探してみつからないのだが、どうやって休ませればいいのですか?
138デフォルトの名無しさん:2011/05/04(水) 21:44:26.61
std.threadが存在してたのって何時代のD言語?
139デフォルトの名無しさん:2011/05/04(水) 21:44:40.97
D1には無い
自分でextern(C)でプロトタイプ宣言するしかない
140デフォルトの名無しさん:2011/05/04(水) 22:01:12.89
う〜ん・・・、やっぱり、usleepやsleepがない・・・。
141デフォルトの名無しさん:2011/05/04(水) 22:02:36.96
組み込みのthread以外使うとGC使えなくね?
142デフォルトの名無しさん:2011/05/04(水) 22:09:45.53
Thread.sleepみたいなのがあった気がするけどそれじゃないの?
というかバージョンは何?
143デフォルトの名無しさん:2011/05/04(水) 22:18:22.91
>>141
std.thread覗いてみたけど、std.threadでも、pthread使ってる。
GCが介入するような記述も見受けられないので、どうなっているか解らない。

>>142
gdc 0.24です。個別にPthredを使うので、std.thread.sleepが使えません。
144デフォルトの名無しさん:2011/05/04(水) 22:54:35.06
どっかにあった気がするけど、どこだったかな
145デフォルトの名無しさん:2011/05/04(水) 23:16:02.03
よくみたら、sleep()がstaticな件。
和訳が分かりずらいんだなこれ。
146143:2011/05/05(木) 00:16:18.80
はぁ・・・。サーバー系は、javaかC++で書いたほうが良さそうだ・・・。
基本仕様を見たらずいぶんといい感じな言語なのに、サーバー書くのがここまで辛いとは。

やはり、LinuxはC/C++で書いておくほうが無難なのかな・・・。
64Bit版にしたら、メモリのフラグメンテーションを気にしなくて済みそうだし。
147デフォルトの名無しさん:2011/05/05(木) 01:51:54.95
>>143
gdc 0.24って開発が止まってるやつじゃん
aptとかで入れたのかもしれないけどgdcの最新はbitbucketにある方
それでも1022以上作れないんなら環境の問題な気がする
148デフォルトの名無しさん:2011/05/05(木) 03:34:12.32
Dを使うなら最新のリリース版を使わないといけないよ。
trunkとは言わないけど。
149デフォルトの名無しさん:2011/05/05(木) 03:34:36.48
D1は死滅しろ
D3が出たらD2も死滅しろ
150デフォルトの名無しさん:2011/05/05(木) 03:36:31.38
今はもうないライブラリを使って書くのが
将来的によいわけないよね。
新しいものの方が寿命は長い、はず!
151デフォルトの名無しさん:2011/05/05(木) 04:06:29.20
電子の寿命は無限大さ!
152143:2011/05/05(木) 04:06:43.66
>>147
gccのバージョンの関係で、コレしか無理でした。
gccをバージョンアップしても、何故かDMDは動いてくれないし。
153デフォルトの名無しさん:2011/05/05(木) 10:54:33.22
gdcじゃなくてdmdでやってみたら?
154デフォルトの名無しさん:2011/05/05(木) 13:43:06.22
修羅の道ぞ…
155143:2011/05/05(木) 19:11:51.99
>>153
dmdが動かないです。gccのライブラリの不一致でエラー落ちします。
なので、色々試した結果、gdc0.24(gcc4.12用)しか動かなかったです。
156デフォルトの名無しさん:2011/05/06(金) 00:42:28.71
そりゃ、gccが悪い。
157デフォルトの名無しさん:2011/05/06(金) 13:59:57.19
dmdを動かすための質問をしては?
158デフォルトの名無しさん:2011/05/06(金) 14:21:23.04
>>155
CentOS 5.5/5.6、x32/x64どちらもDMD動いてるよ。
DMDのソースをgccでコンパイルすればおk。
159デフォルトの名無しさん:2011/05/06(金) 20:16:51.52
gccでビルドって簡単にできたの?
160デフォルトの名無しさん:2011/05/06(金) 22:48:39.71
スマン、Linux開発で1年程度しか触ってないんで齟齬があるかも。

手順はdmd2.xxxx.zip 内の dmd2/src/dmd の linux.mak を Makefileにリネームしてmakeしただけ。
これでdmdとか出来るんで、以降のインストール手順はWebのそれと同じに。

dmd2.051あたりからzip内の元々入ってる奴がlibcと喧嘩して、
色々環境変えるの面倒だった(出来なかった)から自力ビルドしてる。
161デフォルトの名無しさん:2011/05/07(土) 20:09:14.67
DでCOMコンポーネントDLLを作ろうと思っています。

VBS・JSで使うためのコンポーネントライブラリをVCで作ろうと思ったのですが、
Expressではウィザードがなかったもので、色々探してたらDでも作れることを
知りました。

Visual DなどIDEも使い慣れた環境でいけそうなので、Dに移行してみようかと
思っています。

DでCOMクラスを作るために、良い参考資料を教えていただけませんか?
162デフォルトの名無しさん:2011/05/07(土) 20:51:52.17
163デフォルトの名無しさん:2011/05/07(土) 21:48:45.70
公式にCOMプログラミングのページがあったよね?
と思って見に行ったらちょっと類を見ないくらい簡潔だった
164デフォルトの名無しさん:2011/05/07(土) 21:58:10.87
>>163
そうだったっけ?と思って見に行った

俺が見るときはいつも
"D で作る Win32 DLL"のページに脳内変換されていることに気づいた

まああっちもわかりやすい説明にはほど遠いけど

165デフォルトの名無しさん:2011/05/08(日) 09:44:56.98
Dはじめてみた
GeanyってD対応してんのな
166161:2011/05/08(日) 12:35:23.64
ありがとうございます。

>>162を参考にしてみようと思います。

>>163,164
公式は私も見ましたが、ちょっと情報不足でしたので@@
167デフォルトの名無しさん:2011/05/08(日) 12:51:49.35
先進的なDのことだから
インターフェースから情報を取得して
COMのタイプライブラリを自動的に吐いてくれるような
ツールが作られているに違いない
168デフォルトの名無しさん:2011/05/08(日) 15:52:25.19
int[2] a = 0, b = [];

・・・いや、特にどうということはないんだがw
169デフォルトの名無しさん:2011/05/08(日) 16:26:29.17
D言語はマゾ向けと聞いてやってきますた。
170デフォルトの名無しさん:2011/05/08(日) 17:11:18.14
勇者よよくぞきた
さあ次のバージョン(2.053)が出る前にしこしこプログラムを書き上げるのだ
171デフォルトの名無しさん:2011/05/08(日) 17:15:06.03
>>169
ちょうどDマスコットアクションプロジェクトで人手欲しがってるぞ
172デフォルトの名無しさん:2011/05/08(日) 19:33:15.31
>>170
とりあえずは入門サイト的なもので勉強して練習プログラムを書いてる段階。

入門サイトのほんとに初歩のスクリプトもそのままだとふつうにコンパイル通らないね。
toIntじゃなくてto!intだとか、書式使わないのにwritefすると怒られたりとか。

>>171
ググっても出てこなかったけどなんぞや?
173デフォルトの名無しさん:2011/05/08(日) 19:49:26.99
>>172
ちょっと待った。
その入門サイトってどこ?
少なくとも>>1に載ってるか?
174デフォルトの名無しさん:2011/05/08(日) 19:57:46.29
シューティングゲームを作りたくてパチュリーに教えを乞うた
とエスパーしてみる
175デフォルトの名無しさん:2011/05/08(日) 20:17:14.71
というか今動くコードを載せてる入門サイトなんてあるのか?
176デフォルトの名無しさん:2011/05/08(日) 21:05:46.34
>>173
http://shoo.s20.xrea.com/shoo/programing/index.html
CとかRubyとかやってるからここまで丁寧なのでなくてもプログラミングの基礎自体は
別にわかるんだけど、最初に見つけたから。
177デフォルトの名無しさん:2011/05/08(日) 21:26:41.82
パチュリーすぐる・・・
178デフォルトの名無しさん:2011/05/08(日) 21:34:19.43
ここ地雷だったのか。

まあ動かないコードをエラーメッセージとか公式のドキュメントを参考に
書き直すの楽しいからいいか。

Ruby 1.8 -> 1.9 の破壊的変更で何かに目覚めてしまって……。
179デフォルトの名無しさん:2011/05/08(日) 21:39:57.24
tangoとか…ハハッワロス
180デフォルトの名無しさん:2011/05/08(日) 21:41:42.06
>>176
ここの人がいまやtango撲滅の急先鋒なんだから世の中わからんもんだ
181デフォルトの名無しさん:2011/05/08(日) 21:45:06.06
>>178
そこ参考にするならD1の方使えば良いんじゃないかな・・・

そういえばPrincessDrawing!は落ち着いたらソース公開するとか書いてた気がするけどどうなった?
182デフォルトの名無しさん:2011/05/08(日) 21:46:21.08
>>178
そこが地雷というわけではなく
・古い=あまり役に立たない
そして
・役立つサイトができてもすぐに陳腐化する
ゆえに
・みな役に立たない

あえていえば丁寧に作ってある分
裏切られた感は強くなるかもしれないw
183デフォルトの名無しさん:2011/05/08(日) 21:51:22.98
>>181
本人じゃないしむちゃくちゃ勝手に代弁するけど、
記事を参考にしてD1のユーザが増えることなんて中の人は望んでいないはずだ! とかいってみる
184デフォルトの名無しさん:2011/05/08(日) 21:56:26.02
>>181
1なのか2なのか書いてなかったから不安だったけどやっぱり1仕様だったのか。
今更1やっても微妙そうだし2用のサイトを参考にしてやることにするよ。

>>182
結局動かなかったら最新のドキュメントを参考に適当に手直ししつつやってけばおkなんだよね?
185デフォルトの名無しさん:2011/05/08(日) 22:54:37.29
新参なのに D言語er の鑑だね。すばらしい。
186デフォルトの名無しさん:2011/05/08(日) 23:36:25.37
versionはそのモジュールの中だけ有効っぽいんだけどどう使うんだよ
enum+static ifの方が普通に柔軟なんだが

あとstatic if絡みでこんなバグが
enum hoge = fuga;// OK
enum fuga = 1;
enum foo = bar;// NG
static if(hoge == 1)
enum bar = 2;
else
enum bar = 3;
versionだと問題ないっていうね
187デフォルトの名無しさん:2011/05/08(日) 23:36:48.64
too early for D2 and too late for D1
188デフォルトの名無しさん:2011/05/09(月) 00:26:38.67
public version = Hoge;
ってやったら公開できるのかな?
189デフォルトの名無しさん:2011/05/09(月) 00:28:44.88
えっ
190デフォルトの名無しさん:2011/05/09(月) 00:40:32.08
dmd -version=Hoge
191デフォルトの名無しさん:2011/05/09(月) 01:19:32.78
module a;
public version = Hoge;

module b;
import a;
version (Hoge) write("Hoge is defined.");

ってできない? いま試せないんだ。
192デフォルトの名無しさん:2011/05/09(月) 01:22:37.44
>>186
つコマンドライン
基本的には外部のビルドツールなんかから操作出来るようにする機能なんだろう。
193デフォルトの名無しさん:2011/05/09(月) 01:46:13.41
>>175
あるだろ?
194デフォルトの名無しさん:2011/05/09(月) 01:52:39.68
関数をまるまるversion(none)する時、{}で囲んだけど、よく仕様見たら、{}入らなかったんじゃね? と、思った。
195デフォルトの名無しさん:2011/05/09(月) 01:55:35.70
公式ドキュメントにvoid main()のことが無いんだけどお前らどう思う?
196デフォルトの名無しさん:2011/05/09(月) 02:02:46.11
>>195
関数のページをよく見てみよう。
197デフォルトの名無しさん:2011/05/09(月) 12:35:01.42
Visual D の更新キタ
構文エラーハイライトは大きい
198デフォルトの名無しさん:2011/05/09(月) 14:36:07.54
何時の間にこんなに更新されてたんだ。
199デフォルトの名無しさん:2011/05/09(月) 14:57:29.50
VisualD を早速入れてみた。

けどビルドできねー。。必要な手順が分からん・・・。
ビルドは bud でいいけど、インテリセンスだけでも使えないかなぁ・・・。
200デフォルトの名無しさん:2011/05/09(月) 15:27:48.06
Visual Dのデフォルト文字コードを変える方法を発見。
VisualD\Templatesに入ってるソースコードを、デフォルトにしたい文字コードで保存すればおk。
201デフォルトの名無しさん:2011/05/09(月) 15:36:29.74
>>199
必要な手順なんか無かったような・・・?

完全に放置してるWikiだけど・・・
http://www22.atpages.jp/~dwiki/index.php?%E9%96%8B%E7%99%BA%E3%83%84%E3%83%BC%E3%83%AB%E7%B4%B9%E4%BB%8B%2FVisual%20D
202デフォルトの名無しさん:2011/05/09(月) 15:39:36.16
>>199
インテリセンスにはあまり期待しないのが吉
本領はデバッグ機能、最強
203デフォルトの名無しさん:2011/05/09(月) 15:45:47.31
>>199>>202
インテリセンスの使い方。
識別子の頭文字を入力⇒Ctrl+Space
204186:2011/05/09(月) 17:04:10.80
>>190,192
それだとしっくり来ないんだけどなんとなく使い方を見いだせた気がする

ちなみにバグの件は関数に値を返させることで回避可能
205199:2011/05/09(月) 19:34:37.73
VisualD にて自分のライブラリをドラッグアンドドローップしてみたら。

出る出るコンパイルエラーの嵐が・・・。
bud って自動で辿るから使っているモジュールしかコンパイルしないのね。。。
やっぱ bud は気楽で良いなぁ。。。使うときには直さなきゃいかんけど。

デバッグだけ利用することってできますか?
もしくは VisualD に本腰入れるか・・・。
206デフォルトの名無しさん:2011/05/09(月) 20:55:01.85
>>176
本人だけどすごくごめん、そこ全然メンテナンスしてない。
http://bit.ly/7VZ259
全部こっちに移行していますので、ご参考にどうぞ。
207176:2011/05/09(月) 21:48:19.62
>>206
ありがとうございます。
208デフォルトの名無しさん:2011/05/10(火) 00:48:02.06
interface TI {
void hoge(T)(T);
}
って書きたいんだけど、いい案ないですか?
209デフォルトの名無しさん:2011/05/10(火) 01:11:16.96
何を書けないと思ったのか分かりません
http://ideone.com/5Qrgj
210208:2011/05/10(火) 03:40:13.34
いや、俺もしばらくいけてるもんだと思ってたんだ
ttp://ideone.com/eZSmI

interface にも enum とか body のある static メンバ関数書けるし
テンプレートを書くこと自体は合法みたいなんだけど、あくまでも関数の宣言ではないということらしい。
interface TI を class TI にかえても non-virtual 扱いで hoge を abstract にできない。
空の実装をつけても継承先で override できない。
interface TIにあり得る型をすべて書き出して、class S ではテンプレートで実装。は無理らしい。


でもきっとDならエレガントに解決してくれるはず。<- いまここ
211デフォルトの名無しさん:2011/05/10(火) 06:32:00.22
OpenGLの最新のヘッダ群をだれかポートしてくれ
212デフォルトの名無しさん:2011/05/10(火) 06:49:30.74
頑張れ
213デフォルトの名無しさん:2011/05/10(火) 10:05:11.95
>>210
そういえば、ドキュメントの最後にこっそりと、クラスにテンプレートで仮想関数を挿入出来ない、とか書いてあったっけ。

>>211
つhtod
214デフォルトの名無しさん:2011/05/10(火) 11:06:47.66
>>210
http://ideone.com/olBop
でもたぶん、これじゃダメなんでしょ?
215デフォルトの名無しさん:2011/05/10(火) 11:57:25.51
>>211
DerelictGL が生きてるから見てみればいいんじゃないかな
直接使ったことないし最新かどうかも知らないけどw

DerelictGL.load(); // はまりポイントとその説明
http://svn.dsource.org/projects/derelict/trunk/docs/gl.html
216デフォルトの名無しさん:2011/05/10(火) 12:09:43.22
>>215 テンプレになかった
ttp://www.dsource.org/projects/derelict
ここの Derelict2( =D2用 )
217デフォルトの名無しさん:2011/05/10(火) 17:44:15.10
あー、privateにしても同じモジュールからだと見えるのか……。
218210:2011/05/10(火) 23:30:15.51
>>213
そうなんだ。公式で否定されてるんじゃだめだな。
>>214
やっぱり、それじゃあ、ねえ?

昆布の旨味成分がすごいからまとめられると思ったんだけどな。テンプレに。
interface はCOM専用ってことだな。
(新しい書き方の)演算子オーバーロード書けんしな。
最近 Phobos が traitsカオスなのもこの辺が原因かな。
エラーメッセージが無駄に長くなって好かんかったが、そっち方向でやるわ。
どうもありがとう!
テンプレート制約を if( is(T:int) ; "T must be int" ) みたいにかければいいのに。
219210 連投スマソ:2011/05/10(火) 23:31:59.19
別件だけど、コンストラクタテンプレート
ttp://www.digitalmars.com/d/2.0/template.html#TemplatedConstructor
が息してないみたいなんだけど?> ttp://ideone.com/b9Hj4
っつかこれ、明示的にテンプレート引数指定できるのだろうか?
220デフォルトの名無しさん:2011/05/11(水) 00:22:07.66
バグ票に voteしてくるんだ
ttp://d.puremagic.com/issues/show_bug.cgi?id=435

dmd のパッチもあるっぽい。人柱をたのむ
221デフォルトの名無しさん:2011/05/11(水) 01:46:03.28
>>220
情報サンクス!voteしつつパッチ当ててみた。(dmd2052 Windows)
とりあえずいけてるっぽいぞやったぜ!!
222デフォルトの名無しさん:2011/05/11(水) 19:58:26.16
nice vote.
223デフォルトの名無しさん:2011/05/11(水) 22:16:05.37
そろそろ破壊的変更が欲しいなぁ。
224デフォルトの名無しさん:2011/05/12(木) 01:42:01.53
version識別子はCamelCaseなのかそうでないのか?
allとnoneだけ特別?
225デフォルトの名無しさん:2011/05/12(木) 01:42:32.66
パッチを自分で当てて使う人もいるのか
226デフォルトの名無しさん:2011/05/12(木) 02:11:59.17
次のバージョンで取り込まれもせず
差分ファイルも不整合とかやられるとちっと痛い
227221:2011/05/13(金) 01:55:18.09
やっぱダメだッ!
コンストラクタテンプレート内で const メンバ変数を初期化しようとすると怒られるorz
228デフォルトの名無しさん:2011/05/13(金) 07:06:05.19
その程度のことならDでは駄目じゃあない!
229デフォルトの名無しさん:2011/05/13(金) 08:42:32.53
逆に考えるんだ。傷が浅くて良かった、と。
230デフォルトの名無しさん:2011/05/13(金) 15:36:05.52
>>227
残念。
ついでに直してパッチ投稿しちゃいなよYOU
231デフォルトの名無しさん:2011/05/14(土) 11:21:58.24
053
232デフォルトの名無しさん:2011/05/14(土) 12:55:21.12
ヒャッハー!バグの山だー!
233デフォルトの名無しさん:2011/05/14(土) 13:00:23.05
更新久々じゃないかああああああああ
嬉しい!
234デフォルトの名無しさん:2011/05/14(土) 13:01:12.50
YATTA!! DWTがコンパイルできなくなってる!
235デフォルトの名無しさん:2011/05/14(土) 13:24:40.30
すげぇ!コンパイルエラーの嵐だっ!
236デフォルトの名無しさん:2011/05/14(土) 13:44:47.44
>>230
どうなったかな・・・wktk
237デフォルトの名無しさん:2011/05/14(土) 14:14:17.25
俺ね、wxWidgetsって、D2から直接使えるんじゃないか、って思ったんだ。
238デフォルトの名無しさん:2011/05/14(土) 14:23:14.48
そげぶ
239デフォルトの名無しさん:2011/05/14(土) 14:23:16.85
ウエーン、dflもビルドできないお
240239:2011/05/14(土) 14:47:50.76
あれ、簡単だった
241デフォルトの名無しさん:2011/05/14(土) 15:05:27.42
242239:2011/05/14(土) 15:39:07.10
>>241
おお、カミよ

ついでにアイコン付ツリービュー【非公開機能(w】のバグも対応してもらえまいか
1行追加するだけなんだが
243デフォルトの名無しさん:2011/05/14(土) 16:20:54.03
std.regex.match の挙動がこっそり変わっとる こわいわ
244デフォルトの名無しさん:2011/05/14(土) 16:28:51.93
>>243
ひー

win32apiのポーティングからlibを作って自分のプログラムにリンクしてます
libファイル作ってリンクすると.dをコンパイル+リンクするのと比べてexeが巨大になるんだけど
回避策ないですか?
win32api.libにole32.libとかをリンクしてるのが悪いのかな
245デフォルトの名無しさん:2011/05/14(土) 16:31:48.67
dmdを更新したのにコンパイル出来てしまうのですが
どこが間違っているのでしょうか
246デフォルトの名無しさん:2011/05/14(土) 16:34:40.15
>>245
もっときわどくコーナーを攻めないと一流レーサーにはなれない
247デフォルトの名無しさん:2011/05/14(土) 16:51:04.18
>>242
パッチくれれば
248デフォルトの名無しさん:2011/05/14(土) 16:52:01.16
>>244
ブツを見ないとわからないけど
ヘッダで必要ないのに pragma(lib,"xxx.lib")してしまうやつがあるから
それを消してみたらどうだろう
249デフォルトの名無しさん:2011/05/14(土) 17:00:23.03
っつーか const 周りで、2.052 ではコンパイル通っちゃいけないものが
コンパイル通ってたことが分かった。
250デフォルトの名無しさん:2011/05/14(土) 17:17:48.86
>>247
おお、カミよ

パッチ作ったことないけどこれでいいんやろか
ttp://ideone.com/SgIwg

内容:構造体(m)の初期化が漏れているのでそれを1行追加
影響:ツリーにアイコンを追加するプロパティ(imageIndex)を呼んだ場合
251デフォルトの名無しさん:2011/05/14(土) 17:26:14.09
>>244
dmd.exe -O -release

と比べてみるとか
252デフォルトの名無しさん:2011/05/14(土) 18:46:02.30
>>251
常に -O -release -inline付けてます

>>244
lib作るときはライブラリパスが無効になるぽいけどもしかしてlibにlibをリンクするってできないのかな
253デフォルトの名無しさん:2011/05/14(土) 19:16:29.36
ようドMども
254デフォルトの名無しさん:2011/05/14(土) 19:26:05.20
-inlineは当然でかくなるな
255デフォルトの名無しさん:2011/05/14(土) 19:33:03.25
inlineはずしたら1MBだったexeが2MBになったんだがwwww
256デフォルトの名無しさん:2011/05/14(土) 19:41:37.24
さすがDさんだ
257デフォルトの名無しさん:2011/05/14(土) 22:04:23.37
>>249
どんなの
258デフォルトの名無しさん:2011/05/14(土) 22:05:31.25
>>244
-Xとか使うと小さくなったことがある
259249:2011/05/14(土) 22:09:35.50
>>257

const Hoge[] ってのを
あるクラスのメンバ関数の引数(Hoge[] buffer) に渡せてた。
2.053 ではコンパイルエラーになってくれた。
260デフォルトの名無しさん:2011/05/14(土) 22:34:43.23
dwtってスプリッターないんでしょうかね?
フレームをぐりぐり動かす奴なんですが。
261デフォルトの名無しさん:2011/05/14(土) 23:28:52.81
>>260
customパッケージにあるよ
詳細はSWT+SashFormでぐぐれ
262デフォルトの名無しさん:2011/05/15(日) 01:42:16.25
>>250
あ,ごめん全部pushしてなかったかも
trunkで使えなくなってたかもしれない

パッチ当てておいたので確認してみてください
263デフォルトの名無しさん:2011/05/15(日) 02:10:37.62
>>262
おっけー。確認取れました、ボス!
264263:2011/05/15(日) 02:19:45.05
さんくす。
265デフォルトの名無しさん:2011/05/15(日) 04:08:51.08
>>259
おろろ
266デフォルトの名無しさん:2011/05/15(日) 04:09:53.45
>>244
あと-Mだっけか?
とにかくライブラリに関する一文字のオプションだ
267デフォルトの名無しさん:2011/05/15(日) 12:43:10.85
dflの新しい奴が出たらしいんで、久々にいじってみてるんですが、
Error: variable FIRST_MENU_ID cannot be read at compile time
こんなのがでました。 なんですかねこれ?
268デフォルトの名無しさん:2011/05/15(日) 13:55:56.45
DFL RC3 になってたのか

新機能も特になさそうな上にD2.053が出たから
さっそく役立たずになってるけどw

>>241 だとその分も修正されてるよ
269デフォルトの名無しさん:2011/05/15(日) 15:32:07.12
>>241 はD2にしか対応しないからそのつもりで
270デフォルトの名無しさん:2011/05/15(日) 15:37:52.98
D3が出たら?
271デフォルトの名無しさん:2011/05/15(日) 16:18:48.73
この物言いは近々D3が出るという伏線・・・?
272デフォルトの名無しさん:2011/05/15(日) 17:06:29.25
正確に言うとtrunkにしか対応しないからそのつもりで
273デフォルトの名無しさん:2011/05/15(日) 17:19:46.94
俺はtrunkは取らんく
274デフォルトの名無しさん:2011/05/15(日) 20:25:04.72
OpenGL4.1まで使えるようにポーティングしてたけど途中で心が折れた
275デフォルトの名無しさん:2011/05/15(日) 22:58:23.80
OpenGLのヘッダって割と綺麗だから機械的にいけない?
前にOpenGL1.1とかでやった時はPerlでスクリプト書いて流したらいけたんだが
276デフォルトの名無しさん:2011/05/15(日) 23:11:12.49
rdmd使おうぜ!
277デフォルトの名無しさん:2011/05/16(月) 01:05:15.67
>>267
変数の宣言順に制限ができてる
バグ
278227:2011/05/16(月) 02:12:59.52
>>228, 229
ありがとう。おまいらのDへの愛にはハンカチ3枚じゃ足りないくらい感動した。

>>230, 260
ぱっちなげてみた。
初心者が慣れない事をしているので、おかしいところの修正をお願いしたい。
というか、投げる前にここで聞くべきだった。と今思ってる。
ttp://d.puremagic.com/issues/show_bug.cgi?id=435

2.053でたのか・・・ッ!!
※注意 2.053にこのパッチをあてると、普通の関数から constメンバに代入しようとした際、
dmd がエラーを吐いた後クラッシュします。
279デフォルトの名無しさん:2011/05/16(月) 12:21:55.60
>>278
2.053のソースから dmd.exeをビルドして(WinXP32bit+DMCを使用)
実行するとコンパイルエラーのときにクラッシュする

パッチ関係なく2.053のソースがおかしいと思う
なんぞこれ・・・
280デフォルトの名無しさん:2011/05/16(月) 14:49:20.84
バグも、破壊的変更も、あるんだよ
281デフォルトの名無しさん:2011/05/16(月) 15:30:08.57
>>278
thisのオーバーロード処理も直さないといけないっぽい

this(){ } // a.テンプレートなし
this(T)(T a){ } // b.テンプレート引数あり
が共存できない

直してみようかと思ったが心が折れた
関数の並び順をかえたら判断するクラスが変わるとか
反則過ぎる orz
282デフォルトの名無しさん:2011/05/16(月) 18:52:02.64
isStaticFunction ・・・ぐぬぬ
283デフォルトの名無しさん:2011/05/17(火) 00:58:49.33
いっそのことthis(TL...)(TL)とみなしてTL.lengthで処理するとか…
284デフォルトの名無しさん:2011/05/17(火) 04:25:19.79
>>279
ほんとだ。デバグコンパイルしたdmdだとクラッシュする。と思ったらこれは、
/**************************************
* Try to stop forgetting to remove the breakpoints from
* release builds.
*/
void halt()
{
#ifdef DEBUG
*(char*)0=0;
#endif
}
なんのおまじないだろう? breakpoint ?

>>281
当座はこれでしのごうかな。
this( T = void )(){}
285デフォルトの名無しさん:2011/05/17(火) 05:06:25.16
dfl wktkして触ったけど、相変わらずドラッグドロップできないんだね
286デフォルトの名無しさん:2011/05/17(火) 12:28:34.07
>>284
breakpointでアクセス保護違反起こして止めてる…?
こえーおまじないだな
287デフォルトの名無しさん:2011/05/17(火) 12:34:52.58
ライブラリのunittestか何かで
コンパイルエラーを無理やり引っ掛ける仕組みと想像

とりあえずバグじゃないならおっけー
288デフォルトの名無しさん:2011/05/17(火) 15:48:03.57
dllがコンパイルできなくなった
古くなったサンプルをアップデートしただけじゃなかったのかコラ
289デフォルトの名無しさん:2011/05/17(火) 22:21:48.59
>>288
dllのサンプルが更新されてるから何かやり方が変わったとかじゃない?
290デフォルトの名無しさん:2011/05/17(火) 23:06:13.92
>>288

この男の思考
D言語では こういう考えが一番危ない
まさに地獄に直結する道

Bugzilla 5987: mydll sample doesn't compile

サンプルの更新だから
ソース変更は発生しない などという読みは
まさに泥沼
                       _
                   /)/ノ,>    す  嵌
                   | lン.)っ   で   っ
                   |/ .〈/    に.  て
                      l   )    泥.  い
                   |iii||||||    中  る
                     |iii||||||        :
                    |ii||||||||      首.  :
                ┌|ii|||||||||      ま   :
       、〜"イイ__   /iiii|||||||||||     で   :
      ゝ:::::::::::レヘ .|__「iii|||||||||||||      :   :
;;;;;;;;;;;;;;;;;;;;;イ::::::::</(ン ,_,<||||||||||||l'';;;;;;;,,,,,   :
;;:;:::;;;;;:::,,,;;;ム;/);;;モヽ u (ニ'ヘ||||||||l;;;::;;;;;;;..''':;;;,
::::;;;;;;:;;;;;..,,,,;;;;/フ;;;;;/);;;;:'''''::::;;;;;;;:::::'';;:;;;;;;,,::::;;;;;,,,,
;;;;;:::;;;;;;;::::::'''',,尸;;;;;';;''::::::;;;;;;;;'';;;::::;;;;;;;;::;;;:;;;;::::::''';;;;;;;
::;;;;;;;;:::;;;;;;;;;'';;;つ;;::::;;;''';;;;;;,,,'':::::::;;'';;;;;;::::;;::;;;''::::;;;;;;;
291デフォルトの名無しさん:2011/05/18(水) 00:25:18.49
D言語こわい
292デフォルトの名無しさん:2011/05/18(水) 00:29:55.38
Dとカイジネタは相性がよすぎる事に気付いたがその事実は封印しておこう
293デフォルトの名無しさん:2011/05/18(水) 00:58:20.15
>>285
パッチちょうだい
294デフォルトの名無しさん:2011/05/19(木) 12:43:20.11
うーん・・・理屈は分るんだがどうなんだろう

http://ideone.com/ik1Lt
http://ideone.com/tk5Mt
http://ideone.com/3FcT4
295デフォルトの名無しさん:2011/05/19(木) 12:55:55.53
scope int[]型とかになればいいのにね
296デフォルトの名無しさん:2011/05/19(木) 13:07:12.51
これ1つめと3つめどうなってるんです?
297デフォルトの名無しさん:2011/05/19(木) 13:11:57.90
一つ目はスタックに確保された配列(初期化子付き)のアドレスを返してるからダメ
三つ目は通常の動的配列
298デフォルトの名無しさん:2011/05/19(木) 14:24:15.53
1つ目がコンパイルエラーにならないのはバグなんでしょ?

静的配列はあやしいと思ってなるべく使わないようにしてるけど
ここまでとは・・・
299デフォルトの名無しさん:2011/05/19(木) 19:59:36.82
もう!D言語ちゃんたら
300デフォルトの名無しさん:2011/05/19(木) 20:39:41.62
import std.datetime;
immutable class Hoge
{
SysTime time;

this(SysTime t)
{
time = t;
}
}

opAssignが呼ばれてコンパイル出来ないんだが何か方法はないだろうか
明示的にメンバ変数のコンストラクタ呼ぶ書き方があったかな?
301デフォルトの名無しさん:2011/05/20(金) 09:37:45.62
>>300
immutableなんか付けてるからいけないんだ。
さてさてコンパイルっと・・・

http://upload.wikimedia.org/wikipedia/commons/a/a8/Windows_XP_BSOD.png
302デフォルトの名無しさん:2011/05/20(金) 09:44:25.41
>>294 の何がおかしいのか分からないんだけど
>>298 は静的配列のスライスをコンパイルエラーにして欲しいってこと?
それともスタック領域を参照するであろう全ての変数がスコープを跨ぐのをコンパイルタイムに検出して欲しいってこと?
303デフォルトの名無しさん:2011/05/20(金) 16:39:23.36
2がエラーなのに1がエラーにならない上に中身おかしくなってる
2がエラーなのに3がエラーじゃない
304デフォルトの名無しさん:2011/05/20(金) 16:41:17.17
3は別物だろ
305デフォルトの名無しさん:2011/05/20(金) 17:08:14.62
実際は違うのかもしれないけど見た目は同じように見えるじゃん
306デフォルトの名無しさん:2011/05/20(金) 17:25:58.22
int[10] tbl;
int[] p = tbl;
return p; // 通るがpを参照した場合は未定義動作

これが通るのは
コンパイラから手出しできなくてしょうがないにしても

return tbl; // エラー
return tbl[0..5]; // 通るが未定義動作

これのふるまいが違うってのは直感に反する

ソース見たけど実際にエラーではじいてる部分も変化球投げてて
バグの温床に見えた

いっそのことスタックに置くのを廃s(ry
307デフォルトの名無しさん:2011/05/21(土) 01:03:26.27
上に方にも書いてあったOpenGLのポーティング試してみた
簡単なスクリプト書けば済むと思ったら意外としんどいのな
308デフォルトの名無しさん:2011/05/21(土) 04:30:51.18
そりゃOpenGLは3D描画のアセンブラと比喩されるものだしな・・
出来合いのライブラリ使うか自分で1階層上のレイヤを作る必要があるよ
309デフォルトの名無しさん:2011/05/21(土) 04:46:59.47
ポーティング作業の話じゃないの?
310デフォルトの名無しさん:2011/05/21(土) 09:33:27.61
最近C形式の関数ポインタ滅んだよね
311デフォルトの名無しさん:2011/05/21(土) 09:59:13.58
結構前だと思ったけど
312デフォルトの名無しさん:2011/05/21(土) 10:49:07.61
あんなもん滅んでいい
313デフォルトの名無しさん:2011/05/21(土) 10:57:04.31
ヘッダ変換ツールとかの受け皿が
ちゃんとできてれば
314デフォルトの名無しさん:2011/05/21(土) 11:24:21.56
破壊的変更という名のヘヴンがあるせいで
その手のツールにも定期的なメンテがないと役立たずになるんだよなー

つってもせめてhtodさんのconstをちゃんと認識してくれるバージョンくらいはあると楽なんだが
315デフォルトの名無しさん:2011/05/21(土) 12:42:36.04
>>314
昔からプログラマの間では言いだしっぺの法則というのがありまして
316デフォルトの名無しさん:2011/05/21(土) 12:45:37.53
待って! この場合の言い出しっぺは>>313ではないの?
317デフォルトの名無しさん:2011/05/21(土) 13:04:57.94
いや、ここは >>312 にその責を負ってもらおう
318デフォルトの名無しさん:2011/05/21(土) 13:12:54.99
そのまま foreach すると、1 になりそうだな。
319デフォルトの名無しさん:2011/05/21(土) 14:45:04.01
foreachは処理の種類が広い・・・
320デフォルトの名無しさん:2011/05/21(土) 15:16:57.60
>>306
> return tbl; // エラー
> return tbl[0..5]; // 通るが未定義動作

静的配列をそのまま返すのとそのスライスを返すのは明らかに別物じゃね?
型が変わってるんだから

ソースが変化球なのは静的配列の挙動は後付けだからってのもあるかも
dmdはアドホックな実装を綺麗にすれば結構無駄なコード減りそう
321デフォルトの名無しさん:2011/05/21(土) 15:45:19.91
スライスの意味からして,スタックを指すスライスを返してはいけないのは仕方がないのでは.
でなければ,スライスがスタックを指すときにはヒープにコピーされるってしないといけなくて遅くなるような.
322デフォルトの名無しさん:2011/05/21(土) 16:01:36.65
スタック領域専用のスライス型と動的領域専用のスライス型を用意して
汎用のスライス型との間で暗黙の変換ルールを定めればいいわけだな
323デフォルトの名無しさん:2011/05/21(土) 16:08:04.22
>>320
型が変わってるのはどっちも同じなんよ
>>294 見ればわかるけど関数が返す型は動的配列だから
324デフォルトの名無しさん:2011/05/21(土) 17:37:08.58
>>321
それするとスライスの旨味なくなっちゃうよね

>>322
T[new]の再来!T[stack],T[heap],とかかな

>>323
"return tbl[0..5];"は動的配列を返してるんだから,型変わってなくね?
それともなんか見落としてる?
325デフォルトの名無しさん:2011/05/21(土) 17:43:20.65
"型変わってなくね?"は"関数の返り値の型と"という意味ね

俺が320で言いたかったのは
静的配列(tbl)と動的配列(tbl[0..5])はそもそも型が違うんだから
そこが"直感に反する"ってのはなんか微妙に違うんじゃね
ということね
326デフォルトの名無しさん:2011/05/22(日) 13:38:03.37
スライスに種類がいるというか、
要はポインタにスタックを指すのと
ヒープを指すのがいるんじゃないか。
327デフォルトの名無しさん:2011/05/22(日) 13:47:57.22
グローバル変数もあるでよ
328デフォルトの名無しさん:2011/05/22(日) 15:29:05.19
画面に表示するマップチップの情報を持っとく
クラスメンバの動的配列が時間が経つと勝手にGCに回収されるのか配列がアクセス不可になる
アクセスするとobject.Error: Access Violation
マウス入力しなければその配列に書き込みしないし明示的に解放したりもしてないから
最小コードに絞ることもできず原因がさっぱりわからん・・・・・

とりあえず自分のミスなのかGCがおかしいのか切り分けることできないかな・・
329デフォルトの名無しさん:2011/05/22(日) 15:37:54.69
とりあえずGC切って試してみたら?
330デフォルトの名無しさん:2011/05/22(日) 15:44:06.15
なんか似たような経験があるな
よく覚えてないが配列のメンバを生成するたびにGC.addRootしたら直った記憶がある
331デフォルトの名無しさん:2011/05/22(日) 16:13:50.76
そういえば 2.053 の ↓ってどれのことなんだぜ? 
Added some gc benchmark apps

ツールなのかライブラリなのかもさっぱり
332デフォルトの名無しさん:2011/05/22(日) 16:28:57.27
>>328
動的配列の領域の確保の仕方は?
単純にlengthを書き換えたのか、他の動的配列(静的配列)と共有してるのか、newなのか、配列リテラルを代入したのか。

Access Violationになったときの、動的配列のハンドルの値は?(nullか別の何かか。)
333デフォルトの名無しさん:2011/05/22(日) 16:34:30.53
>>328
アドレスが4の倍数からはずれてるとか
334デフォルトの名無しさん:2011/05/23(月) 01:07:33.89
>>328
Win でDLLに変数もたせたときにそんな感じのがあったな
アクセス関数作らずに直にさわってたのがいけなかった
335デフォルトの名無しさん:2011/05/23(月) 09:20:39.68
d言語自体のバグって今何個くらいあるんですか?Voteで先に直す順番がきまってるようですけど。
そんな多いの?
336デフォルトの名無しさん:2011/05/23(月) 10:34:44.56
自分で検索どうぞ。
http://d.puremagic.com/issues/query.cgi
337デフォルトの名無しさん:2011/05/23(月) 12:31:39.00
dll の unittestが出来ねえ! バグだろ! と数時間悩んだ結果
defファイルをリンクしているのがまずいとわかった


いや、やっぱりバグじゃね?
338デフォルトの名無しさん:2011/05/23(月) 14:49:45.44
くそっ、今度は DFL+2.053 のバグかよ・・・
エラー報告フォームの中身自体がバグってるとか鬼畜すぎだろ
俺の時間を返せ
339デフォルトの名無しさん:2011/05/23(月) 20:34:30.37
フォーラムもdで作られるとかならワロス
340デフォルトの名無しさん:2011/05/23(月) 20:42:05.22
>>338
その割には顔が笑ってる。
341デフォルトの名無しさん:2011/05/23(月) 20:56:45.46
>>332-333 newで生成してて他とは共有してないですdeleteするような処理もないです
>>330 GC.addRoot()しても同じ現象が起こりました
>>329 GC切った→問題が起こらなくなった orz

GC切った上でGC.collect()を呼び出してみても問題発生せず
問題を起してると思われるクラスを単体で動かし続けるコードで試しても発生せず
他の処理にも手を広げてもうちょっと調べてみます・・・

Dは悪くないよ全然悪くないよ
俺が悪いんだ俺がきっと何かやっちゃってるんだ・・・
342デフォルトの名無しさん:2011/05/23(月) 21:08:57.06
>Dは悪くないよ全然悪くないよ
>俺が悪いんだ俺がきっと何かやっちゃってるんだ・・・
それは他言語使いの悪魔の誘惑だ
D使いならdmdが悪いと言うに決まってる
343デフォルトの名無しさん:2011/05/23(月) 21:17:33.30
おれは使う気にはならんが
おまえらがDさんに振り回されてるのを見るのは楽しい
344デフォルトの名無しさん:2011/05/23(月) 21:50:32.55
interfaceにguidつけられるようにならんかなあ
345デフォルトの名無しさん:2011/05/23(月) 23:20:22.31
const 定数使おうとするとバグ多いな
enum 使えってことなのか
346デフォルトの名無しさん:2011/05/23(月) 23:52:41.23
enumという語の意味はどこへ…

文句はCに言え?
ごもっともで
347デフォルトの名無しさん:2011/05/28(土) 08:18:44.07
オーバーロードされたメンバ関数のアドレスってどうやってとるん?
void func();
void func(int);

&func ←??
348デフォルトの名無しさん:2011/05/28(土) 09:47:26.96
void function() p1 = &func;
void function(int) p2 = &func;

p1();
p2(1+1);
349デフォルトの名無しさん:2011/05/28(土) 09:56:38.07
ゴメン、function → delegate で
350デフォルトの名無しさん:2011/05/28(土) 10:14:49.10
引数として渡すときとか自動推論してくれるよな
351デフォルトの名無しさん:2011/05/28(土) 10:39:44.54
ああなるほど どもです
352デフォルトの名無しさん:2011/05/28(土) 16:14:59.10
__traitsのgetOverloadsってのもある
353デフォルトの名無しさん:2011/05/29(日) 10:42:57.34
2.053になってから落ちたときに変なゴミが出ると思ったら
これスタックトレースなのか

どうやって使うの? おしえてえらいひと
354デフォルトの名無しさん:2011/05/29(日) 11:21:55.53
ちまみに
>>338
も同じ現象ですた
「DFL RC4 でも直ってないじゃないかゴルァ!!」 と思ってたのは内緒
355デフォルトの名無しさん:2011/05/29(日) 12:59:40.91
>>353
どのように関数が呼ばれたかが見れるので、デバッグのときに原因を絞りやすくなる。
どこからでも呼ばれる関数で落ちた時に特に威力を発揮する。


・配列操作関数
・ログ取り関数
・アクセサ
・クラス不変条件

・・・ついにねんがんのWindows環境でのスタックトレースを手に入れたぞ!
356デフォルトの名無しさん:2011/05/29(日) 13:04:42.59
ユニットテストも必ず全部実行してくれるようになったし、これでデバッグ方面は隙が無くなった!
めっちゃうれしい!
357デフォルトの名無しさん:2011/05/29(日) 13:09:33.62
053ってこのスレみる限りバグが多そうなんだけど
・・・どう?
358デフォルトの名無しさん:2011/05/29(日) 13:39:05.23
別に53に限ったことじゃないよ?
359デフォルトの名無しさん:2011/05/29(日) 14:21:05.60
◎破壊的変更
○新しい仕様
×バグ
360デフォルトの名無しさん:2011/05/29(日) 14:40:06.51
☆創造的破壊
361デフォルトの名無しさん:2011/05/29(日) 14:57:18.57
unittest もモジュール単位じゃなくてブロック単位に分割して実行させたい
結局コケたら次が走らないってのは同じで萎える

ところで
unittest で assertEquals() みたいなのを簡単に書ける方法ないかな

assertEquals(a,b); // やりたいこと:ログ内容 Assertion failed: a != b 
mixin(assertEqualsDecl("a","b")); // こんなんイヤや
362デフォルトの名無しさん:2011/05/29(日) 20:39:12.36
デバッグ環境って何かいい事ありました?
363デフォルトの名無しさん:2011/05/29(日) 23:05:38.19
>>361
こんなんどうですか
ttp://www.ideone.com/H6AZK

>>353 >>355
あ、ホントだッ! -g オプションだとスタックトレースでてる!
しらなんだ。ありがとう!
364デフォルトの名無しさん:2011/05/29(日) 23:37:47.92
>>363
おお、aliasパラメータってこうやって使うのか 夢がひろがりんぐwww

ありがと あいしてる ちゅっ
365デフォルトの名無しさん:2011/05/30(月) 00:57:21.76
unittest内でのassertが失敗したときには例外を飛ばすだけじゃなくて、カスタマイズできるようにして欲しい。
366デフォルトの名無しさん:2011/05/30(月) 01:28:15.69
>>364
僕もさ! ぶちゅっ
ttp://www.ideone.com/QFA3V
367デフォルトの名無しさん:2011/05/30(月) 02:08:16.83
>>366
横から失礼。こんな風に式は書けないのかな?
http://www.ideone.com/1oNYC
あと>>361の要望はこの形だけど、メッセージは x != y じゃなくて
1 != 2 のほうがわかりやすい気がする
368デフォルトの名無しさん:2011/05/30(月) 15:27:10.54
>>365
core.exception.setAssertHandler();

core.runtime.Runtime.moduleUnitTester;
369デフォルトの名無しさん:2011/05/30(月) 23:45:57.95
>>367
ttp://www.ideone.com/ZWkhI
なんかいまいち、まとまらない

>>368
そんな deprecated で大丈夫か?
370369:2011/05/31(火) 00:23:05.20
勘違いしてた。>>361 の「ブロック単位に分割」ってこう
ttp://www.ideone.com/UTA2R
いうことか。
371デフォルトの名無しさん:2011/06/02(木) 00:14:32.38
x86 Debian6.0 gcc4.5.5 dmd2.053 で Derelict2 を導入しようとして詰んだので報告。
例えば、
libtest.c:
void hoge(void){ fuga(); }

Shared Object ライブラリ内で fuga が呼び出されているとき、呼出側のDのコードに
test.d:
extern(C) void function() fuga;
があると、SEGV。
具体的には SDL_InitSubSystem などが該当する。
ポインタを DSDL_InitSubSystem などに改名すれば、回避できる。しないけど。
372デフォルトの名無しさん:2011/06/02(木) 22:28:43.33
このところDFLが順調にバージョンアップされてるけどどういうことなの…
373デフォルトの名無しさん:2011/06/03(金) 00:11:00.12
バグ修正も機能追加も全く無し
Dのバージョンアップに追随してるだけ

やる気があるんだかないんだか・・・
374デフォルトの名無しさん:2011/06/04(土) 00:08:59.37
コタツがあったかすぎてDでのプログラミングが進まない俺に何か良いアドバイスを・・・
375デフォルトの名無しさん:2011/06/04(土) 00:53:49.33
コタツにDプログラムを組み込もう
376デフォルトの名無しさん:2011/06/04(土) 01:22:24.84
─────────────┐
─────────┐┌─┐│
コタツの暴走で焼死 ││+││
─────────┘│+││
──────── 自 │新││
──────── 作 │聞││
──────── プ .└─┘│
た破壊的変更 ─  ロ ┌─┐│
─────   ─  グ.└─┘│
377371:2011/06/04(土) 02:27:09.96
378デフォルトの名無しさん:2011/06/04(土) 03:08:13.82
こたつの暖かさの回避策かと思って凄いびっくりしたあと少しがっかりした
379デフォルトの名無しさん:2011/06/04(土) 11:51:10.40
>>374
こたつから出る放射線をガイガーカウンタで測定するソフトをつくるんだ
380デフォルトの名無しさん:2011/06/04(土) 17:44:43.64
コタツの電熱線の温度と組成から導けるな。
381デフォルトの名無しさん:2011/06/04(土) 19:22:06.29
いまだにコタツ使ってることには誰もつっこまないのか
382デフォルトの名無しさん:2011/06/06(月) 12:53:56.94
二重の連想配列が定義出来ないのはバグかな・・?
int[string][string] t = ["key1":["key1_1":1, "key1_2": 2], "key2":["key2_1":1, "key2_2": 2]];
383デフォルトの名無しさん:2011/06/06(月) 13:22:06.84
リテラルだと問題出るようだけど、

int[string][string] t;
t["a"]["x"] = 0;
t["b"]["y"] = 1;

こういうのは問題なくできるから定義できないってのは違う。
384デフォルトの名無しさん:2011/06/06(月) 14:25:06.75
2.053 にしてから OpenGL の描画が変になり、何故かポリゴンが水色になってる。
2.052 に戻すと正常になる。

どこに原因があるんだろう・・・。勘弁してー!
385デフォルトの名無しさん:2011/06/06(月) 20:10:06.98
俺も2.053でOpenGLやってるけど問題なくポリゴン表示できてるから
頂点配列やらglBeginだけ使ってるようならたぶん>>384のソースにミスがある可能性が
386デフォルトの名無しさん:2011/06/06(月) 20:16:08.28
ユーザコードを疑う必要があるなんてDももう終わりだな
387デフォルトの名無しさん:2011/06/06(月) 20:18:56.21
D始まったな。
388デフォルトの名無しさん:2011/06/06(月) 20:28:38.66
C言語のstdlibのsystem関数みたいなことはD言語でどうやるんですか?
389デフォルトの名無しさん:2011/06/06(月) 20:30:29.36
んー、std.processでいいみたいですね。
事故解決しますた。スレ汚しすまそ
390デフォルトの名無しさん:2011/06/06(月) 21:33:31.43
D言語ってちょっとしたプログラムでも実行ファイル巨大になるんですね。。。
391デフォルトの名無しさん:2011/06/06(月) 22:23:16.33
バージョンあがるごとに10kbくらいずつ増えてくよ
392デフォルトの名無しさん:2011/06/06(月) 23:20:06.11
phobosを捨ててcのライブラリを使えばそんなに大きくならないよ
393デフォルトの名無しさん:2011/06/12(日) 05:02:22.40
最近なんかかわった?
394デフォルトの名無しさん:2011/06/12(日) 13:02:11.72
>>393
2.053リリース


・・・Win32でプログラミングしようとした俺の苦悩。
http://ideone.com/tiEdY
395デフォルトの名無しさん:2011/06/12(日) 13:23:04.46
>>394
結局何が悪かったのかわからん。WndProcのプロトタイプを間違ってただけ?
396デフォルトの名無しさん:2011/06/12(日) 13:28:18.85
>>395
俺の苦悩を少しでも味わってほしいので、原因はわざとぼかしておりますww

ただの意地悪である。
397デフォルトの名無しさん:2011/06/12(日) 13:48:30.90
callbackついてねーだけというオチか
と言うかお前の苦労話はどうでもいい
398デフォルトの名無しさん:2011/06/12(日) 13:48:56.88
>>397
残念。ハズレ。
399デフォルトの名無しさん:2011/06/12(日) 14:04:13.66
extern(Windows)付け忘れたとか?
400デフォルトの名無しさん:2011/06/12(日) 14:06:03.10
あ、CALLBACKのことは違うのか。すまん忘れて
401デフォルトの名無しさん:2011/06/12(日) 14:12:25.59
>>399
それだ!!!

WNDCLASSEXにextern(Windows)付いてないWndProc()登録したから、CreateWindow()を呼び出した後でメッセージが発行される部分で落ちてたんだろうね・・・
また、ショーもない理由だとは思ってたけど、いざ示されると精神的にくるわ・・・
みんなも気を付けてね〜www
402デフォルトの名無しさん:2011/06/12(日) 14:25:01.89
>>401
DでのCALLBACK=extern(windows)だろうが
そんなことも分からんからつまらんミスで引っかかる
403デフォルトの名無しさん:2011/06/12(日) 14:25:50.84
>>397>>399 って同じ意味じゃねえの?
404デフォルトの名無しさん:2011/06/12(日) 14:30:08.82
>>402
いやいや、そんなものはDでは定義されてませんよ。
さっき試したら、自分で定義することもできなかったな。
405デフォルトの名無しさん:2011/06/12(日) 14:45:37.62
やっぱりただの馬鹿だったか
406デフォルトの名無しさん:2011/06/12(日) 14:54:38.55
>>405
そんなこと言ってると同じ失敗をするよ〜
407デフォルトの名無しさん:2011/06/12(日) 15:29:52.05
>>401
残念ながら失敗しなかったな・・・最初から普通につけてるぜ・・・

あと

extern(Windows) == __cdecl
CALLBACK == __cdecl
∴extern(Windows) == CALLBACK

だからCALLBACKを付けない時点でextern(Windows)をつけないといけない事は自明なんだぜ!

C++でSDK使うときもCALLBACK付け忘れると今回のと同じようにスタックがずれて落ちるよ
まずアセンブラ視点で高級言語を見る勉強するといいよ
408デフォルトの名無しさん:2011/06/12(日) 15:47:57.59
>>407
早速__cdeclと__stdcallを間違えてるみたいだけど・・・

あとは、失敗っていうのは、バグを入れ込む事じゃなくて、
バグを入れ込んだ時の事を言ってる、ってのは覚えておいて損は無いかと。
バグ入れないのは人間には無理だし。
409デフォルトの名無しさん:2011/06/12(日) 15:58:02.40
そうそうそれそれ
#define CALLBACK __stdcall
410デフォルトの名無しさん:2011/06/12(日) 16:49:46.59
中途半端にバグって上手く動いたりするから困るんだよな
411デフォルトの名無しさん:2011/06/12(日) 17:28:08.96
そのためのDbCですよ 使ってないけど
412デフォルトの名無しさん:2011/06/12(日) 19:39:40.31
正直関数呼び出し規約も関数ポインタの型に含めて欲しい
413デフォルトの名無しさん:2011/06/12(日) 19:54:30.45
問題になるのはCの関数を呼ぶときだから
不治の病かと
414デフォルトの名無しさん:2011/06/16(木) 23:00:00.45
すいません……下記URLのことで悩んでるんですが(;^^
http://dzware.com/notebook/xml/
415デフォルトの名無しさん:2011/06/16(木) 23:17:38.47
エスパー検定8級の俺がエスパーするとURLをパースしたいんだと見た
416デフォルトの名無しさん:2011/06/17(金) 00:34:14.31
エスパー検定9級の俺がエスパーするとファイルがSJISで書かれていると見た
417デフォルトの名無しさん:2011/06/17(金) 00:47:38.00
>>414
UtfException・・・?
また明日見てみるかね・・・
418デフォルトの名無しさん:2011/06/17(金) 00:48:13.97
ShiftJISに慣れてるからunicodeとか仕様把握できなくて使いにくい
419404:2011/06/17(金) 00:49:09.91
さっきツイッタで知ったのですが、「std.xmlはdeprecated予定」とのことでした。
あとXMLファイルはUTF-8になってます。
420414:2011/06/17(金) 00:51:21.04
404じゃないです414です。
失礼しますた;
421デフォルトの名無しさん:2011/06/17(金) 07:19:11.93
deprecated予定だからといって誰も使わず、諸々のバグが放置されてるモジュールって印象がある
この前も属性の文字エスケープがちゃんとできないとかいうバグがあったし
422414:2011/06/17(金) 11:26:07.27
std.conv(1161): Can't convert value `jun' of type const(char)[] to type int
って std.xml に関係なかったですね(;^^
std.conv.to!(string)( m_data[id].date.month )

std.string.format( "%d", m_data[id].date.month )
に変えたら一応動きました。
でも、なんで'jun'に変換されていたのかは不明だし、
出力されるファイルのインデントはやっぱり変です。
423デフォルトの名無しさん:2011/06/17(金) 11:34:04.16
enum Month -> int の変換がぬけているのでは?
次は 0月 がどうの言い出すとエスパーしてみる
424デフォルトの名無しさん:2011/06/17(金) 11:55:17.66
エスパー検定5級の俺がエスパーするとDさんをあまくみすぎだと見た
425デフォルトの名無しさん:2011/06/17(金) 12:26:41.55
http://ideone.com/1N1e0
マジざけんな。
426デフォルトの名無しさん:2011/06/17(金) 13:26:23.53
>>425
decodeで例外吐くだけだと思うけど(WinXP, D2.053)
どの環境?
427デフォルトの名無しさん:2011/06/17(金) 14:07:32.20
>>426
WinVISTA, D2.053
俺の環境がおかしいのかねえ?
428デフォルトの名無しさん:2011/06/17(金) 15:26:26.60
>>427
念のため、ServicePack のバージョンもひとつ。

どう考えてもOSで防ぎきるべき部分
ドライバとか関係ないはずだし・・・
429デフォルトの名無しさん:2011/06/17(金) 15:28:38.79
32bit/64bitもプリーズ

あと搭載メモリ量も関係あるかな?
430デフォルトの名無しさん:2011/06/17(金) 15:35:06.70
>>428
自動更新してるから、たぶん最新だと思う。32bit
てか、何か調べてくれるの?
431デフォルトの名無しさん:2011/06/17(金) 16:08:09.26
調べない(キリッ

とは言ってもいずれ自分でソフト配布したときに
クレームをつけられた時の備えにはなるはず
432デフォルトの名無しさん:2011/06/17(金) 16:32:39.41
バグ報告とかでそれっぽいのは無いね
メモリテストと熱暴走対策をしてみてはどうだろう
433デフォルトの名無しさん:2011/06/17(金) 19:08:38.56
Vistaは俺にブルースクリーンの嵐を久々に見せてくれた麗しのOSだ
434デフォルトの名無しさん:2011/06/17(金) 20:32:46.09
今の子はブルースクリーンを知ってるのだろうか
435デフォルトの名無しさん:2011/06/17(金) 20:36:09.26
>>433
>>434
ここにいくとvistaよりxpのほうがブルースクリーン起こるらしいよ

一体XP厨は何と戦っているのか
http://hibari.2ch.net/test/read.cgi/win/1224386009/
436デフォルトの名無しさん:2011/06/17(金) 22:09:29.54
Vistaでブルースクリーン出せるって凄いな
D言語の力か
437デフォルトの名無しさん:2011/06/17(金) 22:19:04.39
vistaは何も気にせず署名付きドライバを使ってればまず青画面は出ない
ただ、ドライバモデルが変わったからxp前提の野良ドライバを突っ込もうとすると青画面出ると思う。
438デフォルトの名無しさん:2011/06/17(金) 22:58:46.45
Win7でもSP1突っ込んだ直後はシャットダウンの時に青画面出てたけどいつの間にでなくなったな
439デフォルトの名無しさん:2011/06/18(土) 01:25:32.27
Vistaで青画面ってメモリの物理破損とドライバ周りのエラーでしか見たことない。
440デフォルトの名無しさん:2011/06/18(土) 01:39:02.34
HDDの故障で何度も出たことがある
保障期間だったんで替えを送ってもらって交換しようとしたら
ドライブ固定するネジが入ってませんでしたとさ
441デフォルトの名無しさん:2011/06/19(日) 13:57:51.43
442デフォルトの名無しさん:2011/06/19(日) 13:58:29.32
441はpureとdebugについて
443デフォルトの名無しさん:2011/06/19(日) 14:30:02.62
そういう手があったのかー

ウォルたんかわゆすなぁ
444デフォルトの名無しさん:2011/06/19(日) 15:12:46.02
日本語でおk・・・
445デフォルトの名無しさん:2011/06/19(日) 16:44:28.09
pureはdebug文の中では無視されるってこと
446デフォルトの名無しさん:2011/06/19(日) 16:53:16.37
逆じゃないの?
447デフォルトの名無しさん:2011/06/19(日) 17:14:30.68
>>444
コード見ただけでだいたいわかる
448デフォルトの名無しさん:2011/06/19(日) 17:15:37.13
2.053
Allow impure code inside debug conditionals

この1行で足りる?
449デフォルトの名無しさん:2011/06/19(日) 17:28:14.99
debug は statement
450デフォルトの名無しさん:2011/06/19(日) 17:31:50.53
we can disable purity checking inside a debug statement.
って書いてるぞ
451デフォルトの名無しさん:2011/06/19(日) 17:40:06.69
英語が読めない俺が翻訳してみた

Allow impure code inside debug conditionals
許すよ 純情じゃない コード 入ってる debug コンディション

→純情じゃないコードが入っててもそれがdebug属性(?)の中なら別にいいよ
452デフォルトの名無しさん:2011/06/19(日) 17:42:39.59
we can disable purity checking inside a debug statement.
俺たち できる 無効 純情 チェック 中 あ debug 文

→バイトの巫女は処女チェックないらしいね
453デフォルトの名無しさん:2011/06/19(日) 19:49:59.90
巫女は鯖を止める
Dで書いた鯖は止まる
つまりD≒巫女
454uy ◆yyC0rYWEq2 :2011/06/20(月) 00:49:36.92
これ、公式の最新版dmd落としても、
公式かかれてるサンプルで動かないのがいくつもあるのは何?
やる気あんの?
455デフォルトの名無しさん:2011/06/20(月) 00:51:35.94
サンプルはほんとやる気ないね
456デフォルトの名無しさん:2011/06/20(月) 07:19:54.03
やる気は物凄くあるよ
やる気がありすぎて仕様が変わりまくってhello, worldすら動かなくなるくらいある
457デフォルトの名無しさん:2011/06/20(月) 10:25:05.07
利用者にも物凄くやる気を求められる
458デフォルトの名無しさん:2011/06/20(月) 11:23:29.04
Visual D の UTF8 対応キタ
459デフォルトの名無しさん:2011/06/20(月) 12:41:26.11
マジかアアアアア!
久々にグッとくるニュース!!
460デフォルトの名無しさん:2011/06/20(月) 14:25:13.24
Linux上でDDTを使用している方おりますか?

http://code.google.com/a/eclipselabs.org/p/ddt/wiki/UserGuide
ここを参考にパスの設定をしているのですが、
「This compilation unit is not on the build path of a D project.」
と表示されてしまい、単語補完が使えません。
ビルドはできるのでパスは通っていると思うのですが、何かアドバイスいただけませんか?

開発が終了しているDescentでは上手くいっているのですが…
461460:2011/06/20(月) 17:20:02.39
eclipse本体をユーザガイドの通りに入れなおしたら動きました。
あとはスタティックライブラリのリンクが上手く動けばいい感じ・・!
462デフォルトの名無しさん:2011/06/20(月) 20:58:46.43
>>454
仕様書すらないrubyよりはましだけどねー
463uy:2011/06/20(月) 22:12:18.42
uy = Ruby信者 って発想をやめてくれないかな???

俺は普通に、「作業効率」を考えた結果Rubyを使ってるだけで
すきとか信者とかそういうの抜きにして効率的だから使っているだけ
変数に$ついてるとか信じられないし、
行の最後に;ついてるとか頭悪いと思うし
ifに:ついてるのもアホかと思う

Dはいい線にいってると思うんだけど
まだ、C,C++から乗り換えることで向上する作業効率と、
環境作りや安定性とのトレードオフが出来てない

正直、多くの機能を取り込んだりする前に、スクリプト言語並の記述の簡潔な言語作る事が先決でしょ
コンパイラ言語さんは、何故例外なく冗長なのかがわからない
わからないものは怖いから触らない
464デフォルトの名無しさん:2011/06/20(月) 22:32:31.92
耳クソほじりながらふーんとしか言えないやり取り
465デフォルトの名無しさん:2011/06/20(月) 22:40:41.15
でも言ってることは間違ってないんじゃね
ぼくがかんがえたさいきょうのげんご を目指しすぎてる感はある
466デフォルトの名無しさん:2011/06/20(月) 23:26:19.01
Rubyとは目指してるところが違うだろ
Rubyじゃシステムプログラミングは不可能
DもGCがあるから不可能

…あれ?
467デフォルトの名無しさん:2011/06/21(火) 00:18:36.74
GCあっても可能だって過去スレで読んだような気が
468デフォルトの名無しさん:2011/06/23(木) 08:13:12.79
>正直、多くの機能を取り込んだりする前に、スクリプト言語並の記述の簡潔な言語作る事が先決でしょ
>コンパイラ言語さんは、何故例外なく冗長なのかがわからない
つHaskell
469デフォルトの名無しさん:2011/06/23(木) 08:58:35.76
uy ◆yyC0rYWEq2でググったら寒気してきた
470デフォルトの名無しさん:2011/06/23(木) 11:46:41.80
D言語スレでレス番飛んでるのはじめてみた
471デフォルトの名無しさん:2011/06/24(金) 01:59:31.95
関数の中でローカル関数を作ったときに
外側の this とそのメンバが見えなくなるのは仕様?

ローカル関数の引数に thisを渡すようにするのは不細工でイヤだ
何か使い方間違ってるのかな
472デフォルトの名無しさん:2011/06/24(金) 07:04:15.13
普通にinnner関数の中でも見えてると思うけど
http://ideone.com/7NAyZ
やりたいこととはなんか違うのかな
473デフォルトの名無しさん:2011/06/24(金) 09:44:51.75
>>472
レスサンクス
お騒がせしてごめんお

つまりローカル関数がテンプレート引数つきの場合がダメってことかい
バグかな
ttp://ideone.com/NPr0R
474デフォルトの名無しさん:2011/06/24(金) 11:24:18.01
>>473
えっとね・・・ それはね・・・

http://www.kmonos.net/alang/d/2.0/template.html(一番下)
関数内ではテンプレートは宣言できません。

OK?
475デフォルトの名無しさん:2011/06/24(金) 11:59:23.71
>>474
イ〜ヤ、違うね。ボクはわるくないもん!
ttp://ideone.com/Jbvdw

DFL のパッチを送ってみようと思ってやってたが
このままでは出したくないな
476デフォルトの名無しさん:2011/06/24(金) 12:18:43.49
>>475
むしろ、関数内でテンプレートが宣言出来てる事が、バグなんだよ!

改めて、Dの更新履歴見てみると、テンプレート関連のバグ多いな。
477デフォルトの名無しさん:2011/06/24(金) 12:46:54.76
上の話と無関係だけど。
http://ideone.com/9Sjfe
478デフォルトの名無しさん:2011/06/24(金) 12:55:30.19
>>477
ポリモーフィズムを使うべき
479デフォルトの名無しさん:2011/06/24(金) 13:01:31.36
>>478
いやそれ、当たり前だろ。
問題は、基底クラスに変換された型を、どうやって派生クラスの型に戻すか、であって・・・
まあ、D言語が、>>477見たいなオーバーロードをしてる時、Bが入ってるAの変数を渡したら、勝手にBの方の関数呼んでくれれば解決なんだけど。
480デフォルトの名無しさん:2011/06/24(金) 13:21:03.89
ダウンキャストを使わずに済むようにクラスを作る

でなければ

override string toTypeName()
{ return "DerivedClass"; }
481デフォルトの名無しさん:2011/06/24(金) 13:38:02.96
グローバル関数のオーバーロードの場合どっちの関数呼ぶかはコンパイル時に決定するんじゃないの?
482デフォルトの名無しさん:2011/06/24(金) 13:42:52.87
if (cast(B)obj) { return foo(cast(B)obj); }
483デフォルトの名無しさん:2011/06/24(金) 14:02:27.99
>>480
クラスの名前で関連づけるという方法はあるけど・・・
ハンドラを関連づける方法が、他のイベントモデルと変わらなくなりそうだ。

>>481
関数オーバーロードを使わない、上手い方法は無いかねえ。

>>482
それ、型別にいちいち書くの?

まあ、どっちにしろ、こういう結果が帰ってきた時点で、俺の考えてる方法は使えないようだけど。
http://ideone.com/nCVpO

あ〜あ、例外処理ぐらい簡潔なイベントモデルが欲しいな〜。
484デフォルトの名無しさん:2011/06/24(金) 14:52:39.16
>>483
タプル と >>482 を組み合わせた
ttp://ideone.com/McZm2
485デフォルトの名無しさん:2011/06/24(金) 16:31:21.68
>>484
ふむふむ。
クラスを変換できないクラスにキャストする時、nullになるのを利用してるのか。

・・・でもそれ、従来の方法よりめんどくさくないか?
486デフォルトの名無しさん:2011/06/24(金) 17:59:37.40
ダイナミックキャストのnullでの判定は、従来の方法そのものって気がするんだけど…
他の方法としては、Dならswitchが使える。
http://ideone.com/DN4SE
487デフォルトの名無しさん:2011/06/24(金) 18:08:11.51
>>486
言葉足らずだった。
イベントモデルに対する、従来の方法ってことね。

古典的なのは、あらかじめ定義した定数値でswitchして、処理していくってやり方。
最近は、特定の場所に、デリゲート登録して処理する、ってのが主流みたいだけど。
488デフォルトの名無しさん:2011/06/25(土) 12:23:19.02
gotoラベルって滅多に使わないけど
すごくキモいな 撲滅すべき
ttp://ideone.com/70nYK


ちなみに↑の正解(?)がideone では出ないので直接書く
1
scope guard 1
exit
scope guard ( without label )2
489デフォルトの名無しさん:2011/06/25(土) 13:00:12.64
なぜaがスコープ外で使えるのかまずそこが理解できない・・・
490デフォルトの名無しさん:2011/06/25(土) 13:07:23.02
ラベルから次のラベルまでがスコープとして認識されちゃってるのか

LabeledStatement:
Identifier : NoScopeStatement

NoScopeStatement:
;
NonEmptyStatement
BlockStatement      ←これが悪さしてる?
491デフォルトの名無しさん:2011/06/25(土) 14:05:24.11
switch文の中のgoto caseだけは正義だと思った
しかし>>488キメェwww
492デフォルトの名無しさん:2011/06/25(土) 14:18:32.55
>>490 の意味がやっとわかった

スコープ外から見える件とスコープガードの件は
それぞれ別の問題。紛らわしくてごめんお
493デフォルトの名無しさん:2011/06/26(日) 00:45:27.68
文字コードページ自動判定するのはどうしてます?標準関数にはないよね?
494デフォルトの名無しさん:2011/06/26(日) 01:54:45.28
nkfでいいんじゃないか
495デフォルトの名無しさん:2011/06/26(日) 02:52:19.75
nhkは迷惑
496デフォルトの名無しさん:2011/06/26(日) 10:31:36.48
>>494
外部コマンドはちょっとどうだろう
497デフォルトの名無しさん:2011/06/26(日) 11:01:54.40
icuとかiconvとか使えばいいんじゃないの?
やったこと無いけど。
498デフォルトの名無しさん:2011/06/26(日) 12:42:02.86
djcode
499デフォルトの名無しさん:2011/06/27(月) 10:18:57.35
謎のリンクエラーに悩まされる・・・
http://ideone.com/0VF0S
500デフォルトの名無しさん:2011/06/27(月) 10:25:22.22
ああ、そう・・・
ずっと前からあるエラーなのね・・・
http://d.puremagic.com/issues/show_bug.cgi?id=2553

publicにしたら通ったよ・・・
501デフォルトの名無しさん:2011/06/27(月) 10:26:31.55
この手のリンクエラーはbud使うとでなくなったりするよねー
502デフォルトの名無しさん:2011/06/28(火) 00:56:53.45
503デフォルトの名無しさん:2011/06/28(火) 16:30:03.73
インラインアセンブラで
db,ds,dd とかリテラル埋め込みできるけど
何の役に立つのこれ?

変数名とか付けられるのなら、まだ分かるんだが
できなさそう
504デフォルトの名無しさん:2011/06/28(火) 16:33:23.79
普通のアセンブラでできるから、ってのの名残りなんじゃない?
505デフォルトの名無しさん:2011/06/28(火) 18:27:44.28
>>503
普通に定数たたみ込み用じゃないか。
506デフォルトの名無しさん:2011/06/28(火) 18:44:19.67
わかったぞ、 EIP レジスタを使うんだな



undefined identifier 'EIP'
507デフォルトの名無しさん:2011/06/29(水) 16:34:36.05
久々にいじってみたら動かなくなってるコードが……
2.053はdelegateの型一致判定もなんか変化があるっぽい。
中身がかなり変わってるのかな
508デフォルトの名無しさん:2011/06/29(水) 17:23:00.23
>>503
CPUに新しい命令が追加されて、インラインアセンブラが対応していない時に
無理やり使うことができる。
509507:2011/06/29(水) 21:43:06.09
関数ポインタとデリゲートの多態ができなくなっているっぽい。
void delegate(Object) root;
void delegate(Class) derived;
root = derived; // 2.052までは通った、2.053から不可

これって正しく拒否するようになったのか、
正しいコードを拒否するようになったのか、どっちだろう。
510デフォルトの名無しさん:2011/06/29(水) 23:20:55.10
正しいと思う
derived = root; が通るのなら納得できる
511デフォルトの名無しさん:2011/06/29(水) 23:27:12.50
root = derivedが通ると
型的には derived(new Object); できる形になっちゃうのか
関数の型変換とかあんまり考えたことなかったわー
512507:2011/06/29(水) 23:40:10.90
なるほど、確かに。
ClassにObject実体が渡ったらまずいですな。
参照の代入とは一見逆の関係になるのか。
勘違いしていました。ありがとうございました。

513503:2011/07/01(金) 18:32:47.89
asm {
db "abcde";
}

みたいな文字列埋め込みまでできるんだが
全く使い道が思い浮かばない

D用のエディタとか作るときすごく邪魔なんだが
514デフォルトの名無しさん:2011/07/01(金) 19:20:17.87
そういうときは逆に考えるんだ
どうせすぐまた意味不明なキーワードが増えるんだから無視しても同じことだと
考えるんだ
515天使 ◆uL5esZLBSE :2011/07/01(金) 19:34:15.23
> 無理やり使うことができる。
ハァアアァアァァァァァァァアァアァァァアァァァア???????????

なんだ、ただのゴミか
ゴミグラマきもちわる
ゴミみたいな奴だな
516503:2011/07/01(金) 19:50:18.12
>>514
迷いが晴れました、先生!
517デフォルトの名無しさん:2011/07/01(金) 21:15:37.56
インハウスなら無理やり使うパターンはあるでしょ
518デフォルトの名無しさん:2011/07/02(土) 01:16:20.86
D用のエディタとか大変だな
Dのバージョンごとにそれぞれパーサー用意するんだろ
519デフォルトの名無しさん:2011/07/02(土) 02:03:27.56
パーサパーサ積めば設定ファイル変更だけでいける 大丈夫
520デフォルトの名無しさん:2011/07/02(土) 09:31:49.85
エディタのパーサーつっても、意味解析までする訳じゃないんだから・・・
521デフォルトの名無しさん:2011/07/02(土) 10:53:14.65
version()の無効ブロックはグレー化したり
関数内でローカル変数以外の変数はハイライトしたり
せめてそのくらいはほしいよねー。(ねー。)



欲を言えばローカル関数と スコープガードのブロック内も違う色で(ry
522デフォルトの名無しさん:2011/07/02(土) 17:52:01.32
で、いつ公開?
523デフォルトの名無しさん:2011/07/02(土) 18:47:51.75
あ、あしたさ…
524デフォルトの名無しさん:2011/07/02(土) 18:50:01.30
ナンノコトカナー
のヮの
525デフォルトの名無しさん:2011/07/05(火) 14:21:44.82
D2にて。

httpのデータを読み出すべく、SocketStreamを使用してShiftJISのコードを読み込んでいるんですけど
char[] には多分 SJIS のコードが格納されていて、ダメ文字が改行になったり toUTF16 とかやってもエラーで落ちます。
なるべく、stream.getc(); の辺りで UTF16の wchar に変換していてほしいのですが…
こういう場合にうまくやるにはどうするといいのでしょうか。

import std.socket, std.socketstream, std.stream;

auto address = new InternetAddress("www.hogehoge.jp", 80);
auto tcpsocket = new TcpSocket(address);
scope auto sstream = new SocketStream(tcpsocket);

sstream.writeString("GET /target/sjis.txt HTTP/1.0\r\n");
sstream.writeString("HOST: www.hogehoge.jp\r\n");
sstream.writeString("\r\n");

Subject[] subjects; // struct Subject .text は wchar[] or wstring で。

char[] buffer;
char c;
while(true) {
  c = stream.getc();
  if(c != char.init) {
    buffer ~= c;
    switch(c) {
    case '\n':
      Subject s;
      s.text = buffer.dup;
      subjects ~= s;
      buffer = null;
}  }  }
526デフォルトの名無しさん:2011/07/05(火) 14:29:13.34
> char[] には多分 SJIS のコードが格納されていて
なのでfromMBSzすりゃいい

> なるべく、stream.getc(); の辺りで UTF16の wchar に変換していてほしいのですが…
SJISはマルチバイトなので無理
527デフォルトの名無しさん:2011/07/05(火) 14:33:46.68
>>525
今のDは、SJISの変換に対応してないので、SJISに対応してる、Cの文字コード変換ライブラリを直接使うしかない。
528デフォルトの名無しさん:2011/07/05(火) 18:52:46.85
Dの文字コード対応は腐ったままだな
djcodeのおかげで日本語コードはなんとかなるが他の国はどうなのか
対応するために頑張っても破壊的変更にはならないからみんなやる気がないんだろうな
529デフォルトの名無しさん:2011/07/05(火) 20:00:20.61
SJISが糞なので・・・
530デフォルトの名無しさん:2011/07/05(火) 20:11:32.43
SJIS使ってるとかどこの田舎だよ
531デフォルトの名無しさん:2011/07/05(火) 20:18:51.49
このまえJISコード使ってるとこみたお
532デフォルトの名無しさん:2011/07/05(火) 20:19:17.51
新しい言語には新しい文字コードが相応しい
嫌でもライブラリを作らないと行けなくなる
533デフォルトの名無しさん:2011/07/05(火) 21:49:13.35
iconvみたいな文字コード判別・変換ライブラリぐらいphobosに入れないの?
534デフォルトの名無しさん:2011/07/05(火) 23:23:59.88
今更なにを……。
コンソールに出力するにも外部ライブラリで変換しなきゃいけないんだぜ
535デフォルトの名無しさん:2011/07/05(火) 23:56:44.08
>>533
こみったーになるチャンス!
536デフォルトの名無しさん:2011/07/06(水) 00:12:14.50
さあ、LGPLの呪いをPhobos全体に巻き込もう!
537デフォルトの名無しさん:2011/07/06(水) 00:28:51.58
じゃあD3はGPLで
538デフォルトの名無しさん:2011/07/06(水) 00:51:52.00
そんなことになったら2度と使ってやんねー!
539デフォルトの名無しさん:2011/07/06(水) 01:02:19.04
そしたら俺がD'言語作るわ
540デフォルトの名無しさん:2011/07/06(水) 01:23:48.81
今から作ってもいいのよ?
541デフォルトの名無しさん:2011/07/06(水) 02:18:45.85
そういやLGPLライブラリでも
リンクのヘッダがLGPLだと
リバースエンジニアリングやめさせられなかったりすんだっけ?
オープンソース
542デフォルトの名無しさん:2011/07/06(水) 18:11:01.64
リバースエンジニアリングを禁止することなんて不可能だろ。
543デフォルトの名無しさん:2011/07/06(水) 18:57:48.08
禁止する必要はない
ただ、違反者を訴える権利だけ与えればよい
そうすれば人を訴えたがる人間が違反者を掃除してくれる
544デフォルトの名無しさん:2011/07/06(水) 19:10:33.05
☆撃 墜☆
545デフォルトの名無しさん:2011/07/06(水) 20:11:27.79
やっぱBoostライセンスだけが正義だわ
546デフォルトの名無しさん:2011/07/07(木) 00:21:45.71
正義は修正BSD界隈にあり
GPLに自由無し
547デフォルトの名無しさん:2011/07/07(木) 00:48:03.67
NYSLは天使
548デフォルトの名無しさん:2011/07/07(木) 00:48:03.85
そこでGCCのアレですよ
549デフォルトの名無しさん:2011/07/08(金) 00:20:51.06
std.concurrency でクラスや構造体をsendすると
セグメンテーションフォルトになるもんなのかな。

それでシリアライズ/デシリアライズでstringに変換して回避しようと思ったら、
下記コードがDMD2.053で実行すると
http://ideone.com/XzB7O

immutable(char)[]/int delegate() になるという( ・´ω・`)
550デフォルトの名無しさん:2011/07/08(金) 00:22:42.14
なんでSortedRangeにindexOfが無いんだ
わけがわからないよ
551デフォルトの名無しさん:2011/07/08(金) 01:16:01.59
>>549
alias immutable(char)[] string;
だからいいんじゃないの?
552デフォルトの名無しさん:2011/07/08(金) 01:17:48.86
>>549
それで合ってると思うけど

>>550
あーこれ知ってたわー2年前からそう思ってたわー
553デフォルトの名無しさん:2011/07/08(金) 01:39:10.42
>>551,552
/以降の int と int delegate() の違いが問題
554デフォルトの名無しさん:2011/07/08(金) 01:46:48.19
>>553
WinXP+053だと int delegate()にはならなかったよ・・・ideoneと同じ結果
555デフォルトの名無しさん:2011/07/08(金) 01:51:08.64
おろ?
CentOS 5.6x64の2.053だとdelegate()残るんだよなぁ・・・
というか std.concurrency でクラスを渡せないのも環境依存か?

ありがと、もう一度DMDコンパイルしなおしてみる。
556554:2011/07/08(金) 01:54:47.44
おっと、うちは32bit

64bit対応の問題なのかな
557デフォルトの名無しさん:2011/07/08(金) 21:59:35.15
誰か64bit対応を加速させてくれ
ムズムズしてたまらん
辛抱たまらん
誰かこの気持ちを解放してくれぇ!!!!!!
558デフォルトの名無しさん:2011/07/08(金) 23:10:58.19
まともに使えるIDEマダー
559デフォルトの名無しさん:2011/07/08(金) 23:22:29.92
まともに使えるGUIライブラリ…
560デフォルトの名無しさん:2011/07/08(金) 23:36:28.00
完成したD言語マダー
561549:2011/07/08(金) 23:45:45.34
ゴメンナサイ。

> ttp://d.hatena.ne.jp/nazodane/20071202/1196602252

こちらのシリアライズをコピペして連想配列に対応させていたら、
std.traitsのReturnTypeと被って戻りが変になってただけでした。
562デフォルトの名無しさん:2011/07/09(土) 00:42:36.02
現状では
VisualD + dfl がオヌヌメ
563デフォルトの名無しさん:2011/07/09(土) 02:07:50.24
ddbgがもう少しまともならな・・・
564デフォルトの名無しさん:2011/07/09(土) 09:25:58.39
>>560
完成しないのが完成
Goal D experience requiem
565デフォルトの名無しさん:2011/07/09(土) 09:48:28.84
超未来指向型言語だな...
566デフォルトの名無しさん:2011/07/09(土) 09:50:32.76
俺の屍を越えて行け
567デフォルトの名無しさん:2011/07/09(土) 13:18:39.38
andrei先生の作ったテンプレート関数の痒いところに手が届かない感は癖になる
568デフォルトの名無しさん:2011/07/09(土) 15:00:26.29
前から気になってたけど気付かないフリをしてたこと
sort!とかってテンプレートに文字列でロジック与えるでしょう?
DのIDEがかわいそう過ぎて辛い
569デフォルトの名無しさん:2011/07/09(土) 15:15:24.17
どうやら構文木リテラルが必要だな
570デフォルトの名無しさん:2011/07/09(土) 15:26:50.46
sort!q{}つかえばよいのだよ
571デフォルトの名無しさん:2011/07/09(土) 15:34:31.91
第1引数をlhsにしてopDotで関数呼び出し出来るけど使ってますか?
なんか名前がバッティングするからあんま積極的に使いたくないんだよなあ

import std.string;
import std.regex;

string s;

s.replace ←!!!

名前がかぶる時ってstd.regex.replaceってフルで指定するのが普通?
572デフォルトの名無しさん:2011/07/09(土) 15:42:36.30
バリバリ使ってるけどconstな引数を渡したりしただけで
テンプレート不一致とか出まくる。ダメすぎ。

D3では無くなる機能だとにらんでる
573デフォルトの名無しさん:2011/07/09(土) 15:58:22.45
じゃあ今から全力で使っとかないとな
574デフォルトの名無しさん:2011/07/09(土) 16:06:35.01
>>571
みたいなのを1ストロークで本来の書式に変換できるエディタがほしいな
575デフォルトの名無しさん:2011/07/09(土) 16:10:49.15
>>572
それはopDotに限った話じゃ…
Phobosの関数の型チェックとか全廃してもいいと思うんだけどなぁ
どうせコンパイルエラーになるんだし
576デフォルトの名無しさん:2011/07/09(土) 16:21:23.71
コンパイル時のifを使いたくてしょうがない病を患っておられる・・・
577デフォルトの名無しさん:2011/07/10(日) 00:47:06.95
へんなの見つけた。むずむずする
ttp://ideone.com/Aa0RB

10人中10人にどうでもいい!と言われそうだがw
578577:2011/07/10(日) 00:56:54.93
間違えた orz ( auto 使っちゃダメだろ )
ttp://ideone.com/qjKSn

例によって ideoneだとエラーの出方が少し違うけど(最新では2個目のエラーが出ない)


なに、やっぱりどうでもいいだと!?
579デフォルトの名無しさん:2011/07/10(日) 01:08:19.78
この書き方に何の意味を持たせたかったのかが見当も付かない。
580577:2011/07/10(日) 01:19:22.83
new した時点でこけるという想定で検証したかったのさ
深みにはまっちまった・・・
581デフォルトの名無しさん:2011/07/10(日) 04:23:19.48
病気なの?
582デフォルトの名無しさん:2011/07/10(日) 09:04:48.71
誰がヤンデレやねん
583デフォルトの名無しさん:2011/07/10(日) 11:11:33.45
えっ
584デフォルトの名無しさん:2011/07/10(日) 21:35:59.19
そろそろDWT2にパッチ当てるか…とその前にbitbucketを見てみたらすでに当てた人がちらほら
英語の勉強をしそこなったぜ。ケッ
585デフォルトの名無しさん:2011/07/10(日) 22:03:10.88
そして当て終わったころに2.054が(お約束)
586デフォルトの名無しさん:2011/07/11(月) 00:01:23.38
そんなやる気が無くなるような事をするわけないじゃん
587デフォルトの名無しさん:2011/07/11(月) 15:47:31.74
2.054キター
588デフォルトの名無しさん:2011/07/11(月) 15:50:59.98
マジだったww
589デフォルトの名無しさん:2011/07/11(月) 16:55:24.55
2ヶ月ペースでだいたい合ってる
590デフォルトの名無しさん:2011/07/11(月) 16:57:39.95
今回は言語仕様にがっつり手を入れてきたな
591デフォルトの名無しさん:2011/07/11(月) 16:57:56.81
pure safe nothrowの自動推論きた!
592デフォルトの名無しさん:2011/07/11(月) 17:47:12.91
std.regexp has been scheduled for deprecation in August 2011

噴いた
593デフォルトの名無しさん:2011/07/11(月) 17:59:04.85
DFLがまたビルドできなくなったお
594デフォルトの名無しさん:2011/07/11(月) 18:18:58.39
>>592
どこに噴くポイントがあるのかkwsk
595デフォルトの名無しさん:2011/07/11(月) 18:19:42.34
オーバーライドされる関数は
たとえ空でも in のコントラクトを持たせとけってこと?
納得遺憾
596デフォルトの名無しさん:2011/07/11(月) 18:19:46.23
2.052〜2.053が長かったから驚いたじゃないか
早く元の月一ペースに戻して破壊的変更しまくってくれ
597デフォルトの名無しさん:2011/07/11(月) 18:24:32.24
>>594

↓を見てほぅ・・・と思った直後だったからさ
std.ctype has been scheduled for deprecation in January 2012. Please use std.ascii instead.
598593:2011/07/11(月) 18:38:43.52
dflを無理やりコンパイル通してみたら
アプリのメインメニューが出なくなった・・・ナニコレorz
599デフォルトの名無しさん:2011/07/11(月) 18:44:57.72
試しに -propertyつけてコンパイルしてみたら
phobosでこけた      ツカエネーナ
600デフォルトの名無しさん:2011/07/11(月) 18:46:41.61
なんか伸びてると思ったら2.054きてるwwwwwwwwww
601593:2011/07/11(月) 19:03:07.13
2.053に戻してもやっぱりメニューが出ないことに気づいた
ナニコレ・・・イヤァァァーー
602デフォルトの名無しさん:2011/07/11(月) 19:22:47.45
このように続々と歓びの声があがっており
603593:2011/07/11(月) 19:27:36.76
コンパイル通すために消してたんだったwwwもちつけ俺
604デフォルトの名無しさん:2011/07/11(月) 20:16:47.72
>>584
さあ、もてあましたエネルギーを存分に発散するのだ
605デフォルトの名無しさん:2011/07/11(月) 20:23:36.85
今から3ヶ月は安心していいぞ
606デフォルトの名無しさん:2011/07/11(月) 20:36:43.79
9月に次を出すと予告されているような気がw
607デフォルトの名無しさん:2011/07/11(月) 21:48:03.16
え、9月までバンバン更新するよって意味じゃないの?
608デフォルトの名無しさん:2011/07/11(月) 23:38:05.29
final switchって最適化のため?
609デフォルトの名無しさん:2011/07/12(火) 00:30:09.28
そもそもDMDがコンパイルエラーなんだぜ@CentOS5.6x64
※CentOS上だとリンカの問題で標準のバイナリが動かない。
610デフォルトの名無しさん:2011/07/12(火) 01:15:19.12
こんだけ機能追加があるなら、switch(Type)文を要望したくなるな。
611デフォルトの名無しさん:2011/07/12(火) 01:47:11.04
>>610
YOU!パッチ書いて送っちゃいなよ
612デフォルトの名無しさん:2011/07/12(火) 02:31:42.01
>>611
え、なんだって?
613デフォルトの名無しさん:2011/07/12(火) 13:21:47.25
こんな機能あったらいいなぁ・・・
http://ideone.com/x4iWN

もちろん俺にこんな物を実装する気力は無いw
614デフォルトの名無しさん:2011/07/12(火) 15:11:49.65
CTFEの強化
 = ライブラリの奥深くで出る
   追跡困難なコンパイルエラーの増加


 〜 今、君の顔を思い出しながら   〜 
 〜 僕の胸に込みあげるこの気持ちを 〜 
 〜 「殺意」と名づけてみた     〜 
615デフォルトの名無しさん:2011/07/12(火) 15:12:01.29
VBにそんな機能があったような?
どうせならダウンキャスト後の値を受け取れるとなおいいな。

case (A a):
//oにAのインスタンスが入ってたら、ここを実行する。aは(A)o
616デフォルトの名無しさん:2011/07/12(火) 15:14:58.91
遅延評価+関数配列
617デフォルトの名無しさん:2011/07/12(火) 20:12:01.69
>>609
makeファイルにintrange.cが入ってないね
新しいファイルだから入れ忘れたんだな
618デフォルトの名無しさん:2011/07/12(火) 20:56:55.92
>>616
ttp://ideone.com/deMvc

ふう・・・これ以上なく美しいぜ
619デフォルトの名無しさん:2011/07/12(火) 21:57:02.18
>>618
ご苦労だった。
と、言いたいところだが、
そんなことしなくても、if(is(T:TS))else...使えばいいわけで。
620デフォルトの名無しさん:2011/07/12(火) 22:11:44.55
実行時チェックしたいっぽいからそれじゃ無理なんじゃないの
621デフォルトの名無しさん:2011/07/12(火) 23:02:32.82
関数リテラルから第一引数の型を取れればもっと簡単にできそうなんだが
ParameterTypeTuple は上手い具合にはまらなかった
622デフォルトの名無しさん:2011/07/12(火) 23:28:30.28
関数リテラルのパラメータを取れないの?
じゃあ直さないと
623621:2011/07/12(火) 23:38:01.17
単体では取れるけど
関数の配列を扱いたいから静的呼び出し?の制約にはじかれた


↓こういうイメージ
dispatch(object,
(Exception e){
writeln("class exeption");
},
(Object o){
writeln("all class");
},
//以下同様
);
624デフォルトの名無しさん:2011/07/12(火) 23:52:32.24
if( cast(A)o ) ... とかでいいんじゃね?とも思ったが、
ttp://ideone.com/Sw0ez
625デフォルトの名無しさん:2011/07/13(水) 00:21:54.30
>>624
おお、すっきり。感動した。


テンプレートだと lazyいらないんだな・・・()()に悩んだ時間を返せ
626デフォルトの名無しさん:2011/07/13(水) 00:54:32.13
>>623
それのどこにParameterなんたらを使うと?
627デフォルトの名無しさん:2011/07/13(水) 01:14:43.04
LuaDが6月に更新されてた
いやなタイミングだ

>>626
引数の型を先に取って
→ダウンキャスト判定→個別関数呼び出し

これで行くしかないと思ったのさ
628デフォルトの名無しさん:2011/07/13(水) 02:52:05.13
普通にできた
http://ideone.com/ImGCH
>>624とか参考にしたけど
629デフォルトの名無しさん:2011/07/13(水) 03:15:31.28
>>628
やりたかったことがここにある、って感じだな
俺のはてぶんテンプレートの使い方を間違ったんだろう

>>613
もこれで満足に違いない
630デフォルトの名無しさん:2011/07/13(水) 09:38:48.59
DはC++に取って代われますか?
631デフォルトの名無しさん:2011/07/13(水) 10:39:39.63
すげえ頭悪そう
632613:2011/07/13(水) 11:13:00.07
>>624
おお、すっきり。 振る舞いも完ぺきだ!
俺が、この変な構文とパフォーマンスの悪さを許せればね・・・

なんだか、パッチ書かないと許されなくなってきたような気がするよ!!
ただ、コンパイラの書き方なんて知らない俺には、DMDのソースの解読にえらい時間を取られそうです・・・
633デフォルトの名無しさん:2011/07/13(水) 14:39:03.84
>>628
美しい
634デフォルトの名無しさん:2011/07/13(水) 19:54:07.98
後は書き損じたときに意味不明なエラーさえ出なければ・・・!
635デフォルトの名無しさん:2011/07/13(水) 20:06:21.86
ここにいる人でもエラーメッセージをエラーっていうんだね。
636デフォルトの名無しさん:2011/07/13(水) 20:08:03.61
それでわかるからね。
637デフォルトの名無しさん:2011/07/13(水) 20:10:47.25
えっ、ちょっと書き損じたら意味不明なエラーでdmdがsegfaultするんじゃないの?
638デフォルトの名無しさん:2011/07/13(水) 22:49:40.36
Optlinkから応答がありません!
639デフォルトの名無しさん:2011/07/13(水) 23:40:58.05
ぞくぞくするぜ……。
640デフォルトの名無しさん:2011/07/14(木) 23:57:31.21
CTFEでstd.string.toUpperが通らねぇ…

…ウフフフフ
641デフォルトの名無しさん:2011/07/15(金) 00:27:11.80
stringをwchar/dcharでforeachする関数が実装されてないってことかな
642デフォルトの名無しさん:2011/07/15(金) 19:30:51.34
2.054 / これの対処法を教えて…

Error 42: Symbol Undefined _D3std9exception7bailOutFAyaixAaZv
Error 42: Symbol Undefined _D3std6string9toStringzFAyaZPya
Error 42: Symbol Undefined _D3std3uni10toUniLowerFwZw
643642:2011/07/15(金) 19:54:20.79
あ、dfl*.libをリンクしてたのが原因だったw

644642:2011/07/15(金) 20:20:09.17
2.054

・ Implement @property? Added -property switch? イミフ
・ switch の case が複数にまたがると 警告 // goto default; 等で回避
・ std.string.atoi はクビ 代わりに std.conv.to!int
・ std.ctype さよなら。 std.ascii こんにちは。
・ std.array.insertInPlace が複数要素を挿入可能

後はどーでもいいや
645デフォルトの名無しさん:2011/07/15(金) 20:54:32.84
一番上
http://www.digitalmars.com/d/2.0/dmd-windows.html
> enforce use of @property on property functions
プロパティじゃない関数が括弧なしで呼べなくなったのかな
array.hogeは@propertyじゃなくても呼べる
646デフォルトの名無しさん:2011/07/15(金) 21:23:27.17
>>643
その前にコンパイル通るパッチをくれ
647デフォルトの名無しさん:2011/07/15(金) 23:24:10.15
>>645
冗長な機能を省いたってことかな
648デフォルトの名無しさん:2011/07/15(金) 23:30:22.67
dfl のライセンスってトリプルライセンスみたいなこと書いてあるけど
実質 LGPLしか選択肢ないことに気づいた

DLLどうやって作るんだっけorz
649デフォルトの名無しさん:2011/07/15(金) 23:56:04.52
バージョン情報とかにDFLを使ってますって書いとけばいいんじゃないの?
そんなにうるさいこと書いてある?
650デフォルトの名無しさん:2011/07/16(土) 00:01:11.51
>>646
dflは整合性を取るのが面倒だったからwin32apiに戻したから力にはなれない。すまん。
時代に逆行してるのかもしれないけど
dflと一緒には心中できないものw
651デフォルトの名無しさん:2011/07/16(土) 00:37:51.04
>>649
Choice1: LGPL
Choice2: zlib
if the code(=DFL) in no way depends on the Windows Win32 API.
Choice3: original
Unmodified versions of the DFL

もっとゆるゆるだと思ってたんだがな
652デフォルトの名無しさん:2011/07/16(土) 00:41:25.34
質問なのですが
クラスに関数を盛り込んだオブジェクトを大量生成するよりも
最小限の実装をしたオブジェクト+大半の関数はテンプレートにして、
テンプレート経由で実行したほうがメモリの量が節約できたりしますか?
653デフォルトの名無しさん:2011/07/16(土) 00:47:09.23
Choice2って何だろ
Win32 APIにぶら下がって何かのライセンスを追加する事は決してない

Choice3の場合だと
ソースを変更しないで使うなら本当の意味でご自由に

みたいな解釈でいいのかな?
654デフォルトの名無しさん:2011/07/16(土) 00:56:33.07
Choice2の条件
<<DFLが>> Windows APIに依存してはならない(他のAPIへの移植性を持たせろ)


・・・どないせいっちゅうねん
655デフォルトの名無しさん:2011/07/16(土) 01:15:27.69
それってどこがzlibライセンスなんだろうw
656デフォルトの名無しさん:2011/07/16(土) 01:23:31.00
つか、普通に使い倒してても問題ないだろ。
657デフォルトの名無しさん:2011/07/16(土) 14:46:10.34
>enforce use of @property on property functions

auto = new A; みたいにコンストラクタのカッコ省略出来ないってこと?
658デフォルトの名無しさん:2011/07/16(土) 15:11:15.54
むしろ今まではプロパティじゃなくても省略できてしまっていたってことでは
659デフォルトの名無しさん:2011/07/16(土) 15:37:41.19
()省略できるのは意図した仕様でそのために関数ポインタでも&必須にしたんじゃなかったのか
660デフォルトの名無しさん:2011/07/16(土) 15:39:19.90
()省略できるの楽でいいのになー

もしやこんなところにまでLISPerの魔の手が
661デフォルトの名無しさん:2011/07/16(土) 16:38:36.61
関数ポインタを参照してるつもりで
関数呼び出し(の戻り値)になるのはやばい

明示されたプロパティだけでいいよ
662デフォルトの名無しさん:2011/07/16(土) 16:56:54.72
>>659>>661
関数ポインタは前から&付ける決まりだった気がする
663デフォルトの名無しさん:2011/07/17(日) 03:38:40.98
delegateがnullだった場合って言語仕様的には2.でOK?

1.if(dlg)dlg();  // nullチェックは必要
2.dlg();     // 呼ばれない
664デフォルトの名無しさん:2011/07/17(日) 03:59:41.31
おい、
http://www.d-programming-language.org/language-reference.html
お前は何故
http://www.d-programming-language.org/lex.html
ここにリダイレクトされるのだ

これは Documentation の Language Reference なぞ参照するなという事なのか?
D言語には言語仕様の解説なんぞ不要ということなのか!?

やりかた知らんのでバグトラできる人頼む…。
665デフォルトの名無しさん:2011/07/17(日) 04:13:52.33
>>663
ObjCと勘違いしてないか

>>664
日本語訳見る限りじゃそれでいいような
666デフォルトの名無しさん:2011/07/17(日) 04:21:36.96
>>665
そんなA社御用達言語しらんがな(・´ω`・)
667デフォルトの名無しさん:2011/07/17(日) 04:22:28.57
>>665
本来なら言語仕様のリストが表示されるはずの所が
特定のページの表示になってる。
どういう事かというと、関数やプロパティ等のlex.htmlと同じレベルの説明に飛べない。
668デフォルトの名無しさん:2011/07/17(日) 10:05:54.33
バグだな
そのページだけインデックスが欠落しとる
↓と比較するとわかる
http://www.d-programming-language.org/module.html
669デフォルトの名無しさん:2011/07/17(日) 10:37:54.69
違うな・・・
作成中だから見るなよ! いいか、絶対見るなよ! って状態だな
670デフォルトの名無しさん:2011/07/17(日) 14:18:09.71
http://www.d-programming-language.org/language-reference.html
の中身↓

<html>
<head>
<title>D Runtime Library</title>
<meta http-equiv="Refresh" content="0; URL=lex.html">
</head>
<body>
</body>
</html>

言語仕様のリストなんて無かった。
671デフォルトの名無しさん:2011/07/17(日) 19:45:22.83
つまりD言語の仕様なんてなかったんだよ!!!
672デフォルトの名無しさん:2011/07/17(日) 20:03:29.11
なっ

なーんだ
673デフォルトの名無しさん:2011/07/17(日) 22:56:37.30
やはりそうか。
674デフォルトの名無しさん:2011/07/17(日) 23:12:12.82
仕様が無いのもしょうがない

なんちゃってwww
675デフォルトの名無しさん:2011/07/18(月) 01:57:36.68
うぉるたくん「どうしようもない」
676デフォルトの名無しさん:2011/07/18(月) 02:02:13.37
まどか「ど…どうしよう…」
677デフォルトの名無しさん:2011/07/19(火) 02:59:04.36
まさお「ど…どうしよう…」
678デフォルトの名無しさん:2011/07/19(火) 07:01:36.12
ネネ「つべこべ言わずに何とかしなさいよ!!」
679デフォルトの名無しさん:2011/07/19(火) 22:22:30.62
>>675
うぉるたくんがじわじわくる
680デフォルトの名無しさん:2011/07/19(火) 22:59:50.03
アプリ終了時に謎のOutOfMemory が出るようになって
GCに問題ありと絞り込んだ
それから「バグ報告出したるぞゴルァ」と
半日ほどかけて追っかけてたら



ウインドウの破棄(たった1個)が漏れていたというオチ orz

outofmemoryは流石におかしいと思うけどこれ以上追う気にならん
681デフォルトの名無しさん:2011/07/19(火) 23:45:12.04
PostQuitMessageしないの?
682デフォルトの名無しさん:2011/07/20(水) 00:08:00.79
out of 眼中 ですな
683デフォルトの名無しさん:2011/07/20(水) 01:17:21.80
>>680 の再現コードを切り出してみた

ttp://ideone.com/Mkw94
例によって ideone では動かない

gc_freeとか直接使うことはないけど
ライブラリの奥深くで呼ばれたら同じことなんだよな
684デフォルトの名無しさん:2011/07/21(木) 00:19:19.94
デストラクタでpにアクセスしたらダメなんじゃないの?
autoだからいいってことかな?

「GC が参照されなくなったオブジェクトを必ず解放するという保証はありません。
さらに、 GC がデストラクタを呼び出す順番も保証されません。
これはつまり、 GC管理下にあるオブジェクトへの参照をメンバとして持つオブジェクトのデストラクタを ガベージコレクタが呼び出すときには、
それらの参照は既に無効となっている可能性があるということです。
従って、 デストラクタからはメンバオブジェクトを参照できません。
この規則は、 autoオブジェクトや DeleteExpression で削除されるオブジェクト
(GCが自動で解放することはないので、参照は必ず有効)には当てはまりません。」
685デフォルトの名無しさん:2011/07/21(木) 01:49:29.93
p はオブジェクトじゃないから当てはまらないと思う

dflかdruntimeかどっちかにバグ報告したいけど
切り分けできん
デストラクタから先が追えないorz
686デフォルトの名無しさん:2011/07/21(木) 02:56:04.52
Dでwin32プログラムを作ってます。
Releaseビルドで -L/exet:nt/su:windows:4.0
↑これ入れたらCreateWindowExの所で謎のループに入って
何も表示されないプロセスになってしまうんだけど
(タスクマネージャーにはしっかり居るのに。)

同じ状況になった人 or 状況が分かる人解決法あったら教えてくだしあ
687686:2011/07/21(木) 03:39:55.06
ただ単に型の記述間違いで例外のような状態になってただけでした。
お騒がせしました。
688デフォルトの名無しさん:2011/07/21(木) 07:43:52.38
>>686
コードもなしに質問とな?
689デフォルトの名無しさん:2011/07/21(木) 12:51:48.69
windowsでdmd2.051を使っています。

AddFontResourceを呼び出す方法はありますでしょうか。
import std.c.windows.windowsは行なっておりますが、
undefined identiferになってしまいます。
690デフォルトの名無しさん:2011/07/21(木) 14:27:57.01
2.054にする
691デフォルトの名無しさん:2011/07/21(木) 14:47:27.76
組み込みのwindowsAPIのヘッダはスカスカだから
ポーティング版を使うべき
ttp://www.dsource.org/projects/bindings/wiki/WindowsApi
692デフォルトの名無しさん:2011/07/21(木) 17:34:05.95
最新のDでSQLite使いたいんだけどどうすればいいの?
693デフォルトの名無しさん:2011/07/21(木) 23:02:41.60
2.054でやたらenumが推進されてるんだけど何かの予兆なん?
694デフォルトの名無しさん:2011/07/21(木) 23:14:37.58
>>692
ここ参考にならないかな?
ttp://d.hatena.ne.jp/ottu/20090114/1231946126
695デフォルトの名無しさん:2011/07/22(金) 02:22:59.70
アプリで実行時エラーが出た
スタックのアドレスダンプが出てるんで
XREFつきのMAPファイル作ってのぞいてみたんだが

core.sys.windows.stacktrace.StackTrace.trace() <=== 該当アドレス

・・・どうしろと
696デフォルトの名無しさん:2011/07/22(金) 02:59:53.45
697デフォルトの名無しさん:2011/07/22(金) 07:22:35.84
dmdにコケにされているんだと考えれば腹も立たないさ
698デフォルトの名無しさん:2011/07/22(金) 07:31:34.61
訓練されすぎだろww
スレが進むごとに馴致も進んでいくな
699デフォルトの名無しさん:2011/07/22(金) 08:28:03.55
>>694
ありがとう。とりあえずSQLite3.7.7.1のヘッダファイル変換?やってみるよ
700デフォルトの名無しさん:2011/07/22(金) 09:35:06.43
ピコーン、最適化が悪さしていたのか!
701689:2011/07/22(金) 12:27:26.99
>>691
ありがとう、解決した。
702デフォルトの名無しさん:2011/07/22(金) 19:24:06.86
char const *型ってDではどう書けばいいんですか?
703デフォルトの名無しさん:2011/07/22(金) 19:42:17.49
const char* a;
まんま

ただし
const char* a, b;
この場合bもポインタになるので注意
704デフォルトの名無しさん:2011/07/22(金) 20:06:01.75
>>703
それだとconst char const *じゃね
705デフォルトの名無しさん:2011/07/22(金) 21:46:45.99
Dではstringを使います。
706デフォルトの名無しさん:2011/07/22(金) 21:56:08.47
>>704
ごめんよくわかってなかった
std.typecons.Rebindable!(const char*)が一番近いのか?
707デフォルトの名無しさん:2011/07/22(金) 21:57:56.73
Dではstringをcastして橋渡しをします。
708デフォルトの名無しさん:2011/07/22(金) 23:28:52.33
const char* -> string
char const* -> const char*

const char* と const(char)* の違いがわかりにくい
709デフォルトの名無しさん:2011/07/22(金) 23:35:35.69
cast時にconst使う必要ないよ。
710デフォルトの名無しさん:2011/07/22(金) 23:39:34.23
DのenumってCと違って使用範囲広い気がするんだけど
どういう場合に使うの?

mixin関数を定数に置き換えたりなんかまだついていけにゃい
711デフォルトの名無しさん:2011/07/22(金) 23:41:40.45
コンパイル時に決定する値全般に使われてるね
712デフォルトの名無しさん:2011/07/22(金) 23:48:14.37
C        -> D
const char*  -> const(char)*
char const*  -> 記述不能 あえて書くなら const(char*) ?
こうじゃないの?
713デフォルトの名無しさん:2011/07/23(土) 00:09:37.80
>>710
値よりラベルの方に意味がある場合
to!string()したときに特に違いが出る

でも const/immutable 定数が貧弱貧弱ゥゥ〜だから
とって代わる存在かも知れない
714デフォルトの名無しさん:2011/07/23(土) 00:19:12.81
enumの本来の意味が迷子

でもCの頃からか…
715デフォルトの名無しさん:2011/07/23(土) 01:01:35.33
多分インテリセンスが動けば効果を発揮できると思う

enum Type : uint
{
Default = 0, Type1, Type2, Type3 = 4
}
Type state;

でも、
state = Type.Default;
state = state.Type2;

わざわざ型か変数を表示しないといけないから
state = Default;
state = Type1 | Type3;

こういう表記でいけるようにしてほしい
716デフォルトの名無しさん:2011/07/23(土) 01:29:44.90
>>712
そのふたつってCでも同じじゃね?
const char * = char const * = variable pointer to (constant character)
char * const = constant pointer to (variable character)
char const * const = constant pointer to (constant character) = Dのconst char *

括弧がある場合やrebindableはよくわからん
717デフォルトの名無しさん:2011/07/23(土) 01:30:56.21
>>715
無名enumでできないっけ?
718デフォルトの名無しさん:2011/07/23(土) 01:35:34.91
定数を大量に宣言する時に下手にconstやimmutable使ってしまうと
キッチリ領域が取られて大変なことになるからな……。

floatなenumってできたっけ?
719デフォルトの名無しさん:2011/07/23(土) 01:42:59.64
stringなenumすらできるのに浮動小数点型が出来ないわけが
720デフォルトの名無しさん:2011/07/23(土) 01:44:05.53
>>715
今のほうが分かりやすいしそれだと定数との違いが無いじゃん
それに>>717だとType.Defaultとかが出来なくなる

>>716
const(char)* hoge;

*hoge = 0;
がエラー
まあ見たまんまなんだが
721デフォルトの名無しさん:2011/07/23(土) 03:13:02.93
>>720
ビットフラグを大量に結合する場合を考えてほしい

SoundDeviceInitializeStyle style =
SoundDeviceInitializeStyle.NoWarning |
SoundDeviceInitializeStyle.NoError |
SoundDeviceInitializeStyle.Surround |
SoundDeviceInitializeStyle.SpecialEffects |
SoundDeviceInitializeStyle.Flag1 |
SoundDeviceInitializeStyle.Flag2 |
SoundDeviceInitializeStyle.Flag3 |
SoundDeviceInitializeStyle.Flag4;

こんなのよりも
enum指定時はスコープのように機能して
SoundDeviceInitializeStyle style = NoWarning | NoError | Surround | SpecialEffects | Flag1 | Flag2 | Flag3 | Flag4;

こうなったほうが便利じゃないか?
722デフォルトの名無しさん:2011/07/23(土) 03:16:21.34
もちろん、上の書き方でも正しいとすべきだけど。
723デフォルトの名無しさん:2011/07/23(土) 03:21:38.22
コンパイラの中身に詳しくはないけどなんかautoとの相性が悪そう
724デフォルトの名無しさん:2011/07/23(土) 03:39:18.11
c++と異なるこういう仕様にしたわけだし今更無理っしょ
省略記法の追加ならまだしも・・・
そういえばwithとかなかったっけ
725デフォルトの名無しさん:2011/07/23(土) 03:43:52.32
withは変数に対してじゃなかった?
enumにもwithみたいなのがあればいいかもね。
それならコンパイル時に時間のコストも大して掛からないし、コンフリクション発生しない。
726デフォルトの名無しさん:2011/07/23(土) 04:26:44.66
引数がなくてもオーバーロードできりゃいいんだよ、HaskellとかAdaみたく
727デフォルトの名無しさん:2011/07/23(土) 08:43:50.27
D+オブジェクト指向的には
極力少ない引数で、デフォルト値で潜伏させといて
後からプロパティとかで変更するのがベターかな?
728デフォルトの名無しさん:2011/07/23(土) 11:11:29.52
>>702
Dは"ポインタだけにconst"は出来ない。

>>725
withはシンボルにも使えるみたい。

enum…
アドレスを取れないってことは、定数がコード途中に直接埋めこまれる事を期待してもいい、
って事だろうか?(それにどれほどの意味があるかは知らんが)
729デフォルトの名無しさん:2011/07/23(土) 12:06:36.50
withでなんでもかんでも略せるかと
730デフォルトの名無しさん:2011/07/23(土) 12:08:07.53
あとD言語に今更無理はないはずだ
731デフォルトの名無しさん:2011/07/23(土) 15:29:03.11
では今からtangoを公式ライブラリにします
732デフォルトの名無しさん:2011/07/23(土) 15:36:03.59
お断りしたいのですが
733デフォルトの名無しさん:2011/07/23(土) 18:18:34.64
Cのプリプロセッサみたいに
テンプレートをすべて展開したソースを書き出す方法ってないかな?
コンパイラのオプションとかだとありがたいんだが
734デフォルトの名無しさん:2011/07/23(土) 19:58:10.81
D言語はじめようと思ってコンパイラインスコしたらPath消えたんだけど
735デフォルトの名無しさん:2011/07/23(土) 20:06:12.09
なんでやねん
736デフォルトの名無しさん:2011/07/23(土) 20:11:07.40
>>733
最後まで展開したら畳み込みも行われるぞ
737デフォルトの名無しさん:2011/07/23(土) 20:26:57.49
>>733
なんかずっと前に見たなそれ
実現したという話はついぞ聞かない
738デフォルトの名無しさん:2011/07/23(土) 20:33:05.23
CTFE終わらせないと展開できないテンプレートもあるから、展開後のを見ても
「よし、わからん」になりそうなw
739デフォルトの名無しさん:2011/07/23(土) 22:41:13.48
>>731-732
公式ライブラリにできるならむしろ万々歳なんだが
できないことこそが問題
740デフォルトの名無しさん:2011/07/23(土) 23:03:52.91
ストリーム策定を早く・・頼む
741デフォルトの名無しさん:2011/07/23(土) 23:06:09.52
4年に一度の再策定を設けよう
742デフォルトの名無しさん:2011/07/23(土) 23:50:25.68
path消されたからシステム復元した
743デフォルトの名無しさん:2011/07/24(日) 00:09:05.02
ML で変数宣言の仕様拡張をもくろむ不穏な動きが・・・

なんでIDEすぐ氏んじゃうん?
744デフォルトの名無しさん:2011/07/24(日) 00:36:24.81
タプルのやつ?俺は面白そうだから通って欲しいな
745デフォルトの名無しさん:2011/07/24(日) 00:58:13.37
746デフォルトの名無しさん:2011/07/24(日) 02:45:00.98
これは俺は使わないな。。
747デフォルトの名無しさん:2011/07/24(日) 02:56:19.53
ストリームの策定…
C#かJavaをベースにしたらダメなのか?
他にも案は出ていたと思うんだが…
どうして根拠を説明しないんだA氏は
748デフォルトの名無しさん:2011/07/24(日) 11:02:32.39
ドキュメントに Try now ボタンがついてるのに気づいた・・・いつから?
ttp://www.digitalmars.com/d/2.0/arrays.html
749デフォルトの名無しさん:2011/07/24(日) 11:17:39.49
とっくの昔
750デフォルトの名無しさん:2011/07/24(日) 13:38:47.46
コンパイラが2.051だな
751デフォルトの名無しさん:2011/07/24(日) 14:09:08.58
ここ半年くらいはそういう話は見かけなかったはずだが、もっと前からだと?
まったく気づかないとは不覚の至り
752デフォルトの名無しさん:2011/07/24(日) 15:10:29.34
公式に行くのはChange Log見るときだけ
753デフォルトの名無しさん:2011/07/24(日) 15:48:00.33
オレモオレも
754デフォルトの名無しさん:2011/07/24(日) 16:03:26.15
もしや日本語訳の中の人はあれを見てこころが折れてしまったのか
755デフォルトの名無しさん:2011/07/24(日) 16:25:15.32
ヒント:std.datetime
756デフォルトの名無しさん:2011/07/24(日) 17:47:44.81
スタックダンプとマップファイルを突き合わせて
関数名のダンプに変換できたどーーー!!



マップファイルの内容自体、
一体いくつバグあるんだ orz
757デフォルトの名無しさん:2011/07/24(日) 23:02:25.91
そろそろ安定してきた?
始め時がわからない
758デフォルトの名無しさん:2011/07/24(日) 23:12:03.29
安定してなくてもいいや、と思えたときが始め時
まだ早いかもしれんね
759デフォルトの名無しさん:2011/07/25(月) 00:11:22.22
むしろ安定してきたと思ったら捨て時
760デフォルトの名無しさん:2011/07/25(月) 02:43:14.98
>>759
PCを窓から投げ捨てろ!
761デフォルトの名無しさん:2011/07/25(月) 02:48:24.22
…………早くこねえかなア、捨て時……。
762デフォルトの名無しさん:2011/07/25(月) 04:25:02.22
COBOLの捨て時がまだ来てないんだぞ
763デフォルトの名無しさん:2011/07/25(月) 08:07:26.26
「もうあんたらにはついて行けねぇよ」
つってガラパゴスDが複数立ち上がったころが始め時かな
764デフォルトの名無しさん:2011/07/25(月) 09:32:07.09
信じられないだろうけど、複数立ち上げたのって同一人物なんだぜ
名前は確か…ウォル…マート?とかそんな奴だったようだが
思い出すのも大変だ
765デフォルトの名無しさん:2011/07/25(月) 12:16:20.87
あれはもうD言語じゃないんだ
766デフォルトの名無しさん:2011/07/25(月) 12:18:35.90
なにこのSFチックな流れ
767デフォルトの名無しさん:2011/07/25(月) 20:36:27.77
そうか、脱皮だったのか
768デフォルトの名無しさん:2011/07/25(月) 22:21:37.23
あのマスコットが脱皮して、なにも変わらないよーんみたいなドヤ顔された絵が浮かんだ。
マジムカつく。

それはそうと、Phobosにstd.net.browserとかいうシェルでurl叩くだけの不可解なもんが入りそうなんだが、誰か止めてくれよ…
それともなんか素晴らしいポイント見過ごしてる?
769デフォルトの名無しさん:2011/07/25(月) 23:07:31.23
止めなくても本当にダメなら入った後にopenrjみたいなことになっていつのまにか廃止されるんじゃね?
770デフォルトの名無しさん:2011/07/25(月) 23:13:39.34
そんなのが入るくらいなら標準GUIライブラリの一つでも入れられそうなもんだ
771デフォルトの名無しさん:2011/07/26(火) 00:28:11.32
レベルMAXにしないとラスボスに挑みにいけない病の俺はなんとなく気持ちがわかる・・・
772デフォルトの名無しさん:2011/07/26(火) 00:35:11.37
>>771
仙水さん
773デフォルトの名無しさん:2011/07/26(火) 01:36:02.33
「オレ達は もう飽きたんだ。
 お前らは また別の敵を見つけ 戦い続けるがいい」
774デフォルトの名無しさん:2011/07/27(水) 22:38:22.01
そして誰もいなくなった
775デフォルトの名無しさん:2011/07/27(水) 23:19:40.40

     一
     万
     二
     千
     年
     後
776デフォルトの名無しさん:2011/07/27(水) 23:35:58.11
愛してる♥
777デフォルトの名無しさん:2011/07/28(木) 01:43:48.94
レンタルサーバーでD言語(CGI)を動かしたりしてる人っているか?
もし、いるのならば、どこを使っているのかを教えて欲しい
778デフォルトの名無しさん:2011/07/28(木) 01:59:52.47
telnet接続できるとこならいけるんじゃない?sakuraとかでも
779デフォルトの名無しさん:2011/07/28(木) 14:18:00.75
D言語の使えるホスティングサービスを立ち上げるのだ
780デフォルトの名無しさん:2011/07/28(木) 14:52:23.43
鯖と同じosでコンパイルすりゃ使えるんじゃない
781デフォルトの名無しさん:2011/07/28(木) 16:56:31.79
SakuraのVPSいいよ
安くて何でも出来る
782デフォルトの名無しさん:2011/07/28(木) 17:04:50.09
おーーー、
共有サービス使ってるのが馬鹿らしくなってきた・・・
783デフォルトの名無しさん:2011/07/28(木) 20:28:41.17
最悪、コンパイラ一式とソースをうpしてCGI経由で叩けばtelnet使えないプランでもおk
クロスコンパイラ作ったほうが賢いけどな……
784デフォルトの名無しさん:2011/07/28(木) 20:35:53.82
rdmd+スクリプトで使うってことかな
中間ファイルの衝突は回避できるんだっけ
785デフォルトの名無しさん:2011/07/28(木) 20:44:02.75
違う違う、#!/bin/sh、makeと2行だけ書いた拡張子.cgiのファイルもうpして
それをブラウザで実行させるんだよ。サーバー側でコンパイルできる
ついでにecho content-type:text/plainとかやっとけばエラーメッセージも読める

……書いてて酷いとは思うが
786デフォルトの名無しさん:2011/07/28(木) 21:28:04.01
オラ、わくわくしてきたぞ
787デフォルトの名無しさん:2011/07/28(木) 21:52:39.61
ファイル読み込みは将来的にはfgets使っといたほうが無難?
マゾ的な意味ではstd.stream推奨だろうけど
788デフォルトの名無しさん:2011/07/28(木) 22:21:48.58
D言語で将来を気にしたら負け
むしろ怪しい部分を徹底的に使う
そしてバージョンアップで通らないコンパイル
これがD言語erの嗜み
789デフォルトの名無しさん:2011/07/28(木) 22:23:14.46
いつの将来になるかわからんしなー。自分も気にせんほうに一票
もしくはstd.file.read
790デフォルトの名無しさん:2011/07/28(木) 23:04:00.39
をるたんが死んだら終わり
791デフォルトの名無しさん:2011/07/28(木) 23:38:09.52
おいやめろ
792デフォルトの名無しさん:2011/07/29(金) 00:19:58.11
その死はD言語の死=D言語の完成を意味するのか
おいやめろ
793デフォルトの名無しさん:2011/07/29(金) 00:24:39.72
トラックナンバー=1とか駄目すぎる。
794デフォルトの名無しさん:2011/07/29(金) 00:50:49.58
俺が引き継ぐ(キリ)
とか言う香具師が一人くらいはいるかと期待したが
このスレは駄目だな
795デフォルトの名無しさん:2011/07/29(金) 00:54:23.02
D+ <- 十字架
796デフォルトの名無しさん:2011/07/29(金) 00:54:35.20
引き継ぐぐらいならゼロから作るってやつばっかだろう
797デフォルトの名無しさん:2011/07/29(金) 09:01:37.78
クロスコンパイルの作り方がいまいちわからないのだが、

ttp://www.wikihouse.com/sakurai/index.php?FrontPage

ここ見れば大丈夫だった。
798デフォルトの名無しさん:2011/07/30(土) 08:42:07.27
うぉるたんの立場は
D言語統合の象徴であり君臨すれども統治せずってのがよいかもしれない
799デフォルトの名無しさん:2011/07/30(土) 10:08:51.67
使いやすさを提供してくれればそれでいい
>>798みたいな事になったらD言語はおしまい
800デフォルトの名無しさん:2011/07/30(土) 10:42:16.60
D言語 = うぉるたくんのかんがえたすごいぷろぐらむげんご

ぼくが いちばん つよくて すごいんだぞ
801デフォルトの名無しさん:2011/07/30(土) 10:50:29.57
D叩く人ってC++0xについてはどう思ってるんだろうか
802デフォルトの名無しさん:2011/07/30(土) 12:22:55.03
それはきっと
D言語を叩いているんじゃなくて
アルファ版を実用版と錯覚して使ったり薦めたりするユーザーを叩いているんだ
803デフォルトの名無しさん:2011/07/30(土) 13:51:26.30
完成さえすればいくらでも実用性はあるんだよ
完成さえしてくれればな
804デフォルトの名無しさん:2011/07/30(土) 14:22:25.21
俺実用してるよ
バグが出た時自分のコードを疑わなくていいから楽だよ
805デフォルトの名無しさん:2011/07/30(土) 14:30:06.70
未完成でもしょうがないけど後退をするなと

D @ high-suite プロジェクト
806デフォルトの名無しさん:2011/07/30(土) 15:11:48.18
最近はD使ってないのにスレ書き込む子多いのね
と思ったらそうか夏休みか・・
実用求めるなら他の言語やればいいし
Dの場合常に未完成で変化を楽しむのも醍醐味なんだよね
これほどアップデートが楽しみな言語はないよ
807デフォルトの名無しさん:2011/07/30(土) 15:18:22.37
というかこの世に完成した言語なんて一つも無いんだけどな
C++は0x(11)で後方互換性はあるけど実質破壊的変更レベルの新文法があるし
Javaも7で激変して8でラムダ式搭載だし
COBOLですらオブジェクト指向対応版が出てる
Dは更新ペースが速いから目立つだけ
808デフォルトの名無しさん:2011/07/30(土) 15:33:30.62
Javaの5が出たときは心踊ったもんだがDは毎月その感動を味わえるので最強
しかもJavaと違って破壊的変更。コレ。
809デフォルトの名無しさん:2011/07/30(土) 16:35:27.81
すまない。M以外は帰ってくれないか!
810デフォルトの名無しさん:2011/07/30(土) 19:38:50.34
Brainfuckいいよ仕様変更ないよ
811デフォルトの名無しさん:2011/07/30(土) 20:48:35.21
「では、何故D言語を選択したのですか?」
「はい、D言語と共に成長して参りたいとそのように考えたからです。」
812デフォルトの名無しさん:2011/07/31(日) 09:42:36.59
class Foo {
public:
int a,b;
this(int n, int m) { a = n; b = m; }
int plus() { return a + b; }
int minus() { return a - b; }
}

auto x = new Foo(111,4);
auto f = &Foo.minus;
x.*f()
こういうことできないだろうか・・・メンバ関数ポインタ
813デフォルトの名無しさん:2011/07/31(日) 10:16:00.76
auto f = (Foo p){ return &p.minus; };
f(x)();

うーん
814デフォルトの名無しさん:2011/07/31(日) 10:39:55.20
どのメンバが呼ばれるかがコンパイル時に決定できないという前提で。

過去スレのPart10 で「出来ない」と言われてて
そのまま変わってないっぽい?

↓デリゲートの内部領域を書き換える裏技w 64bitでもいける?

665 :デフォルトの名無しさん[sage]:2006/10/11(水) 06:56:05
レスサンクス。
>>662 の意味のつもりでしたが、D では使えませんか。
とりあえずは、以下のコードで逃げることにしました。

struct D { void* ptr; void function() fp; }
(cast(D*) &dg).ptr = obj;
(cast(D*) &dg).fp = &A.func;
815デフォルトの名無しさん:2011/07/31(日) 10:48:18.52
おぉ、俺の昔のレスだ。それ、今は ptr, funcptr でアクセスできるようになってるよ
816デフォルトの名無しさん:2011/07/31(日) 10:49:19.14
それ仮想関数でも基底のほう呼んでしまわね?
817デフォルトの名無しさん:2011/07/31(日) 11:11:26.00
なんていうか・・・・すごくJavaScriptです・・・
818デフォルトの名無しさん:2011/07/31(日) 11:23:43.79
>>815
代入までできるのか! これが公式回答なんだなw
819デフォルトの名無しさん:2011/07/31(日) 11:38:26.00
>>814-815
int delegate() dg;
// dg.ptr = &x; // これだと関数呼び出し時に落ちる
dg = &x.plus; // いったん ptr,funcptr の両方を埋める
dg.funcptr = &Foo.minus; // 関数ポインタだけ書き換え
dg();

ptr に何を入れていいかわからんけど無視ということで
820デフォルトの名無しさん:2011/07/31(日) 12:38:17.77
なるほど勉強になったthx
俺はここでいうfを構造体自身にメンバとして持たせたかったんだが
this(this) { f.ptr = (&plus).ptr; }
という荒業で解決することができた、スマートではないが
821デフォルトの名無しさん:2011/07/31(日) 20:17:22.47
>>819
dg.ptr = cast(void*)x;

この感覚はどうも理解できない・・・
822デフォルトの名無しさん:2011/07/31(日) 22:41:34.44
dll内関数の呼び出しで __uuidof の値を使用したいんだけど
D言語で値を生成するにはどうしたらいい?
823デフォルトの名無しさん:2011/08/01(月) 01:26:09.22
自分のアプリに独自の uuid を生成して割り当てたいって話かな?
それなら SDK の uuidgen をDLして使えばいいと思う

既存のコンポーネントがあって uuid 経由で呼び出したいのなら
>>691 とか
ttp://code.google.com/p/kdlib/source/browse/#svn%2Ftrunk
から定義済みの I/F が手に入る

具体的にやりたいことがわかれば もう少し踏み込めるけど
824デフォルトの名無しさん:2011/08/01(月) 10:18:20.27
>>823
レスありがと。
具体的には、D2Dで行っているような __uuidof(ID2D1Factory) のような値をそのまま引数としてdllに渡したい。
でも、この挙動がどういうものなのかよく理解できていなくて。
UUIDっていうのは基本的に重複しない数値を生成する為のものだと思うんだけど
ここでやっているのは一意の値を取得しているように思えて
実際にはどういう処理が行われているのか分からなくて頓挫してしまった。
UUID自体は数値が複雑に入った構造体という所まで理解できたんだけど…
ちなみに、↓とかに書かれているような関数で使用したい。
ttp://msdn.microsoft.com/ja-jp/library/dd368034%28v=VS.85%29.aspx
お願いします。よかったら教えてください。
825デフォルトの名無しさん:2011/08/01(月) 11:24:54.32
>>824
__uuidof は定数を返すだけの単なるマクロと考えて忘れるべし

要点だけ書くと
struct IID;
IID IID_ID2D1Factory = {0xA******A,0x0ad4,0x11ce,[0xb0,0x3a,0x00,0x20,0xaf,0x0b,0xa7,0x70]};
D2D1CreateFactory( ... , &IID_ID2D1Factory , ... );

もちろん、定義済みヘッダ使えば構造体の中身とかも気にしなくていい
>>823 の kdlib のところに D2Dのヘッダもあったから
他のヘッダとの干渉が煩わしいけど、うまく使ってみて
826デフォルトの名無しさん:2011/08/01(月) 18:28:16.89
>>825
kdlibを使用して、コマンドに -version=INITGUIDを追加

import c.windows.guiddef, c.windows.d2d1;
...
GUID iid = IID_ID2D1Factory;
D2D1CreateFactory(factoryType, &iid, null, cast(void**)&pFactory);

こんな感じでやったらできた。

ただ、2番目の引数を &IID_ID2D1Factoryとかやると、理由は分からないけど
Error 42: Symbol Undefined __D1c7windows4d2d1127__T10DEFINE_IIDTC1c7windows4d2d112ID2D1FactoryVAyaa36_30363135323234372d36666F0BF204B33EA68C031C05D2D3E963CA
となってしまうみたいだ。こっちは何だろ?

とはいえ、解決できた…のかな。丁寧に教えてくれてどうもありがとう。
827デフォルトの名無しさん:2011/08/01(月) 19:52:53.58
グローバル変数が Lib側にあって
import しただけだと構造体の実体が取り込まれない

↓の行を1個ずつ手作業で書いたのを思い出したw
IID IID_ID2D1Factory = { xxx };

kdlib の 静的Libを作ってリンクするのが真っ当なやり方だと思う
828デフォルトの名無しさん:2011/08/01(月) 20:08:49.40
コンパイル可能なDのバージョンを
ソースに明記することを義務付けるべき
pragma( Dver, 2054 );

ライブラリが次々と死滅していく中、
少しでも再利用しやすくなるように
829デフォルトの名無しさん:2011/08/01(月) 20:28:40.68
Dverが合わなければコンパイルエラーがドバーってか
830デフォルトの名無しさん:2011/08/01(月) 20:45:47.36
import std.compiler;
version(DigitalMars) {
 static assert( version_major == 2 && version_minor >= 54);
}

これでいかが
831デフォルトの名無しさん:2011/08/01(月) 20:47:41.53
version(DigitalMars) {
  import std.compiler;
  static assert( version_major == 2 && version_minor >= 54);
}

こっちのほうがいいか
832デフォルトの名無しさん:2011/08/01(月) 21:00:02.06
D的には>=じゃなくて==の方がいいのでは
833デフォルトの名無しさん:2011/08/01(月) 21:14:06.21
dmd -ignorevercheck
こっちがポイント
834デフォルトの名無しさん:2011/08/01(月) 22:10:30.85
// This library is written for dmd 2.054

これだけでいいんじゃないかな
835デフォルトの名無しさん:2011/08/01(月) 22:15:25.68
library よりも module とか code のほうがいいか
836デフォルトの名無しさん:2011/08/01(月) 23:40:58.00
>>833
未対応のオプションだとエラー扱いになるんだっけ
それだとあんまり意味無い・・・
837デフォルトの名無しさん:2011/08/02(火) 14:53:09.87
で、いつ頃64bit Windowsに対応してくれるんだい?
そろそろ辛抱たまらんよぅ
誰か!具体的な!リリース予定日とか!知ってたら!教えてくれ!!!
838デフォルトの名無しさん:2011/08/02(火) 19:05:40.55
あ、あしたやってやるさ
839デフォルトの名無しさん:2011/08/02(火) 19:29:36.46
64bit windows の起動ディスクを作ろうと悪戦苦闘してて
たまたまスレをのぞいたら・・・ソンナ バカナ!!



やめたやめた、w
840デフォルトの名無しさん:2011/08/02(火) 20:44:12.78
とっととWindowsAPIを標準ライブラリに取り込んで欲しい
841デフォルトの名無しさん:2011/08/02(火) 20:52:57.51
外部に有志のポーティングがちらほらあるからいいものの
標準のあのやる気の無さは何だw

データ型も64bitのがあるくせに。64bitくらい対応してくれてもいいじゃんね

対応してないからこそあんまり厳密にWinapiを定義できないってことなのかもしれんけど

ウォルター仕事しろぃ
842デフォルトの名無しさん:2011/08/02(火) 21:25:09.80
Dは趣味で作ってるだけで、仕事で作っているわけではないのだけどね
「うぉるたくんのかんがえたすごいぷろぐらむげんご」に付き合っているだけのプロジェクトに何かを期待すること自体がナンセンス
843デフォルトの名無しさん:2011/08/02(火) 21:31:38.07
期待ぐらいはしてもいいだろ
要求するのは筋違いとは思うが
844デフォルトの名無しさん:2011/08/02(火) 22:53:14.05
dmdの核心部分の開発はクローズドなんだっけ?
845デフォルトの名無しさん:2011/08/03(水) 01:33:47.37
最近D触ってない俺のエンジンに火をつける言葉をくだ
846デフォルトの名無しさん:2011/08/03(水) 01:47:18.90
D言語erにあらずんば
マゾにあらず
847デフォルトの名無しさん:2011/08/03(水) 11:13:43.38
>>845
Dを使わなきゃいけない理由なんて何もないし
Dを使って作らなきゃ行けないものなんて何もない
848デフォルトの名無しさん:2011/08/03(水) 11:21:12.26
おお・・おおっ!
849デフォルトの名無しさん:2011/08/03(水) 18:24:42.18
…なんだこの力は…!
850デフォルトの名無しさん:2011/08/03(水) 21:25:30.66
目が覚めました
851デフォルトの名無しさん:2011/08/04(木) 00:27:00.71
☆ 開 眼 ☆
852デフォルトの名無しさん:2011/08/04(木) 09:26:28.91
あぁ、今作ってるプログラム(C++)、Dで書き直そうかな
853デフォルトの名無しさん:2011/08/04(木) 19:59:14.54
なんという英断
>>852が作り直す途中で足りないものがどんどん出てきて
補充していって最後に俺が得をするという流れ
854デフォルトの名無しさん:2011/08/04(木) 20:14:41.90
成果物のライブラリは次のバージョンで使えなくなってるから心配しないで。
855デフォルトの名無しさん:2011/08/05(金) 14:04:45.95
青果だけに日持ちはしませんな
856デフォルトの名無しさん:2011/08/05(金) 22:16:25.70
ウォルターが危篤状態なのはお前のせいか?
857デフォルトの名無しさん:2011/08/05(金) 22:22:29.39
思考は現実化する

ごめん
漏れのせいだ
858デフォルトの名無しさん:2011/08/05(金) 22:36:43.39
青果だけにお前のせいかw
859デフォルトの名無しさん:2011/08/05(金) 22:43:36.73
ヲルタンキトクスクカヘレチチ
860デフォルトの名無しさん:2011/08/05(金) 23:30:09.67
オンドゥルルラギッタンディスカ-
861デフォルトの名無しさん:2011/08/05(金) 23:43:30.19
>>856
ほんと?
862デフォルトの名無しさん:2011/08/06(土) 02:00:13.61
ただの"セイカ"ギャグだろ
863デフォルトの名無しさん:2011/08/06(土) 03:27:16.54
せいかい
864デフォルトの名無しさん:2011/08/06(土) 03:32:11.65
このスレ見てたら目眩が…気のせいか
865デフォルトの名無しさん:2011/08/06(土) 12:35:22.53
そろそろD言語、完せいか。
866デフォルトの名無しさん:2011/08/06(土) 13:08:04.42
Dajareスレはここですか?
867デフォルトの名無しさん:2011/08/06(土) 14:41:38.70
そんな事言うのは誰じゃ?
あいつのせいか
868デフォルトの名無しさん:2011/08/06(土) 15:37:55.70
dio2…
869デフォルトの名無しさん:2011/08/06(土) 15:53:44.84
Dが完成するころには
”コンピュータのかたち”そのものが変わっているような気がしてならない


量子マダー? チン、チン
870デフォルトの名無しさん:2011/08/06(土) 16:02:55.49
コンピュータの形っていままで通り卵型だろ?
871デフォルトの名無しさん:2011/08/06(土) 16:30:57.32
.hから.dに変換したファイルにマクロがあると関数に展開しないといけない→importだけじゃリンク時にこける のがやだな
わざわざobj作ってリンクする必要が出るって欠陥じゃないか
やっぱCのマクロが最強ってことか
872デフォルトの名無しさん:2011/08/06(土) 16:54:08.56
強すぎて
乗りこなせないPGによって屍の山が築かれたんだよ
だから去勢されちゃったのさ
873デフォルトの名無しさん:2011/08/06(土) 17:18:21.40
>>871
テンプレート関数にすると使用する側をコンパイルするときに勝手にくっついてくるからおすすめ
874デフォルトの名無しさん:2011/08/06(土) 17:29:00.53
>>873
長年の俺の悩みが解決した
これで俺もディーラーになれる
ありがとう
875デフォルトの名無しさん:2011/08/06(土) 19:26:39.01
ほへー、ふへー、

module test;
t aaa(t)(t n){return n * 2;}

---

module main;
import std.stdio;
import test;
void main(){writeln(aaa(1));}

---

dmd main.d (test.dいらない)
876デフォルトの名無しさん:2011/08/06(土) 19:39:30.09
だがそれは爆速DMDたんを苦しめる罠
877デフォルトの名無しさん:2011/08/06(土) 23:16:09.75
わかったdmdたんを苦しめない方法を考えようじゃないか

---

int aaa(int n){return n * 2;}

---

module main;
import std.stdio;
mixin(import("test.d"));
void main(){writeln(aaa(1));}

---

dmd -J. main.d
878デフォルトの名無しさん:2011/08/07(日) 07:38:56.51
そんなとこにインポしちゃうなんて・・・・
879デフォルトの名無しさん:2011/08/07(日) 11:35:28.40
>>869
すでにタワー型→モニタ一体型に変わってるのに
こっからどう変わるんだよ
モニタ眼球組込み型とか?
880デフォルトの名無しさん:2011/08/07(日) 18:51:49.63
>>879
生体コンピュータを知らないなんて遅れてるぅ〜(笑)
881デフォルトの名無しさん:2011/08/07(日) 19:32:13.56
すごく初歩的な質問かもしれないんだが…
import std.stdio;

class Foo {
this(){}
int t(T)(T a){ return 10; }
}

class Bar : Foo {
this(){ super(); }
int t(T)(T a){ return 20; }
}

void main(string[] args) {
Foo a = new Bar;
writeln(a.t("dummy")); // 20にならないのは何故
}
882デフォルトの名無しさん:2011/08/07(日) 19:43:03.93
テンプレート関数は今のところオーバーライドとかオーバーロードとかできなかった気がする
なのでaの静的型であるFoo.tが呼ばれる
883デフォルトの名無しさん:2011/08/07(日) 19:56:06.52
エラーにならないんだな
884デフォルトの名無しさん:2011/08/07(日) 21:13:26.11
この辺りは仕様なのかバグなのか
885デフォルトの名無しさん:2011/08/07(日) 21:22:05.77
うお、マジかサンクス…
これ結構不便じゃないかな…何か問題があるのか実装上の問題か
C++でも試したら10だった
886デフォルトの名無しさん:2011/08/07(日) 22:05:27.60
仕様
>Templates cannot be used to add non-static members or virtual functions to classes
887デフォルトの名無しさん:2011/08/07(日) 22:42:35.19
バグだね
誰か英語に堪能な人は
http://www.digitalmars.com/NewsGroup.html
digitalmars.D.bugs
辺りに投稿してけれ
888デフォルトの名無しさん:2011/08/07(日) 22:47:25.93
大丈夫コミッタがこのスレ見てるみたいだから10分後にはパッチ出るよ
889デフォルトの名無しさん:2011/08/07(日) 22:53:14.23
このような過疎スレにも見えないヌシが宿っているのかw

ここを見ているヌシ様
いつもお世話になっております
これからもよろしくです(笑)
890デフォルトの名無しさん:2011/08/08(月) 04:32:12.49
C++を使う
 ↓
複雑な記述にストレスが溜まる
 ↓
Dの言語仕様に感動
 ↓
Dに乗り換える
 ↓
使いたいライブラリが無い or 低レベル
 ↓
自分でライブラリを再定義 or 作成
 ↓
手段が目的化
 ↓
結構楽しいのでハマる(やってる事は車輪の再発明)
 ↓
我に返る
 ↓
全然関係ない事をしていたことに気付く
 ↓
俺はまだまだC++(チキンライス)でいいや♪
891デフォルトの名無しさん:2011/08/08(月) 12:17:52.54
2番目に戻る
が抜けてるぞ
892デフォルトの名無しさん:2011/08/08(月) 13:45:10.05
おまいらの予想ではWindows上でのdmdの64bit化はいつ頃?
893デフォルトの名無しさん:2011/08/08(月) 13:51:34.96
Win7 でアプリの動作テストしてたんだが、
クラッシュしたときのダンプに
関数のコールスタックが出てるのを見て衝撃を受けた

XPでやってるときはアドレスしか出なくて
そういう仕様だと思ってたんだが・・・

>>892
年明け  特に根拠は無い
894デフォルトの名無しさん:2011/08/08(月) 19:18:52.93
>>881の例書き換えて試してみたけど非staticなメンバにアクセスできる\(^o^)/
895デフォルトの名無しさん:2011/08/08(月) 19:56:45.07
女への突撃はできなくとも
dmdの穴には突撃できた
お前は優秀な兵士ということだ!
896デフォルトの名無しさん:2011/08/09(火) 00:07:00.29
64bitOSなんてなかった
897デフォルトの名無しさん:2011/08/09(火) 00:23:02.07
64bitだけに存在を無視されているという訳か
898デフォルトの名無しさん:2011/08/09(火) 00:37:07.29
最近部屋が蒸し暑くてたまらん
899デフォルトの名無しさん:2011/08/09(火) 02:55:08.72
テントウ虫舐めんな
900デフォルトの名無しさん:2011/08/09(火) 15:22:36.72
舐めてみないと、
テントウ虫の味は一生わからないままだ
901デフォルトの名無しさん:2011/08/09(火) 18:23:09.02
味も見ておこう
902デフォルトの名無しさん:2011/08/09(火) 19:24:09.64
このテントウ虫ウソをついてる味だぜ
903デフォルトの名無しさん:2011/08/10(水) 00:36:42.07
ジュル…
904デフォルトの名無しさん:2011/08/10(水) 10:21:33.53
foreachをいじりたいときにopApplyとかレンジメソッドとかいろいろ方法があるみたいだけど(だよね?)
どういう風に使い分ければいいのかな?
905デフォルトの名無しさん:2011/08/10(水) 16:17:29.53
range以外ってdeprecatedじゃないのか?
906デフォルトの名無しさん:2011/08/11(木) 01:28:43.78
rangeのスーパーセットとしてrangerが入るんじゃなかった?
907デフォルトの名無しさん:2011/08/11(木) 21:24:07.66
hanageまだ?
908デフォルトの名無しさん:2011/08/12(金) 10:38:41.23
Andrei が D PSP emulator にハァハァしてるのがおもしろい
909デフォルトの名無しさん:2011/08/12(金) 12:46:25.75
近頃のGUI事情はどうなってるんだろう?
910デフォルトの名無しさん:2011/08/12(金) 14:26:11.41
有志の作ったWindowsAPIのポートがあるからそれ使えばいいよw
911デフォルトの名無しさん:2011/08/12(金) 15:19:49.94
こいつはいいや、MFCなんかよりよっぽどきびきび動くぜ!

っておいィ?
912デフォルトの名無しさん:2011/08/12(金) 16:12:36.95
DWT2がまた息を吹き返したな
913デフォルトの名無しさん:2011/08/12(金) 19:17:18.38
色々考えたけど
__EOF__
以下にDSL書いてトランスレータで上にDコードを生成すれば
スクリプト言語っぽい上にコンパイルもできる言語になるかもな
プリプロセッサのカスタマイズのような感じに
複数ファイル対応は>>877でできるし
>dmd -run gui.d src.d
>dmd -run src.d
って感じにできる、ファイル数も増えないし読める
GUI用DSLや、ちょっと機能追加するフィルターで
tupleの戻り値もa, b := c()のように書ける
気合入れればPythonToDやRubyToDもできるだろうし
goroutineなんかも実装できる
他の言語のライブラリも使えるようになるだろうか
914デフォルトの名無しさん:2011/08/12(金) 19:32:01.89
915デフォルトの名無しさん:2011/08/12(金) 19:37:56.43
ダメだ俺には何言ってるのかさっぱりだ
916デフォルトの名無しさん:2011/08/12(金) 20:05:27.04
import script;
void main()
{
script.run(<__EOF__>);
}
__EOF__
a := "Hello";
b := "World!";
print a + " " + b;

的な?
>>914の場合はscript.run(import("script.txt"));とか
917デフォルトの名無しさん:2011/08/12(金) 20:09:01.07
>>914
アカウントないから動画見れないのでよくわかりませんけど
多分同じようなこと

つまりはプリプロセッサで言語作ればいいんじゃね?という結論
コードを書く効率が悪すぎるからなんとかしたいけど
自分でコンパイラ書くよりはc++へのトランスレータ書いたほうが楽だし
それよりも文法を自分用に追加したほうが楽だと思った
追加もすぐに気楽に行いたい、手間も最小にしたいので相互変換できない
余計なファイルが作られるのは嫌
デバッガ使いたいし、変換後のdコードは見たい
これらを全部満たす楽な方法が他にあればいいんだけどこれしか思いつかなかった
918デフォルトの名無しさん:2011/08/12(金) 20:51:12.40
>>916
import std.stdio;
import std.variant;
void main()
{
 Variant a = "Hello";
 Variant b = "World!";
 writeln(a.get!(string) ~ " " ~ b.get!(string));
}
__EOF__
a := "Hello";
b := "World!";
print a + " " + b;

__EOF__より後が変換前、__EOF__より前を自動生成して頭に付ける
script.runの部分が変換だと思うけどこの部分がフィルタになるのかな
919デフォルトの名無しさん:2011/08/12(金) 21:09:10.52
Dはそのままでもそれなりに動的にも書けるな
920デフォルトの名無しさん:2011/08/12(金) 21:46:28.17
dmdのバージョンうpのたびにトランスレータから書き直せるってことか?
なにこのwktkな流れ?#д#
921デフォルトの名無しさん:2011/08/12(金) 22:24:02.92
なんといえばいいのかわからないけど
言語仕様を拡張できるD言語プラグインというのが一番近いのか
トランスレータは多段パイプできるから
無茶な拡張をしなければ好きにカスタマイズできると思うし
言語仕様が変わっても修正は難しくないと思いたい
致命的な欠陥や似たような仕組みがあるなら教えてください
922デフォルトの名無しさん:2011/08/12(金) 23:11:18.04
DWT2が動くようになったと聞いて2.054にアップデートしたんだが
ちょっとしたライブラリ関数の名前の変更200個くらいとswitchへのdefaultの追加と
あとstd.regexの挙動の変化に対応しただけで自作アプリが動いちまった
最近のDは腑抜けといわざるをえない
923デフォルトの名無しさん:2011/08/12(金) 23:21:23.67
std.file.listDirって全部消えるん?
ファイル名を文字列の配列で取って来たいときとか、dirEntriesじゃ完全な代替にならんと思うんだが
924デフォルトの名無しさん:2011/08/12(金) 23:28:53.46
>>921
出力されるDのコードの読みやすさが気になるな。
1.スッキリ -> わざわざスクリプトから変換しなくてもDで記述できる
2.平易だが冗長 -> スクリプト万歳
3.やたら難解 -> デバグが二度手間

そのスクリプト言語に対してD言語の関係が2ならすごく実用的だと思う。
asm文みたいに書ければ理想的なのかな?

生暖かく応援したい。楽しそう!
925デフォルトの名無しさん:2011/08/13(土) 02:42:09.44
>>924
すまん、色々考えてみたけどあんまり意味はなさそうだった
dslはevalの方が効率よくかけるし
ライブラリの変換は一回できれば十分だから変な仕組みも必要ないし
せいぜい言語を少し拡張できるくらいしか意味がないと思う
自分が何をしたいのかがよくわからなくなってきた
926デフォルトの名無しさん:2011/08/13(土) 08:46:41.65
DWT2の落とし方がわかんなかった
svnじゃないんだ・・・
927デフォルトの名無しさん:2011/08/13(土) 09:52:18.50
gitとかhgとかには今のうちに慣れといた方がいいと思う
そして慣れるとsvnがカスに見えてくる
928デフォルトの名無しさん:2011/08/13(土) 10:00:07.02
hg clone http://hg.dsource.org/projects/dwt2
cd dwt2
rake base swt

ってDWTのサイトが更新されてなくてどこにも書いてないんだな
rakeはrubyのビルドツールらしい
929デフォルトの名無しさん:2011/08/13(土) 10:50:19.22
>>925
少なくとも、ライブラリの変換が1回で済むという主張には賛成しがたい
がんがってくれ
930デフォルトの名無しさん:2011/08/13(土) 14:01:23.51
D自体が高機能でシンプルなんだからいらいなあ
931デフォルトの名無しさん:2011/08/13(土) 21:10:34.78
サクラエディタでメソッドの引数や説明をキーワードヘルプに入れようとすると
関数、定数、構造体はすぐに作れるんだけど
クラスライブラリになるとクラス名検索が必要になるから
ツール使って少し特殊なことをしなければならなくなる
そしてテンプレートが含まれるとお手上げ状態
もしかするとクラスライブラリの存在自体が
開発効率を押し下げてるのかもしれないと考え始めた
phobosもテンプレート使い始める前までは使いやすかったんだけどな
もう俺は時代についていけてないのかもしれん
932デフォルトの名無しさん:2011/08/13(土) 21:34:15.09
抽象化されてる部分まではさくさく作れるけど
実装を始めるとリファレンスの読みやすさが全てになってきて
そうなるとリファレンス引きやすいグローバル関数こそが
正しいライブラリのあり方なんじゃないかと思えるようになってきた
autoitはさくさく作れて楽しいのに
比較してクラスライブラリは苦痛でしかない
namespaceもオーバーロードも否定したい気持ちになってきた
みんなが使ってるから便利なものだと思ってたけど
実は間違いなんじゃないのかと
それとも俺は老人のように頭が固くなっただけなのかもしれない
今までやってきたことはなんだったんだろう
933デフォルトの名無しさん:2011/08/13(土) 21:48:34.98
emacsや秀丸とかプログラミングに特化したもの使わないからでないの
934デフォルトの名無しさん:2011/08/13(土) 22:17:07.24
ideが
935デフォルトの名無しさん:2011/08/13(土) 22:28:14.28
D は Destruction の略
C++ 壊してくれないかな
936デフォルトの名無しさん:2011/08/13(土) 22:47:53.49
俺の中での鍵はWindows 64bit対応かな
そしたらC++ありきの現状からは抜け出せる

別にdllで橋渡ししてもいいしね
937デフォルトの名無しさん:2011/08/13(土) 23:03:20.84
Javaとかのクラスライブラリは物凄く便利だ
だが実は結構使うのが面倒という事にはphobosを使い始めてから気付いた
tangoを使ってみて確信に変わった
938デフォルトの名無しさん:2011/08/13(土) 23:05:18.84
>>925
D言語拡張の話でなく、スクリプト言語のトランスレート先としてはDが最適
そして__EOF__以下に元コードつければ便利
と言う話ならアリだと思う
939デフォルトの名無しさん:2011/08/14(日) 00:02:54.88
LL信者を気づかぬうちにD信者にしてしまおうプロジェクト?
940デフォルトの名無しさん:2011/08/14(日) 00:11:48.63
むしろD2をLLVMに対応して欲しい
D言語界での開発というのは何故か活発になりづらい
941デフォルトの名無しさん:2011/08/14(日) 03:04:54.87
Dlang (ドラン(グ)のように発音)
942デフォルトの名無しさん:2011/08/14(日) 22:53:21.87
コードの書き方によってOPTLINKの謎エラーが出たり出なかったりして困る
小さいプログラムなら問題ないんだけどなぁ
943デフォルトの名無しさん:2011/08/15(月) 01:59:43.38
サイズだけに依存するバグなんて存在したら俺は頭を抱える
944デフォルトの名無しさん:2011/08/15(月) 02:06:05.66
シンボルのデマングルで文字化けするケースがあるから
それが原因かも知れない
945デフォルトの名無しさん:2011/08/15(月) 02:57:20.93
で、マングリ返しまだ?
946デフォルトの名無しさん:2011/08/15(月) 09:27:32.67
>>944
間違い。マングル化で文字化けするケースがある。
947デフォルトの名無しさん:2011/08/15(月) 10:43:37.62
どっちにしろぱねぇ
948デフォルトの名無しさん:2011/08/15(月) 10:48:02.27
全部纏めてコンパイル&リンクしないとシンボルが行方不明になりまくることがあるのはそのせいか
949デフォルトの名無しさん:2011/08/15(月) 10:51:04.44
bud -full -clean最強
950デフォルトの名無しさん:2011/08/15(月) 21:13:00.26
>>949

コンパイル爆速だから-clean は使うよね。

ところで -full ってなに?
コレつけないとコンパイルされないソースが出てくるの?
951デフォルトの名無しさん:2011/08/15(月) 21:20:13.83
なんかの手違いでオブジェクトファイルが残ってるとそれを参照してかなんかいやな感じになった気がする
よくは覚えてないけどそんな理由でいつからかつけ始めた
952950:2011/08/15(月) 22:46:01.44
そうなのか。自分も念のためつけとこう。
953デフォルトの名無しさん:2011/08/15(月) 23:02:46.27
Dさんぱねぇ
954デフォルトの名無しさん:2011/08/16(火) 05:58:09.57
Win64の仕様ではABIがある程度策定された状態からのスタートみたいだから
それに合わせようとするとかなり根本的な改修になってしまうのかもね
アセンブラでの記述部分も再編しないといけなさそうだし
955デフォルトの名無しさん:2011/08/16(火) 14:03:28.39
Dの連想配列にrehashってありますけど、これってこれを呼ばない限り速度は線形探索に等しいってことなんですか?
956デフォルトの名無しさん:2011/08/16(火) 17:34:49.07
等しくはないけどオープンハッシュだから要素の追加をどんどんやってけばハッシュキーがかぶって線形探索ぽくなっては行く
だから定期的にrehashしてハッシュを再生成してやって検索しやすくしてやったほうがいいとは思う
957デフォルトの名無しさん:2011/08/16(火) 17:54:41.61
ハッシュドポテト
958デフォルトの名無しさん:2011/08/16(火) 19:15:03.10
上手いことハッシュ値を作れるなら大して遅くはならないと思うけど
959デフォルトの名無しさん:2011/08/16(火) 21:51:55.83
え、ハッシュ値って勝手に作り出せるんだっけ
どっかのプロパティ?
960デフォルトの名無しさん:2011/08/16(火) 21:53:26.12
toHashか
961デフォルトの名無しさん:2011/08/17(水) 06:45:05.74
>>956,958
ありがとうございます。まさかと思ったことが杞憂に終わってよかったです
962デフォルトの名無しさん:2011/08/17(水) 06:50:33.48
キウイ
963デフォルトの名無しさん:2011/08/18(木) 04:57:45.57
>>955
ハッシュテーブルのサイズが要素数に依存してるから要素数がある程度増えたらrehash必須だわ
インスタンス生成時とrehash時にしかハッシュテーブル拡縮しないぽい

連想配列を空で作った場合ハッシュテーブルには要素を31個しか格納できない状態になってて
どんなにハッシュ値をかぶらないようにしても32個目追加した時点でリンクリスト化してって
探索オーダは線形探索に近づいてくみたいね
32個目追加した後にrehashすればハッシュテーブルサイズが97に拡張されるから安心
要素数が多くなっていくとハッシュテーブルサイズは指数関数的にでかくなるから
そんな頻繁にrehashしなくてもいいみたい
速度とトレードオフでどのくらいの頻度でrehashすればいいかは決めるといいかな
要素数が少ないうちは頻繁に、多くなったらたまにでいいみたいに
964デフォルトの名無しさん:2011/08/18(木) 05:12:36.81
こういうもんは基本的に一連の追加が終わったらrehashするもんじゃない?
追加と参照を交互に繰り返すようなアルゴリズムだったら難しいだろうけど
965デフォルトの名無しさん:2011/08/18(木) 12:11:10.33
Windows で GDB使えてる人いる?
ddbgから乗り換えようと思っているんだが動かない(WinXP32+MinGW+GDB7.3)

"foo.exe": not in executable format: File format not recognized
-g -gc どっちでビルドしても同じ
966デフォルトの名無しさん:2011/08/18(木) 13:39:05.44
cygwinならでけた
967デフォルトの名無しさん:2011/08/18(木) 17:25:59.76
Dの出すプログラムは変態仕様となっております
推測だから言い切れないけど一般的に使われるCOFFじゃなくてOMFタイプのアプリケーションには対応してないとかでは
968デフォルトの名無しさん:2011/08/18(木) 20:02:09.31
そういうのが書いてあるFAQ見た覚えがある
969デフォルトの名無しさん:2011/08/18(木) 20:49:04.51
それが>>837,>>954にも繋がるのかもね
OMFフォーマットというのは元々16bit時代に使われていた形式らしい
その時代の人間ではないので詳しくは知らないけども
970デフォルトの名無しさん:2011/08/18(木) 21:04:22.93
やっぱり MinGW が対応してくれないとダメなのかな

ありがと
971デフォルトの名無しさん:2011/08/21(日) 11:20:44.84
C#のstring.Format実装してくれてありがとう
>>971-
972デフォルトの名無しさん:2011/08/21(日) 11:43:41.24
やろうとしたけどlocale絡みで挫折したわ
973デフォルトの名無しさん:2011/08/21(日) 19:36:28.86
??
974デフォルトの名無しさん:2011/08/21(日) 23:48:10.15
>>971

import std.string;
format(">>%d-", 971);

http://www.d-programming-language.org/phobos/std_string.html#format

これがやりたかったんでしょ?
975デフォルトの名無しさん:2011/08/22(月) 01:31:39.28
>>974
ううん、単純に値だけ表示するだけの場合に%dとか型依存の書きたくない
string.format("{0} {1} {2} {3}", n, d, str, date);

http://uchukamen.com/Programming/DateFormat/index.htm
976デフォルトの名無しさん:2011/08/22(月) 02:56:56.95
%s使えばいいのに
977デフォルトの名無しさん:2011/08/22(月) 04:18:29.18
tangoのってそんなんだったような
978デフォルトの名無しさん:2011/08/22(月) 07:10:49.72
書式はどうでもいいけど引数のindexを指定するのが何気に欲しかったりする
メッセージを英訳とかすると語順が変わったりするからちょっと便利そう

// 日付。
// 0 = 年、1 = 月、2 = 日
version (Japan) {
 string date = "{0}/{1}/{2}";
} else version (America) {
 string date = "{1}/{2}/{0}";
}
979デフォルトの名無しさん:2011/08/22(月) 07:44:27.97
std.formatにそんなんあったような・・・
formattedWrite(writer, "Date: %2$s %1$s", "October", 5);
こんなん
980デフォルトの名無しさん:2011/08/22(月) 17:46:42.14
この流れを見てて思った

標準ライブラリで出来ることなのに
それを知らなくて
気づいたら再実装してたなんておまいらもよくある話?w
981デフォルトの名無しさん:2011/08/22(月) 18:01:23.49
標準ライブラリが安定してなくて自作ならよくある
ソート関数が信じられないくらい遅くなったことがあって、自作したら20倍以上速くてびっくりしたり
982デフォルトの名無しさん:2011/08/22(月) 18:12:21.14
文字列処理系はDでもヤバいよね
c w d みたいなサフィックスがあるだけでエラーとか…意味ナス
最近は減った方だとは思うけど
983デフォルトの名無しさん:2011/08/22(月) 19:32:49.04
char固定はもう古い
const(string)でエラーになったりするのが今の流行
984デフォルトの名無しさん:2011/08/22(月) 20:33:25.53
コア部分の開発者陣営ってどのくらい人数居るの?
985デフォルトの名無しさん:2011/08/22(月) 22:10:57.15
7人
986デフォルトの名無しさん:2011/08/22(月) 22:11:53.28
の侍
987デフォルトの名無しさん:2011/08/22(月) 23:28:24.06
今更だがD言語って存在価値ないな
988デフォルトの名無しさん:2011/08/22(月) 23:47:51.60
最近は破壊的変更がまったくといっていいほど無いもんな
989デフォルトの名無しさん:2011/08/22(月) 23:51:06.18
MSがVisual D出したら本気出す
990デフォルトの名無しさん:2011/08/23(火) 00:42:35.73
え?
http://dsource.org/projects/visuald

M.S.さんが作ったらいいのけ?
991デフォルトの名無しさん:2011/08/23(火) 00:43:15.96
C++使えるやつがD言語に乗り換えるメリットってあんの?
992デフォルトの名無しさん:2011/08/23(火) 01:20:31.40
>>991
・言語仕様やライブラリを巻き込んだバージョンアップ☆
・型表現もシンプル!64bit型だって楽々表現できちゃう。32bitアプリケーションが出力できる
・ガベージコレクタ内蔵
・配列の機能がたくさん!STLのListみたいなゴチャゴチャしたのはいらないよ!
・ヘッダ?前方宣言?何それ??コンパイル時間が早い!
・本家のサイトのドキュメントが充実!これで簡単にマスターできちゃうね^−^
993デフォルトの名無しさん:2011/08/23(火) 19:12:51.71
D言語使うなんてオナニー以外のなにものでもない
994デフォルトの名無しさん:2011/08/23(火) 19:25:29.30
あなたのオナニー手伝います
995デフォルトの名無しさん:2011/08/24(水) 02:37:53.23
じゃあ手伝って><

プログラミング言語 D (D Programming Language) について語るスレッドです。

■前スレ
http://hibari.2ch.net/test/read.cgi/tech/1303022487/

■本家
http://www.digitalmars.com/d/
http://www.d-programming-language.org/ (ドキュメント)
http://www.kmonos.net/alang/d/ (和訳)

■コンパイラ
http://www.digitalmars.com/d/dcompiler.html (DMD, 本家)
http://dgcc.sourceforge.net/ (GDC, gccフロントエンド)
http://www.dsource.org/projects/ldc (LDC, バックエンドにLLVM)

■参考URL
http://f17.aaa.livedoor.jp/~labamba/ (D言語研究)
http://f17.aaa.livedoor.jp/~labamba/?D%B8%C0%B8%ECBOF (D言語BOF)
http://dsource.org/ (dsource)
http://tinyurl.com/candcpp2d2 (C/C++に疲れた人のD言語2.0)
http://www.kmonos.net/alang/wnd/ (わかったつもりになるD言語)
http://shinh.skr.jp/d/ (SDL, SDL_*, OpenGL, GLU, glutのポーティングとか)
http://shoo.s20.xrea.com/shoo/programing (D言語とTangoの入門講座)
http://www.nicovideo.jp/mylist/4453698 (D言語で作られた芝ゲー niconico動画)
http://www.asahi-net.or.jp/~cs8k-cyu/ (ABA Games)
http://dusers.dip.jp (D言語友の会)
http://www.wish.sakura.ne.jp/desuno/game/Drawing (PrincessDrawing! D言語で作られた横スクロールSTG)
996デフォルトの名無しさん:2011/08/24(水) 05:03:07.65
D言語の求人探すの手伝ってくれ
997デフォルトの名無しさん:2011/08/24(水) 05:34:55.47
窮人め
998デフォルトの名無しさん:2011/08/24(水) 06:02:22.67
999デフォルトの名無しさん:2011/08/24(水) 06:03:56.51
>>998

1000デフォルトの名無しさん:2011/08/24(水) 06:05:49.33
            ノ
           (゚Д゚) < D言語!
           ( (7
           < ヽ
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。