トップページ⇒tech
1001コメント253KB

D言語 Part26

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2010/12/28(火) 10:49:05
プログラミング言語 D (D Programming Language) について語るスレッドです。

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

■本家
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)
0951デフォルトの名無しさん2011/04/16(土) 00:59:06.42
そりゃあもちろんバグじゃなく仕様だからな
0952デフォルトの名無しさん2011/04/16(土) 01:17:42.22
VisualDでリンクできねえええええええ
SDL.libとSDL_mixerだけはできてるうう
09539212011/04/16(土) 04:57:15.84
GDC入れて落ち着いた。
DMDなんて、夢だったんや・・・。
0954デフォルトの名無しさん2011/04/16(土) 12:24:50.18
開発スタッフの人数に対して見つかっているバグの数を考えると憂鬱になる
0955デフォルトの名無しさん2011/04/16(土) 12:57:06.37
発見数は愛の指標だと思うことにした
0956デフォルトの名無しさん2011/04/16(土) 15:57:08.31
.libってバイナリじゃないの?

SDL_netのlibをリンクしようとすると
エラーがでる

エラー 3 Error 43: Not a Valid Library File
0957デフォルトの名無しさん2011/04/16(土) 16:00:24.07
>>956
LIBがCOFFなのでは
0958デフォルトの名無しさん2011/04/16(土) 21:14:50.67
そろそろ次スレの季節だな
↓テンプレに追加してほしい
■ IDE
ttp://www.dsource.org/projects/visuald (Visual D)
■ ライブラリ(OpenGL,SDLなどゲーム開発に便利な詰め合わせ)
ttp://www.dsource.org/projects/derelict (Derelict)
0959デフォルトの名無しさん2011/04/16(土) 22:03:18.32
ひょっとして忍法帖がいるのか?
0960デフォルトの名無しさん2011/04/16(土) 23:55:30.83
Derelictでかいし、SDL+OpenGLだけなら>>829のほうがすき
つうか確認のために踏んだら素材が増えてるよwww やったねたえちゃん!

libはBorland用の(omf)使うか、VC++用(coff)をcoff2omfで変換するか、
もしくはimplib /s xxx.lib xxx.dllでdllから自分で生成する。
この辺のことって今はどっか(友の会あたり?)に書いてあるのかしら。
0961デフォルトの名無しさん2011/04/17(日) 00:17:58.27
逆引きD言語のこともたまには思い出してあげてください・・・
http://wikiwiki.jp/dlang/
0962デフォルトの名無しさん2011/04/17(日) 00:22:48.54
現状見出しにある項目って公式和訳で完全に事足りるよね・・・
0963デフォルトの名無しさん2011/04/17(日) 00:24:44.08
>>829にlibつけてほしいけどライセンス的に問題あったっけ
0964デフォルトの名無しさん2011/04/17(日) 00:40:39.51
>>829 は文面から放置のにおいを感じたから
スルーするつもりだったのにw

もりもり増えてるじゃないか!
0965デフォルトの名無しさん2011/04/17(日) 15:42:36.00
次スレ
http://hibari.2ch.net/test/read.cgi/tech/1303022487/
0966デフォルトの名無しさん2011/04/17(日) 16:00:03.63
>>2にいったいなにが
0967デフォルトの名無しさん2011/04/17(日) 19:08:36.65
スペルインターセプト
0968デフォルトの名無しさん2011/04/18(月) 19:27:09.72
D言語は犠牲になったのだ...大量のバグによってな
0969デフォルトの名無しさん2011/04/18(月) 21:37:46.78
もしかして
class C
{
0970デフォルトの名無しさん2011/04/18(月) 21:39:13.38
static int Func() { return 2; }
}

とかして

C.Func()ってできない?

C inst = new C();
inst.Func()でなくて
0971デフォルトの名無しさん2011/04/18(月) 22:03:11.02
できるはず
0972デフォルトの名無しさん2011/04/18(月) 22:03:43.50
久々にバグに出会えたと思ったらデマかよ
0973デフォルトの名無しさん2011/04/18(月) 23:30:07.88
何で出来ないと思っちゃったのか気になる
0974デフォルトの名無しさん2011/04/18(月) 23:38:49.60
バグが出ないってのはアレだ、使い込みが足りない
1日10本ぷろぐらむを書く、それを日課にすべし
0975デフォルトの名無しさん2011/04/18(月) 23:46:40.91
コード2万本です
0976デフォルトの名無しさん2011/04/18(月) 23:49:13.43
それで足りるのか?
0977デフォルトの名無しさん2011/04/19(火) 18:03:22.85
import std.stdio;
class C
{
public:
static int func() @property { return data; }
private:
static int data = 13;
}

void main()
{
writeln(C.func);
}
0978デフォルトの名無しさん2011/04/19(火) 18:06:07.91
しまったまた書きこんでしまった

import std.stdio;
class C
{
public:
  static int func() @property { return data; }
private:
  static int data = 13;
}

void main()
{
  writeln(C.func);
}

これでコンパイル通らず5行目で'this' is only defined in non-static menber functions, not func
と出るのだがどういう意味ですか><
0979デフォルトの名無しさん2011/04/19(火) 18:13:43.26
普通にコンパイル通るし実行もできる@2.052
0980デフォルトの名無しさん2011/04/19(火) 18:43:59.12
あれ?コンパイル通ってしまった

スペルミスだろうか(#^ω^)ビキビキ
0981デフォルトの名無しさん2011/04/19(火) 18:45:28.83
スレ汚しすみません
0982デフォルトの名無しさん2011/04/19(火) 19:42:04.08
こんな感じのシングルトンクラスをマスターに作ってたんですが、
複数のスレッドからA.instance()を呼び出す際に、
ちょくちょくセグメンテーション違反で落っこちます。
static変数はスレッドセーフと思ってましたが、
根本的に何か間違っているでしょうか?

class A {
  B[] b;
  static A instance() {
    static A a;
    if(a is null) {
      a = new A();
    }
    a.update();
    return a;
  }
  void update() {
    B[] tmp;
    // 外部ファイルの更新チェック、読込み等。で、だいたいこの辺で落ちる
    synchronized(this) {
      b = tmp;
    }
  }
}
class B {}
0983デフォルトの名無しさん2011/04/19(火) 19:52:31.78
constでもなけりゃスレッドセーフじゃないんじゃね?
0984デフォルトの名無しさん2011/04/19(火) 20:12:55.09
>>982
D2はそうだけど、D1は違うよ。
09859822011/04/19(火) 21:58:51.90
ありがとうございます。
log4cxxも同じような感じで使ってたんですが、
ログ出力を止めたら再現しなくなりました。

恐らく他(自分のコード)に問題がありそうなので調査してみます。
0986デフォルトの名無しさん2011/04/19(火) 22:39:43.69
>>985
ところで>>982のコードだと、スレッド別にAのインスタンスが生成されるが大丈夫か?
0987デフォルトの名無しさん2011/04/19(火) 22:57:48.81
>恐らく他(自分のコード)
Dに限っては疑うべきは自分のコードにあらず
0988デフォルトの名無しさん2011/04/19(火) 22:59:22.61
大丈夫じゃないと思います
0989デフォルトの名無しさん2011/04/19(火) 23:01:09.05
っていうかスレッド別に生成されるからスレッドセーフになってるんであって、
sharedにしたらふつーにsynchronizedにしないとダメなんじゃ
0990デフォルトの名無しさん2011/04/19(火) 23:36:19.88
gccにInterlockedIncrementが無いぜーと嘆いてたら、D言語なら文法レベルでサポートしてるぜ、
と言われたんですが、本当ですか。
0991デフォルトの名無しさん2011/04/19(火) 23:53:42.94
>>990
どんな話題だ、と思いつつ、、、
単体の命令には無いけど、synchronized文を使えば同じ事は出来るな。
てか、gccでも同じ関数使えるだろ。。。
0992デフォルトの名無しさん2011/04/20(水) 00:59:01.98
synchronized文は、その文を同時に複数実行できないようにするだけあって、
アトミック化するのとは違うのでは。
core.atomicってどうなってるのだろう。
0993デフォルトの名無しさん2011/04/20(水) 07:06:06.72
>>990
gccには__sync_add_and_fetchってあったような
0994デフォルトの名無しさん2011/04/20(水) 07:15:39.73
キーワード長ぇよ
せめてsyくらいにしてくれ
0995デフォルトの名無しさん2011/04/20(水) 10:51:42.66
>>986
そこは意図的にスレッド別に作ってます。
スレッド数が最大8程度なので、
同期を取って一つを使い回すよりかはこういう使い方のほうがいいかなと。
0996デフォルトの名無しさん2011/04/20(水) 15:12:25.23
>>994
お前studio容認派か
0997デフォルトの名無しさん2011/04/20(水) 20:46:23.63
うめ
0998デフォルトの名無しさん2011/04/20(水) 20:47:24.58
998
0999デフォルトの名無しさん2011/04/20(水) 20:48:25.57
999
1000デフォルトの名無しさん2011/04/20(水) 20:49:27.97
100000000000000000000000000000!!!!!!!!!!!1111111
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。