D言語 Part26
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2010/12/28(火) 10:49:05■前スレ
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)
0002デフォルトの名無しさん
2010/12/28(火) 10:52:30ttp://forums.codeblocks.org/index.php?board=20.0 (Code::Blocks)
ttp://www.dprogramming.com/entice.php (Entice Designer)
ttp://www.dsource.org/projects/descent (Descent)
ttp://www.dsource.org/projects/poseidon (Poseidon)
ttp://alexanderbothe.com/?id=27 (D-IDE)
ttp://codepoet.sourceforge.net (CodePoet ※計画中)
■過去スレ、関連スレ
http://makimo.to:8000/cgi-bin/search/search.cgi?q=D%8C%BE%8C%EA&sf=2&all=on&view=table&shw=5000
■その他関連スレ
統合開発環境Eclipseプラグイン開発QA
http://pc11.2ch.net/test/read.cgi/tech/1081517094/
"Code of the Nerds" Digital Mars C/C++
http://hibari.2ch.net/test/read.cgi/tech/1044210976/
00031
2010/12/28(火) 10:54:08他にもリンク切れあったらスマソ
0004デフォルトの名無しさん
2010/12/28(火) 11:30:17言語訓練のために立てたものです。
アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
京都大学霊長類研究所
0005977
2010/12/28(火) 12:27:170006デフォルトの名無しさん
2010/12/28(火) 18:45:14>>975
まず、functionじゃなくて、delegateじゃないだろうか?
次に、テンプレートのインスタンス化の時に、!()には変数の値は渡せないぜ?
(コンパイル時に決まる、整数型・浮動小数点型・文字列型は除く)
もし値渡しをやるなら、テンプレートの宣言は、
void func(F...)(F f) もしくは void func(alias F...)()
と、するべき。(後者は厳密には値渡しじゃないが)
今回は後者にすれば解決?
0007デフォルトの名無しさん
2010/12/28(火) 21:20:50allMembersで取り出したタプルに対してisSomeFunctionで判定しようかと思って下記の様に書いたらコンパイルエラーになったのでどうしたものかと。
class CTest{
int mNum;
string mText;
void Function(){}
}
void main(){
foreach(mem;__traits(allMembers, CTest)){
static if( !isSomeFunction!(__traits(getMember, CTest, mem)) ){
// Todo!
}
}
}
0008デフォルトの名無しさん
2010/12/28(火) 22:45:34何でそんなまわりくどい方法でやろうとしてるの?
00098
2010/12/29(水) 00:33:32もう一度見返してみたけど・・・
とりあえず、static ifを動的に使おうとしてコンパイルエラーになってるのはわかった。
で、やっぱり疑問になるのは、なぜわざわざそんな方法でメンバ関数を特定しようとしてるのか、という所だ。
インターフェイスやデリゲートを使って、使用できる関数を知らせるのじゃダメなのだろうか?
・・・ん?そうじゃなくて、クラスのフィールドを抽出したいの?
だったらもっと簡単な方法があるな。 つ[ .tupleofプロパティ ]
00108
2010/12/29(水) 00:40:290011デフォルトの名無しさん
2010/12/29(水) 03:53:02・コンテナからの追加削除検索
・テンプレート
・実行時型情報
・etc
0012デフォルトの名無しさん
2010/12/29(水) 05:44:58ttp://d.puremagic.com/issues/show_bug.cgi?id=5381
switchのバグはtrunkで修正された
0013デフォルトの名無しさん
2010/12/29(水) 06:13:26Windows = C#
Mac = Objective-C
サーバーサイド = Java or PHP
になってて
D言語なんてもう日の目を見ることは
絶対にないから。
0014デフォルトの名無しさん
2010/12/29(水) 06:54:450015デフォルトの名無しさん
2010/12/29(水) 07:33:280016デフォルトの名無しさん
2010/12/29(水) 09:27:230017デフォルトの名無しさん
2010/12/29(水) 10:25:240018デフォルトの名無しさん
2010/12/29(水) 11:05:16破壊的変更毎にプログラム全体を見直す必要が生ずる。
これにより同じアルゴリズムを何度も眺めることになるのだが、
この行為はプログラマにとってアルゴリズムの反復学習として機能する。
上記より私はD言語の履修を学校教育に強く勧めたい。
0019デフォルトの名無しさん
2010/12/29(水) 13:17:57マジレスすると先生が大変すぎる。
0020デフォルトの名無しさん
2010/12/29(水) 14:24:05作った
http://wikiwiki.jp/dlang/
0021デフォルトの名無しさん
2010/12/29(水) 15:20:13うおぉまじか 立ち上げ乙ー
0022デフォルトの名無しさん
2010/12/29(水) 16:41:28フィールドの名前なしでいいなら>>8の通り.tupleofを使う、名前ありなら下のコードで可能
class CTest{
int mNum;
string mText;
void Function(){}
}
void main(){
foreach(mem;__traits(allMembers, CTest)){
static if (is(typeof(mixin("&CTest." ~ mem))))
pragma(msg, "f ", mem);
else
pragma(msg, "@ ", mem, ", isType = ", mixin("is(CTest." ~ mem ~ ")"));
}
}
interface Object.Monitorが出てきたのでisType==falseではじく必要がある。
あと、__traitsで取ってきたタプルをforeachで回すと、ループ内のコードはコンパイル時に評価される。
ので、>>7のコードは考えとしては正しい。
0023デフォルトの名無しさん
2010/12/29(水) 16:44:420024デフォルトの名無しさん
2010/12/29(水) 23:51:130025デフォルトの名無しさん
2010/12/30(木) 00:18:030026デフォルトの名無しさん
2010/12/30(木) 00:50:030027デフォルトの名無しさん
2010/12/30(木) 01:07:530028デフォルトの名無しさん
2010/12/30(木) 08:47:030029デフォルトの名無しさん
2010/12/30(木) 08:53:530030デフォルトの名無しさん
2010/12/30(木) 13:18:09誰か改善してやれよ
0031デフォルトの名無しさん
2010/12/30(木) 14:57:580032デフォルトの名無しさん
2010/12/30(木) 18:44:290033デフォルトの名無しさん
2010/12/30(木) 19:45:14値型のまま扱いたいのならconceptくさいなにかになるんだろうけど。
0034デフォルトの名無しさん
2010/12/30(木) 20:19:580035デフォルトの名無しさん
2010/12/31(金) 22:11:40なんだこれ
0036デフォルトの名無しさん
2010/12/31(金) 22:14:080037デフォルトの名無しさん
2010/12/31(金) 22:21:13void main() {
const(string) a = "a";
"a".startsWith(a); // compile error
splitlines(a); // compile error
}
たぶん他の関数もそうなんだろうけど
ちょっと前までは通ってたはずなんだよなぁ…
0038デフォルトの名無しさん
2010/12/31(金) 22:47:57/// ---
/// string foo = ")";
/// ---
void main() {}
C:\> dmd -D -w w.d
w.d(4): Warning: Ddoc: Stray ')'. This may cause incorrect Ddoc output. Use $(RP
AREN) instead for unpaired right parentheses.
おいィ?
0039デフォルトの名無しさん
2011/01/01(土) 01:07:20phobosから.dが消えて.diだけになったのは今回?
0040デフォルトの名無しさん
2011/01/01(土) 01:29:44) の代わりに $(RPAREN) 使えだとさ
丸カッコ ( ) はDdoc用コメント中では特殊文字扱いだぜ
0041デフォルトの名無しさん
2011/01/01(土) 14:08:16ああ、そうだったのか
どうせdmdだしと思ってまともにメッセージ読んでなかった
ごめんよ
00427
2011/01/01(土) 15:43:11おおー、ありがとうございます。
取得したtupleをなんでforeachで回せるのかは疑問だったんだけど、
static foreach的な構文を使わなくてもコンパイル時に実行される
んですね。
0043デフォルトの名無しさん
2011/01/01(土) 17:24:45外部ライブラリのクラスのデストラクタが自動で呼び出されないとか。
マニュアルにはimportする順序は動作に関係無いみたいなんだけどなぁ。
0044デフォルトの名無しさん
2011/01/01(土) 19:26:06ソースを出せ
話はそれからだ
0045デフォルトの名無しさん
2011/01/01(土) 23:14:01変な所にアクセスしてるせいかもしれない
最近の言語はそういう事とは無縁だけどDだと発生するから困る
0046デフォルトの名無しさん
2011/01/02(日) 22:14:280047デフォルトの名無しさん
2011/01/02(日) 23:55:380048デフォルトの名無しさん
2011/01/03(月) 00:18:210049デフォルトの名無しさん
2011/01/03(月) 00:23:010050デフォルトの名無しさん
2011/01/03(月) 07:08:080051デフォルトの名無しさん
2011/01/03(月) 14:27:190052デフォルトの名無しさん
2011/01/03(月) 15:29:59A.K.D 48だっけ
0053デフォルトの名無しさん
2011/01/05(水) 00:46:420054デフォルトの名無しさん
2011/01/05(水) 02:20:07売れないもんなあ
0055デフォルトの名無しさん
2011/01/05(水) 02:31:20D友のTDPL第13章和訳みてすごい面白かったから出ないかなぁと思った
Dに留まらず、他の言語にも適用可能な考え方とかも書いてあって結構な良書だと思うんだけどなー
0056前スレ977
2011/01/05(水) 11:10:03年越しちゃいましたが以下で問題なく動きました。
http://ideone.com/lpyz7
また、さらっとluadの情報を提供いただいた方も助かりました。
ありがとうございました!
0057デフォルトの名無しさん
2011/01/06(木) 03:42:540058デフォルトの名無しさん
2011/01/06(木) 16:17:52作ろうと思ってるのですが、うまくいきません。
http://ideone.com/TCR8r
上記のコードでcloneが実装されているフィールドはclone呼び出し、
それ以外は=で代入という処理をしてます。
これだと組み込み型や配列でないユーザー定義型はディープコピー
できるのですがユーザー定義型の配列のディープコピーができ
ないのですが何か良い方法ありますでしょうか。
0059デフォルトの名無しさん
2011/01/06(木) 18:10:48俺も同じ事やろうとした覚えがあるけどデフォルトコンストラクタの無いクラスで詰んだな
0060デフォルトの名無しさん
2011/01/07(金) 18:33:20http://ideone.com/rIRgl
0061デフォルトの名無しさん
2011/01/07(金) 22:17:120062デフォルトの名無しさん
2011/01/07(金) 23:28:10スレの過去ログが必要って人は今のうちに保存しておいたほうがいいかも
0063デフォルトの名無しさん
2011/01/08(土) 12:02:210064デフォルトの名無しさん
2011/01/09(日) 03:43:32>>977
> http://hibari.2ch.net/test/read.cgi/tech/1290367109/588
> これ見て思ったけどMartin先生が突然死んじゃったらScalaってどうなるん?
これ見て思ったけどうぉるたんが突然死んじゃったらDってどうなるん?
0065デフォルトの名無しさん
2011/01/09(日) 04:07:020066デフォルトの名無しさん
2011/01/09(日) 11:11:490067デフォルトの名無しさん
2011/01/09(日) 11:21:300068デフォルトの名無しさん
2011/01/09(日) 11:45:160069デフォルトの名無しさん
2011/01/09(日) 12:17:560070デフォルトの名無しさん
2011/01/09(日) 14:57:561.
scope class A{} ←
2.
class B{}
scope B b; ←
0071デフォルトの名無しさん
2011/01/09(日) 17:41:00でも2が消えたら1も消えるんじゃ?
0072デフォルトの名無しさん
2011/01/09(日) 19:17:57Mutex m = new Mutex;
lock(m);
scope(exit) unlock(m);
0073デフォルトの名無しさん
2011/01/09(日) 20:05:130074デフォルトの名無しさん
2011/01/09(日) 22:33:090075デフォルトの名無しさん
2011/01/13(木) 11:55:09staticとか何とかは見つかるんですが…
0076デフォルトの名無しさん
2011/01/13(木) 22:42:280077デフォルトの名無しさん
2011/01/14(金) 02:17:390078デフォルトの名無しさん
2011/01/14(金) 02:43:340079デフォルトの名無しさん
2011/01/14(金) 03:19:42仕様が確定するまで手を付けないのは
よくあること
008075
2011/01/14(金) 12:36:410081デフォルトの名無しさん
2011/01/14(金) 12:50:030082デフォルトの名無しさん
2011/01/14(金) 18:39:29isで失敗したらprivate…
うん、自分で書いてて無茶だと思った
0083デフォルトの名無しさん
2011/01/14(金) 20:35:55008475
2011/01/15(土) 03:33:24今作っているのがLuaを使うプログラムでluadを使用しています。
この子がluaへクラスとメンバ関数を渡す処理を自動化してくれるんですが、
その際allMembersで関数全部を渡してくれると。
d側で使用する関数は渡さないようにしたいわけで、
フツーに考えてprivateだよなぁって流れです。
0085デフォルトの名無しさん
2011/01/15(土) 04:42:320086デフォルトの名無しさん
2011/01/15(土) 11:36:16http://ideone.com/k0ScV
0087デフォルトの名無しさん
2011/01/15(土) 12:41:060088デフォルトの名無しさん
2011/01/16(日) 00:27:29実は内容も行も正しくて時間無駄にした…
0089デフォルトの名無しさん
2011/01/16(日) 02:08:20えっ?!mjd?
0090デフォルトの名無しさん
2011/01/16(日) 11:11:320091デフォルトの名無しさん
2011/01/16(日) 16:52:50dmd2を使うにはどうしたらいいのでしょうか?
0092デフォルトの名無しさん
2011/01/16(日) 16:56:250093デフォルトの名無しさん
2011/01/16(日) 17:00:36コマンドで切り替えられたりしないんでしょうか?
0094デフォルトの名無しさん
2011/01/16(日) 17:27:17DWTさえD2で使えればD1捨てで何の問題も無いのに…
0095デフォルトの名無しさん
2011/01/16(日) 17:33:300096デフォルトの名無しさん
2011/01/16(日) 18:13:40とりあえず環境変数を切り替えられるwshを作って見ました。
コマンドラインでは出来ないけど、、、。
これをクリックすればバージョン変えられます。xpで動作してます。
envd.wsf
<?xml version="1.0" encoding="Shift_JIS" standalone="yes" ?>
<package>
<job id="environment">
<?job error="true" debug="true" ?>
<script language="JScript">
<![CDATA[
var WshShell = WScript.CreateObject("WScript.Shell");
var WshSysEnv = WshShell.Environment("SYSTEM");
var path = WshSysEnv("PATH");
var m2pos = path.match(/.*\\dmd2\\/)[0].length;
var m1pos = path.match(/.*\\dmd\\/)[0].length;
path= path
.replace(/\\dmd2\\/,"\\dmdtmp\\")
.replace(/\\dmd\\/,"\\dmd2\\")
.replace(/\\dmdtmp\\/,"\\dmd\\");
WshSysEnv("PATH")=path;
if(m2pos < m1pos)
WScript.Echo("change version 2 to 1");
else
WScript.Echo("change version 1 to 2");
]]>
</script>
</job>
</package>
0097デフォルトの名無しさん
2011/01/16(日) 18:41:110098デフォルトの名無しさん
2011/01/16(日) 18:43:31dmd2.0を使いたいときはdmd source.d
dmd1.0を使いたいときはdmd1 source.d
0099デフォルトの名無しさん
2011/01/16(日) 19:14:080100デフォルトの名無しさん
2011/01/16(日) 21:08:260101デフォルトの名無しさん
2011/01/16(日) 23:43:240102デフォルトの名無しさん
2011/01/17(月) 11:47:30こんな感じで自作のソート関数を使ってSwapStrategy.stableでsortすると落ちてしまうのですが、コード的に何かおかしいとこありますか?
0104デフォルトの名無しさん
2011/01/17(月) 18:40:43http://ideone.com/KFbrC
http://d.puremagic.com/issues/show_bug.cgi?id=3638
0105デフォルトの名無しさん
2011/01/17(月) 20:48:23なんと……
0106デフォルトの名無しさん
2011/01/17(月) 21:31:450107デフォルトの名無しさん
2011/01/19(水) 01:49:520108名無しさん@お腹いっぱい。
2011/01/20(木) 01:29:180109デフォルトの名無しさん
2011/01/20(木) 01:57:130110デフォルトの名無しさん
2011/01/20(木) 02:55:220111デフォルトの名無しさん
2011/01/20(木) 23:44:36自分で調べなさい
0112デフォルトの名無しさん
2011/01/20(木) 23:47:240113デフォルトの名無しさん
2011/01/22(土) 08:30:540114デフォルトの名無しさん
2011/01/22(土) 11:26:13それだけで不合格
0115デフォルトの名無しさん
2011/01/22(土) 11:39:560116デフォルトの名無しさん
2011/01/22(土) 11:47:520117デフォルトの名無しさん
2011/01/22(土) 12:32:370118デフォルトの名無しさん
2011/01/22(土) 12:33:300119デフォルトの名無しさん
2011/01/22(土) 14:50:50闇プログラマはDを使うと書かれていましたが
これは本当ですか?
0120デフォルトの名無しさん
2011/01/22(土) 15:48:240121デフォルトの名無しさん
2011/01/22(土) 16:48:17好きなようにフォーマットしたいんよ
いや文字列を解析してシリアル値にしてから改めてフォーマットすればいいのか?
CTFEでやれそうかな
0122デフォルトの名無しさん
2011/01/22(土) 18:19:55functionはポインタひとつ分節約できるとかそういうレベル?
0123デフォルトの名無しさん
2011/01/22(土) 18:41:37統合されるって話もあった気がする
0124デフォルトの名無しさん
2011/01/22(土) 19:09:320125デフォルトの名無しさん
2011/01/22(土) 19:13:090126デフォルトの名無しさん
2011/01/23(日) 22:07:12いまさらだが、Fedora14にD言語が入ってるらしい。
Phobosは未サポートらしいけど…。
0127デフォルトの名無しさん
2011/01/23(日) 22:11:350128デフォルトの名無しさん
2011/01/23(日) 22:36:020129デフォルトの名無しさん
2011/01/24(月) 12:57:36破壊的変更なんぞシラネー
と息まくにわかが増えるのか
0130デフォルトの名無しさん
2011/01/24(月) 21:56:29Windowsに特化してるのに GCとめて回避とか納得いかんざき
それとドロップしたファイルがなぜか
たまにデスクトップに移動してることがあるバグもなおs(ry
0131デフォルトの名無しさん
2011/01/24(月) 23:02:500132デフォルトの名無しさん
2011/01/25(火) 00:58:500133デフォルトの名無しさん
2011/01/25(火) 01:43:110134デフォルトの名無しさん
2011/01/25(火) 02:49:080135デフォルトの名無しさん
2011/01/25(火) 18:42:57d2だとGCとめても・・・
修正パッチどこかに置いておくだけでもいいんじゃないですか?
少なくとも自分は大いに助かる
0136デフォルトの名無しさん
2011/01/25(火) 19:51:07困っているので手は入れたし
されど全体を見渡すほどの余力もなし
って感じ
0137デフォルトの名無しさん
2011/01/25(火) 20:14:49気づいた人が報告して、直せる人が直すっていう
0138デフォルトの名無しさん
2011/01/25(火) 21:37:260139デフォルトの名無しさん
2011/01/26(水) 20:51:11Dのライブラリとしては上出来じゃないか
0140デフォルトの名無しさん
2011/01/26(水) 21:57:410141デフォルトの名無しさん
2011/01/27(木) 18:45:24void main() {
auto hoge(T)(T a, T b) { return a~"."~b; }
auto f = mixin(hoge("12", "34"));
writeln(typeid(f), ":", f);
}
文字列mixinって値的に使えるんだな。初めて知った。
というかその発想がなかったわー
0142デフォルトの名無しさん
2011/01/29(土) 02:26:36へーしらなんだ
0143デフォルトの名無しさん
2011/01/29(土) 17:30:30じゃあ次のアップデートでそれなくします
0144デフォルトの名無しさん
2011/01/29(土) 21:06:080145デフォルトの名無しさん
2011/01/30(日) 10:44:250146デフォルトの名無しさん
2011/01/30(日) 14:45:500147デフォルトの名無しさん
2011/01/30(日) 15:32:320148デフォルトの名無しさん
2011/01/30(日) 16:17:09void main() {
printf("hello, world!\n");
}
0149デフォルトの名無しさん
2011/01/30(日) 17:09:580150デフォルトの名無しさん
2011/01/30(日) 19:02:580151デフォルトの名無しさん
2011/01/30(日) 20:37:260152デフォルトの名無しさん
2011/01/30(日) 21:37:240153デフォルトの名無しさん
2011/01/30(日) 21:50:52.dも吐くようにして.hと同名の.dがあれば.dをimportするようにすればいいんじゃね
0154デフォルトの名無しさん
2011/01/30(日) 22:33:04Dの外部ライブラリと比べればCのライブラリを使う方が圧倒的に多いんで
実現できるならぜひ欲しいな
0155デフォルトの名無しさん
2011/01/30(日) 22:55:05勇者様でしたか
期待しております
0156デフォルトの名無しさん
2011/01/30(日) 23:51:400157デフォルトの名無しさん
2011/01/31(月) 16:04:47どのような原因が考えられるでしょうか?
こんな感じのコードなんですが・・・
class Stage {
Unit[UNIT_ID] unit;
Unit[ENEMY_ID] enemy;
}
class MyStage : Stage {
void update() {
foreach(u; units) {
}
foreach(e; enemy) { // ←enemyを使用するとエラー。コメントアウトでコンパイルが通る
}
}
}
0158157
2011/01/31(月) 16:14:03エラー時に指定されている行番号がforeachの行で、
enemyを使用している箇所をコメントアウトするとコンパイルが通ると。。。
元々リリース用ビルドで作成していて、
気がついたらデバッグ(-inline無し)でリンクエラーになるようになっていました。
0159デフォルトの名無しさん
2011/01/31(月) 18:36:56mystage.dだけdmdに渡してる場合そういうことになることもあるかと思うが。
0160デフォルトの名無しさん
2011/01/31(月) 21:38:55それは無謀というのだ
0161デフォルトの名無しさん
2011/01/31(月) 23:12:500162デフォルトの名無しさん
2011/02/01(火) 00:01:540163デフォルトの名無しさん
2011/02/01(火) 00:28:410164157
2011/02/01(火) 00:41:20リンカに存在していることは確認済み、
順序を入れ替えてもNGでした。
>>160
-inline有りでNGならまだ良いんですが、
無しでNGなので困ってます。。。
うーん、階層が深すぎるかなぁ・・・
Java風にco/jp/hoge/app/・・・な感じでmodule切ってるんですが。
0165デフォルトの名無しさん
2011/02/01(火) 00:50:470166デフォルトの名無しさん
2011/02/01(火) 11:16:37luad、本体のGCであぼんorz
0167デフォルトの名無しさん
2011/02/04(金) 01:20:320168デフォルトの名無しさん
2011/02/04(金) 21:27:09もう.NETでいいんじゃないかな
0169デフォルトの名無しさん
2011/02/04(金) 21:31:050170デフォルトの名無しさん
2011/02/04(金) 22:00:560171デフォルトの名無しさん
2011/02/04(金) 22:01:410172デフォルトの名無しさん
2011/02/04(金) 22:26:55C#で20行くらいのコードならDなら2行で書けるね。たぶんだけど
0173デフォルトの名無しさん
2011/02/04(金) 22:30:59これが最高でDやめられないんだけど
0174デフォルトの名無しさん
2011/02/05(土) 01:33:14Qt4 もあるしな
D は色んな意味で遅過ぎた
残念だけど
0175デフォルトの名無しさん
2011/02/05(土) 03:47:490176デフォルトの名無しさん
2011/02/05(土) 04:15:20漏れの中ではな
0177デフォルトの名無しさん
2011/02/05(土) 12:04:18D言語は組み込み用途のC言語置き換えを担ってる。
今のところ敵はいないし(Go?)
0178デフォルトの名無しさん
2011/02/05(土) 12:52:07DはCの豊富なライブラリが利用できるからこれから流行る はず・・・
0179デフォルトの名無しさん
2011/02/05(土) 13:14:450180デフォルトの名無しさん
2011/02/05(土) 13:33:21☆ チン 〃 ∧_∧
ヽ ___\(\・∀・) <DのIDEまだー?
\_/⊂ ⊂_ )
/ ̄ ̄ ̄ ̄ ̄ ̄ /|
| ̄ ̄ ̄ ̄ ̄ ̄ ̄| .|
0181デフォルトの名無しさん
2011/02/05(土) 13:42:31C++は名前の通り単なる拡張だったし。
0182デフォルトの名無しさん
2011/02/05(土) 14:04:530183デフォルトの名無しさん
2011/02/05(土) 14:31:07Dほどしっくりくる言語は今のところない
0184デフォルトの名無しさん
2011/02/05(土) 16:10:13どれだけDのライブラリ群が使い物にならなかろうと
実はライブラリ面ではあんまり苦労しない
やっぱり問題なのはGUIライブラリみたいな巨大な奴
0185デフォルトの名無しさん
2011/02/05(土) 17:01:51以下の mixin を使って記述しておいてるんだけど、
__FILE__ と __LINE__ を書かなくてもちゃんと mixin した場所を
出力されるようにできないかな?
D2 なら動くはず、と思ってたんだけど、やっぱり駄目みたい。
template CompileMsg(string MSG, string FILE = __FILE__, int LINE = __LINE__)
{
pragma(msg, "CompileMsg = " ~ FILE ~ "(" ~ LINE.stringof ~ "):" ~ MSG);
}
〜ソース中で〜
mixin CompileMsg!("FIXME:bug", __FILE__, __LINE__); ←これならうまくいく。
mixin CompileMsg!("FIXME:bug");←本当はこうやって __FILE__ などを省略したい。
0186デフォルトの名無しさん
2011/02/05(土) 17:31:000187デフォルトの名無しさん
2011/02/05(土) 18:24:050188デフォルトの名無しさん
2011/02/05(土) 19:41:58「なんで仕様にはテンプレートがインスタンス化された場所の
ファイルと行になるって書いてあるのにならないの?」
「バグだよ」
という流れを見た気がする
0189デフォルトの名無しさん
2011/02/05(土) 20:06:01真っ向から叩き潰すバグだな。
最上級優先で対処すべきD崩壊因子バグだな。
0190デフォルトの名無しさん
2011/02/05(土) 22:06:25そう言われ続けて何年経った?
0191デフォルトの名無しさん
2011/02/06(日) 01:06:16一般的な目で見れば、そう言われたことなんてただの一度もないな。
0192デフォルトの名無しさん
2011/02/06(日) 01:10:460193デフォルトの名無しさん
2011/02/06(日) 03:54:430194デフォルトの名無しさん
2011/02/06(日) 04:40:000195デフォルトの名無しさん
2011/02/06(日) 14:40:530196デフォルトの名無しさん
2011/02/06(日) 14:48:160197デフォルトの名無しさん
2011/02/06(日) 15:10:520198デフォルトの名無しさん
2011/02/06(日) 16:28:480199デフォルトの名無しさん
2011/02/06(日) 16:43:11凶悪なテンプレートとか考えるとDの方が3歩くらい先を行ってる
C#はすでに崖っぷちだ
0200デフォルトの名無しさん
2011/02/06(日) 16:43:290201デフォルトの名無しさん
2011/02/06(日) 17:25:46C++なんて負の遺産を抱えてるから・・・
0202デフォルトの名無しさん
2011/02/06(日) 18:11:59機能的には関数として書くか式として書くかの違いしか無くて同じように使える関数内関数とクロージャに互換性が無いんだぜ、信じられるか……?
0203デフォルトの名無しさん
2011/02/06(日) 19:03:571.5で予約語が増えたから既存コードが微妙にコンパイルできなくなった
おまけにJ#とかDalvikとか亜種がいて本家とは互換性が無いと来てる
ひどい言語だ
0204デフォルトの名無しさん
2011/02/06(日) 20:26:40Dで終わりにしよう
0205デフォルトの名無しさん
2011/02/06(日) 20:38:030206デフォルトの名無しさん
2011/02/06(日) 21:19:59クラスを値型としても使えるようにし、多重継承にも対応
そして不評のGCは排除してphobosには標準コンテナライブラリが入る上、
Cのコードを直接書けるようになる
0207デフォルトの名無しさん
2011/02/06(日) 21:33:420208デフォルトの名無しさん
2011/02/06(日) 22:38:300209デフォルトの名無しさん
2011/02/07(月) 00:30:130210デフォルトの名無しさん
2011/02/07(月) 02:56:57ポリシーで分けるようにしたらいいんじゃないかな
0211デフォルトの名無しさん
2011/02/07(月) 03:29:130212デフォルトの名無しさん
2011/02/07(月) 06:14:280213デフォルトの名無しさん
2011/02/07(月) 07:00:18return null !is cast(TypeInfo_Class)info;
}
0214デフォルトの名無しさん
2011/02/07(月) 10:43:40dcollectionsって自分でアロケータ設定できなかったっけ?
「newしたりしない」ってのがどこまでのこと言ってるのか分からんけども
0215デフォルトの名無しさん
2011/02/07(月) 10:49:03最近、公式のガベージコレクションのドキュメントに、GCを使うDの操作って項目が追加されてたの知ってた?
まあ、勝手にnewとか言ってる時点で、GCのことよく分って無いんだろうけど。
0216デフォルトの名無しさん
2011/02/07(月) 11:06:22実は対象の型がどういうものかによって、TypeInfoの型も違ってたりする。
http://ideone.com/KutKu
これを利用して、is式で判定すればいい。
ちなみに、TypeInfoを取得した型の種類を判別するだけなら、is式一つで十分。
0217209
2011/02/07(月) 22:23:48正直なところかなぁ。
使わなくなったポインタは null を代入しておけば良い、というのを
読んで、それをやってみたりもするんだけど、微妙な不安感が・・・。
コンテナとは違うけど、std.string はソース見てみるとドンドコ new してる
のを見て不安になったり・・・。
だからゲーム開発でよく使う、固定サイズのバッファを
渡して使うコンテナ、というのはすごく安心できるんだよねぇ。
これ以上追加できないってときには assert で止まってくれていいから!
みたいな。
気持ちの問題かしらん。
dcollections はちょっと見てみます。ありがとう。
0218デフォルトの名無しさん
2011/02/08(火) 00:13:27メモリなんて丁寧に管理してやるよりGCに任せた方が安全だと
0219デフォルトの名無しさん
2011/02/08(火) 00:22:48固定サイズのバッファを使いたいなら、静的配列使えばいいじゃない。
0220209
2011/02/08(火) 08:01:32仕事でも使えたらなぁ、という妄想をしてしまうけど、
GC にべったりである限りはそれもできなさそう。
>>219
うん、静的配列を使って push とか pop とかできるコンテナを
書いてます・・・。
0221デフォルトの名無しさん
2011/02/08(火) 09:29:18あんまり難しく考えるなよ!
GCの動作の仕方なんか、以下の3つだけで説明できるんだから。
・GCはメモリが不足した時に動作する。
・どこからも参照されていないメモリを解放する。
・使われているメモリを隙間なく詰め直す。
上の3つを踏まえたうえで、これをもう一度読んでみ。
http://www.kmonos.net/alang/d/2.0/garbage.html
それでも理解できないとか、もう知ってるよ!とか言うなら、まだ難しく考えている証拠だろう。
0222デフォルトの名無しさん
2011/02/08(火) 12:46:29D言語はCoWな方針だからstd.stringの実装で基本newなのは仕方ないね
InPlace版かバッファ渡す版を用意すればそれで解決な気もする
0223デフォルトの名無しさん
2011/02/08(火) 12:50:080224デフォルトの名無しさん
2011/02/08(火) 20:34:440225209
2011/02/09(水) 03:08:55どうもありがとう。確かに難しく考えすぎかも。
もう一度読み返して勉強してみます。
ちなみに仕事はゲーム機関連で、メモリ管理も
ヒープをどーんと確保してそこから new し、
シーンを移るときはそれを一括で削除
するので、スマートポインタや参照カウンタはおろか、
デストラクタすら書く必要無いような作り方してる。
だからメモリ残量での苦労はあっても
メモリ管理で苦労した記憶はあまりないんだよね。
似たようなことが D 言語でも出来るなら何も問題は無いかも。
0226デフォルトの名無しさん
2011/02/09(水) 04:26:11std.conv の emplace がそれに相当するみたいだね。
以下のアンドレイへのインタビュー記事でたどり着けた。
ちなみに記事の内容も少し読んだけど面白かった。
ttp://slashdot.jp/~taro-nishino/journal/514236
0227デフォルトの名無しさん
2011/02/09(水) 09:11:12GC使ってるからって、大量のメモリを確保できない訳でもなく、大量のメモリを解放出来ない訳でもないから、そこは問題ないね〜。
むしろ、GC自体が使うメモリの消費を許容できるかどうかの方が重要だろう。
0228デフォルトの名無しさん
2011/02/09(水) 15:28:40とか出来ないですが、どうすればいいんですか?
0229デフォルトの名無しさん
2011/02/09(水) 17:58:43エスパーすると、funcの定義が void func(Socket); じゃ無い。
ちゃんと回答が欲しいなら、エラーメッセージを出すべし。
0230デフォルトの名無しさん
2011/02/10(木) 10:35:10void main(string[] args)
{
string cba = "CBA";
cba.sort;
writeln(cba); // ABC
assert(cba != "CBA"); // assert failed!
}
0231デフォルトの名無しさん
2011/02/10(木) 11:16:14{
string cba = "CBA"; //←"CBA"への参照を代入
cba.sort; //←"CBA"をソート(未定義動作)
writeln(cba); // ABC(?)
assert(cba != "CBA"); // assert failed!
}
たぶん、これで解決。
string cba = "CBA".dup;
たぶん。
0232デフォルトの名無しさん
2011/02/10(木) 13:15:400233デフォルトの名無しさん
2011/02/10(木) 13:41:34void main()
{
string xyz = "XYZ";
assert(xyz.reverse == "ZYX"); // assert success!
string abc = "ABC";
assert(abc.reverse == "ABC"); // assert success!
}
0234デフォルトの名無しさん
2011/02/10(木) 15:54:01何時の時代の話w
0235デフォルトの名無しさん
2011/02/10(木) 22:02:15そろそろ本気出せよ
0236デフォルトの名無しさん
2011/02/10(木) 22:41:33dup/idupしなかった場合、醜いことになるんだねぇ
バグなのか仕様なのか…
import std.stdio;
void main(string[] args)
{
string cba = "CBA";
cba.sort;
writeln("cba --- ", cba); // cba --- ABC
assert(cba == "ABC", "a-1"); // assert success!
assert(cba != "CBA", "a-2"); // assert failed!
string x = "CBA";
writeln("x --- ", x); // x --- ABC おいっ
assert(x == "CBA", "a-3"); // assert success! しかし、sの表示はABCなので、この書き方では正しく評価出来ていない
assert(x.dup.reverse == "ABC", "a-4"); // assert failed!
assert(cba != x, "a-5"); // assert failed!
}
0237デフォルトの名無しさん
2011/02/10(木) 23:21:140238デフォルトの名無しさん
2011/02/10(木) 23:37:360239デフォルトの名無しさん
2011/02/10(木) 23:39:380240デフォルトの名無しさん
2011/02/11(金) 01:07:37それ多分Linuxだから
Windowsだとおk
http://www.kmonos.net/alang/d/2.0/dmd-windows.html#differences
0241デフォルトの名無しさん
2011/02/14(月) 12:32:58phobosがコンパイラの処理を吸い出す方針なら
我々は望むと望まざるとに関わらず CTFE の輪の中にとらわれ
そこでのコンパイラエラーとの戦いに悩まされる羽目になるであろう
CTFEを言語機能の主要部に置くのと同様
コンパイル時スタックトレース(CTST?)もまた出力されねばならない
auto list = makeXXXlist(); // 関数 は stringを返す
assert(list == ["aaa","bbb","ccc"]); // コンパイルエラー in object.di
な、そう思うだろ?
0242デフォルトの名無しさん
2011/02/14(月) 13:12:31そう思うだろ? と言われても。
makeXXXlist() が見つからないから、再現できないし。
["aaa","bbb","ccc"] は string[] 型で string 型じゃ無いし。http://ideone.com/AHI9A
テンプレート使うならCTFE必須だし。
こっちとしては、どうしようも無い訳だけども。
0243デフォルトの名無しさん
2011/02/14(月) 13:14:38まあ、似たようなもんだけど。
0244241
2011/02/14(月) 13:55:09すまない
今困ってる訳じゃないんだ
// 関数 は stringを返す
ってのは最後の最後に判明したことで
string と string[] を比較するというお馬鹿なミスのために
大海原の真ん中で object.d のソースに漂着させられたことが問題なんだ
命綱(トレース)をくれ・・・
0245デフォルトの名無しさん
2011/02/14(月) 19:48:34実行段階まで来て意味不明なアクセス違反連発でくじけた
改めて見渡せば五体満足なGUIライブラリが一つもない
GUIなんて窓から投げ捨てろ
0246デフォルトの名無しさん
2011/02/14(月) 22:15:05CTFEは pragma(msg,〜〜〜); で、printfデバッグ的なことは出来るよ
0247デフォルトの名無しさん
2011/02/14(月) 23:13:46おk。ありがと
0248デフォルトの名無しさん
2011/02/15(火) 00:12:07htodを使って変換しようとしたところ、__int64とかint64_tとかwchar_tでコケます。
どうするのが安全でスマートなんでせうか?
0249デフォルトの名無しさん
2011/02/15(火) 02:30:080250デフォルトの名無しさん
2011/02/15(火) 15:16:52うーん。 確かにわかりづらいなこれ。
http://ideone.com/XWTiA
別にCTFEに限った事では無かったけど。
http://ideone.com/tpyRt
まあ、改善するまでは、こういうメッセージが出るって、覚えておくしかないね。
0251デフォルトの名無しさん
2011/02/16(水) 01:49:24GLEWはマクロ使いまくってるからhtodで変換するのは難しいと思う
ひとつひとつAPIエントリを取得したほうがいい
0252デフォルトの名無しさん
2011/02/16(水) 12:04:56ヘッダが15000行もあるぞ、正気かこれ?w
最初の200行くらいで環境依存のすりあわせをやってるから
自分の環境に合わせて -Dxxxx をいくつかやってやればエラーは止まると思う
Windows 32bitならたとえば
htod glew.d -D_MSC_VER=1200 // Visual C 6.0用の環境定義を流用
スマート(っぽい)けど安全かどうかはわからない
まともに使える物かどうかは試してみてくれw
0253デフォルトの名無しさん
2011/02/16(水) 12:36:17付け加え
glew.h しか試してない
他のヘッダは形式が全く違うし必要かどうかもわからないのでパス
CALLBACK のところがやっぱりおかしい
alias function 〜で extern (Windows) ※もしくはそれに類するもの
を1行ずつ追加しないといかん
0254デフォルトの名無しさん
2011/02/16(水) 13:13:340255デフォルトの名無しさん
2011/02/16(水) 14:09:390256デフォルトの名無しさん
2011/02/16(水) 15:58:300257デフォルトの名無しさん
2011/02/16(水) 22:28:590258デフォルトの名無しさん
2011/02/16(水) 22:29:49恥ずかしい・・・
テストするんじゃなかったorz
0259デフォルトの名無しさん
2011/02/16(水) 22:45:44while(!post2ch());
}
0260デフォルトの名無しさん
2011/02/16(水) 23:23:47>>251
>>252
ありがとう
glextをポーティングして、毎回APIエントリ取得することにしました。
こっちはほぼhtodそのまま。
ただし、やはり>>253みたいに手動でextern(Windows)する必要ありました。
(試行錯誤で一日使った…。でもこれが楽しいのかな。他言語にするか、と思った途端やる気なくなる)
0261デフォルトの名無しさん
2011/02/17(木) 00:11:21unittest {
while(!post2ch()) {}
}
0262デフォルトの名無しさん
2011/02/17(木) 01:10:42glext.hをhtodする時の備忘録。(Windows32bit)
・htod前
gl.hとglu.hのAPIENTRYとかを全消ししてinclude
wchar_tとかint64_tとか
typedef long int int32_t;
typedef long long int int64_t;
typedef unsigned long long int uint64_t;
typedef unsigned short wchar_t;
・htod後
頭にextern(Windows):
htodで追記されてるextern(C)を削除する
GLsyncとか構造体の宣言は手動でやる必要あり
関数宣言の引数名でrefとinが登場してる
他にもあったかもしれんけど、忘れますた。
アホっぽいところあったら指摘してください。
いやー、ちょっとOpenGL借りたいときFBO便利だー
しかし、wglMakeCurrentしないとwglGetProcAddressできないのは誰が決めたんだろう
0263デフォルトの名無しさん
2011/02/18(金) 01:16:40デリゲートの.ptrがどの実体を指しているか判定する方法はありますでしょうか。
たとえば
class Inst { void f() {} }
auto inst = new Inst;
auto deli = &(inst.f);
と置いたとき、deli.ptrがinstを指すものかどうか判定したいのですが……
0264デフォルトの名無しさん
2011/02/18(金) 06:59:440265デフォルトの名無しさん
2011/02/18(金) 09:56:29正しい方法じゃ無いかもしれないが出来た。
http://ideone.com/MSWxU
0266デフォルトの名無しさん
2011/02/18(金) 19:57:090267デフォルトの名無しさん
2011/02/18(金) 21:04:200268デフォルトの名無しさん
2011/02/18(金) 21:17:330269デフォルトの名無しさん
2011/02/18(金) 21:50:18くそー、ノロケか・・・
俺的にはforeach( ; )をforeach( : )に修正して欲しい
0270デフォルトの名無しさん
2011/02/18(金) 22:16:34class A2 : A1{}
class A3 : A2{}
:
という継承関係があるとき、(n <= m)なクラスAn, Amについて
あるメンバ関数fがAn〜Amの間でオーバーライドされているかの判定は
どのような方法がありますか?
isで比較してみたのですがこの方法ではどうも結果がおかしいです
http://ideone.com/bGbOD
0271デフォルトの名無しさん
2011/02/18(金) 22:28:19バグなの?仕様なの?
0272デフォルトの名無しさん
2011/02/19(土) 02:13:55バグじゃね
0273デフォルトの名無しさん
2011/02/19(土) 07:59:49void delegate() dg1 = &a1.f;
writeln(dg1.funcptr == dg1.funcptr);
デリゲート変数の関数ポインタを比較で、とりあえず出来るみたいだけど
込み入った事すると、前スレで上がったsuper周りのバグに引っかかって、うまく機能しないかも
0274デフォルトの名無しさん
2011/02/19(土) 09:26:38class invariantが残ってね?
0275デフォルトの名無しさん
2011/02/19(土) 12:41:30ありがとうできました
superこわいよsuper
http://ideone.com/gQeVL
0276デフォルトの名無しさん
2011/02/19(土) 12:46:06private設定で貼ってしまったorz
http://ideone.com/zQiIB
0277デフォルトの名無しさん
2011/02/19(土) 13:11:33常駐ソフト(IME Watcher)が悪さしていたでござる
今までWinXPのタスクバーに抵抗してたのに・・・w
0278デフォルトの名無しさん
2011/02/19(土) 13:58:12ありがとうございました。
そのコードを参考に組んでみたところ、
なにかうまくいかないので調べていたところ、
interface参照をcast(void*)していたことが原因でした。
http://ideone.com/fJEJ3
cast(Object)で再びアドレスが一致したので、
正解ではないかもしれませんがこれでいけそうです。
ありがとうございました。
0279デフォルトの名無しさん
2011/02/19(土) 16:43:57void func(T)(T obj) if (is(T:Object)) {}
interface I {}
void main() {
I obj = new class I {};
func(obj);
}
これがエラーになるのって言語仕様的にどうなん?
interfaceを実装するものは確実にObjectも継承すると思うんだが…
0280デフォルトの名無しさん
2011/02/19(土) 17:23:330281デフォルトの名無しさん
2011/02/19(土) 20:09:55.52後で思ったんだけど、writeln()に出力する時にcast(void*)が必要なだけで、
普通の比較にはいらなかった気がするw
0282デフォルトの名無しさん
2011/02/19(土) 23:52:14.400283デフォルトの名無しさん
2011/02/20(日) 01:59:31.78マジだ
0284デフォルトの名無しさん
2011/02/20(日) 12:37:09.930285デフォルトの名無しさん
2011/02/20(日) 21:47:24.13このD使いめッ!
0286デフォルトの名無しさん
2011/02/20(日) 23:40:14.46拡張子は.mな
0287デフォルトの名無しさん
2011/02/21(月) 00:03:09.29S言語が正解
0288デフォルトの名無しさん
2011/02/21(月) 02:40:57.020289デフォルトの名無しさん
2011/02/21(月) 02:44:27.160290デフォルトの名無しさん
2011/02/21(月) 22:58:34.97相変わらずだな
0291デフォルトの名無しさん
2011/02/21(月) 23:11:34.100292デフォルトの名無しさん
2011/02/21(月) 23:12:05.430293デフォルトの名無しさん
2011/02/22(火) 20:12:27.350294デフォルトの名無しさん
2011/02/23(水) 02:08:38.080295デフォルトの名無しさん
2011/02/24(木) 19:29:36.50std.string.cmpとかpureでnothrowで@safeであるかのように思うだろ?
ところがどっこい……っ!
0296デフォルトの名無しさん
2011/02/24(木) 20:10:23.87Objective-Cとかぶる。
0297デフォルトの名無しさん
2011/02/24(木) 22:33:40.59http://dvcs.servehttp.com/op/Looping/file/b952a5d72c9f
誰かD言語(gcc)版書いてくれ
俺には無理だ
0298デフォルトの名無しさん
2011/02/24(木) 22:53:14.95ldcも復活したって噂は聞いたが
0299デフォルトの名無しさん
2011/02/24(木) 23:51:11.05これか。コードはともかくGDCの環境整えるのがめんどくさいな。
0300デフォルトの名無しさん
2011/02/25(金) 00:04:11.28-O -inlineをつけたdmdでstructでやってみたら8秒くらいだった
classだとvirtualになるからかさらに1.5倍くらいかかる
もうちょっと頑張れ
0301デフォルトの名無しさん
2011/02/25(金) 06:15:16.29「Dでは全部virtualだけど、オーバライドされてない関数はコンパイラが検出して非virtualにしてくれるよ!」
ってどっかに書いてあった気がしたんだが。
まあ今まであんまりfinalつける癖がなかったから、
「速度的なアドバンテージもあるから、なるたけつけるようにしようね!」
っていうDさんの優しさだと思っとく。
0302デフォルトの名無しさん
2011/02/25(金) 06:56:40.29リンカが検出してくれるなら判るが
コンパイラに検出可能なんかね
0303デフォルトの名無しさん
2011/02/25(金) 06:59:42.42あとモジュールprivateなクラスはソース内で閉じてるから検出可能とは思うけどどうなんだろう。
0304デフォルトの名無しさん
2011/02/25(金) 11:09:35.51オブジェクトAとBが相互参照していても
その相互参照以外の参照ルートがなくなるとGCが回収してくれて、
回収時にデストラクタでメッセージングして相互参照を消すコードを書くような形で。
0305デフォルトの名無しさん
2011/02/25(金) 11:49:33.352.052であばばばってなった人殆どいないんかな・・・
std.string.replace >> std.array.replace
std.date >> std.datetime
俺はかーなーりー痛かったぞと。
0306デフォルトの名無しさん
2011/02/25(金) 17:37:58.59そんな痺れるような痛みが大好きなんですよね。わかります。
0307デフォルトの名無しさん
2011/02/25(金) 17:43:09.680308デフォルトの名無しさん
2011/02/25(金) 19:43:51.99replaceはまだしもstd.datetimeはドキュメントが膨大すぎて途方に暮れざるを得ない
だが翻訳の中の人の痛みに比べたらこの程度…
0309デフォルトの名無しさん
2011/02/25(金) 20:07:01.83今度はライブラリかー
わくわくが止まらない
0310デフォルトの名無しさん
2011/02/25(金) 20:21:28.19それはそうと、Linuxで開発してる側の人間から見ると、
DMDとGDBて同じにしか思えないんだが…何か違うのかなぁ。
2.052のzip内のDMDがlibcのバージョン違いで動かなかったもんで、
ソースをgccでコンパイルしなおしたりしてるんだけど。
0311デフォルトの名無しさん
2011/02/25(金) 20:22:17.99private付けてくれよ
0312デフォルトの名無しさん
2011/02/25(金) 21:19:13.230313デフォルトの名無しさん
2011/02/25(金) 21:34:41.45それ、デフォルトの動作じゃね?
DMDは世代型コピーGCなはず。
0314デフォルトの名無しさん
2011/02/25(金) 22:27:52.800315デフォルトの名無しさん
2011/02/26(土) 00:20:38.13コンパイルできる奴が1つも無いというのは置いておくとして
どれが見捨てられてどれに未来があるのかがまったく読めないのが困る
いっそどれが生き延びてもいいようにラッパを書くか?
0316デフォルトの名無しさん
2011/02/26(土) 00:45:29.690317デフォルトの名無しさん
2011/02/26(土) 00:57:31.75かなり適当だけど直してみたhttp://codepad.org/6xHhr1vh
getInstalledTZNamesも直さないといけないはずだけど面倒なので誰か任せた
0318デフォルトの名無しさん
2011/02/26(土) 02:08:30.35あるよ
ttp://www.dsource.org/projects/qtd
頑張れば動くんじゃないかと思う
0319デフォルトの名無しさん
2011/02/26(土) 02:34:41.420320デフォルトの名無しさん
2011/02/26(土) 03:58:01.19でも9年も前か
残念だけど
話にならんな〜
0321デフォルトの名無しさん
2011/02/26(土) 04:39:16.05ん?誤爆?
QtDの最終更新は先月だけど
0322デフォルトの名無しさん
2011/02/26(土) 08:26:36.62classにせざるを得ないと思うんだけど、GC付きの言語でこれやると
例えばMouseEventとかマウスが動くたびに大量のnewが発生してGCがバリバリ動いてしまう
ゲームのメイン処理中はプールしたメモリ内をやりくりしてGC動かないように必死なのに
こういうフレームワーク的な部分でGC発動してたら萎えるなと思うんですけど
そういうものと諦めるものなんですか?
0323デフォルトの名無しさん
2011/02/26(土) 09:16:27.72newは大量だろうけどその都度GCする訳じゃないし
0324デフォルトの名無しさん
2011/02/26(土) 10:35:40.43ttp://www.kmonos.net/alang/d/2.0/memory.html#freelists
0325デフォルトの名無しさん
2011/02/26(土) 11:51:34.23MAXに到達したらGC発動! ぴきーん!
そんなゲームを作ってくれ
# こういう単純なのが演出しだいでウケるんだよな
0326デフォルトの名無しさん
2011/02/26(土) 12:19:09.65ここの動作を kwsk
0327デフォルトの名無しさん
2011/02/26(土) 12:47:59.19GC過程でWin95時代のデフラグみたいなのが表示されるんだ
0328デフォルトの名無しさん
2011/02/26(土) 12:55:52.41PCの性能がよくなってるから速い遅いの感覚があてにならん
0329デフォルトの名無しさん
2011/02/26(土) 20:34:06.97残りはオブジェクトプールでなんとかってとこかと
0330デフォルトの名無しさん
2011/02/26(土) 20:43:42.76デフラグ表示の過程でもnewするだろうから……ゴクリ
0331デフォルトの名無しさん
2011/02/26(土) 23:10:08.86よくわからなくなってきた
SDLかわいいよSDL
少し前にSDLでゲーム作ってみたら
テキスト表示するのに毎回フォント→画像イメージ生成する羽目になって
GCについては考えないことにしたw
0332デフォルトの名無しさん
2011/02/26(土) 23:34:46.81キャッシュ機構作っとくといいよ
0333デフォルトの名無しさん
2011/02/27(日) 11:50:21.120334デフォルトの名無しさん
2011/02/27(日) 14:09:48.65OBJ = $(SRC:.d=.obj)
みたいなことできないの?
0335デフォルトの名無しさん
2011/02/27(日) 15:32:44.390336デフォルトの名無しさん
2011/02/27(日) 20:07:45.83もうちょっとやり方調べてみるかー
0337デフォルトの名無しさん
2011/02/27(日) 21:26:58.11みんな参加しようぜ
ttp://partake.in/events/feac18f7-0b78-4129-92c5-ad0cce8feafb
0338334
2011/02/27(日) 21:32:33.53ひょっとしてDigitalMarsのmakeって何種類かある?
dmdについくるのはハズレmakeだったりするのか
0339デフォルトの名無しさん
2011/02/27(日) 21:42:06.820340デフォルトの名無しさん
2011/02/27(日) 22:10:13.890341デフォルトの名無しさん
2011/02/27(日) 22:30:33.39とかやればいいような気がしてきた
0342デフォルトの名無しさん
2011/02/28(月) 19:51:18.72東京は遠い…
会社がDのために出張費を出してくれるとか
150%ありえないか
0343デフォルトの名無しさん
2011/02/28(月) 19:57:41.61どんな僻地に住んでんだよ
0344デフォルトの名無しさん
2011/02/28(月) 20:15:25.33何を言っとるんだ。
東京「が」僻地なんで遠いんだ。
0345デフォルトの名無しさん
2011/02/28(月) 20:17:20.800346デフォルトの名無しさん
2011/02/28(月) 20:27:13.730347デフォルトの名無しさん
2011/02/28(月) 20:45:20.260348デフォルトの名無しさん
2011/02/28(月) 21:17:08.77宝島
0349デフォルトの名無しさん
2011/02/28(月) 21:28:30.260350デフォルトの名無しさん
2011/02/28(月) 21:37:07.310351デフォルトの名無しさん
2011/02/28(月) 23:41:25.570352デフォルトの名無しさん
2011/03/01(火) 02:15:27.09http://ideone.com/t1LaP
0353デフォルトの名無しさん
2011/03/01(火) 02:58:32.752.051 では出ない
2.052 では結合後のlength が 2で返ってきててワロタ
きっとLinux 64bitサポートの恩恵に違いない・・・さて 2.052をアンインスト(ry
0354デフォルトの名無しさん
2011/03/01(火) 07:56:45.27左右の型を合わせるよう気をつけたら大丈夫かも
0355デフォルトの名無しさん
2011/03/01(火) 09:43:11.00static assert( ("" ~ '\xE3').length == 1 ); // ver.2.051
static assert( ("" ~ '\xE3').length == 2 ); // ver.2.052
どうみても(ry
0356デフォルトの名無しさん
2011/03/01(火) 11:45:44.700357デフォルトの名無しさん
2011/03/01(火) 16:22:55.86irrlicht engine の D portingやりかけ版を発見(まだ動かない)
起動してもグレー画面だった
中をちらっと見たところ GC? 何それおいしいの? な不安を感じたので
これ以上の探索を断念w (ヘッダの変換だけでいいよもう・・・)
対応環境は windows+OpenGL(derelict) D2
0358デフォルトの名無しさん
2011/03/01(火) 18:40:44.06スレッドセーフな配列を作りたい場合は以下で良いのでしょうか?
synchronized Class[] Array;
それとも要所要所にキチンとsynchronized ブロックするべき?
0359デフォルトの名無しさん
2011/03/01(火) 23:00:13.030360デフォルトの名無しさん
2011/03/01(火) 23:19:03.68それだと変数宣言がsynchronizedブロックで囲まれるだけじゃないかな
使う時にsynchronizedすべきかと
0361デフォルトの名無しさん
2011/03/02(水) 00:11:08.93DWT2のbaseとswt(win32)とswtsnippetsを2.052で動かせたのでパッチ置いとく
というかDWTって何なの?
tioportみたいにSWTからJava to Dで自動変換してるの?
それとも全部手作業で変換してるの?
0362デフォルトの名無しさん
2011/03/02(水) 03:25:12.59DFL以外にも生きてるのがあったとは
0363デフォルトの名無しさん
2011/03/02(水) 06:05:51.66http://ideone.com/t2oy6
0364デフォルトの名無しさん
2011/03/02(水) 06:44:20.97問題は100点満点で連続1桁を取るレベルの英語力なんだよ…
小学生から英語やっとくべきだったなぁ
Dを触りだしてからとみにそう思う
0365デフォルトの名無しさん
2011/03/02(水) 11:41:10.17バグじゃね。
0366デフォルトの名無しさん
2011/03/02(水) 16:49:23.27なんだこれ
こんなバグあるのか
0367デフォルトの名無しさん
2011/03/02(水) 18:21:32.620368デフォルトの名無しさん
2011/03/02(水) 18:39:58.23gtkDもこないだ 2.050,Windows で試してみたらさっくり動いた
trunkはそれなりに更新されているみたい
0369デフォルトの名無しさん
2011/03/02(水) 18:57:07.22HTML5/CSS3のレンダラを書けばそれでGUI代わりにならね?的な。
0370デフォルトの名無しさん
2011/03/02(水) 19:18:15.070371デフォルトの名無しさん
2011/03/02(水) 19:28:30.510372デフォルトの名無しさん
2011/03/02(水) 20:24:04.810373デフォルトの名無しさん
2011/03/02(水) 21:02:29.72パッチを送る直前まで行ったけど踏ん切りがつかない
英文添削スレとかあるのかと思ったのに無いのか…
0374デフォルトの名無しさん
2011/03/02(水) 21:06:00.86このスレは住人の1/4くらいは東大関係者だし
0375デフォルトの名無しさん
2011/03/02(水) 21:12:46.97そういうところで気軽に頼めたりするのが2chのいいところ。
0376デフォルトの名無しさん
2011/03/02(水) 21:21:15.50ちょっと変な所が無いか見ていただけますでしょうか。スレ汚しごめんなさい
Title: DWT2 patch for D2+Phobos
Dear Jacob Carlborg,
Nice to meet you.
(こんにちははじめまして)
I wrote patch to compile and execute DWT2 with dmd 2.052 (and Tango 0.99.9).
(dmd 2.052とあとTangoでDWT2をコンパイル・実行するためのパッチを書きました)
But target is only base, swt (for win32), and swtsnippets.
(対象はbaseとswt(win32)とswtsnippetsだけです)
And, I fixed bugs in swt for win32:
(あと、swt(win32)のバグをいくつか直しました)
* Access violation in beginning drag at TableItem.
(TableItemのドラッグ開始時にアクセス違反)
* Garbling multibyte string at CTabItem.
(CTabItemでマルチバイト文字列が文字化けする)
* FileDialog doesn't become modal.
(FileDialogがモーダルにならない)
* to_path() problem in rakefile.
(rakefileのto_path()の問題)
My patch include these.
(これらの修正もパッチに入れてます)
Please use it if it is good.
(よろしければお使い下さい)
My English unskilled, sorry.
(私は英語が下手くそです。すいません)
Best regards,
(署名)
0377デフォルトの名無しさん
2011/03/02(水) 21:35:57.35Hi, Jacob! とかで初めて、 Thanks! とかでしめるのをよく見る。
あと My English unskilled, sorry. とかは不要じゃない?
0378デフォルトの名無しさん
2011/03/02(水) 22:02:25.37気軽に使わない方がいいって聞いたことがある
0379デフォルトの名無しさん
2011/03/02(水) 22:06:09.81俺は丁寧で気持ちの良いコミュニケーションが好きだから、
could you kindly ~ please?
みたいなのは普通に使うぞ。
0380デフォルトの名無しさん
2011/03/02(水) 22:15:06.40最初だから多少堅めの方がいいんじゃないかなと思っていますが
開発系の常識だと軽い方がいいのかなぁ
とりあえず「英語下手です」とかは外す事にします
なぁに、今はいい翻訳ソフトもあるんだから何とかなるさ
アドバイスありがとうございます
0381デフォルトの名無しさん
2011/03/02(水) 22:24:34.520382デフォルトの名無しさん
2011/03/02(水) 22:29:09.76語感的に
I wrote a patch for DWT2(base, swt-win32, and swtsnippets) to compiling it with dmd 2.052 (and Tango 0.99.9).
Additionally, I fixed some bugs in swt-win32:
みたいなほうが落ち着くけど、
前置詞とかネイティブでも迷う時があるらしいし。
0383デフォルトの名無しさん
2011/03/02(水) 23:04:06.41Hi Jacob,
I've written a patch which allows dmd(2.052) and
Tango(0.99.9) to compile and execute DWT2.
It works for base, swt on win32 and swtsnippets.
Also, it fixes some bugs of swt/win32.
Bugs fixed in my patch are:
- An access violation that occurs at the beginning of dragging a TabletItem.
- Multibyte strings are garbled on CTabItem.
- Sometimes it's unable to set FileDialog to be modal.
- to_path() problem in rakefile.
Could you please have a look at it?
I hope it will be included in D.
Thanks,
you name
バグについてはもっと詳細に具体的な情報を書いた方が良いと思われ。
もし既知のバグなら関連する URL とか、発生するタイミングとか。
0384デフォルトの名無しさん
2011/03/02(水) 23:06:40.56よく理解していないので、おかしな文書だったらスマソ。
0385デフォルトの名無しさん
2011/03/02(水) 23:28:32.04意味さえ伝わればおkくらいの勢いで、添削していただいた文を参考に書き直して送ってみます
後は野となれ灰となれロストなれ
スレ占有失礼しました。ありがとう!
0386デフォルトの名無しさん
2011/03/02(水) 23:33:53.730387デフォルトの名無しさん
2011/03/03(木) 06:30:32.260388デフォルトの名無しさん
2011/03/03(木) 17:18:37.840389デフォルトの名無しさん
2011/03/03(木) 20:21:20.41irrlicht のインターフェースファイルをてにいれたぞ!
あと1年はやく出会いたかったぜ・・・
0390デフォルトの名無しさん
2011/03/03(木) 21:43:40.600391デフォルトの名無しさん
2011/03/03(木) 21:48:17.98C++とのIFをしっかり盛り込んだら本末が転倒しちゃう!
0392デフォルトの名無しさん
2011/03/03(木) 21:51:35.63だから完璧なインタフェースも無理だよ」
0393デフォルトの名無しさん
2011/03/03(木) 21:55:13.880394デフォルトの名無しさん
2011/03/03(木) 22:17:04.50portingェ・・・
0395デフォルトの名無しさん
2011/03/03(木) 22:24:03.970396デフォルトの名無しさん
2011/03/03(木) 22:29:34.96書こうかな
と思ったところでstd.dateの二の舞になるから誰も書かないだけだと気づいた
0397デフォルトの名無しさん
2011/03/03(木) 22:48:03.69馬鹿な、tangoは.NETスタイルだぞ
0398デフォルトの名無しさん
2011/03/03(木) 23:22:53.830399デフォルトの名無しさん
2011/03/04(金) 00:24:57.36僕のはイカスAVが出るスタイルさ と言うべき
0400デフォルトの名無しさん
2011/03/04(金) 01:51:28.61って定義なのに
enforce!sizet(line.length, new IOException);
じゃなくて
enforce(line.length, new IOException);
で呼び出せるのってどんな仕組み?
0401デフォルトの名無しさん
2011/03/04(金) 02:18:19.07関数テンプレート の暗黙型推論
0402デフォルトの名無しさん
2011/03/04(金) 11:54:11.30const(Foo) foo = getFoo1();
:
foo = getFoo2();
とかやりたいときにいちいち
import std.typecons
とやって
Rebindable!(Foo) foo = getFoo1();
とやるなんて狂気の沙汰だぜ
autoすら使えない…
おまけに演算子オーバーロードとか無効化されるし
0403デフォルトの名無しさん
2011/03/04(金) 14:38:54.51int[] arr;
std.algorithm.countUntil(arr, c); // OK
int cc;
const(int[]) carr;
std.algorithm.countUntil(carr, cc); // だめ
うーん、通ってほしい…
0404デフォルトの名無しさん
2011/03/04(金) 15:14:57.88std.string.split("a,b,c", ","); // OK
std.string.split("a,b,c", COMMA); // (immutable(char)[], immutable(char[]))だから駄目と言われる
templateの引数チェックが鬼すぎるんだ
0405デフォルトの名無しさん
2011/03/04(金) 22:04:11.01Dのない生活なんて考えただけで・・・
やだー!!
0406デフォルトの名無しさん
2011/03/04(金) 22:51:12.24DWTには何に問題も無いと申したか
WDTだって?ちょっとぐぐってくる!
0407デフォルトの名無しさん
2011/03/04(金) 22:54:55.30よせ、それはまだ極秘のプロジェクトだ
かかわると消されるぞ
0408デフォルトの名無しさん
2011/03/05(土) 00:14:25.09ubyte[] はイメージしやすいけど、似たようなもん?
0409デフォルトの名無しさん
2011/03/05(土) 00:16:26.69void main() {
.replace("a", .regex("a"), "b"); // ok
.replace("a"w, .regex("a"w), "b"w); // compile error
.replace("a"d, .regex("a"d), "b"d); // compile error
}
Dって楽しいなァアーハハハアハアハアハ
0410デフォルトの名無しさん
2011/03/05(土) 00:22:01.25有名進学塾に通う塾生達かな
空っぽの心で勉強だけひたすらしてるイメージ
0411デフォルトの名無しさん
2011/03/05(土) 12:52:18.950412デフォルトの名無しさん
2011/03/05(土) 13:39:22.72こっちは学校のトイレでタバコ吸ってるDQN達か。
噛み付くぞてめぇ!って粋がってるイメージ
0413デフォルトの名無しさん
2011/03/05(土) 14:25:07.68Dのプロジェクトなんて無数にあるぜ!
でも心の綺麗な人にしか見えないんだ
0414デフォルトの名無しさん
2011/03/05(土) 14:35:04.700415デフォルトの名無しさん
2011/03/05(土) 15:53:42.34空に瞬いている星と地に墜ちた星を見分けられる
ようになりたい
0416デフォルトの名無しさん
2011/03/05(土) 16:10:17.11コンパイルエラーが出ない
const関係で詰んだりしない
unittestが意味不明な理由で失敗しない
循環static thisで落ちたりしない
どこからともなくHiddenFuncErrorが投げられたりしない
よくわからない箇所でアクセス違反が発生したりしない
虚しい…
0417デフォルトの名無しさん
2011/03/05(土) 16:39:15.030418デフォルトの名無しさん
2011/03/05(土) 16:47:57.970419デフォルトの名無しさん
2011/03/05(土) 16:53:22.990420デフォルトの名無しさん
2011/03/05(土) 17:02:55.720421デフォルトの名無しさん
2011/03/05(土) 17:32:44.810422デフォルトの名無しさん
2011/03/05(土) 17:34:11.47VisualDはutf-8で保存してくれるようになったんかな。
0423デフォルトの名無しさん
2011/03/05(土) 18:32:53.980424デフォルトの名無しさん
2011/03/05(土) 18:40:03.66画像付きで解説してるところないですか?
あるいは誰か解説をしてもらえると幸いです。
0425デフォルトの名無しさん
2011/03/05(土) 18:47:06.850426デフォルトの名無しさん
2011/03/05(土) 18:59:34.66Dの1_234.56みたいな数値定数とr""を認識してくれる設定ファイルが欲しい・・・
0427デフォルトの名無しさん
2011/03/05(土) 19:07:17.03VS2003〜2010のどれかをインストールしてる状態でVisualDをインストールしてDMDのフォルダを指定するだけじゃん
VS立ち上がったままでやったら駄目だぞ?
0428デフォルトの名無しさん
2011/03/05(土) 19:15:14.70`\"`とかやると変になるよな
正規表現キーワードとかで何とかなるのかしらん
0429デフォルトの名無しさん
2011/03/05(土) 19:18:51.42うまく機能してるか不安だけど
/(?<!\w)0[xX][\da-fA-F_]*(\.[\da-fA-F_]+)?([pP][\+\-]?[\d_]+)?[fFL]?i?(?!\w)/k
/(?<!\w)([\d_]+\.([\d_]+)?|([\d_]+)?\.[\d_]+)([eE][\+\-]?[\d_]+)?[fFL]?i?(?!\w)/k
/(?<!\w)([1-9][0-9_]*|0[bB][01_]+|0[xX][0-9A-Fa-f_]+|0[0-7_]*)(L|u|U|Lu|LU|uL|UL)?(?!\w)/k
/(`[^`]*`|(?<!\w)r"[^"]*"|(?<!\w)q"[^"]*")[cwd]?/k
0430デフォルトの名無しさん
2011/03/05(土) 19:32:19.31/((?<!\w)x"[\s0-9A-Fa-f]*"|(?<!r)"([^"\\\r\n]|\\.)*?")[cwd]?/k
/'[^']+'/k
標準機能の""と''の色付けは無効にして、全部正規表現キーワードでやってる
0431デフォルトの名無しさん
2011/03/05(土) 19:32:30.51GJ
0432デフォルトの名無しさん
2011/03/05(土) 20:37:02.750433デフォルトの名無しさん
2011/03/05(土) 21:48:46.230434デフォルトの名無しさん
2011/03/05(土) 21:59:52.220435デフォルトの名無しさん
2011/03/05(土) 22:23:57.230436デフォルトの名無しさん
2011/03/05(土) 22:27:40.81class Test
{
@property
void delegate() func()
{
return _func;
}
private void delegate() _func;
}
がコンパイル通らなくてびっくりした。
void delegate() @propertyっていう型に認識されてるっぽいんだが、そんなものあるのか?
まぁ今後はvoid delegate() func() @propertyって後置しようと思ってるから良いんだけど…
0437デフォルトの名無しさん
2011/03/05(土) 22:42:55.960438デフォルトの名無しさん
2011/03/05(土) 22:54:55.62@property ってアノテーションと同じ感覚で書きたくなるよなあ
0439デフォルトの名無しさん
2011/03/05(土) 23:06:13.31これ以上@に変な意味与えるのやめて
0440デフォルトの名無しさん
2011/03/05(土) 23:17:33.18プロパティってすぐ分からないから1行に書きたくなる俺は異端?
0441デフォルトの名無しさん
2011/03/06(日) 06:26:20.240442デフォルトの名無しさん
2011/03/06(日) 18:58:03.40文字コードの話ならエディタでDのソースコードを開いている状態で
VSのファイルメニュー→「保存オプションの詳細設定」で変えられるぞ
ソリューションエクスプローラで.dファイルを選択しているだけだと出てこないのが罠
0443デフォルトの名無しさん
2011/03/06(日) 20:54:45.48VisualDがutf-8で保存してくれない……。
129 名前:デフォルトの名無しさん[sage] 投稿日:2010/09/14(火) 11:32:49
日本語が使えなくなるだけだと思えば許せる。
VisualDはVS2010のデバッガが使えるってだけで最高だけど、やっぱりインテリセンスがなぁ。
130 名前:デフォルトの名無しさん[sage] 投稿日:2010/09/14(火) 17:42:21
ファイル→保存オプションの詳細設定でUTF-8に変えてくれる
デフォでUTF-8にして欲しいけどな
131 名前:デフォルトの名無しさん[sage] 投稿日:2010/09/15(水) 00:58:23
簡単に解決できそうな気がするけど。問題として認識されてないんだろうなあ。
132 名前:デフォルトの名無しさん[sage] 投稿日:2010/09/15(水) 01:00:25
いつものパターンか
0444デフォルトの名無しさん
2011/03/06(日) 21:02:38.90VSの仕様って良く分からんけど、アドオン側からデフォルトの保存コードを変更できるもんなの?
VS本体でも変えられないのに
0445デフォルトの名無しさん
2011/03/06(日) 21:29:46.06保存オプションからコードは変えられるんだろ?
新規作成かなんかの時にアドオンからutf8にしてくれるなら、
別にVSの「デフォルトの保存コード」を変更する必要はなくね?
いや、そういうことができるのかはわからんし、結論としてはよくわからんが。
0446デフォルトの名無しさん
2011/03/06(日) 21:32:29.56Visual D の新規ファイルのテンプレートに
突っ込んでやればいいんじゃないかな
0447デフォルトの名無しさん
2011/03/07(月) 05:55:31.67なんか、前はなぜまともにいかなかったのかわからないほどあっさりでけたw
これ、メソッドのインテリセンスはなし?
0448デフォルトの名無しさん
2011/03/07(月) 10:50:50.270449デフォルトの名無しさん
2011/03/07(月) 14:11:28.12標準出力に出ると気づかずに時間を無駄にした・・・統一して orz
コンパイラ →エラー出力
インラインアセンブラ→標準出力
リンカ →標準出力
0450デフォルトの名無しさん
2011/03/07(月) 20:17:26.02どこを直せばいいことやら…
0451デフォルトの名無しさん
2011/03/07(月) 20:56:17.87dmd
0452デフォルトの名無しさん
2011/03/07(月) 21:52:38.890453デフォルトの名無しさん
2011/03/07(月) 22:38:49.620454デフォルトの名無しさん
2011/03/07(月) 22:59:08.750455デフォルトの名無しさん
2011/03/08(火) 02:37:21.810456デフォルトの名無しさん
2011/03/08(火) 06:09:17.480457デフォルトの名無しさん
2011/03/08(火) 23:52:27.110458デフォルトの名無しさん
2011/03/09(水) 00:04:09.010459デフォルトの名無しさん
2011/03/09(水) 00:08:55.700460デフォルトの名無しさん
2011/03/09(水) 00:10:34.660461デフォルトの名無しさん
2011/03/09(水) 01:08:10.12クラスは参照だっていうから、C++ のように & してたけどうまくいかなんだ。
emplace のソース見てはじめて知ったけど、常識?
0462デフォルトの名無しさん
2011/03/09(水) 01:09:21.340463デフォルトの名無しさん
2011/03/09(水) 01:15:08.22むしろ言わないほうがいいと思うぞ。
普通の会社はプログラミング言語といえばC系とJavaとC#とPHPぐらいしか選択肢がない。
0464デフォルトの名無しさん
2011/03/09(水) 13:40:29.21これは誰か翻訳手伝ってくれということだな・・・
0465デフォルトの名無しさん
2011/03/09(水) 19:25:49.64つまり手伝ってあげて
0466デフォルトの名無しさん
2011/03/09(水) 23:13:25.42alias this すれば近い感じで使えるのね。便利便利。
0467デフォルトの名無しさん
2011/03/10(木) 10:58:53.050468デフォルトの名無しさん
2011/03/10(木) 13:59:19.02そういう既存のものに自分機能をつけたいことはあるかもしれない。
0469デフォルトの名無しさん
2011/03/10(木) 19:49:49.59Variant使えばいいのか?
0470デフォルトの名無しさん
2011/03/10(木) 20:04:22.60http://www.kmonos.net/alang/d/2.0/phobos/std_typecons.htmlのstruct Tupleのとこ
使えるのか?
0471デフォルトの名無しさん
2011/03/10(木) 20:34:30.390472デフォルトの名無しさん
2011/03/11(金) 10:58:32.61継承
タプル
variant型
お好きなのをどうぞ。
0473デフォルトの名無しさん
2011/03/11(金) 11:54:04.50タプル→型の順番はコンパイル時に決まる。その場で定義できる構造体に等しい。
variant→実行時に何でも入るが、実行時処理が増えるのと、値取り出しの型に関する処理が面倒。
って感じか。
0474デフォルトの名無しさん
2011/03/11(金) 12:15:18.10共用体
void*型
0475デフォルトの名無しさん
2011/03/11(金) 12:46:56.800476デフォルトの名無しさん
2011/03/11(金) 12:52:01.96ローカルシンボルをすべて日本語で記述して
漢字かな混じり文の伝統を継ぐガラパゴス文化を創造するのだ
なに、全角英数が使えないだと・・・?
0477デフォルトの名無しさん
2011/03/11(金) 13:02:08.85言い出しっぺの法則。
0478デフォルトの名無しさん
2011/03/11(金) 18:51:07.71なんでだろ。
ちなみに今使おうとするとコンパイラが落ちた気がする。
>>476
前お遊びでやってみたんだけど、いちいち日本語に切り替えるのが
めんどくさくてやめてしまった・・・。
全てを全角でかけないときついね。
地震怖かったー・・・!
0479デフォルトの名無しさん
2011/03/11(金) 21:22:07.39コンパイル時型情報を生かした高速なやつ
0480デフォルトの名無しさん
2011/03/11(金) 21:27:43.79中の人は神回避したらしい
0481デフォルトの名無しさん
2011/03/12(土) 00:59:02.790482デフォルトの名無しさん
2011/03/12(土) 01:41:34.72どのくらい関わっている人かよく知らんけど
0483デフォルトの名無しさん
2011/03/12(土) 14:06:38.74ううむ、これは困ったぞw
0484デフォルトの名無しさん
2011/03/12(土) 20:09:50.07その配列をdupでコピーすると配列のメンバに変更を加えることができる
理屈としては問題ないんだろうけどなんか気持ち悪いなぁ…
0485デフォルトの名無しさん
2011/03/12(土) 20:13:29.13変更したくないなら dup を const で受け取ったりすればいいのかな?
0486デフォルトの名無しさん
2011/03/12(土) 20:34:48.92>>484 は配列の要素がクラスの時じゃないか?
ttp://ideone.com/epioS
たしかにこれは気持ち悪いな
0487デフォルトの名無しさん
2011/03/12(土) 21:11:29.93なるほど、クラスか・・・。
これは気持ち悪い。
0488デフォルトの名無しさん
2011/03/12(土) 21:32:09.280489デフォルトの名無しさん
2011/03/12(土) 22:29:09.44本当は[]const(T)になってほしい、と。
0490デフォルトの名無しさん
2011/03/12(土) 22:29:32.020491デフォルトの名無しさん
2011/03/12(土) 22:55:45.12const(void)*にあたるものがない
0492デフォルトの名無しさん
2011/03/13(日) 00:53:53.49http://ideone.com/hwZln
http://ideone.com/INckh
これを見る限りだと、単純にdupのバグっぽいな。
0493デフォルトの名無しさん
2011/03/13(日) 06:26:28.93パッチ上げられてたぞ
完全に直ってるのかしらんけど
0494デフォルトの名無しさん
2011/03/13(日) 12:33:06.67細かくやりすぎると>>409みたいに想定漏れを招く
どうせテンプレート内でエラーになるんだから通してしまえばいい
0496デフォルトの名無しさん
2011/03/13(日) 15:11:09.55これ、まさにコンセプトでも懸念されてたことなんじゃないか
0497デフォルトの名無しさん
2011/03/13(日) 15:56:47.22Constraint のシンタックスハイライトに対応するIDEは登場するのかなー?
0498デフォルトの名無しさん
2011/03/13(日) 18:17:04.16&&を使った今の状況だとどの条件に引っかかったかが長々と表示されてすげー分かりにくい
0499デフォルトの名無しさん
2011/03/13(日) 19:39:02.330500デフォルトの名無しさん
2011/03/13(日) 20:13:11.61というと、どうかく?
0501デフォルトの名無しさん
2011/03/13(日) 20:22:39.33std.container.SList.thisで例えれば、
this(Stuff)(Stuff stuff)
if (isInputRange!Stuff
&& isImplicitlyConvertible!(ElementType!Stuff, T)
&& !is(Stuff == T[]))
{
これを、
this(Stuff)(Stuff stuff)
if (isInputRange!Stuff)
if (isImplicitlyConvertible!(ElementType!Stuff, T)
if (!is(Stuff == T[])
{
こう書いて、引っかかったifを示してくれればいいなあとか思う
0502デフォルトの名無しさん
2011/03/13(日) 20:35:55.68いいかも
0503デフォルトの名無しさん
2011/03/13(日) 20:47:43.33ubyte[] r = p[0..n];したときのrってスタック上に確保されないで
ヒープ上でnewされてRangeかなんかのインスタンスになっちゃいます?
0504デフォルトの名無しさん
2011/03/13(日) 21:39:08.41r ~= 0; などすればコピーされるけど
0505デフォルトの名無しさん
2011/03/13(日) 22:20:08.61rの持ってる情報ってpへのポインタとlengthくらいだと思うんですけど
これはスタック上かGC管理のヒープ上のどちらに確保されるんでしょうか
0506デフォルトの名無しさん
2011/03/13(日) 22:33:36.370507デフォルトの名無しさん
2011/03/13(日) 22:51:20.65ありがとうございます
0508デフォルトの名無しさん
2011/03/13(日) 22:53:34.340509デフォルトの名無しさん
2011/03/13(日) 23:00:33.68union{
wchar[] dstring;
DStringW filename; // 配列ヘッダの構造体
}
struct DStringW{
uint length;
wchar* pointer;
}
0510デフォルトの名無しさん
2011/03/13(日) 23:23:15.970511デフォルトの名無しさん
2011/03/14(月) 10:01:45.79コンパイラによる。
でもそもそも、本当にそんなことを気にしないといけないプログラムを作っているのか?
0512デフォルトの名無しさん
2011/03/14(月) 19:42:01.87ttp://ideone.com/9H6Mn
合法な節税を積み重ねてたら税務署に怒られたIBMの気分だぜ
0513デフォルトの名無しさん
2011/03/14(月) 19:59:37.650514デフォルトの名無しさん
2011/03/14(月) 20:07:54.19プログラムの内容が現象とマッチしていてすばらしいw
0515デフォルトの名無しさん
2011/03/14(月) 20:24:22.92いや、ただ単にdupが酷いだけ。
0516デフォルトの名無しさん
2011/03/15(火) 07:36:03.45かぶらない変数名の定義とかに使いたい(__LINE__ がうまく動けばそれで良い話だが・・・)。
0517デフォルトの名無しさん
2011/03/15(火) 09:27:41.90もう一回コンパイルしたら何故か通る。
0518デフォルトの名無しさん
2011/03/15(火) 11:54:27.50配列使えよ・・・
0519デフォルトの名無しさん
2011/03/15(火) 15:19:13.69そこはあれですよ。種を変えてその場をしのぐ。
>>518
乱数もそうだけど、配列にしてもどこかで状態を保持しないといけないね。
やり方わからん。。。
0520デフォルトの名無しさん
2011/03/15(火) 15:32:34.880521デフォルトの名無しさん
2011/03/15(火) 15:45:13.11環境変数とかどう
0522デフォルトの名無しさん
2011/03/15(火) 16:38:51.090523デフォルトの名無しさん
2011/03/15(火) 16:52:10.760524デフォルトの名無しさん
2011/03/15(火) 17:16:17.840525デフォルトの名無しさん
2011/03/15(火) 17:17:21.810526デフォルトの名無しさん
2011/03/15(火) 17:32:30.120527デフォルトの名無しさん
2011/03/15(火) 17:34:13.270528デフォルトの名無しさん
2011/03/15(火) 17:39:23.840529デフォルトの名無しさん
2011/03/15(火) 19:25:42.770530デフォルトの名無しさん
2011/03/15(火) 19:27:17.520531デフォルトの名無しさん
2011/03/15(火) 21:50:05.37そういやdmd本体もまずソースコードを生成するプログラムを作ってから
そいつで生成したコードを改めてコンパイルしてた気がする
makeの話題で build.d 書けば、みたいな話が出てたし
一つのソースに収まらない事を気にしなければ簡単にできそうだ
0532デフォルトの名無しさん
2011/03/15(火) 22:58:56.70import std.process;
import std.conv;
string getUniqID()
{
string id = environment["uniq_id"];
environment["uniq_id"] = to!string(to!int(id) + 1);
return id;
}
0533デフォルトの名無しさん
2011/03/16(水) 13:12:43.75コンパイル時に環境変数を書き変える・・・?
まあたぶん、これでやりたいことは出来るだろう。
http://www.kmonos.net/alang/d/2.0/rdmd.html
0534デフォルトの名無しさん
2011/03/16(水) 13:16:35.52そういうツール、探せばあると思うけど。(Dでも使える無料のが。自分で作ってみるのも一興。)
0535516
2011/03/16(水) 14:36:35.00やりたいことは RAII を使ったクラスに対して new するような
テンプレートミックスインを作って運用したいんだけど、
入れ子にしたときに変数名がかぶるのを避けたい、ということです。
例えば
template Hoge()
{
mixin("scope auto hoge = new ScopeHoge();");
}
を使って
{
mixin Hoge!();
〜処理〜
{
mixin Hoge!(); // 変数名衝突?
}
}
ていう使い方も出来るようにしたいんです。
行番号を変数名にくっつけられれば避けられるんですけど、
現状それができないなぁ、という感じです。
今は mixin Hoge!(__LINE__) というように使えばいいか。
0536516
2011/03/16(水) 14:36:49.78今やってみたらコンパイル通りました。
mixin template Hoge()
{
scope auto hoge = new ScopeHoge();
}
でも普通にコンパイル通りますね。意図通りに動いているかどうかは
まだ確認していないですけど。。。
0537デフォルトの名無しさん
2011/03/16(水) 14:52:00.10ソースが書き換わらない場合でdmdの実行と比較して、
やっぱり遅いよね?
普通に考えればソースファイルのチェックしなきゃだし。
0538デフォルトの名無しさん
2011/03/16(水) 17:46:41.54http://www.kmonos.net/alang/d/2.0/template-mixin.html
>Mixinの中の宣言は、周囲のスコープに 'import' されます。 Mixinの中の宣言と同じ名前の宣言が周囲のスコープに存在した場合、 周囲のスコープの宣言が、 Mixinのそれを上書きします
らしい。
>>537
別に重くても問題無いでしょ。
0539516
2011/03/16(水) 18:10:00.70どうもありがとう。
もう __LINE__ を渡すようにしてやってみるわ・・・。
今は何故かスコープクラスのデストラクタが呼ばれないことがあるのを調査中・・・。
ちなみに処理計測のスコープクラスです。
0540516
2011/03/16(水) 20:20:40.82テンプレートでミックスインしてその中で new したスコープクラスの
デストラクタ呼ばれないっぽい。
素直に new と書くか・・・。
0541デフォルトの名無しさん
2011/03/16(水) 20:36:51.32そんなことするなよ。
代わりに、aliasパラメタを使って何とかしようぜ。
テンプレートの外で宣言したシンボルを、テンプレートに渡すんだ。
たぶんいける。
0543デフォルトの名無しさん
2011/03/16(水) 22:08:16.09aliasじゃ無いが、文字列ミックスインを使った方法でやってみた。
http://ideone.com/mQRdZ
0544デフォルトの名無しさん
2011/03/16(水) 22:15:36.80もっと簡単な方法を見逃していたww
http://ideone.com/xHCQa
0545516
2011/03/16(水) 22:20:10.22ありがとう。
自分も文字列ミックスインでスコープクラスの new まで
出来たんだけど、スコープ抜けてもデストラクタが呼ばれなくて・・・。
alias パラメタって、外部のパラメタ渡すということは外部の宣言を
渡すのかな?
なかなか出来ないんだけど、そもそも1行でかけないと意義薄いかも・・・。
0547516
2011/03/16(水) 22:28:06.18出来たけど出来ない・・・!
デストラクタ、仕事しろ!
最新の dmd で試してみる。不具合報告が多かったから
躊躇してたんだけど。
0548デフォルトの名無しさん
2011/03/16(水) 22:32:11.16scope(exit)delete xx;
もmixinしてみたら?
0549デフォルトの名無しさん
2011/03/16(水) 22:34:42.21ストレージクラスのscopeは今後廃止されるかもしれないので、
scope(exit)文でdeleteするのが無難かもしれない。
0550516
2011/03/16(水) 22:40:40.53なるほど、ありがとう!試してみる。
ちょっと気になるのが、scope クラスの new って
スタックへのクラスインスタンス割り当てだったと思うので
無くなったら効率面でちょっと気になるな・・・。
ちなみに最新にしたら std.datetime がすごい行数になって
コンパイルも通らない・・・!
ワクワクしてきた!
そして地震にハラハラ。
0551デフォルトの名無しさん
2011/03/16(水) 22:41:10.370552516
2011/03/16(水) 22:53:08.91デストラクタで writeln しておいて、普通に new した場合は
コンソール出力されるけど、テンプレートミックスインすると何もされない。。。
最新では試せてないけど。
0553デフォルトの名無しさん
2011/03/16(水) 23:03:24.06どこかおかしいですか?
http://ideone.com/J6M6n
http://ideone.com/uGibM
0554デフォルトの名無しさん
2011/03/16(水) 23:20:16.08そのコードだけで言うなら、mixin templateにし忘れている。
0555デフォルトの名無しさん
2011/03/16(水) 23:20:42.02template test() -> mixin template test()
とか?
0556デフォルトの名無しさん
2011/03/16(水) 23:24:09.68逆転の発想もあるけどね
http://ideone.com/D52RZ
0557デフォルトの名無しさん
2011/03/16(水) 23:27:46.82アド貼り間違えた・・
http://ideone.com/UusDr
>>554, 555
だめぽい・・
http://ideone.com/Tg0kV
0559デフォルトの名無しさん
2011/03/16(水) 23:40:24.70バグだあ!
0560デフォルトの名無しさん
2011/03/16(水) 23:47:34.10うむ、うれしそうだ
0561デフォルトの名無しさん
2011/03/17(木) 00:06:48.57俺がウォルたんならそんな使い方は蹴る。てか泣いて謝る
0562デフォルトの名無しさん
2011/03/17(木) 00:27:41.99void watcher(void delegate() f)
を
void watcher(scope void delegate() f)
に変えると最適化が効いて普通の関数呼び出しと同じくらいの速さになるらしいよ
0563デフォルトの名無しさん
2011/03/17(木) 00:31:12.32知らなかった。
ってか、scope って意味が多すぎ。
0564516
2011/03/17(木) 00:39:36.53mixin template Foo()
{
scope auto rec = new Foo();
scope (exit) delete rec;
}
ってやると
>>557
と同じコンパイルエラーが出る。。。
0565デフォルトの名無しさん
2011/03/17(木) 00:45:27.810566デフォルトの名無しさん
2011/03/17(木) 01:05:53.40mixin template の中は宣言しか書けない
class Foo
{
scope auto rec = new Foo();
scope (exit) delete rec;
}
とやって書けないのと同じ
文字列ミックスインでねじこめないのも同じ
0567516
2011/03/17(木) 01:16:29.30mixin template Foo()
{
scope auto rec = new Foo();
}
と書けてしまうのがおかしい?
まぁ諦めて普通に書きます。
みなさんありがとう。
0568516
2011/03/17(木) 05:47:03.81scope とか new とか書かなくていいし。
注意するのは引数無しのコンストラクタが使えないくらいか。
ストレージクラスのscopeが無くなるのは構造体使えばいいからなのかな。
0569デフォルトの名無しさん
2011/03/17(木) 07:55:41.31しかし構造体の一時オブジェクトはデストラクタが呼ばれないバグがあるらしい
0570デフォルトの名無しさん
2011/03/17(木) 13:59:09.89http://ideone.com/WJPZe
ていうか、関数テンプレート使えばよかったんじゃね?
0571デフォルトの名無しさん
2011/03/17(木) 14:10:21.09http://ideone.com/LYmTr
0572516
2011/03/17(木) 17:36:35.36なんと!?今のところ大丈夫そうだけど・・・。
念のためユニットテスト用意してチェックしておく。
バグも調べてみます。ありがとう。
>>570-571
使う側から見て、シンプルにできるのかな。
1行で書けると見通しがいいので、やっぱり RAII が便利だなぁ。
でもありがとう。覚えておきます。
0573デフォルトの名無しさん
2011/03/17(木) 17:49:40.87こういうことがあるので構造体は毎回ちゃんとした変数にいれたほうがいい
0575デフォルトの名無しさん
2011/03/17(木) 18:07:44.46なにこれこわい
0576デフォルトの名無しさん
2011/03/17(木) 18:24:37.270577デフォルトの名無しさん
2011/03/17(木) 18:28:33.44報告済み。vote求む
0578デフォルトの名無しさん
2011/03/17(木) 19:43:30.04プログラムを理解するのに必要なコードが、変に分散したり、複雑に絡みあったりしなければ読みやすい。
行は関係ない。
0579516
2011/03/17(木) 19:57:52.46でも同じことするのに1行で書ける方法があるならそっちがいい。
コピペしなくてもいいように mixin とかできるならいいかもしれない。
ということで RAII で最低限満たしているから今のところそれでいいかなと。
0580デフォルトの名無しさん
2011/03/17(木) 20:23:24.75結局の所、何かやりたいのかよく分からないから、曖昧なレスしか出来ないんだよね。
なんでmixinの中でscope付ける必要があるんだろう?
0581516
2011/03/17(木) 20:53:02.70元々は C++ で実装していたようなことを D で実現したくて、
書き方も似たようなシンプルなものにしたかったのね。
んでマクロは無いけどテンプレートとか使えばできるかなぁと
やってみたんだけど、色々無理そうなことがわかった、という感じかな・・・。
みなさんどうもありがとう。勉強になりました。
そろそろ消えようと思います。
0582デフォルトの名無しさん
2011/03/17(木) 20:55:21.790583デフォルトの名無しさん
2011/03/17(木) 20:59:44.74class Time
{
time_t t_;
public:
Time(){t_ = time(NULL);}
~Time(){printf("処理時間:%d\n", time(NULL) - t);}
};
int main(){
Time t0;
{
Time t1; // この変数名がかぶらないようにmixinで変数名を自動割り当てしたい
doSomething1();
}
doSomething0();
return 0;
}
0584デフォルトの名無しさん
2011/03/18(金) 12:19:22.97文字列 mixin は試したみたいよ。
0585デフォルトの名無しさん
2011/03/19(土) 16:42:40.32std.encodingってどうやって使うんでしょうか
それとBufferdFileでファイルを開いてreadLineしたものをstd.encodingで
stringにして使おうと思ってるんですけどこのやり方って一般的ですか?
0586デフォルトの名無しさん
2011/03/19(土) 16:45:40.29使い方も意味不明だしもちろんMS932ことshift jisには対応してないよ
0587デフォルトの名無しさん
2011/03/19(土) 16:48:02.62まじですか、なんという・・・
0588デフォルトの名無しさん
2011/03/19(土) 16:49:48.47とかやればSJISからUTF-8に変換できるかな?
0589デフォルトの名無しさん
2011/03/19(土) 17:23:22.210590デフォルトの名無しさん
2011/03/19(土) 17:30:02.78http://www.wikihouse.com/sakurai/index.php?DJcode
0591デフォルトの名無しさん
2011/03/19(土) 18:42:54.96Shift-JIS/JIS/EUC/UTFに関わらずテキストファイルを読み込んだ時点で
UTF-8として読み込むようなイメージです
>>590
まさにJCodeですね ありがとうございます試してみます
0592デフォルトの名無しさん
2011/03/19(土) 23:30:18.85頭から何百バイトか渡して判別だけして、あとは毎行変換って感じになる?
なら、個人的にはファイル読み込みが二度手間になるのが嫌な感じなんで、
std.file.readで一気に読み込んで変換してstd.string.splitlinesかなあ。
まあ凄いデカいファイルを想定してる場合はしゃーないが。
0593デフォルトの名無しさん
2011/03/20(日) 00:24:46.91dateからdatetimeに直したからもう戻れねえ・・・
0594デフォルトの名無しさん
2011/03/20(日) 01:19:41.250595デフォルトの名無しさん
2011/03/20(日) 06:28:45.86ありがとう
bugzillaとか使いこなせる人が羨ましいなあ
0596デフォルトの名無しさん
2011/03/20(日) 17:11:56.14foreachと組み合わせて手軽に行毎の処理できるんだ
0597デフォルトの名無しさん
2011/03/21(月) 01:05:37.17の irrlichtポーティングがとりあえず動くようになってた
一方 swigは書式がよくわからん上に
インタフェースファイル修正→変換が遅くてやってられん 頭痛くなったorz
0598デフォルトの名無しさん
2011/03/21(月) 10:44:14.20http://ideone.com/Ks6qI
・デストラクタのthis参照がだめ?
・それ以外に不正なコードがある?
・std.convがダメ?
・GCがダメ?
・その他?
csv設定ファイルをキャッシュする処理に連想配列を使ったら、
やけに落ちるなーと思って追いかけてったらこんな感じですっごく困ってます。
0599デフォルトの名無しさん
2011/03/21(月) 11:27:12.11D2.052+Windows だとコンパイルエラーもなく
実行できてそれなりのログも出た
そこのツールはD2.042
結局どこで困ってるのかわからん
0600デフォルトの名無しさん
2011/03/21(月) 11:29:28.39text関数って内部でto!string()してるからcast(void*)とかしちゃだめじゃない?
void*ってto!string()できないから。
http://ideone.com/THXpl
>>599が最新のdmdだといけるって言ってるからstd.convのバグだろうね
とりあえずcast(ubyte*)thisにすれば2.042でも回避できる。
0601デフォルトの名無しさん
2011/03/21(月) 11:41:28.39【誤】
/**
Pointer to string conversions prints the pointer as a $(D size_t) value.
*/
T toImpl(T, S)(S value)
if (isPointer!S && !isSomeChar!(typeof(*S.init)) && isSomeString!T)
{
return to!T(cast(size_t) value, 16u);
}
↓
【正】
/**
Pointer to string conversions prints the pointer as a $(D size_t) value.
*/
T toImpl(T, S)(S value)
if (isPointer!S && (!is(typeof(*S.init)) || !isSomeChar!(typeof(*S.init)))
&& isSomeString!T)
{
return to!T(cast(size_t) value, 16u);
}
0602598
2011/03/21(月) 11:45:47.85cast(void*)が未定義だとかで悪いんなら良いんですが、
どうもそうでなさそうな感じなんですが・・・
先のソースも"remove test:"の箇所を若干書き換えるだけで
再現したりしなかったりします。
問題なのは、同じく文字列の連想配列を持つcsvの設定ファイルを
キャッシュるクラスが頻繁にクラッシュしてまして。
※元のソースはcast(void*)はありませんでした。
ダンプを取ったらconvの中だったり、utf.encodeの中だったりで
メモリアクセス関連か、convなのかと思っていましたが・・・
原因がわからない状態だと、対処もできず困ってます。
0603デフォルトの名無しさん
2011/03/21(月) 11:51:41.81GCによる解放順序は未定義なのでデストラクタではクラスメンバのインスタンスだろうがアクセスするのはアウト
デストラクタの中でハッシュにアクセスしたりしてないですか?
0604デフォルトの名無しさん
2011/03/21(月) 12:08:26.78C++の感覚でデストラクタ使っちゃだめ
http://ideone.com/7XXFl
0605デフォルトの名無しさん
2011/03/21(月) 12:43:59.57明示的にdeleteやらdisposeを作って呼ぶってことか
scope(exit)と組み合わせて何とかなるのかな
0606デフォルトの名無しさん
2011/03/21(月) 12:50:53.120607598
2011/03/21(月) 12:51:51.93デストラクタはthisのキャスト以外してなかったと思いますが、
デバッグの過程で色々とやり過ぎたかもしれません。
デストラクタ中心にもうちょい追ってみます。
0608598
2011/03/21(月) 13:54:50.14デバッグのログ出力に問題があったということか…
ありがとうございました。
0609デフォルトの名無しさん
2011/03/21(月) 20:37:07.95auto j = i;
これだとjの型はconst intと推論されるらしいのですが、
intと推論して欲しいときはどう書けば良いのでしょうか。
C++の型推論と同じかと思っていたら違っていたので驚きました。
0610デフォルトの名無しさん
2011/03/21(月) 20:51:31.17この場合は普通に宣言する
逆にconst外れちゃうようじゃ安全性に問題あるよね?
const A a = new A;
auto b = a;
とかbを通してaの中身触れちゃうし
0611デフォルトの名無しさん
2011/03/21(月) 20:52:51.78どうしても推論させたいなら
auto j = cast(int)i;
とか、とにかくintって具体的な型名書きたくないなら
Unqual!(typeof(i)) j = i;
とか。
0612デフォルトの名無しさん
2011/03/21(月) 21:06:54.730613デフォルトの名無しさん
2011/03/21(月) 21:27:01.99const int j = 0;
auto k = i + j; //const int
実際はimmutableな値とimmutableな値の和をmutableな変数に入れたかったのですが
これもだめみたいなので。
auto l = i + j + 0; // int
抜け道を見つけたのでしばらくこれでごまかしておきます。
それとcodepadだと>>609のjはintと推論されてしまうみたいですね。
0614デフォルトの名無しさん
2011/03/21(月) 23:02:08.850615デフォルトの名無しさん
2011/03/21(月) 23:09:51.802.042くらいだったかな
10×10個くらいは破壊的変更が入ってることになりますね
0616デフォルトの名無しさん
2011/03/21(月) 23:16:49.39http://codepad.org/7fhqL4n4
0617福盛俊明
2011/03/22(火) 00:42:43.060618デフォルトの名無しさん
2011/03/22(火) 02:36:45.270619デフォルトの名無しさん
2011/03/22(火) 04:19:43.780620デフォルトの名無しさん
2011/03/22(火) 06:48:19.26>>618
本当だ
勘違いすまぬ
0621デフォルトの名無しさん
2011/03/22(火) 06:48:52.44constではない右辺値がconstではなく推論されるのは……いいんだろうけどどうなんだ。
0622デフォルトの名無しさん
2011/03/22(火) 09:59:52.45抜け道というか、落とし穴になりそうだな
0623デフォルトの名無しさん
2011/03/22(火) 13:15:59.110624デフォルトの名無しさん
2011/03/22(火) 13:40:57.28inout k = i + j;
でimmutable, constを引き継いで
auto k = i + j; // mutable
const k = i + j; // const
とかなってくれたら分かりやすい気がするがなぁ…
0625デフォルトの名無しさん
2011/03/22(火) 13:43:11.840626デフォルトの名無しさん
2011/03/22(火) 19:12:19.790627デフォルトの名無しさん
2011/03/22(火) 21:05:06.91結局のところ複数のバージョンに対応するライブラリ作ってる人の手間が増えるだけじゃねえの? って気がする。
0628デフォルトの名無しさん
2011/03/22(火) 21:21:58.24安定版を死骸と同一視するマゾのなんと多いことか
0629デフォルトの名無しさん
2011/03/22(火) 21:40:12.700630デフォルトの名無しさん
2011/03/22(火) 23:08:30.480631デフォルトの名無しさん
2011/03/23(水) 08:05:55.28|∧
/ /
(^o^)/ てめえがD1が
/( ) 安定しているというなら
(^o^) 三 / / >
\ (\\ 三
(/o^) < \ 三
( /
/ く まずはそのふざけた
幻想をぶち壊す
0632デフォルトの名無しさん
2011/03/23(水) 14:46:59.21渡そうとしてた構造体の中のunittest消したら通ったんで、
すげえ釈然としないが同じ症状で悩んでる人のためにメモ。
0633デフォルトの名無しさん
2011/03/23(水) 14:57:38.870634デフォルトの名無しさん
2011/03/23(水) 19:07:41.91Windows
0635デフォルトの名無しさん
2011/03/23(水) 21:10:52.29debファイルは「amd64用じゃない」と怒られるし、zipの方は「librtが無い」と怒られる(あるのに)。
やり方知っている方いたら助言お願いいたします。
0636デフォルトの名無しさん
2011/03/23(水) 21:32:55.25debファイルの方はやっぱりインストール怒られる
0637デフォルトの名無しさん
2011/03/23(水) 21:55:40.91debファイルはアーキテクチャ無視のインストールでいけるのかな。
0638デフォルトの名無しさん
2011/03/23(水) 22:00:50.260639デフォルトの名無しさん
2011/03/23(水) 22:09:27.760640デフォルトの名無しさん
2011/03/23(水) 22:20:47.470641デフォルトの名無しさん
2011/03/23(水) 22:49:37.290642デフォルトの名無しさん
2011/03/24(木) 00:08:44.99どうすれば良いですか?
0643デフォルトの名無しさん
2011/03/24(木) 00:57:27.69プロセスに関係ありそうなのはstd.processかな・・・みたいに見当を付けるんだ
0644デフォルトの名無しさん
2011/03/24(木) 01:14:34.36どうもありがとう
0645デフォルトの名無しさん
2011/03/24(木) 13:35:46.220646デフォルトの名無しさん
2011/03/24(木) 14:49:11.760647デフォルトの名無しさん
2011/03/24(木) 15:12:22.85↓
クリックされるとワードが選択状態になるので
選択範囲の位置とテキスト全体から改行文字を数えよう
↓
日本語を含む場合に行ズレが
↓
テキストボックス:SJIS 2バイト
文字列データ: UTF8 3バイト
↓
orz 今ココ
ハジメテ シッタゼ
0648デフォルトの名無しさん
2011/03/24(木) 15:21:15.190649647
2011/03/24(木) 16:45:16.28wcharか・・・まあ考えておきまひょ
0650デフォルトの名無しさん
2011/03/24(木) 18:59:08.21DでGUIプログラミングをやるような覇王級の猛者がまだいたのか…
0651デフォルトの名無しさん
2011/03/24(木) 19:52:33.44たぶん今月頭に誰かがパッチを送った内容だと思うけど
さあみんな、これで安心してGUIプログラミングできるな!!!
0652デフォルトの名無しさん
2011/03/24(木) 20:14:07.12パッチ送ってから色々あって一週間くらいやり取りが途絶えてたからてっきり忘れられてるものだと
ここの人達に感謝
DLL不要で/機能が揃っていて/マルチプラットフォームで/コードがDネイティヴで
という条件をつけるとDWTが唯一のGUIライブラリになっちゃうから何とか生存してほしいなぁ
0653デフォルトの名無しさん
2011/03/24(木) 23:48:37.57実際のところ何なんですか?
http://dusers.dip.jp/modules/wiki/?Libraries%2FDWT
CPLって
・ソースの無断変更はNG
・無保証
・ライブラリを使用して作ったバイナリにはライセンスは適用しない
って認識でOK?
0654デフォルトの名無しさん
2011/03/24(木) 23:53:47.55実際にはコード中にEPLと書かれてる
ttp://sourceforge.jp/projects/opensource/wiki/licenses%2FEclipse_Public_License
ttp://ja.wikipedia.org/wiki/Eclipse_Public_License
GPLと互換性が無いんだよな…
0655デフォルトの名無しさん
2011/03/25(金) 00:13:20.59読みました�d
ライブラリ使用者側としては「DWTを使ってるけど何かあってもDWT作成者には責任はないです」
っていうのをDWTのリンクに添えて書いておけばソース開示なしで商用利用も可能って感じかな
間違ってたら突っ込みお願いします
0656デフォルトの名無しさん
2011/03/25(金) 01:08:41.32exit(0)とかはとりあえずthrow new Exception("exit(0)")してるんですが、
もっとそれっぽいのありますか。
0657デフォルトの名無しさん
2011/03/25(金) 01:39:29.240658デフォルトの名無しさん
2011/03/25(金) 05:51:23.20struct S { private int n; }
// main.d
import s;
void main() { S s; s.tupleof[0] = 10; }
が通っちゃうらめえ。
0659デフォルトの名無しさん
2011/03/25(金) 07:03:40.65またバグなのか仕様なのかよくわからない動作なのか
0660デフォルトの名無しさん
2011/03/25(金) 09:35:56.30修正優先度も低そうだし
0661デフォルトの名無しさん
2011/03/25(金) 10:53:28.69リンカが通らないorz
0662デフォルトの名無しさん
2011/03/26(土) 05:03:56.50http://ideone.com/OHI9o
0663デフォルトの名無しさん
2011/03/26(土) 06:05:47.200664デフォルトの名無しさん
2011/03/26(土) 08:07:10.82privateメンバあるなら大抵コンストラクタもあるだろうから問題はないだろうけど、なんか微妙に気持ち悪い感じ。
0665デフォルトの名無しさん
2011/03/26(土) 12:17:31.60>>658の場合は
auto s = S(42);
ができるんだよなぁ
privateは見えない建前だから、その42はどこ行くの?っていう
0666デフォルトの名無しさん
2011/03/26(土) 13:51:32.38リテラルだと思うときもいけど
0667デフォルトの名無しさん
2011/03/26(土) 15:54:24.700668デフォルトの名無しさん
2011/03/26(土) 16:10:55.890669デフォルトの名無しさん
2011/03/26(土) 19:50:41.910670デフォルトの名無しさん
2011/03/26(土) 21:22:10.38と
a =+ b;
を間違えて30分くらいハマった
こういう文法を持つC言語は邪悪すぎる
みんなでDに移行しようぜ
0671デフォルトの名無しさん
2011/03/26(土) 22:53:51.65privateと指定することができないじゃん
0672デフォルトの名無しさん
2011/03/26(土) 22:58:34.30なんの為?
0673デフォルトの名無しさん
2011/03/27(日) 00:02:46.84イヒヒイイヒヒ
0674デフォルトの名無しさん
2011/03/27(日) 00:19:54.400675デフォルトの名無しさん
2011/03/27(日) 00:45:38.950676デフォルトの名無しさん
2011/03/27(日) 09:59:11.22Bindingsにあるのかと思ったら古かったんで自分で書こうかと思ってるんだが
0677デフォルトの名無しさん
2011/03/27(日) 11:47:13.400678デフォルトの名無しさん
2011/03/27(日) 12:49:10.03というかhtodってメンテされてんの?
0679デフォルトの名無しさん
2011/03/27(日) 12:51:29.440680デフォルトの名無しさん
2011/03/27(日) 14:49:57.93「エラー出るとこだけ修正」だと↑とかマクロがっつりコメントアウトしちゃうとことか修正できないし
ぶっちゃけ手書きとあんま変わらん
0681デフォルトの名無しさん
2011/03/28(月) 19:46:38.75期待sage
0682デフォルトの名無しさん
2011/03/29(火) 06:43:10.90なんだか無くても動いてるような気がするんですが。
0683デフォルトの名無しさん
2011/03/29(火) 17:41:55.15struct st_list {
alias st_list *prev;
alias st_list *next;
void *data;
};
assert(st_list.sizeof == 8); // safe
どういうことだってばよ?
0684デフォルトの名無しさん
2011/03/29(火) 18:20:48.380685デフォルトの名無しさん
2011/03/29(火) 18:31:18.330686デフォルトの名無しさん
2011/03/29(火) 19:28:09.21こりゃ32bitでもダメっぽいな。失礼しました。
0687デフォルトの名無しさん
2011/03/29(火) 19:43:05.630688デフォルトの名無しさん
2011/03/29(火) 19:47:41.950689デフォルトの名無しさん
2011/03/29(火) 20:22:11.67いやなんか完璧に勘違いしてない?
0690デフォルトの名無しさん
2011/03/29(火) 20:26:09.64上のリンクは本家とは無関係
0691デフォルトの名無しさん
2011/03/29(火) 20:35:16.44えええ・・
0692デフォルトの名無しさん
2011/03/29(火) 21:55:02.69落ちない
Ubuntu 10.10 64 bit
0693デフォルトの名無しさん
2011/03/29(火) 21:57:08.17win7-64bit dmd 2.052
ちゃんと落ちないなんてどうしちゃったのうちのdmd…
0694デフォルトの名無しさん
2011/03/30(水) 00:33:41.18T i;
this(T i) pure
{
this.i = i;
}
}
を-Hスイッチでdiファイルにするとpureが消えますが、これはdmd2.052の仕様ですか。
Foo!(T) bar(T)(T i) pure
{
return typeof(return)(i);
}
とか出来なくなる。SciDやろうとしてハマった。
0696デフォルトの名無しさん
2011/03/30(水) 02:00:53.732.048で落ちた小数点を探しに行ってなんとなく落ちるぽい動作だな
最新版だと直ってる
0697デフォルトの名無しさん
2011/03/30(水) 10:42:05.11http://www.steinmole.de/d/
こいつの中の人に言ってくれよ・・。
少し前まで(32bitで)12になって動いてて、そのまま気づかなかったんだよ。
-m64で構造体のサイズがmysql.hの定義とズレまくって
大変だったと言いたかっただけなんだorz
0698デフォルトの名無しさん
2011/03/31(木) 23:33:20.05int i;
int* p = &i;
writeln(i.sizeof); //-m32でも-64でも4
writeln(p.sizeof); //-m32だと4で-m64だと8
}
これが原因でSDLでセグメンテーションエラーとか出る。
具体的には-m64で
auto screen = SDL_SetVideoMode(640,480,32,SDL_SWSURFACE);
すると、screen.format以降がずれずれ。
こういうのってどうしようもないの?
0699デフォルトの名無しさん
2011/03/31(木) 23:47:30.120700デフォルトの名無しさん
2011/03/31(木) 23:47:51.89というかなんでないんだろう
0701デフォルトの名無しさん
2011/04/01(金) 00:06:09.100702デフォルトの名無しさん
2011/04/01(金) 06:58:37.29extern(C) SDL_Surface* SDL_SetVideoMode(int_ptr, int_ptr, int_ptr, Uint32);
auto screen = SDL_SetVideoMode(640,480,32,SDL_SWSURFACE);
これでどうだろ?
まあSDLが64bit対応してなかったらどっちにしろ詰むわけだが
0703デフォルトの名無しさん
2011/04/01(金) 08:30:33.810704デフォルトの名無しさん
2011/04/01(金) 15:26:57.53printf("%d", sizeof(MYSQL)); => 1248
// D MySQL Driver + DMD2.052 -m64
writeln(MYSQL.sizeof); => 1040
( ゚д゚)…
!
(゚д゚ )
version(X86_64) {
struct MYSQL { byte[1248] a; }
}
今は反省してない。
0705デフォルトの名無しさん
2011/04/01(金) 19:28:24.07おおマジか…
sizediff_tとかhash_tみたいな意味不明の型は何もimportしないでも使えるというのにどうしてそんな差別を
0706デフォルトの名無しさん
2011/04/01(金) 21:06:04.68構造体の定義を全部64bit用に調整してやるしかないんじゃないかな
大丈夫だSDLの構造体はそんなにいっぱいない
0707デフォルトの名無しさん
2011/04/01(金) 21:28:07.780708デフォルトの名無しさん
2011/04/01(金) 21:34:09.120709デフォルトの名無しさん
2011/04/01(金) 21:49:54.34マーケティングに踊らされていないか
オール電化に似た負のイメージしかない
0710デフォルトの名無しさん
2011/04/01(金) 21:53:43.460711デフォルトの名無しさん
2011/04/01(金) 22:00:23.80x86の場合はレジスタ数が増える恩恵のほうがでかいし、各プラットフォームともにここぞとばかりにABIを改良してたりするからなあ
……という話をしようと思えば他所にいくべきですねわかりましたごめんなさい
0712デフォルトの名無しさん
2011/04/01(金) 23:02:45.4064bit対応のことはよくわからんけど
・SDLのバイナリが64bitで構築されているか?
・ヘッダが64bitのラッパーになっているか?(htodは対応してないはず)
・import libが64bit用で生成されているか?(またOMF変換とか一手間かかるの?)
・Dアプリを64bitで記述・コンパイルしているか?( -m64の部分 )
あとWinでSDL使ったらSDL_ImageだのSDL_mixerだのさらにzlibだの
依存が多くてうんざりしたがそいつらみんな64bitなの? とか
derelictは対応してるの? とか
1つ1つ潰してみては
0713デフォルトの名無しさん
2011/04/01(金) 23:06:14.430714デフォルトの名無しさん
2011/04/01(金) 23:49:35.030715デフォルトの名無しさん
2011/04/02(土) 00:04:31.05一応Windowsはバイナリ互換性が保証されてるわけだし。
0716デフォルトの名無しさん
2011/04/02(土) 09:54:52.90デフォルトのリポジトリにあったlibsdlを入れてるから、64bit版で間違いはないはず。
で、使ってるDインポートファイルの抜粋↓
align(4)
struct SDL_Surface
{
Uint32 flags;
SDL_PixelFormat* format;
int w, h;
Uint16 pitch;
void* pixels;
int offset;
private_hwdata* hwdata;
SDL_Rect clip_rect;
Uint32 unused1;
Uint32 locked;
SDL_BlitMap* map;
uint format_version;
int refcount;
}
extern(C) SDL_Surface* SDL_SetVideoMode(int width, int height, int bpp, Uint32 flags);
これをどうすれば
0717デフォルトの名無しさん
2011/04/02(土) 10:03:48.10if (SDL_Init(SDL_INIT_VIDEO) < 0)
throw new Error("SDL_Init failed.");
scope(exit) SDL_Quit();
SDL_Surface* screen = SDL_SetVideoMode(640, 480, 32, SDL_SWSURFACE);
if (screen is null)
throw new Error("SDL_SetVideoMode failed.");
writeln(screen.fags);// 0
writeln(screen.format);// XXXXXXXXFFFFFFFF ← !!
writeln(screen.w);// 0 ← あー
writeln(screen.h);// 640 ← はいズレたー
0718デフォルトの名無しさん
2011/04/02(土) 10:04:22.210719デフォルトの名無しさん
2011/04/02(土) 10:08:00.020720デフォルトの名無しさん
2011/04/02(土) 10:31:22.49くそー、今試せない
0721デフォルトの名無しさん
2011/04/02(土) 11:03:15.36たぶんそう
SDLの構造体はVC、CodeWarrior、Borlandだと4Byteアライメントが指定されてるけど他はないっぽい
ubuntuならたぶんGCCだろうからalign(4)だとずれるかもしれない。特に64bit
SDLのヘッダに、「ディスクからロードした時の為に4Byteで揃えてます」みたいに書いてあるけど
これは嘘ってことだな
0722デフォルトの名無しさん
2011/04/02(土) 15:16:57.92SDL_Surface構造体の各メンバの配置位置とサイズを確認すべきじゃない?
配置位置は、構造体先頭ポインタとメンバのポインタの差から
サイズは、sizeofで
|: / : : : / : : : : :.i: : : : |: : : :|: : : |: : : i '
: :|: : : : |: : i: : : :|: : : /i|: : :|:| : : :|: : : | |
: :|: : : : |: :.|:斗 十‐/ i|: :∧-‐ト|: : : | |
: :|: : : : |イ|: :|:/ |:/ |:/ |ハ: : |: : : | \_,ノ
: :|: : : : | レヤ示ト rテv|:./|: : : :|
ヽ|: : : : |/{:::::::i } トイ レ: :|/|/ 関東地方
( |: : : : 代c::ノソ レリ |: : : : | 東北地方 北海道地方
.〈.|: : : : |x`¨ 、¨x.|: : : i:| にいる
\|i: : : :| , /|: : : i:| すべての 愛すべき 国民へ 告ぐ
∨リ\: :iト 、 `´ ィ |: : /|リ
‐┴―\|- 〈 >rァ 爪|V |/
:::::::::::::::::::::::ヽ \ リ
::::::::::::::::::::::::__\
:::::::::::::::/ ::r――‐へ rっr‐-、_
:::::::::/ ::// ∧. | ̄ ̄ ̄| | | | | ̄ ̄ ̄ ̄ ̄ ̄ ̄|
:::/ ::/ / ヽ|. L|_|_ト' |
/ ::::/ / \ ただちに 逃げろ |
. :::/ |/ | |.........
0724デフォルトの名無しさん
2011/04/03(日) 14:09:44.24ttp://homepage2.nifty.com/h-shioi/Earthquake/Note/ShioiNote.htm
0725デフォルトの名無しさん
2011/04/03(日) 16:30:25.07D2でIDEを作れないことの方が問題だと
でもDFLのforkといいgtkDの復活といい状況よくなってきてるな
0726デフォルトの名無しさん
2011/04/03(日) 16:47:29.730727デフォルトの名無しさん
2011/04/03(日) 16:47:58.930728デフォルトの名無しさん
2011/04/03(日) 17:39:48.800729デフォルトの名無しさん
2011/04/03(日) 18:13:22.36はるかに楽な気もするが
文字列ミックスインがにくい!
CTFEがにくい!
DMDのよくわからない挙動が(ry
0730デフォルトの名無しさん
2011/04/03(日) 18:14:45.210731デフォルトの名無しさん
2011/04/03(日) 18:50:00.480732デフォルトの名無しさん
2011/04/03(日) 18:54:03.980733デフォルトの名無しさん
2011/04/03(日) 20:54:21.160734デフォルトの名無しさん
2011/04/03(日) 21:00:16.87DXlibでやるならば手伝う。
0735デフォルトの名無しさん
2011/04/03(日) 21:03:21.320736デフォルトの名無しさん
2011/04/03(日) 21:10:56.260737デフォルトの名無しさん
2011/04/03(日) 21:17:03.560738デフォルトの名無しさん
2011/04/03(日) 21:33:27.600739デフォルトの名無しさん
2011/04/03(日) 21:35:14.000740デフォルトの名無しさん
2011/04/03(日) 21:38:28.520741デフォルトの名無しさん
2011/04/03(日) 21:39:04.12俺は本気で手伝うぞ
0742デフォルトの名無しさん
2011/04/03(日) 21:42:44.840743デフォルトの名無しさん
2011/04/03(日) 21:53:12.352Dでいいとも思うけど。
0744デフォルトの名無しさん
2011/04/03(日) 22:06:53.750745デフォルトの名無しさん
2011/04/03(日) 22:09:14.58芝が生えるゲームどこ行ってもうたんや…
0746デフォルトの名無しさん
2011/04/03(日) 22:13:00.30チームでゲームを作る上でもっとも大切なのはポジショニング。
0747デフォルトの名無しさん
2011/04/03(日) 22:17:29.80それよりD言語でD言語のマスコットキャラの育成ゲーム作ろうずwww
0748デフォルトの名無しさん
2011/04/03(日) 22:18:46.140749デフォルトの名無しさん
2011/04/03(日) 22:19:30.490750デフォルトの名無しさん
2011/04/03(日) 22:26:04.15あるあ……あるあるwww
0751デフォルトの名無しさん
2011/04/03(日) 22:33:01.620752デフォルトの名無しさん
2011/04/03(日) 22:41:24.160753デフォルトの名無しさん
2011/04/03(日) 23:01:20.66うざいポーズでよけまくるゲームを
0754デフォルトの名無しさん
2011/04/03(日) 23:01:27.960755デフォルトの名無しさん
2011/04/03(日) 23:04:42.200756デフォルトの名無しさん
2011/04/03(日) 23:11:31.980757デフォルトの名無しさん
2011/04/03(日) 23:20:57.830758デフォルトの名無しさん
2011/04/03(日) 23:25:54.310759デフォルトの名無しさん
2011/04/04(月) 01:20:38.550760デフォルトの名無しさん
2011/04/04(月) 01:35:51.32マチクタビレタ〜
☆ チン 〃 ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ヽ ___\(\・∀・) < D3まだ〜?
\_/⊂ ⊂_ ) \_____________
/ ̄ ̄ ̄ ̄ ̄ ̄ /|
| ̄ ̄ ̄ ̄ ̄ ̄ ̄| |
| 愛媛みかん |/
0761デフォルトの名無しさん
2011/04/04(月) 10:20:12.200762デフォルトの名無しさん
2011/04/04(月) 19:20:15.52>2011年04月03日 23時52分
はえーよ
0763デフォルトの名無しさん
2011/04/05(火) 01:16:49.63DXも使ってみようかな
協力して一緒に覚え酔う
0764デフォルトの名無しさん
2011/04/05(火) 05:22:45.740765デフォルトの名無しさん
2011/04/05(火) 20:02:50.604/7 予測 http://up3.viploader.net/ippan/src/vlippan198234.jpg
発表はドイツ気象庁 http://www.dwd.de/
0766デフォルトの名無しさん
2011/04/05(火) 20:12:48.850767デフォルトの名無しさん
2011/04/05(火) 21:56:33.300768ubuntu64ビットでのSDL利用に困ってた者
2011/04/06(水) 00:40:35.74確認遅くなったが、align(4)を全部消したら普通に動いたので一応報告。
0769デフォルトの名無しさん
2011/04/06(水) 14:42:52.21Dも うかうかしてられない
うぉるたんにもっと開発スピードを落としてもらわないと
0770デフォルトの名無しさん
2011/04/06(水) 20:11:05.73DによるDのためのGUIライブラリって本気で欲しいのは欲しいんだがDFLスルーされすぎワロタ
0771デフォルトの名無しさん
2011/04/06(水) 23:01:10.570772デフォルトの名無しさん
2011/04/06(水) 23:05:05.430773デフォルトの名無しさん
2011/04/06(水) 23:24:58.820774デフォルトの名無しさん
2011/04/06(水) 23:36:40.490775デフォルトの名無しさん
2011/04/06(水) 23:49:55.550776デフォルトの名無しさん
2011/04/07(木) 00:04:12.63.NETライク==MS的
MS的==悪い
DFL==悪い
ということだったりして
Windows版だけならあとレイアウト関係とgraphics関係の機能が揃えば
ほぼ完璧ってくらいまで来てると思うんだけどな
0777デフォルトの名無しさん
2011/04/07(木) 00:07:21.800778デフォルトの名無しさん
2011/04/07(木) 00:36:05.30外国のPC事情なんて知らないけど
0779デフォルトの名無しさん
2011/04/07(木) 08:06:51.93Gtkの上に実装しようとしてたが
頓挫してるんだよねー。
0780デフォルトの名無しさん
2011/04/07(木) 09:26:19.460781デフォルトの名無しさん
2011/04/07(木) 15:54:44.070782デフォルトの名無しさん
2011/04/07(木) 16:24:30.18DでMMO鯖アプリケーションを作成しているのですが、
同時接続人数10人程度でCPU負荷5%前後、
5%のうち3割近くをGCの処理だけに持って行かれています。
メモリ使用量が増えるにつれ、GCの処理も遅くなる傾向があるようで、
このまま公開に至ると100人程度でパンクしそうな感触なんですが、
このあたり皆様どう対処しているでしょうか?
カスタムnewとフローリストの組み合わせあたりが妥当でしょうか。。。
0783デフォルトの名無しさん
2011/04/07(木) 18:58:44.30これあるなぁ
大量にデータを作って大量に捨てるソフトで
3割どころか8割近くGCの処理時間だったことがある
今のDのGCは出来がよくないって聞いたような気もする
その時はクラスを廃して構造体だけにしたら格段に早くなったけど
GCされるのはクラスだけじゃないよね
0784デフォルトの名無しさん
2011/04/07(木) 21:53:16.65何にせよJVMのように膨大なリソースを投入されているわけではないからなあ
0785デフォルトの名無しさん
2011/04/07(木) 22:14:07.890786デフォルトの名無しさん
2011/04/07(木) 22:21:52.02ええいまたGC萌え廃人か
0787デフォルトの名無しさん
2011/04/07(木) 22:30:45.12>>782
とりあえず、メモリの確保と解放が最小限になるプログラムを作ろうか。
目標は、プレイヤーのログインとログアウト、ゲームの状態や場面の切り替えの時だけで、確保と解放をする。
...それとも、既にそんな感じ?
0788デフォルトの名無しさん
2011/04/07(木) 22:33:57.90こっちも構造体デストラクタのバグのせいでドジッ娘なんだっけ。
0789デフォルトの名無しさん
2011/04/07(木) 22:35:57.69「なるべく注意してnewも使わずリソースがその場限りで
開放されるようにしてるのにそれでもGCが走ッちまうぜ」
みたいな愚痴を言ってたような気がする
0790デフォルトの名無しさん
2011/04/07(木) 22:46:51.01Dの標準ライブラリが糞な可能性は、今も高いけど。
0791デフォルトの名無しさん
2011/04/08(金) 00:01:51.93DのGCへの信頼が揺らいだと思ったら地面も揺れた。
0792デフォルトの名無しさん
2011/04/08(金) 00:25:15.40普通に全スキャンするイマイチなGCのままじゃない?
0793782
2011/04/08(金) 01:45:36.75ちゃんとログを取っていなかったので数値を出さなかったのですが、
30人ログインさせた際CPU負荷30%付近(瞬間的に100%近く)で、
メインループは5%前後だったので残りは・・・
クラスを廃して構造体ってのは参照で少々痛い目に遭ったので控えたいなぁ。
refを使い出すと一時変数の参照を受けたりしてc++より厄介に感じました。
>>787
PCはそんな感じですが、
他は後から調整するつもりで(というかもう少しGCがいい子と期待していた…)
敵やマップの生成、破棄がそこそこ多いかもです。
一番newが多いのはAIのLuaDと通信周りなので、このあたり詰めてみます。
0794デフォルトの名無しさん
2011/04/08(金) 02:04:50.20オブジェクトが増えるとGCに掛かる時間が増えるのも認識されてて,Davidがパッチ投げてる(正確なヒープスキャンとはまた別)
あと,forkがある環境向けに並行Markとか行う実装もブランチはある(テスターが全然いないから取り込まれる予定は今の所無し)
0795デフォルトの名無しさん
2011/04/08(金) 11:45:53.83公式の説明を素直に読むなら・・・
1.GCで確保された領域を指す 'root' ポインタを全て列挙します。
2.rootから指されている領域内から、 再帰的にGCメモリ領域内を指しているポインタを探索します。
3.GCで割り当てられた領域のうち、 生きたポインタで指されていないことが分かった領域を全て解放します。
4.残ったメモリ領域のデータをコピーして使用領域をまとめる処理 (コピーGCと呼ばれます) が実行される可能性があります。
1~3で少なくともマーク&スイープが実装されていることがわかり、
4で少なくともコピーGCが実装されていることがわかる。
これやっぱり世代型コピーGCだろ。
0796デフォルトの名無しさん
2011/04/08(金) 12:15:36.24DMDの実際がどうなのかは知らないけど別の事のような気がする
0797デフォルトの名無しさん
2011/04/08(金) 12:18:29.550798デフォルトの名無しさん
2011/04/08(金) 12:51:44.721~3までに、メモリが十分に空いたら、実行しないかも? ということじゃね。
>>797
何時の話か書いてくれないと、コメントのしようが無いって言う。
0799デフォルトの名無しさん
2011/04/08(金) 13:05:45.98メモリ領域が移動されないことを前提としたコーディングはしないでね!ってことだよ
0800デフォルトの名無しさん
2011/04/08(金) 13:09:41.20実際は単純なマーク&スイープに留めてあるよって言う話があってふーんそうかって思ってたんだよね。
一応こんなの出てきたけど俺が見たのとは違う。 ttp://goo.gl/8Ci3Z
0801デフォルトの名無しさん
2011/04/08(金) 13:19:41.160802デフォルトの名無しさん
2011/04/08(金) 13:24:23.63古いのかよ。
むう、せめてGCのソースが見つかれば・・・(見つけられない俺)
0803デフォルトの名無しさん
2011/04/08(金) 13:35:45.420804デフォルトの名無しさん
2011/04/08(金) 14:19:02.26GCの実装変えたよなんて話あったらもっと話題になってるっつーの。
0805デフォルトの名無しさん
2011/04/08(金) 16:09:45.510806デフォルトの名無しさん
2011/04/08(金) 17:05:48.03tk\mem.cかなあ
0807デフォルトの名無しさん
2011/04/08(金) 17:12:08.650808デフォルトの名無しさん
2011/04/09(土) 02:30:22.38初歩的なGCを素直に実装しただけなので、他のGC実装(boehmとか)に比べれば簡単で読みやすい
GCの仕組みを知る入門用として読むのはおすすめ
しかしlispやjavaが営々と積み上げてきた高速化技術がなんもはいってないので実用的にはクソ
>>800
「俺が見たのとは違う」って俺が見たのはどのバージョン?
4年ぶりに2.052確認したけど変わってないと思う
0809デフォルトの名無しさん
2011/04/09(土) 02:44:36.44誰かナイスなGC実装してくれよ
0810デフォルトの名無しさん
2011/04/09(土) 03:02:25.370811デフォルトの名無しさん
2011/04/09(土) 03:20:37.89ぶっちゃけるとネイティブでかつランタイムに大きな負担をかけずに
JavaレベルのGCを搭載するのはかなり厳しい(実際そんなGC見た事無い)
コンパイラを弄ってランタイムとの関係をもっと密にすれば行けるかもしれないけど
そうするとJavaみたいに環境の差を吸収する基盤のないD言語だとそこで死ぬ
勿論タスクを分解して,処理の並列度を上げるという逃げ道はあるけども
region inference的なものを入れれるのであれば新しい道が開ける可能性もあるが
どこまで実用で使えるのか分からんしなぁ
0812デフォルトの名無しさん
2011/04/09(土) 03:42:49.04immutableの仲間が増えそうな気がするな
fixed(char *) c = malloc(10);
char *d = new char[10]; //movable
c = d; // error!
d = c; // ok
0813デフォルトの名無しさん
2011/04/09(土) 04:16:51.30C#はそんなようなトリックを使ってるんだっけ?
0814デフォルトの名無しさん
2011/04/09(土) 04:36:14.83>>812はそうではなくて、D言語風に、素のポインタはいつの間にか移動するポインタ、
fixedを付けると移動しないポインタ、ぐらいのつもりで書いた。細かいことは考えてない。
今思ったんだがポインタ演算中に別スレッドでgc走ってポインタが移動すると結果が狂うんじゃ……
0815デフォルトの名無しさん
2011/04/09(土) 08:45:26.93ソースの場所おしえてくれ〜
0816デフォルトの名無しさん
2011/04/09(土) 09:49:33.49interface A{}
class foo{}
class bar: foo , A{}
class baz: foo, A {}
があって
foo[] array
に、fooとbarとbazが混在してるとして
arrayのうちinterface Aを継承してるものをピックアップなんてできないよね?
書いてるうちに、出来るわけねーじゃんって思ったけど一応質問してみる・・・
0817デフォルトの名無しさん
2011/04/09(土) 10:29:58.530818デフォルトの名無しさん
2011/04/09(土) 10:55:09.91Cとのインターフェイスでもこの辺りや文字列でイラっとくることがある
0819デフォルトの名無しさん
2011/04/09(土) 12:16:41.32仮想マシンもないのにGCにごりごり依存してる標準ライブラリの存在がネック
だとすると・・・ピコーン
alias std!FooGC std;
0820デフォルトの名無しさん
2011/04/09(土) 12:19:22.67std!barGC.stdlib.free(p);
('A`)
0821デフォルトの名無しさん
2011/04/09(土) 12:19:37.15出来る
0822デフォルトの名無しさん
2011/04/09(土) 13:34:50.45SDL\SDL_audio.d(45): C-style function pointer and pointer to array syntax is dep
recated. Use 'function' to declare function pointers
SDL\SDL_audio.d(77): C-style function pointer and pointer to array syntax is dep
recated. Use 'function' to declare function pointers
SDL\SDL_rwops.d(31): C-style function pointer and pointer to array syntax is dep
recated. Use 'function' to declare function pointers
0823デフォルトの名無しさん
2011/04/09(土) 13:56:39.00int (*fp)(int, int); //C-Style
↓
int function(int, int) fp; //D-Style
0824デフォルトの名無しさん
2011/04/09(土) 14:09:50.10main() の頭でDLL初期化が必要なので注意
DerelictSDL.load(); // SDLのそれぞれのDLLに対してこういう初期化文を追加
0825デフォルトの名無しさん
2011/04/09(土) 14:53:10.390826デフォルトの名無しさん
2011/04/09(土) 15:39:35.07thx!
とりあえず>>823の変換をちまちまやってみるが
うまい正規表現とかないですか
おとなしくDerelictSDLにしといたほうがいいですか
0827デフォルトの名無しさん
2011/04/09(土) 15:43:51.460828デフォルトの名無しさん
2011/04/09(土) 15:46:20.24bitって廃止になったんじゃなかったか
DerelictSDLしてくる
0829デフォルトの名無しさん
2011/04/09(土) 16:16:02.17ちょっと前にURL載ってるけどここのじゃじゃダメなん?
日付見る限りCスタイルの関数宣言とかbit使ってるってことなさそうだが……
0830デフォルトの名無しさん
2011/04/09(土) 16:28:59.65継承関連はクラスでどうぞ。
0831デフォルトの名無しさん
2011/04/09(土) 19:09:39.90Cとのインターフェースで使う構造体で初期値が固定なものがあって
それを使うたびに自前で毎回全メンバーに決まった値入れたり
initXXX()みたいな関数呼び出したりするのが自明すぎだし書き忘れたらバグの元だしで嫌なんだ
initを使えれば見た目もすっきりしていいんだけど・・・
0832デフォルトの名無しさん
2011/04/09(土) 19:25:35.91とかするとS.init.iは10になった気がするんだけど、使えそう?
0833デフォルトの名無しさん
2011/04/09(土) 20:00:57.47勉強のためにほかの人が書いたプログラムを写経しようと思ってます
初心者でも理解できるような物があれば教えてください
0834デフォルトの名無しさん
2011/04/09(土) 20:43:25.94�dほんとだできますた
0835デフォルトの名無しさん
2011/04/09(土) 21:39:09.69それホントに出来た?
自分は出来なかった・・・。
例えばこんな。
struct Hoge
{
int a = 30;
unittest
{
static assert(Hoge.a.init == 30); // 0 == 30 となり失敗する
}
}
ttp://www.kmonos.net/alang/d/2.0/property.html#init
には書いてあるけど、あるときを境にこれが出来なくなったと理解してる。
いつかの更新履歴に書いてあったような・・・。
0836835
2011/04/09(土) 21:41:55.63できたー!サンクス!
0837デフォルトの名無しさん
2011/04/09(土) 22:08:28.85D公式のトップにあるやつとか?
ただ、もしあなたがプログラミング自体の初心者なら、別の言語から始めることをお勧めする。(とりあえずjavaでいい)
0838デフォルトの名無しさん
2011/04/09(土) 22:09:00.89http://ideone.com/ggfoA
('A`)
0839デフォルトの名無しさん
2011/04/09(土) 22:17:15.950840デフォルトの名無しさん
2011/04/09(土) 22:21:26.230841デフォルトの名無しさん
2011/04/09(土) 22:36:24.84(゚∀゚)!
0842デフォルトの名無しさん
2011/04/09(土) 23:09:05.260843デフォルトの名無しさん
2011/04/09(土) 23:17:48.860844デフォルトの名無しさん
2011/04/10(日) 00:06:23.65ttp://twitter.com/nalto32/status/56624705855176704
0845デフォルトの名無しさん
2011/04/10(日) 10:15:34.11把握
0846デフォルトの名無しさん
2011/04/10(日) 12:08:58.76FU○K
0847デフォルトの名無しさん
2011/04/10(日) 12:12:03.79Locale周りとか…dwt2使ってて国別のリソース取るところではたと困ったし
0848デフォルトの名無しさん
2011/04/10(日) 13:06:48.26http://ideone.com/em1tO
0849デフォルトの名無しさん
2011/04/10(日) 17:14:21.43ttp://twitter.com/mono_shoo/statuses/56567451500023808
0850デフォルトの名無しさん
2011/04/10(日) 17:36:51.97とかお前ら人数に感動しすぎww
0851デフォルトの名無しさん
2011/04/10(日) 17:39:54.89こんなこと出来たのかw
テンプレートとか苦手なロートルだけどこういうの見るとやってみたくなるな
0852デフォルトの名無しさん
2011/04/10(日) 18:13:51.390853デフォルトの名無しさん
2011/04/10(日) 18:51:47.780854デフォルトの名無しさん
2011/04/10(日) 19:31:20.550855デフォルトの名無しさん
2011/04/10(日) 19:44:21.19破壊的なのかはしらんが
0856デフォルトの名無しさん
2011/04/11(月) 02:40:00.43最新dmdにスリルを求めてしまう事の次にD言語使ってる感が出る。
0857デフォルトの名無しさん
2011/04/11(月) 08:09:51.69rubyとかのスクリプト言語のもたいていクソなんだが
メインの実行が遅いので、メインとGCの比率で見ると目立たないだけ
0858デフォルトの名無しさん
2011/04/11(月) 08:10:57.23>>807
0859デフォルトの名無しさん
2011/04/11(月) 16:48:24.40GCも何とかなるなら何とかしたい。
0860デフォルトの名無しさん
2011/04/11(月) 17:08:40.34t = s; // ok, t.a is now 3 -> ウソ、cannot modify const (dmd2.052 win)
ドキュメントの方がおかしいような気がしなくもないがどうなんだろう
0861デフォルトの名無しさん
2011/04/11(月) 20:42:09.420862デフォルトの名無しさん
2011/04/11(月) 20:45:40.300863デフォルトの名無しさん
2011/04/11(月) 21:13:27.77そう、貴様は同じ場所に留まって、もがき続けるしかないのだ!
0864デフォルトの名無しさん
2011/04/11(月) 22:02:27.300865デフォルトの名無しさん
2011/04/12(火) 01:50:14.400866デフォルトの名無しさん
2011/04/12(火) 02:08:02.140867デフォルトの名無しさん
2011/04/12(火) 04:28:06.83scope class を、scope class のメンバ変数としても存在出来るようにするんだ。
で、scope class はデストラクタ終了後に自分の scope class メンバ変数を delete する。
ちょっと突破口の香りしね?
0868デフォルトの名無しさん
2011/04/12(火) 07:57:51.76光魔術に対する突破口?
0869デフォルトの名無しさん
2011/04/12(火) 12:49:44.820870デフォルトの名無しさん
2011/04/12(火) 13:14:39.46if (nodeSrc == node.parent
|| nodeRes == node.parent
|| nodeExt == node.parent) { 〜以下省略
↓みたいに書けそうな気がするけどなにか簡単な書き方ないかな?
if (node.parent in [nodeSrc,nodeRes,nodeExt]) { 〜以下省略
0871デフォルトの名無しさん
2011/04/12(火) 14:16:10.250872デフォルトの名無しさん
2011/04/12(火) 14:43:23.48こんな感じ?
0873デフォルトの名無しさん
2011/04/12(火) 15:05:48.32void*[T] include(T)(T[] a...)
{
void*[T] bar;
foreach(o;a)
{
bar[o] = null;
}
return bar;
}
を定義しといて
if(node.parent in include(nodeSrc,nodeRes,nodeExt) ){〜以下略
0874デフォルトの名無しさん
2011/04/12(火) 17:10:33.22なかなか。ありがと
0875デフォルトの名無しさん
2011/04/12(火) 20:19:12.98〜前略〜
int i;
int a[256];
char b[1024];
〜中略〜
int *ap = a;
char *abp = (char *)ap;
for(i = 0; i < 1024; i++) abp[i] = b[i];
〜後略〜
とか、
struct test_s{
int a;
char b[16];
};
〜中略〜
test_s a;
char b[20];
〜中略〜
test_s *ap = a;
char *abp = (char *)ap;
for(i = 0; i < 20; i++) abp[i] = b[i];
〜後略〜
とか、できますか?
0876デフォルトの名無しさん
2011/04/12(火) 21:35:03.910877デフォルトの名無しさん
2011/04/12(火) 21:37:45.400878デフォルトの名無しさん
2011/04/12(火) 21:43:17.910879デフォルトの名無しさん
2011/04/12(火) 21:55:15.65int[256] a;
char[1024] b;
(cast(char*)a.ptr)[0 .. 1024] = b[];
test_s a;
char[20] b;
(cast(char*)&a)[0 .. 20] = b[];
0880デフォルトの名無しさん
2011/04/12(火) 21:57:16.660881デフォルトの名無しさん
2011/04/12(火) 21:59:40.10おぉ、これはずいぶん簡潔に・・・・。
こうすれば出来るんですね。ありがとうございます。
0882デフォルトの名無しさん
2011/04/12(火) 22:07:38.87char[1024] b;
(cast(char[])a)[] = b[];
これでもいける
0883デフォルトの名無しさん
2011/04/12(火) 22:30:46.95GUI部分とメイン処理を別スレッドでやるのに、参考になるもの何処かにないでしょうか?
0884デフォルトの名無しさん
2011/04/13(水) 00:16:37.15引数をまるまるスルーパスすることってできます?
0885デフォルトの名無しさん
2011/04/13(水) 01:29:03.82C#(というか.net)で、やりたい事書いているサンプル探して、それと同じ様な
クラスやメソッドがDFLにないか、探してみるといいよ
enticeのヘルプにクラスの一覧みたいなのがあったと思う
0886デフォルトの名無しさん
2011/04/13(水) 01:34:36.08サンプルじゃないけどココがひっかかる所かもしれない(コメント欄)
ttp://d.hatena.ne.jp/haru-s/20090716/1247730305
0887デフォルトの名無しさん
2011/04/13(水) 02:09:41.01void f(T...)(T args){ g(t); }
void g(T...)(T args){}
0888デフォルトの名無しさん
2011/04/13(水) 02:16:04.24http://bit.ly/hlAaZG どうぞ。
0889デフォルトの名無しさん
2011/04/13(水) 02:43:09.07C/Dスタイル可変個引数だと出来そうにない。
代わりに、テンプレートのタプルパラメタを使えば出来るはず。(>>887と同じ方法)
void foo(...) を void foo(T...)(T t)に変えて、tをそのまま渡す。(渡す先はC/Dスタイル可変個引数でもおkなはず)
型安全可変個引数だと、受け取った配列(またはクラス)をそのまま渡せばよさそうだ。
0890デフォルトの名無しさん
2011/04/13(水) 03:09:43.10を使うと、正しく表示されないのが困ったもんだ。何でUTF-8なんか使うんだ。
0892デフォルトの名無しさん
2011/04/13(水) 03:36:25.520893デフォルトの名無しさん
2011/04/13(水) 04:20:56.190894デフォルトの名無しさん
2011/04/13(水) 06:53:46.58make長げー・・・。
0895デフォルトの名無しさん
2011/04/13(水) 07:01:37.880896デフォルトの名無しさん
2011/04/13(水) 07:48:38.19コマンドプロンプトの文字コードは変えられる
0897デフォルトの名無しさん
2011/04/13(水) 08:08:21.50多分、流行ってない。
けど、思ったよりだいぶマトモな仕様だし、
有名なソフトに使われればその日も近いかも。
0898デフォルトの名無しさん
2011/04/13(水) 08:09:10.54内部UTF-8と決め打って、なおかつ他の箇所では適切に(なるまで時間かかった気もするけど)変換してるんだから
0899デフォルトの名無しさん
2011/04/13(水) 08:35:56.800900デフォルトの名無しさん
2011/04/13(水) 11:10:31.87http://www.kmonos.net/alang/d/2.0/phobos/std_encoding.html
http://site.icu-project.org/
・・・もしかしたら出来るかもしれない。
0901デフォルトの名無しさん
2011/04/13(水) 13:36:09.00頼んだぞ
0902デフォルトの名無しさん
2011/04/13(水) 13:38:02.950903デフォルトの名無しさん
2011/04/13(水) 14:37:28.23パイプであれこれ柔軟にできるんじゃないかと思うが
探してもうまく見つけられなかった
0904デフォルトの名無しさん
2011/04/13(水) 16:17:38.710905デフォルトの名無しさん
2011/04/13(水) 17:56:48.000906デフォルトの名無しさん
2011/04/13(水) 18:03:36.460907デフォルトの名無しさん
2011/04/13(水) 18:52:02.070908デフォルトの名無しさん
2011/04/13(水) 19:06:14.630909デフォルトの名無しさん
2011/04/13(水) 20:03:56.47キラーアプリがあればとみんな待ち望んで誰も動こうとしないのもまたD。
そろそろすごいもの作りませう >>910-
0910デフォルトの名無しさん
2011/04/13(水) 20:06:59.160911デフォルトの名無しさん
2011/04/13(水) 20:07:24.530913デフォルトの名無しさん
2011/04/13(水) 20:21:50.760914デフォルトの名無しさん
2011/04/13(水) 21:36:50.99無視して先に出すべ
0915デフォルトの名無しさん
2011/04/13(水) 21:39:48.68破壊的変更があるからねw
0916デフォルトの名無しさん
2011/04/13(水) 21:43:16.850917デフォルトの名無しさん
2011/04/13(水) 22:12:45.42スパイダーマン3みたいだな
0918デフォルトの名無しさん
2011/04/13(水) 22:28:46.90Derの中にC++のスパイが?
0919デフォルトの名無しさん
2011/04/13(水) 23:04:07.34誰か似たようなインタフェースのSquirrel版を作ってくれまいか
Squirrel使ったことないけどw
0920デフォルトの名無しさん
2011/04/13(水) 23:19:42.05(つか中でthis参照するとめちゃくちゃな値が返ってくる)
使い物にならん感じだったなあluad
自分でも作ろうとしてみたが、>>75もいってるprivate判定とかで面倒になってる。
__traits(compiles)で呼び出すコード書いて通るか否かでやってるんだが、
・特殊関数(__ctorとか__unittest*とか)
・静的変数と普通の変数
・static関数と普通の関数
・↑の各種オーバライド
とか判定してたら条件分岐多すぎて閉じ括弧の量がlispみたいになっちまって今書き直してるとこw
0921デフォルトの名無しさん
2011/04/14(木) 01:56:06.88gcc-4.5.2にアップしたのに、4.2.3よりバージョンが低いと言われた・・・死にたい。
そもそも、なんでgccが必要なんだよ・・・。
0922デフォルトの名無しさん
2011/04/14(木) 01:59:06.510923デフォルトの名無しさん
2011/04/14(木) 06:11:31.550924920
2011/04/14(木) 07:42:10.66はじゅかしい。
0925デフォルトの名無しさん
2011/04/14(木) 08:01:19.12再現コードないの
0926デフォルトの名無しさん
2011/04/14(木) 08:21:00.72各自で作るのはいいけど、
作ったらPhobosに入れて欲しい
0927デフォルトの名無しさん
2011/04/14(木) 13:49:21.62おおおおおおおお俺は、つつつつつつつ作らないぞ!???????????????
0928デフォルトの名無しさん
2011/04/14(木) 19:42:31.95標準のリンカがgcc
0929デフォルトの名無しさん
2011/04/14(木) 19:56:00.94良く分からないけどgccって名前のプログラム作って引数を変換してdmcに渡すとかじゃだめなの?
0930デフォルトの名無しさん
2011/04/14(木) 20:33:18.76ddbgの完成度にもどかしさを感じてたので
mingw環境(3つ目)をまた入れてみるか
0931デフォルトの名無しさん
2011/04/14(木) 20:43:39.210932デフォルトの名無しさん
2011/04/14(木) 20:43:50.350933デフォルトの名無しさん
2011/04/14(木) 20:45:44.91ttp://wiki.dprogramming.com/Dfl/Snapshots
dfl-20100801.zip 内の packages/dfl/examples/ 以下
dmd.exeとdfl.exeにPATHが通っている状態で、同梱のmakeall.batを実行でビルド出来ます
drop.d と droplist.d のdebugビルドはD1/D2共に、ドラッグするとAccessViolation
0934デフォルトの名無しさん
2011/04/14(木) 21:05:44.91OPTLINKを使わなくていいなんて嗚呼
なんて羨ましいんだ!!なんて羨ましいんだ!!
0935デフォルトの名無しさん
2011/04/14(木) 22:33:34.040936デフォルトの名無しさん
2011/04/14(木) 23:04:27.74意味不明のダイアログが出てきて失敗した思い出しかない
0937デフォルトの名無しさん
2011/04/14(木) 23:14:46.330938デフォルトの名無しさん
2011/04/14(木) 23:27:41.520939デフォルトの名無しさん
2011/04/15(金) 18:00:26.25ttp://ideone.com/iie3s
('A`)
0940デフォルトの名無しさん
2011/04/15(金) 19:39:02.84wwww
0941デフォルトの名無しさん
2011/04/15(金) 20:01:23.33Bはなんだろな
0942デフォルトの名無しさん
2011/04/15(金) 20:18:56.51ここは一つDに飴をくっつけてDame言語と呼ぼうと思う
0943デフォルトの名無しさん
2011/04/15(金) 20:47:17.492パスせまんてくすまじっく!
Dはだめじゃないよかわいいよ
0945デフォルトの名無しさん
2011/04/15(金) 22:58:06.59何いってんだ飴ばかりじゃないかと言おうと思ったがDame言語が強まるだけだった。
0946デフォルトの名無しさん
2011/04/15(金) 23:11:09.680947デフォルトの名無しさん
2011/04/15(金) 23:33:11.640948デフォルトの名無しさん
2011/04/15(金) 23:33:54.300949デフォルトの名無しさん
2011/04/15(金) 23:36:01.620950デフォルトの名無しさん
2011/04/15(金) 23:54:07.310951デフォルトの名無しさん
2011/04/16(土) 00:59:06.420952デフォルトの名無しさん
2011/04/16(土) 01:17:42.22SDL.libとSDL_mixerだけはできてるうう
0953921
2011/04/16(土) 04:57:15.84DMDなんて、夢だったんや・・・。
0954デフォルトの名無しさん
2011/04/16(土) 12:24:50.180955デフォルトの名無しさん
2011/04/16(土) 12:57:06.370956デフォルトの名無しさん
2011/04/16(土) 15:57:08.31SDL_netのlibをリンクしようとすると
エラーがでる
エラー 3 Error 43: Not a Valid Library File
0957デフォルトの名無しさん
2011/04/16(土) 16:00:24.07LIBが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.320960デフォルトの名無しさん
2011/04/16(土) 23:55:30.83つうか確認のために踏んだら素材が増えてるよwww やったねたえちゃん!
libはBorland用の(omf)使うか、VC++用(coff)をcoff2omfで変換するか、
もしくはimplib /s xxx.lib xxx.dllでdllから自分で生成する。
この辺のことって今はどっか(友の会あたり?)に書いてあるのかしら。
0961デフォルトの名無しさん
2011/04/17(日) 00:17:58.27http://wikiwiki.jp/dlang/
0962デフォルトの名無しさん
2011/04/17(日) 00:22:48.540963デフォルトの名無しさん
2011/04/17(日) 00:24:44.080964デフォルトの名無しさん
2011/04/17(日) 00:40:39.51スルーするつもりだったのにw
もりもり増えてるじゃないか!
0965デフォルトの名無しさん
2011/04/17(日) 15:42:36.00http://hibari.2ch.net/test/read.cgi/tech/1303022487/
0966デフォルトの名無しさん
2011/04/17(日) 16:00:03.630967デフォルトの名無しさん
2011/04/17(日) 19:08:36.650968デフォルトの名無しさん
2011/04/18(月) 19:27:09.720969デフォルトの名無しさん
2011/04/18(月) 21:37:46.78class C
{
0970デフォルトの名無しさん
2011/04/18(月) 21:39:13.38}
とかして
C.Func()ってできない?
C inst = new C();
inst.Func()でなくて
0971デフォルトの名無しさん
2011/04/18(月) 22:03:11.020972デフォルトの名無しさん
2011/04/18(月) 22:03:43.500973デフォルトの名無しさん
2011/04/18(月) 23:30:07.880974デフォルトの名無しさん
2011/04/18(月) 23:38:49.601日10本ぷろぐらむを書く、それを日課にすべし
0975デフォルトの名無しさん
2011/04/18(月) 23:46:40.910976デフォルトの名無しさん
2011/04/18(月) 23:49:13.430977デフォルトの名無しさん
2011/04/19(火) 18:03:22.85class 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.91import 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.260980デフォルトの名無しさん
2011/04/19(火) 18:43:59.12スペルミスだろうか(#^ω^)ビキビキ
0981デフォルトの名無しさん
2011/04/19(火) 18:45:28.830982デフォルトの名無しさん
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.780984デフォルトの名無しさん
2011/04/19(火) 20:12:55.09D2はそうだけど、D1は違うよ。
0985982
2011/04/19(火) 21:58:51.90log4cxxも同じような感じで使ってたんですが、
ログ出力を止めたら再現しなくなりました。
恐らく他(自分のコード)に問題がありそうなので調査してみます。
0986デフォルトの名無しさん
2011/04/19(火) 22:39:43.69ところで>>982のコードだと、スレッド別にAのインスタンスが生成されるが大丈夫か?
0987デフォルトの名無しさん
2011/04/19(火) 22:57:48.81Dに限っては疑うべきは自分のコードにあらず
0988デフォルトの名無しさん
2011/04/19(火) 22:59:22.610989デフォルトの名無しさん
2011/04/19(火) 23:01:09.05sharedにしたらふつーにsynchronizedにしないとダメなんじゃ
0990デフォルトの名無しさん
2011/04/19(火) 23:36:19.88と言われたんですが、本当ですか。
0991デフォルトの名無しさん
2011/04/19(火) 23:53:42.94どんな話題だ、と思いつつ、、、
単体の命令には無いけど、synchronized文を使えば同じ事は出来るな。
てか、gccでも同じ関数使えるだろ。。。
0992デフォルトの名無しさん
2011/04/20(水) 00:59:01.98アトミック化するのとは違うのでは。
core.atomicってどうなってるのだろう。
0993デフォルトの名無しさん
2011/04/20(水) 07:06:06.72gccには__sync_add_and_fetchってあったような
0994デフォルトの名無しさん
2011/04/20(水) 07:15:39.73せめてsyくらいにしてくれ
0995デフォルトの名無しさん
2011/04/20(水) 10:51:42.66そこは意図的にスレッド別に作ってます。
スレッド数が最大8程度なので、
同期を取って一つを使い回すよりかはこういう使い方のほうがいいかなと。
0996デフォルトの名無しさん
2011/04/20(水) 15:12:25.23お前studio容認派か
0997デフォルトの名無しさん
2011/04/20(水) 20:46:23.630998デフォルトの名無しさん
2011/04/20(水) 20:47:24.580999デフォルトの名無しさん
2011/04/20(水) 20:48:25.571000デフォルトの名無しさん
2011/04/20(水) 20:49:27.9710011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。