[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 08/05 11:17 / Filesize : 219 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

D言語 Part15



1 名前:デフォルトの名無しさん mailto:sage [2007/10/05(金) 20:16:30 ]
プログラミング言語 D (D Programming Language) について語るスレッドです。
過去スレは >>2

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

■コンパイラ
ttp://www.digitalmars.com/d/dcompiler.html (DMD, 本家)
ttp://dgcc.sourceforge.net/ (GDC, gccフロントエンド)
ttp://gdcmac.sourceforge.net/ (GDCのmac用バイナリ)

■参考URL
ttp://f17.aaa.livedoor.jp/~labamba/ (D言語研究)
ttp://dsource.org/ (dsource)
ttp://www.sun-inet.or.jp/~yaneurao/dlang/
ttp://wisdom.sakura.ne.jp/programming/d/

830 名前:802 mailto:sage [2007/11/11(日) 20:46:36 ]
>>806>>807>>815
予想してた斜め上の回答がきててワロタ
構文解析とか意味解析とか知らないくせに左結合とか右結合とか
結合規則だけでコンパイラ語ってんじゃねぇ、ヴォケw

例えば、hoge モジュールの中に foo クラスがあって、bar っていうメソッドがあったとして、
hoge.foo.bar っていう字句列が何を意味するか分かる?

831 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 20:50:39 ]
>>830
何にも分かってないのはお前だけー

832 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 20:53:06 ]
やれやれ、結局煽るだけか。
まぁ、納得できないんじゃなく、理解できないんだからしょうがないが。

833 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 20:55:24 ]
>>832
つーかさ、なんで>802クンは>830で突然戻ってきた風なくせに、
突然>830でキレ気味に「ヴォケ」とかあおってんの?

そんなに悔しい出来ことがあったのですかー?

834 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 20:57:09 ]
はいはい、ごめんねー

835 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 20:57:40 ]
やれやれ、反論できずに非を認めて謝っちゃったか。最初からそうしとけばよかったのにな。

836 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 21:00:09 ]
うん、そうだね^^

837 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 21:01:23 ]
どうやらようやく理解できたようで。めでたしめでたし。

838 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 21:02:32 ]
はい



839 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 22:11:43 ]
わかったふりしたい時は
偉そうにクイズ出してごまかすに限るよな。

840 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 22:12:29 ]
上はじゃじゃ馬下はヘボ これなーんだ?

841 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 22:23:20 ]
ちんこ

842 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 22:38:35 ]
まあ>>833->>841は俺の自演なんだけどねー

843 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 22:49:47 ]
>>842
自演ってことにしたいの?そんなに悔しかったのかい?

844 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 23:26:43 ]
>>843
オマエガナー

845 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 23:27:48 ]
無駄なレスで消費するなよな・・・
と言うとこのレスも無駄だろと言われるんだろうけど。

846 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 23:31:37 ]
>>842-845
自演乙

847 名前:デフォルトの名無しさん mailto:sage [2007/11/11(日) 23:31:48 ]
糞スレのいい再利用法だな

848 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 00:10:00 ]
>>846
くやしいのうwwwくやしいのうwww



849 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 00:58:02 ]
アイタタタタタ・・・

今日は802は悔しくて眠れないだろうなこりゃ。

850 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 00:59:36 ]
悔しがることかどうかもわかってないから大丈夫

851 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 00:59:39 ]
なんかスレのレベル下がったな

852 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 01:01:42 ]
俺のおかげだな。

853 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 01:44:38 ]
>>848
自演乙

854 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 01:51:56 ]
>>848=849
いい加減にしたらどうだ?
そこまでして勝ち誇りたいかね

855 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 02:04:02 ]
まだうだうだやってたのか。
せっかく俺が>>834を書き込んでやったというのに。

856 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 02:13:06 ]
でもそんなの関係ねー

857 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 02:20:07 ]
本当に悔しくて眠れないって、うけるwwwwwwwwwwwwwww

858 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 02:21:06 ]
いい加減に寝ろww



859 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 06:01:30 ]
おはよう諸君。
最後に書き込んだやつが、悔しくて最後まで起きてた奴ってことでいいかね?

860 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 07:33:14 ]
みんなみんな>>802

861 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 09:22:08 ]
>>859
悔しくて、朝一番に書き込んじゃったお前が NO.1だよ。寝てないんじゃない?

862 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 10:27:38 ]
下らない流れで加速させてもなあ(´・ω・)

863 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 10:53:31 ]
lazyって何につかってんのww

864 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 12:32:11 ]
>>859
おはよう>>802

865 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 13:18:39 ]
>>863
lazyとか、macroが導入されたら使い物にならなくなりそうな気がするな。
いまでもdelegateとか使えば表現できるし、使い道的にはぶっちゃけいらないんじゃね?
最適化のために使われたりするのかなぁ…

>>864
もういい加減その話題引っ張るのやめようぜ。

866 名前:デフォルトの名無しさん mailto:sage 願わくは俺再帰で無限ループ [2007/11/12(月) 18:00:38 ]
引っ張れば引っ張るほどそいつの悔しさが露呈するという事実

867 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 18:21:08 ]
>>866
やめようぜ、頼むよ。
再帰には終了条件を設定すべきだろ。

868 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 18:25:41 ]
終了条件はスタック溢れて例外飛ぶまででおk



869 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 18:56:51 ]
末尾最適化されて無限ループに

870 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 19:31:00 ]
auto D言語_Part15 = std.thread.getThis;
D言語_Part15.pause;

871 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 19:52:44 ]
何をどう書き込んだって俺の勝ちなんだから、
もう諦めようよw

872 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 20:13:26 ]
じゃ俺も勝ちで

873 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 20:16:29 ]
じゃあ俺は負けで

874 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 21:56:52 ]
何の祭かと思ってスレ開く前に公式すっ飛んでった俺涙目

875 名前:デフォルトの名無しさん mailto:sage [2007/11/12(月) 22:13:13 ]
DSSS つかってみたんだけど
dsss build でexeファイルができない・・・

1>Creating imports for DD-Debug
1>Creating imports for DD-dsss_objs
1>Debug => DD-Debug
1>WARNING: Section Debug has no files.
1>dsss_objs => DD-dsss_objs
1>WARNING: Section dsss_objs has no files.

ってでます。

dsss build main.d ってやればできるんだけど
ルートディレクトリでコマンド一発ってのがdsssの機能をつかいたいです

876 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 00:40:31 ]
dmd 2.007で

void hoge(void delegate() func){
func();
}

void main(){
hoge({goto End;});
End:
return;
}

をコンパイルするとError: label End is undefinedってなるのと
mainのreturn;をはずすと(ラベルの後がすぐ}だと)エラー出すのは仕様通り?

877 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 00:51:03 ]
ラベルの後ろには文がないといけない。
End: ; ってしてみるといい。

878 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 00:58:46 ]
>>876
gotoで飛べるのは同じ関数の中のラベルだけで、
関数から飛び出したり別の関数へ飛び込んだりは出来ないよ。



879 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 01:38:38 ]
>>874
(´;ω;`)ぶわっ

880 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 05:34:50 ]
継・・・続・・・?

881 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 17:50:38 ]
継続はいらね

882 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 22:03:08 ]
あのさ、1系列はもういらない子なの?

883 名前:デフォルトの名無しさん mailto:sage [2007/11/13(火) 23:32:21 ]
まぁ、一度もまともに固まったことのない言語に安定版の3文字など存在しないから、
1.xは実質的には、単なる「試行錯誤の跡地」であり、要らない子かもしれないな。
そこに何かを求めるのは、ついうっかりDの安定性に賭けて何か作っちゃった人くらいだな。

884 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 00:13:01 ]
今ふと気づいたんだけど、-v1オプションていつからか消えてる?

885 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 00:13:12 ]
>>883
ヒドスwwwww
でもそんな感じだな・・・
2.0もそうなるんだろうな・・・

886 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 00:19:54 ]
>>884
2.xには最初からなかったと思うけど
1.xにもなくなっているのかな

887 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 00:22:54 ]
C♯も3.0出るしな

888 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 00:26:53 ]
>>884
2.001から



889 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 23:48:23 ]
unrecognized switch '-debuglib=tango-base-dmd.lib'
Tango入れたらこんなん出てきたんですが、
これはどっか設定変えないと駄目なんでしょうか。

890 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 23:52:02 ]
DMDが古いんじゃね?

891 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 00:41:19 ]
入れてる dmd が古くて -debuglib オプションを持ってないんだろう

892 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 00:52:35 ]
omg
そうだったんすか。
ありがとうございました。

893 名前:デフォルトの名無しさん [2007/11/15(木) 02:07:06 ]
既出してたらゴメ。dmd2.007(win)で

import std.stdio;
void main()
{
auto A = new Object();
auto B = A;
delete A;
delete B;
writefln("end of process");
}
を実行すると、end of processは表示されるけど、
プロセスが終了しないんだが、

1.そういうことしちゃだめ。
2.今、gcがもっすごがんばってるからもうちょい待て。
3.delete式なんてただの飾りですよ。エロい人にはそれが分からんのです。
4.バグだけど直すほどの価値がない。
どれ?


894 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 02:15:54 ]
テキトーなクラスつくってデストラクタにwritelnでも入れとけば確認できるんじゃないでしょうか。

895 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 02:19:45 ]
ていうかよく見たら参照元がdeleteされたあとさらにdeleteしてるんすか。
これはやっちゃだめでしょう。

896 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 04:25:33 ]
気になって眠れないので調べたら、
「ポインタ、動的配列、参照変数は、 delete のあと null にセットされます。」
と言う一文が。
しかしこの場合nullがセットされるのは参照変数としてのA自体で、
Aの実体を参照してた参照変数のBはそのまんま(つまりゴミ参照してる)じゃないでしょうか。
なのでやっぱり複数の参照変数で参照されてる大元消したあとにdeleteするのはまずいかも。

897 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 09:24:20 ]
>>893
www.kmonos.net/alang/d/expression.html#DeleteExpression
 > それ以外の場合はガベージコレクタが呼び出され、
 > インスタンスに割り当てたメモリは直ちに解放されます。
とあるから、 delete A; でBが無効な参照になるのは確実だと思う。

ただ、解放済み(だけどもともとGCで確保した)領域への参照に対する
deleteについては仕様に言及がないと思うので、これは実装依存だと思う。
(つまり、実装によっては未定義動作となる可能性もあるということ)

実装依存となると、実装がどうなってるか分からない(今回の場合)なら
やっちゃ駄目な操作(選択肢の1)になるかな。

898 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 15:19:41 ]
ソースのどこで例外出してるか調べる方法ってありませんか?

dfl使ってツリービューとかにドラッグオーバーを何度か繰り返すと
例外吐くんですが、それがどこなのかわかりません。



899 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 15:59:14 ]
flectionedってそういうことできたっけ?

900 名前:893 [2007/11/15(木) 16:09:45 ]
>>894-897
あ、やっぱそっか。さんくす。
どうも4から疑ってしまう自分がいて、反省。
でも、例外とか吐いてくれるような仕様にならんかなあ。

901 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 17:18:37 ]
>>899
あれはTangoが無いと動かないみたいで。
dflとTangoの組み合わせは自分でやった限りでは出来なかったので。

902 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 20:52:50 ]
ddbg ttp://ddbg.mainia.de/

903 名前:デフォルトの名無しさん [2007/11/15(木) 21:26:28 ]
突然でアレなんだけどさ、これ

module a;
private import std.stdio;

module b;
import a;
void main()
{
std.stdio.writefln("hello");
}

>dmd b.d a.d

が通るって初めて知ったんだけど、キモくね?


904 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 21:32:41 ]
きもいね

905 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 21:34:31 ]
きもいけどどういう挙動が正しいのか仕様にはっきりと書いてないね。

906 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 22:43:37 ]
www.kmonos.net/alang/d/module.html
>デフォルトでは、import は private です。
>これは例えば モジュール A がモジュール B を、
>モジュール B はモジュール C をimportしていた場合、
>Cの名前はAでは探索されないということです。
>ただし、 import を特別に public と宣言すると、
>その import が取り込むモジュール内の全ての名前が、
>現在のモジュールを外からimportするモジュールにも見えるようになります。

未定義になるべきなのでは
もしかして実はデフォルトがpublicなのかなーとか思って明示的にprivate import aにしてみたがやっぱり通るね。

907 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 23:09:59 ]
バグじゃない?

908 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 00:00:36 ]
>>903
それ、モジュールAとimport a;が無くても通るんだよね。
だから、仕様だと思ってた。
フル修飾だとimport不要、みたいな。



909 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 00:01:33 ]
それだとstatic importの立場がなくなるがな

910 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 07:49:58 ]
8ビットのビットマップクラスをつくてるんだが、streamのFileをオープンした瞬間にアクセス違反で落ちる。
Windowsなんだけど、なんでかな〜。いまのとこ、無いファイルを作ろうとしてるんだけど。
コンソールに違反だよ〜ってでるからAPI内部の犯行ではないはずなんだけど。
あ、コンパイラのバージョンは1.015です。

    bool Save(char[] name, bool IsIgnor = false){
        BitmapFileHeader bmh;
        bmh.bfType = 0x4d42;// 'B'<<8 + 'M';        
        
        if(exists(name) == true){
            if(IsIgnor == false) return false;
        }
        
        static if(IsDebug) writefln("file:",name);
        File fo;
        fo.open(name,FileMode.OutNew);
/*      if(fo.isOpen == false) return false;
        
        fo.writeBlock(cast(void*)&bmh,bmh.sizeof);
        fo.writeBlock(cast(void*)&bih_,bih_.sizeof);
        fo.writeBlock(cast(void*)Palette_,uint.sizeof*Palette_.length);
        fo.writeBlock(cast(void*)Pixel_,ubyte.sizeof*Pixel_.length);
*/      fo.close();

911 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 08:22:13 ]
newせいよ

912 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 08:55:43 ]
>>911
ぐあ。はずかし!またやってしまった!!
くそー。癖って抜けないね。
なんにせよ、レスありがとう!!!!


913 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 18:16:10 ]
aliasじゃインターフェイスを実装したものとみなされないのか…

914 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 18:53:24 ]
Tangobos→Phango

915 名前:デフォルトの名無しさん [2007/11/16(金) 19:05:07 ]
Phagos

916 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 21:15:53 ]
Photangobos

917 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 21:21:30 ]
デバッグってvs2005でもいけるんでしょうか。
vs6だとうまく行くんだけど、vs2005だと作業フォルダ指定しても
ブレークポイントに反応してくれない。

918 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 21:21:37 ]
pthaonbgoos.



919 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 21:46:48 ]
phandango

920 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 22:20:40 ]
Tanpo

921 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 23:16:22 ]
Chi...

922 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 23:32:45 ]
>>889
>unrecognized switch '-debuglib=tango-base-dmd.lib'
自分もその現象が発生しました。Tango 0.99.3になってそのスイッチを使い始めたみたいです。
調査の結果、rebuildが-debuglibに対応できていないのが原因のようで、dsss最新版のrebuildを使ってみてもだめみたいです…
というわけで、dsssやrebuildを用いないでコンパイルするとうまくいくことがわかりました。
レスポンスファイルを作ってやるか、makeを活用するとよいかと思います。

というわけでそれを踏まえてDFL 0.96.01を使ってみたのだけど、いくつかはまったので使いたい方は以下を参考するとよいかと思います。
import\dfl\makelib.bat(23)にinternal/_stdcwindows.dを追加
import\dfl\makelib.bat(25)に_stdcwindows.objを追加
import\dfl\makelib.bat(34)の-v1を削除
でgo.batを実行してライブラリをビルドすることで解決したので参考までに載せておきます。

923 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 23:39:00 ]
>>917
ああそういうことだったのかな
前はソースレベルデバッグできてたのにいつの間にかできなくなったと思っていたら

924 名前:デフォルトの名無しさん mailto:sage [2007/11/16(金) 23:45:01 ]
どなたかDflでドラッグドロップ系の処理が出来ている方っていますか?
いたらバージョンを教えてほしいのでスが。

925 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 01:39:57 ]
class A{
static void opBrace(void delegate() v){v();}
}
A{printf("brace");}
みたいなのが欲しい。


926 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 01:44:01 ]
q{} 文字列リテラルを追加しちゃったから、望み薄だな。

927 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 01:48:39 ]
>>926
あれは、{code();}.stringof とかの方がよかったと思うのにな。。

928 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 01:48:48 ]
tanpopo
tanbo
botan
popotan
bosan




929 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 01:53:37 ]
>>926
a(b)があるけど、opCallもあるから大丈夫だ。

930 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 01:55:55 ]
>>929
いや、そういうことじゃなくて…






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<219KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef