3 :
デフォルトの名無しさん :2012/07/31(火) 00:13:20.33
で??
でつ・
新スレ・
新スレだ!D2.060だ!
最近更新してもコンパイル通っちゃったり修正箇所少なかったりしてかなしい
dmdでコンパイルエラー出ないと悲しくなる だがoptlink、てめーはだめだ
うぉるたんが2.060をさっさとリリースして Win64を進めるんじゃー ってゆってたから年内には改善されるかもしれない いや、やっぱり年内は無理かな
あ?
い?
を?
implibとか入ってるDigital Marsのbup.zipをウィルスセキュリティZEROがウィルス扱いして隔離するんだけど・・・
コンパイルエラーを直すのが一種のパズルゲームのように面白いのはDの利点だよ
次のバージョン辺りから いままでルーズな感じだったのを constチェックをうるさくつけるようになるってこと?
片山くん、俺は君を信じてWondersに乗っかることにしたから 今後も飽きずに対応してくれな じゃ、ちょっと大型アプリケーション作りに行ってくるわ
>>18 Zeroのことだから誤認だと思ったけどやはり・・・
D用のfreeglutって無かったでした?
ある
25 :
デフォルトの名無しさん :2012/08/04(土) 21:59:55.00
doko?
Derelict3 ni aru yo
>>前スレ978 ざっとコード見たけどまあ頑張ってるんじゃない? でも日本でPublic domainという時点でNG
こういう狭い考えの奴らがスパゲッティーコードを量産し始めるんだろうな
>>26 arigato. dakedo hayamatte jibunde porting sicyatta yo!!
ima sample ugoita toko
自由に使って良いよって意味合いで公開してるんだからPublic Domainでも大丈夫 日本の著作権の考え方と衝突するって言うけど 作者の意図が上のような状態なら そもそも権利に関して衝突する状況がまず存在しないよ 開発を継続するのなら gitとか使える所で公開したほうがいいと思う
githubに上げてくだされー
Javaからの移植で浮動小数点数の初期化でハマった こういうハマリポイントまとめておくと後で便利そうと思ったので頑張ってやらない
すいません。
std.net.curlで一部のUTF8ページの日本語部分が文字化けするのですが、どうすれば良いのでしょうか?
import std.net.curl;
import std.stdio;
void main(){
auto content = get("
http://www.yahoo.co.jp/ ");
write(content); //文字化けなし
auto content1 = get("
http://www.excite.co.jp/ ");
write(content1); //日本語が文字化け
}
実は名乗ってる文字コードと真の文字コードが違う… なんてことはないか、さすがに
36 :
34 :2012/08/07(火) 00:52:18.13
その後しらべた所、content-typeのcharset指定がなかったので、ISO-8859-1でデコードされていました。 ubyteで返してchar[]にcastしたら正常に動きました。ライブラリにエンコード指定の方法が欲しいですね。 ありがとうございました。
37 :
片山博文MZボット ◆0lBZNi.Q7evd :2012/08/07(火) 12:17:46.08
38 :
片山博文MZボット ◆0lBZNi.Q7evd :2012/08/07(火) 14:00:21.81
あるスレッドからTLS変数を一切使わないからTLSコピーしないでほしいんだけどなんか方法ない?
?
勝手にコピーとかしないんじゃ?
スレッドの数だけコピーされるのがイヤってことでしょ 全部 shared もしくは D1 w
__gsharedでいいじゃん
TLSは普通に使うんだけど、特定のスレッドからはアクセスしないので 「このスレッドからはTLSを使いませんよ」宣言が欲しいってことでは
方法無さそうだなあ
自前のTLS実装作る
片山さん、ついでにdirect2dのポーティングもやってくだしあ><
>>39 taskPoolで最低限の初期化を我慢して使い回すか、std.randomのrndGenみたいに使うまでTLSの初期化を遅延するかどっちか?
Threadクラス改造すれば静的コンストラクタ呼び出さないのもいけそうだけど。
49 :
片山博文MZボット ◆0lBZNi.Q7evd :2012/08/09(木) 12:46:33.26
>>47 Direct2Dはどのヘッダでしょうか?
>>50 ぐぐったら
d2d1.h, d2d1helper.h, d2d1helper.h, d2derr.hって出てきた。
ポートするぞ。
githubを使い始めたり 片山くんが何気に成長しとるw
d2d1、d2d1helperのポートは難易度高い
フォント表示にdwrite.h、画像表示にwincodec.hも必要。
泣き言は完成してから聞く
ゲーム用サウンドはDirectSoundが廃止になって今はXAudio2が主流だから、DirectXをサポートするならXAudio2はあったほうがいいかも
d2dはcomのモデルみたいだから大変かもね
パッケージはモジュールの集まり もっとわかりやすく言うとディレクトリ
>>60 なるほろThx
そういえばJavaもそうだった
だとするとpackageでvirtualじゃなくなるのは単なるバグか
privateで装飾すると非仮想関数として固定されるのと同じじゃない?
するとJavaのpackage-privateみたいな属性は存在しないってことかな
納得いかない import std.stdio; extern(C) void f(int n) { writeln(typeid(&f)); } void main() { f(0); } ⇒ void()*
writelnがアレなだけかね pragma(msg, typeof(&f)); // void function(int n)
あ、typeidか
Dで使用する以下の関数を持つdllの作成について教えてください。dll作成はVisualStudio2010(32bit)を利用します。 現状以下の手順でdllを作成&使用していますが、関数呼び出し時object.Error: Access Violationとなってしまいます。 どこかおかしいところがあれば指摘お願いします。 以下手順です 【1.dll作成】 --- xxx.c --- __declspec(dllexport) int __stdcall func(int (*f)(int, int), int x, int y); int __stdcall func(int (*f)(int, int), int x, int y){ return f(x, y);} 【2.implibでxxx.libを作成】 implib /system xxx.lib xxx.def ---xxx.def--- LIBRARY "xxx.dll" EXPORTS _func@12 【3.dソースで利用】 dmd src.d xxx.lib --- src.d --- extern(System){ int func(int function(int, int) f, int x, int y); int f0(int x, int y){return x + y;} } void main(){ func(&f, 1, 2); // object.Error: Access Violation }
訂正 x func(&f, 1, 2); // object.Error: Access Violation ○ func(&f0, 1, 2); // object.Error: Access Violation
xxx.cのfuncの引数のfにも__stdcallをつければ通る
73 :
片山博文MZボット ◆0lBZNi.Q7evd :2012/08/11(土) 11:32:33.86
Wonders ver.1.05
https://github.com/katahiromz/wonders http://katahiromz.web.fc2.com/d/wonders.html wincodec, dispdib, wownt{16,32}, directx/{d2derr,dxgiformat,
d2dbasetypes,d3d10_1,d3d10sdklayers,d2d1,d2d1helper,
d3d10_1shader,dcommon,dwrite,d3dcommon,id3d10blob}を追加。
mswsock, winsock2: バグ修正。
GUID定数は、externじゃなくて値埋め込みの方がいいかな?
構造体は、クラスで継承できなかった。
個人の日記帳
twitterだな
うん
githubに登録したんだから使う人はそっち見るだろう 失礼だけど需要のほとんど無いライブラリのリビジョンが上がる度に書き込むのはどうかと思うよ
値型のconst変数の存在価値がわからない immutableかenumでいいじゃん
ポインタがあるからじゃ?
>>75 次は関数パラメータのconst対応行ってみようか
鬼が居るw
IDEも作ってもらわなきゃ困る なんかもう色々と最強なやつな
現状だとVisualDの開発に参加するのが一番だろうね
変数の中身をちゃんと見られるようになれば・・・
どうも動きを見てると Release版の静的ライブラリを読み込んでいる部分が展開されないような雰囲気
ここのスレの住人はD言語の成長を暖かく見守ってるようでいいな 他の言語のスレは自分が使ってる言語をクソ糞言ってて気が滅入ってくるよ…
まあアレだ 食う前に十分太らせないと 肉の旨いもマズいも無いってな
ていうか、ある意味ではあんま変わらんよね。 クソ!(歓喜)みたいな。
>>88 !!!D言語に欠点など無いからだ!!!!
こんなインファイトの殴り合いをかけてくるクソがあるかッ!
残念ながら・・・
共用体のメンバごとにデストラクタ呼んでたらえらいことになるなw
Dのデストラクタの信用ならなさは異常
初歩的な質問なんだけど,プログラムを終了するときってどうすればいいんだ? 例外が発生したら writeln(ex); した後に自分を終了したいんだけど。 core.Runtime.terminate(); を使えばいいのかな?
Cの関数は普通に使えるんでstd.c.process.exitもあるし、 あるいはmainまで伝播させてreturnとか。
>>98 Thanks!
使い方がまずいのか,
std.c.process.exit だと scope(exit) hoge(); が実行されなかったので,
素直にmainまで伝搬させることにしました。
andreiは例外投げろ、それがDのやり方だっていってるね
101 :
片山博文MZボット ◆0lBZNi.Q7evd :2012/08/12(日) 15:04:10.99
>>82 えっ、具体例を挙げてくれますか?
CPtrとinで対応していると思いますが。
D言語の薄い本が完売したと聞いて動揺した
103 :
デフォルトの名無しさん :2012/08/12(日) 16:20:30.71
☆
そうかもう夏コミの季節か 明日からだっけ…?
今日で終わりだよ
\(^o^)/オワタ
with (w = .writeln) { w("www") } みたいな構文が欲しい
>>101 class Moge
{
HWND m_hWnd;
void Hoge() const
{
WinAPIHoge(m_hWnd);
}
}
こんな感じだとconst入れてくれるなってエラー吐くのよ
WinAPIHoge(cast(void*)m_hWnd);
こんな状況になるわけさ
ただ値を参照してるだけのようなAPIにはWINAPIの関数パラメータのほうにconstをぶっ込んでくれると助かる
{ alias writeln w; w(1); }
あれ、前は関数内でalias作れないような気がしてたけど気のせいだったかな ありがと
structはnewしなくてもいい、classはC++と違ってnewしないとだめだけど C++から割とでかいプログラムを移植する場合structなのかclassなのか全部把握してないとひどい目にあうよね C++だと多態使う必要なければnewしないの普通だからそういうとこではまる ほんとはできればnewしないで使いたいなあとか思ったり みんなその辺どうしてる?
static opCall()
classは使わない 全部struct
114 :
デフォルトの名無しさん :2012/08/13(月) 00:10:52.03
>>112 class C;
C c;
これをC++から移植するとき = new C()をつけるのを忘れてデバッグで苦労するのを何とかしたいんだ
opCall定義してもC c;じゃ通らないから結局解決しないんだぜ
>>113 お、それいいね!!
継承できんがな(´・ω・`)
>>115 お姉さん基底クラスにキャストして多態的なことしたいのェ・・・
もうアキラメロン
クラス名を全部変える(頭に Cをつけるとか) それからコンパイル時にこけたところを一つずつ直す
単に未定義の部分が揺れてるだけだとおも
デストラクタでメンバ触っていいのか?
postblitが正しく呼び出されないバグ
>>120 -debug時にデストラクタが4回呼ばれるのも気になる
127 :
120 :2012/08/13(月) 12:57:42.83
dpaste.comとdpaste.dzfl.plを誤爆しただなんて恥ずかしくて言えない
ほほーう、ふふーん。二段構えなんですね
131 :
片山博文MZボット ◆0lBZNi.Q7evd :2012/08/14(火) 15:53:19.37
<cguid.h>のCLSID_CCD*の値と、<mshtml.h>のCLSID_*の値が分からない。 誰か教えて。。。
133 :
片山博文MZボット ◆0lBZNi.Q7evd :2012/08/14(火) 16:35:25.22
c_dfDIKeyboard, c_dfDIMouse2, c_dfDIJoystickの中身は定義した方がいい?
APIのライブラリが足りないなぁ。implibかなんかで作ろうか。。。
ここはお前の日記帳じゃねえんだ バカッターにでも書いてろ、な!
twitterをご存じないのではないでしょうか 140字までの短文を投稿・閲覧できるサービスです 片山さんの書き込みには適していると思います 私もおすすめしますよ
extern const CLSID CLSID_CCDFormKrnl; extern const CLSID CLSID_CCDPropertyPage; extern const CLSID CLSID_CCDFormDialog; extern const CLSID CLSID_CCDCommandButton; extern const CLSID CLSID_CCDComboBox; extern const CLSID CLSID_CCDTextBox; extern const CLSID CLSID_CCDCheckBox; extern const CLSID CLSID_CCDLabel; extern const CLSID CLSID_CCDOptionButton; extern const CLSID CLSID_CCDListBox; extern const CLSID CLSID_CCDScrollBar; extern const CLSID CLSID_CCDGroupBox; extern const CLSID CLSID_CCDGeneralPropertyPage; extern const CLSID CLSID_CCDGenericPropertyPage; extern const CLSID CLSID_CCDFontPropertyPage; extern const CLSID CLSID_CCDColorPropertyPage; extern const CLSID CLSID_CCDLabelPropertyPage; extern const CLSID CLSID_CCDCheckBoxPropertyPage; extern const CLSID CLSID_CCDTextBoxPropertyPage; extern const CLSID CLSID_CCDOptionButtonPropertyPage; extern const CLSID CLSID_CCDListBoxPropertyPage; extern const CLSID CLSID_CCDCommandButtonPropertyPage; extern const CLSID CLSID_CCDComboBoxPropertyPage; extern const CLSID CLSID_CCDScrollBarPropertyPage; extern const CLSID CLSID_CCDGroupBoxPropertyPage; extern const CLSID CLSID_CCDXObjectPropertyPage;
久しぶりに見に来たけど丹後さん死んでしまったん?
D2でいらない子扱いにされて拗ねてる
どっちかというと形を変えながらだんだんPhobosにマージされていってるんじゃないの?
sourceforgeもいいけどgithubもいいよ!
すげー 乙乙
デマングれてないとこがあるな…
foreach (; 0 .. 10) みたいなカウンタ変数すら無いループとかできないかな
単純に回したいなら、構文は foreach(10) でいいんじゃないか。
0開始とは限らないから foreach (5 .. 15) も必要じゃね?
え。ループカウントは使いたいの?
>>149 変数無いのにどうやってカウント値を参照するんだ?
カウント変数$_に格納されます
大してご利益もないのに複雑になるだけの構文イラネ
156 :
149 :2012/08/16(木) 23:45:58.67
src\druntime\import\core\stdc\* のファイルって2.059だと.diなのに2.060では.dになってるのはなぜですか?
>>158 スタックトレース吐かなくなりました。GJ!
foreach (_; 0..10)で我慢
Error 42: Symbol Undefined _D6object29__T16AssociativeArrayTAxaTxkZ16Associativ eArray6valuesMFNdZAxk Error 42: Symbol Undefined _D6object29__T16AssociativeArrayTAxaTxkZ16Associativ eArray6valuesMFNdZAxk リンク時にこういうエラーが出ます。 おそらくisAssociativeArrayを使っているからだと思いますが、どうすればいいですか?
対象の xxxx.lib をコンパイル時に参照するように指定してあげないといけないんじゃないの
>>162 isAssociativeArrayはD言語標準なので困ったところなのです。
>>163 コンパイラのバグだったか・・・。
ソースファイルを渡す順序の入れ替え・・・地味な作業になりそうです。
まさかisAssociativeArrayを関数呼び出ししてない?
>>165 static if (isAssociativeArray!(Hoge))
こんな感じで使ってます。
>>161 デマングリングだけしてみた。これに見覚えは?
@property const(uint)[] object.AssociativeArray!(const(char)[], const(uint)).AssociativeArray.values()
演算子オーバーロードみたいにコンパイラが内部で書き換えるやつじゃね
それD組み込みの連想配列の実装コードな気がする・・
なんかkeys使うとリンクに失敗することがあったような
コンパイラはいつも夢を与えてくれますが 同時にバグも残していくのです
つまり夢いっぱいってことさ。
Open your Passion!!
dmdのバグ price less
夢だけじゃ腹は膨れないんだよッ
だったらケーキを食べればいいじゃない
178 :
161 :2012/08/18(土) 09:46:56.35
一応報告ですけど、コンパイラをdmd2.059からdmd2.054にしたらビルドできました(他のverは試してない)。
最新版を試してない・・・だと・・・
HEADじゃない…だと…?
dmd -libのときって.libファイル指定できないんですか? ライブラリソースのlib.dの中ではsc.iniで指定したパスにあるxxx.libの関数を使用しています。 dmd -lib lib.d xxx.lib ⇒Error: Error reading file 'xxx.lib' もしかしてexeソースのsrc.dで直接xxx.libを使っていなくて exeを作る場合は依存関係のあるすべての.libをdmdに並べないといけないのでしょうか dmd src.d lib.lib xxx.lib
182 :
161 :2012/08/18(土) 23:32:43.12
dmd2.060が出てたの気づいてなかった・・・。
完売したらしいね
おっくれてるぅー
あれだけ扱い難いC/C++の処理系のバグの少なさには恐れ入ったもんだが Dはどうしてだめなんだ。
仕様が決まってないから
こればかは どうしようもない
ウォルターの存在自体がバグ
>>189 改善されてないでしょ…
バグ曲線の見方は、newが少なくならないと安定してきたとはみなされないし。
class C{...} class D : C{...} C d = new D; dからDを得る方法ありますか? typeof(d)だとCになってしまう。
d.typeof
d.toString
195 :
片山博文MZボット ◆0lBZNi.Q7evd :2012/08/23(木) 16:15:36.24
196 :
片山博文MZボット ◆0lBZNi.Q7evd :2012/08/23(木) 16:52:33.59
遅くなってごめんなさ
あんなマンパワーの居る作業を一人でやったのか… お疲れさん。
>>196 Makefile
46 : ## DEBUG OR RELEASE?
逆じゃね?
## DEBUG OR RELEASE? DFLAGS=-inline -O -release -w $(DEFS) # for Debug (default) #DFLAGS=-debug -gc -unittest -w $(DEFS) # for Release これは逆やね
C言語のライブラリから char* hoge(); を文字列として引っ張ってきたいのですが、そのままだと文字のポインタのような感じになってるみたいです。 文字列のように持ってくる何かいい方法は無いでしょうか
D言語だって文字の配列だよ
hoge().to!string();
ポインタから勉強しなおしてto!stringしろ
メモリリークの予感しかしない
>>200 char* p = hoge();
string s = p[0 .. strlen(p)].idup;
というのが一番簡単かな
Cライブラリで確保されたメモリは
GC管理下に無いからコピーした方が扱いやすいと思う
自分で管理出来るならidupしないでキャストしてもいいのかな
206 :
205 :2012/08/24(金) 23:01:55.61
あ、toで行けるのかスマン知らなかった to賢いな
>>200 はポインタに対しての理解度があやしいので
その関数がmallocしてくるのかstaticな領域を返すのか確認した方がいいです
210 :
200 :2012/08/24(金) 23:40:17.15
hoge().to!string(); ですね。 関数内で作成した文字列は危険だから返すな! 予めメモリを確保した所から文字列としてchar*を返す分には問題ない。 とかそういう感じですかね? ご指摘ありがとうございます。ちゃんと手直ししました。 色々とありがとうございます。
要するにmallocしたらfreeしろってことだよ
ぼくのアナルも排便した後は女の子に舐め取ってもらいたい!
その後はすかさずベロチューか? お前とはうまい酒が飲めそうだ
ハードコアだな
マゾしかいないのかと思ったらスカトロマニアも多いとは……。 趣味がが増えたよ! やったねたえちゃん!
D言語のマスコットでエロゲ作ろう
そこはマスコットと言わず高クオリティーで頼む
ボコォ
classインスタンスのアドレスを取るときって↓で良い? あとこういうのってどこに仕様書いてありますか C c = new C; cast(void*)c
ありがとうございます。 そこは見たのですが、その「参照」は何もラップされていないアドレスと考えて良いんですか?
TypeInfo_Classがあるだろう。
&thisとかはスコープ外れた時に使えなくなるみたいなんだけど どっかでポインタ用の変数を自動生成してるってこと?
thisは変数だし、&thisは変数へのポインタなんだから当たり前だろ。
ん?じゃあ外部で生成されたクラスのアドレスを クラスの内部から取得する場合にはどうすればいいの? クラスが生成されてる間に、アドレスの形で保持しておいて スコープが外れても色々な所で使い回したいとかそういうケースなんだけど
クラス内のthisも参照だけどそのへんわかってる?
多分よく分かってません thisは、Classへのアドレス? &thisは、Classへのアドレスを記憶するために変数が用意される感じ? とか、そんな感じで混乱してます
thisはクラスのインスタンスを指す参照変数で、&thisはその参照を指すポインタを得る。 参照変数の内容にはポインタを含むから、&thisはポインタのポインタになるってわけ。
s/ポインタ/アドレス/g
>>226 そういう場合に
>>219 を使う。
thisからアドレスを得たいなら cast(void*)this でいい。
基本的には
>>219 でいいけど、CがopCastを定義していると動かない
もうちょっとよいやり方はこちら
C c = new C;
void* p = *cast(void**)&c;
Dのマスコット作ってる暇があるなら ウォルタくんはこういうややこしい部分を図解してやればいいのになw
ややこしいのか・・・?
クラスのアドレスって何に使えるんだろう?
memsetとかか。ガクブル。
SetWindowLongしたりemplaceしたインスタンスをfreeするのに使ったり
リンカが出す「Error 32: Data Outside Segment Bounds : _DATA」ってエラーはどんな意味なんだい 何をすれば解決するのかさっぱりで
みんなのおかげで次のステップに移ることができたよ ありがとう
>>238 align絡みだと思う
こっちでは
align(1) struct S {...}
みたいなのがあると出た
struct S {align(1): ... }
なら問題無しみたい
241 :
片山博文MZボット ◆0lBZNi.Q7evd :2012/08/27(月) 20:08:06.06
Warning 178: .LIB pagesize exceeds 512 助けて! -L/PAGESIZE:1024を付けてもダメだった。
ライブラリが大きすぎるということか? でも二つに分けたくないな。
単純な数値定数はconstではなくenumにすると、シンボルが出力されないからライブラリサイズが減るかも。
OPTLINKを甘く見るな 吐いてるエラーメッセージが真実とは限らない
2.060でalign属性がいかれちまってるんですが、 これはD言語erにとって大したことない感じなの?
なに、ちょっとした崩壊的変更だ 一日ちょっと楽しめたぜ
align(1)が変更つうかぶっ壊れてる気がするんですが、変更なの?
struct S {align(1): ...} でサイズが計算と合わない
249 :
デフォルトの名無しさん :2012/08/28(火) 01:21:00.19
こういう話を見るたびに思うんだけど Dがつく単語をわざと選んでんのかな
選んでるかまでは知らんが 破壊とか崩壊とか解体とか災厄とか絶望とか、 その手の単語はラテン語源のことが多いけど、 そっちで接頭辞 de- とか dis- とかがつく単語で表現されてるもんだからもともとDで始まる単語が多い
destroy
dildo
dragonic change
"D"にこれ程深い意味があったとは
Dragon → Dlagn → D lang
>>248 align(1) struct S{ align(1): ... }
Dのあのマスコットはドラゴンなのか?
Dの意思
The D like a mascot is a Doughnut. You can eat it everywhere.
void main() { import std.stdio; "hello, world".writeln(); } > a.d(4): Error: undefined identifier 'writeln' ___ ━┓ / ― \ ┏┛ / (●) \ヽ ・ / (⌒ (●) / /  ̄ヽ__) / . /´ ___/ | \ | |
なんだそのエラーメッセージwもっと言うことあるだろ
263 :
デフォルトの名無しさん :2012/08/29(水) 13:40:06.45
そうかー 関数内インポートは控えておくかな
昨日
>>261 見て関数内で使えることを知って張り切って関数内import入れまくった後なのに・・・
imporせずに関数使いたいことが稀によくある デバグのためにpragma(msg)やる時とか
え、インポなの!?
269 :
片山博文MZボット ◆0lBZNi.Q7evd :2012/08/30(木) 12:52:06.69
#define HANDLE_MSG(hwnd, message, fn) \ case (message): return HANDLE_##message((hwnd), (wParam), (lParam), (fn)) これをD言語に翻訳するとどうなる?
Unexpected OPTLINK Termination at EIP=00402C5C EAX=0000027C EBX=0052A2F8 ECX=00000001 EDX=00039FFF ESI=02ED3083 EDI=00003D84 EBP=00000006 ESP=0012FF48 First=00402000
OPTLINKはD言語最大の癌
Linuxばんじゃーい!!!
gdcがんばれー><
HANDLE_MSG(m_hWnd, WM_CLOSE, Cls_OnClose); case WM_CLOSE: return HANDLE_WM_CLOSE(m_hWnd, lParam, wParam, Cls_OnClose);
275 :
デフォルトの名無しさん :2012/08/31(金) 17:52:40.07
文字列ミックスインで頑張ってここまではできた
switch (msg) {
mixin(
makeHNDR!(hwnd, WM_MSG1, "handler1")() ~
makeHNDR!(hwnd, WM_MSG2, "handler2")() ~
""
);
default:
}
http://ideone.com/oNThI
汚いなぁそれやるなら公式で紹介されてるcond使えし
278 :
片山博文MZボット ◆0lBZNi.Q7evd :2012/09/01(土) 17:37:01.86
GDCでスタティックライブラリを作る方法、教えて。
「ar rv ライブラリ オブジェクト」でいいのか? エラーがでるけど。
そういうのはtwitter使ったほうが早いよ
>>281 twitter反応がない。。。つぶやき方が悪いのか
つぶやきシローみたいなノリでいくといいよ
質問するときは #dlangつけれ
さすがにそれはやってるだろう
D言語disりつつ質問すれば、反応はしてくれるはず
287 :
片山博文MZボット ◆0lBZNi.Q7evd :2012/09/01(土) 20:33:10.08
C:\crossdev\gdc\v2\build\i686-pc-mingw32\libphobos/../../../gcc-4.6.1/libphobos/ core/sys/windows/windows.d:2780: multiple definition of `MAKEINTRESOURCEA@4' libWonders7Wide.a(winuser.o):winuser.d:(.text+0x10): first defined here 元から有るライブラリと重複しているみたいだな。 libphobosをリンクしない訳にもいかないし。
D言語に関連してる限りはここでもいいんじゃないの 他の言語と違ってエラーメッセージがコンパイラ側のバグとかもよくあるし。 全く関係無くしゃしゃり出てたらさすがに余所でとか言いたくなるけどそういうわけでもなさそうだし。
>>287 いや、普通に考えてwindows.hの代替ライブラリ作ってるなら
core.sys.windowsとかをimportしちゃ駄目でしょw
>>287 関数名変えて、aliasつけて解決した。
>>289 そんなものをimportした覚えはないが
もしかしてWinMainとか使ってたり なわけないか
294 :
デフォルトの名無しさん :2012/09/02(日) 12:39:24.76
phobos の中でこっそり public import して"感染"状態を引き起こす奴がいる 潜在的にバグと言っていいんじゃないかな それと、大きめのプロジェクトで -g(デバッグシンボル) をつけると OPTLINKがゴネることがある
これはどういうこと? dmd con.d →Error: cannot read file con.d mv con.d co.d dmd co.d →OK
void main() { class Base{} class Derived : Base{} alias Base delegate(Base) P; P p1 = (Base b) => new Base; // ok P p2 = (Base b) => new Derived; // ok P p3 = (Derived b) => new Base; // NG P p4 = (Derived b) => new Derived; // NG } p3, p4はいつできますのん
Derivedしか受け付けない関数にただのBase渡せちゃうからダメじゃないの?
イベントハンドラに使いたいんだけど無理かぁ・・・
299 :
デフォルトの名無しさん :2012/09/03(月) 01:01:54.87
>>295 たぶんOSの予約デバイス名に引っかかってる
そういや、CONCONバグとかあったよな。ああ懐かしき9x…
Call of Duty だな
かまってちゃんきたー
D2が安定してもどうせD3で破壊的変更が繰り返されるのでそれに付いて行く覚悟のない奴はさっさとやめればいいよ
>>304 やめるなんて勿体ない
そこまでの開発意欲があるのなら
コンパイラのバグ退治もしながら言語にも良い影響を与えてやってくれ
最初だけ食いついて飽きたらポイしたのに俺のおかげでDは成長したみたいな顔してる人も居たような居なかったような 継続してなんかやってくれてる人はありがたい
>>304 のバグが修正されるまで、Wondersの開発を中断します。
>>311 assertが有効になってるかどうかでの分岐だろ
あって困るようなもんでもないと思うが…
`assert({ /* ... */ return true; }()); これで十分。
そういえば version (release) がないと assertに対応する条件コンパイルは書けないんだったな そっちの方が潰し柿食うと思うんだが
D_NoBoundsChecks これ? これがどうしたの?
もはやコンパイルオプションでversion出来たらいいよねってレベル
version (is > 3.141) こんな感じ?
@property以外は引数なくても括弧省略できなくなった理由ってなんなんですか? って、あれ? 今試したらかっこつけなくても怒られなくなってる。 元からそうだっけ?
-property enforce property syntax
なるほど
trunk見てると Win64の文字が舞い踊って次のリリースが楽しみだ たぶん全く関係ないところにも大量のreg(ry
Win64で3Dポリゴンの演算能力が!
いやしかしCPUが64になってもポリスペックはGPUに依存するんじゃないか
ニンテンドー64の話をしてるんだわさ!
いや、今まで「OPTLINKの制約でゴニョゴニョ…」と先延ばしにされてきた問題が 一挙に解決…!! するはず てかリンカのソースマダー? チン、チン
ランカ・リー?
D言語で動的ジャグ配列ってどうやるの? ↓? int[/*a3*/][/*a2*/][/*a1*/] a = new int[a1][a2][a3];
他の言語と同じように↓みたいにはできるのですが、もっとシンプルにはならないでしょうか a = new int[][2]; a[0] = new int[3]; a[1] = new int[3];
332 :
片山博文MZボット ◆0lBZNi.Q7evd :2012/09/12(水) 14:27:44.82
gdc.exe -v2 -c -frelease -finline-functions -O3 -fweb -Wall -fversion=Unicode -fversion=Windows7 -m32 -fversion=WondersBuild -o wonders\commctrl.o wonders\commctrl.d gdc.exe: error: unrecognized option '-v2' 何なんだこれは?
333 :
デフォルトの名無しさん :2012/09/12(水) 15:01:17.89
gdc.exeさんは言いました: -v2 って何の事? ボクチャン、ワカンネ
assaultかbusterをつけろ
336 :
デフォルトの名無しさん :2012/09/13(木) 11:19:46.12
公式でD言語に追加されそうな話が出てる機能ってどんなのあります?
64bit win
filterの返すrangeってlength持ってないんだっけ import std.stdio; import std.algorithm; void main() { auto a = [1, 2, 3, 4, 5]; writeln(a.filter!(n=>n&1)().length); // Error: undefined identifier 'length' }
長さ決まってたら遅延評価っぽいことできないじゃん。逆だけど
342 :
片山博文MZボット ◆0lBZNi.Q7evd :2012/09/14(金) 12:21:07.01
Wonders64ビット対応したよ。GDCで-fd-version=1をつけるとエラーが出てくる。何で? gdc.exe -fd-version=1 -c -frelease -finline-functions -O3 -fweb -Wall -mwin32 - fversion=Unicode -fversion=Windows7 -m32 -fversion=WondersBuild -o wonder s\basetsd.o wonders\basetsd.d c:\mingw64\include\d2\4.6.1\object.di:27: function declaration without return ty pe. (Note that constructors are always named 'this') c:\mingw64\include\d2\4.6.1\object.di:27: no identifier for declarator immutable (char)
エラーメッセージだけ出して丸投げすんな
>>341 ああ・・・length如きで停止しないプログラムになったら困るよね・・・
↓これって結果が違うのは仕様なんですか?
import std.stdio;
void main()
{
writeln(typeid(typeof(()=>1)));
writeln(typeid(typeof(()=>{return 1;})));
}
結果
int()*
int()*()*
ラムダ式にデリゲートあるんだからそれが正常
なるほど{}が関数リテラルと判断されてるのね
writeln(typeid(typeof((){return 1;}))); でいいのよ?
俺も前それでハマったな それでこのスレに書き込んだっていう
>>343 エラーメッセージ以外に何を出せばいい?
何より速さが足りない
いっとくけどめんくいだから美少女の顔が毛穴まで見えるほどのサイズのモザなしフェラ画像じゃないと答えん
353 :
デフォルトの名無しさん :2012/09/15(土) 17:31:32.01
dlang.org シボンヌ
354 :
片山博文MZボット ◆0lBZNi.Q7evd :2012/09/16(日) 20:25:07.03
>>350 何をお急ぎ? 要望あらばやがて果たしたし候。
optlinkさえ、optlinkさえ真っ当なら-gつきコンパイルでライブラリの深淵のエラー箇所を特定できるものを…
optlinkちゃんのgスポットは俺が独占して開発できるのだ 他の人には触らせないのだ
エラーが何も出ていないのにexeが作成できていない現象出たことあるひとアドバイスplz
リンクに失敗したとかでなくまったく何も出てない?
まったくメッセージがでないんだ・・・ dmdのコマンドラインには存在するソースファイル名の他にオプションとか全然指定してないし わけが分からないよ・・・
うーん、実はなんか違うえたいのしれないdmdを呼び出してるとか? whichは…Windowsにはないよなぁ
関数一個削ったらコンパイル通ったったった・・・ もともと文法エラーで通らない関数なんだけど それがあると何もメッセージなしでコンパイル終了、exeが出来ない ないとコンパイル通ってexeが出来る 問題の関数で現象が発生する最小コードが分からないんだけど構造は大体こんなでした Tuple!(bool, 構造体) func() { : 処理 return Tuple!(true, 構造体インスタンス); //コーディングミス }
エラーメッセージすら出せずに落ちるバグがdmdに?
質問です。 数値の範囲を逆順foreachするうまい方法ばありますか?? foreach(i; 0..5) ←●これを逆順走査したい foreach(i; 5..0) ←×ループされない foreach(i; iota(0, 5).reverse) ←×iotaはreverse出来ない foreach(i; iota(4, -1, -1)) ←×[4〜-1)は[0..5)と見た目が違いすぎて直感的じゃない for(auto i = 4; i >= 0; i--) ←×出来れば見た目がすっきりしたforeachを使いたい 今のところ以下が良いかと思ってるのだけれどこれよりすっきりした方法ってありますか? foreach(i; iota(0, 5).array.reverse)
foreach_reverse
な、なんだってーーー Ω ΩΩ うわ、本当だ…恥ずかしい foreach_reverseなんてopApply時代の化石くらいにしか思っていませんでした。。
なにげに役に立つんだよねforeach_reverse
レンジに対してでいいならretroでいいと思うけどね
foreach_reverseが消えるとかいう話はどうなったの
いいね foreach(i; iota(0, 5).retro)
Effective D 第1項 「forではなくforeachを使おう」
std.algorithmとか使い方をわかりやすく解説してくれるページがあるといいと思う
公式の説明でなんとかなるさ
unittest読め
ユニットテスト内容もddocでの自動ドキュメント化対象でもいいよな
returnで複数の値を受け取ることはできないんですか? perlでリストコンテキストで戻り値を受け取るようなのがしたいです。 import std.stdio; import std.typecons; import std.traits; Tuple!(int, int) f() { return ReturnType!f(10, 20); } void main() { int a; int b; ReturnType!f(a, b) = f(); writeln(a, b); } 実行結果 00 ←10と20が取れてない
std.typeconsのタプルはただ簡単に型まで自動作成できるだけの構造体。 一つの値として受け取った後に添字を使うのが普通かな auto t = f(); writeln(t[0], t[1]);
めんどくちゃいぅ(´>∀<`)
auto f(){return (10, 20);} (a, b) = f(); おしいようで全然おしくなかった
それっぽいの作ったよー>< import std.typetuple; struct MAssigner(P...) { P p; void opAssign(S)(S s) { foreach (i, ref v; p) { *v = s[i]; } } } template PointerType(T) { alias T* PointerType; } auto massigner(T...)(ref T t) { MAssigner!(staticMap!(PointerType, T)) a; foreach (i, ref p; a.p) { p = &t[i]; } return a; } int a, b, c; assigner(a, b, c) = tuple(1, 2, 5); writeln(a, b, c);
超欲しい
>>379 昔そういうの入れるかどうか検討されてrejectされてる。
ライブラリレベルでは多分入らないんじゃないかと。
望みは
>>382
Go息しとるん?
eclipseって文字列を選択するとハイライトされる機能ありますよね。 その機能をVisualDで使いたいと思っています。 そこで、VisualStudio用のアドインmetalscrollをインストールしたのですが、 VisualDに全く変化なしです。 使えないという事でしょうか?
VisualStudioShellはプラグイン使えないんだなこれが
VisualDってインテリセンス効かなくない? なんかメンバ以外のシンボルも拾ってきてるような
traitsとかopDispatch使ってECMAScriptのprototypeみたいなの出来ないかな 既存のインスタンスに変数とか関数とか突っ込めれば最高
>>390 プロトタイプは無理だけど(継承で十分な気もするけど)、Mixinならできるよ。
Variant[Variant]
RTTIとopDispatchを利用してこんなのが出来ないかなと妄想してます auto o = new PrototypeObject; o._add( "negate", a=>-a ); o._add( "value", 10 ); writeln(o.negate(o.value)); // -10 auto o2 = o.clone(); o2.value = 20; writeln(o2.negate(o2.value)); // -20 外から_addする関数からメンバ変数にアクセスするなら文字列リテラルで関数を書かないとダメでしょうけど・・
それだと実行時に追加する形だからコンパイル時に型を決定出来ないよね
やるとしても
>>392 をラップする形になると思う(Variant使ったことないけど)
内容型VTを定義しといて、TypeInfoと適当なサイズのすべての型バッファを持っておいて、 関数呼び出しはopCall(T...)でTypeInfoがtypeid(VT delegate(T))と一致すれば(cast(VT delegate(T))&buf)(t) VT[string]の代わり(そのままだと結構不便だろうから)になるテーブル型まで定義してやればいけそうな気はする という妄想
可変個引数テンプレートって、関数テンプレートにしか使えないですよね? クラステンプレートなどで可変個引数を使いたかったら、 引数1個〜n個まで1つずつ手書きするしかないのでしょうか?
397 :
396 :2012/09/30(日) 21:16:54.74
いや、使えますね。 タプルを使えばいいのか。
398 :
デフォルトの名無しさん :2012/10/02(火) 22:34:35.55
話題くれー
399 :
片山博文MZボット ◆0lBZNi.Q7evd :2012/10/03(水) 10:57:50.25
Dオワタ・・・
マイクロソフト、JavaScriptの大規模開発を可能にする「TypeScript」を発表――JavaScriptのスーパーセット
http://www.computerworld.jp/topics/577/205052 より複雑なアプリケーションを開発できるよう、C++やJavaといった成熟した言語によく見られる先進的な開発機能を米国MicrosoftがJavaScriptに複数実装した。
今回、JavaScriptのスーパーセット「TypeScript」としてパッケージ化されたのは、静的型付け(スタティック・タイピング)、クラス、モジュール化といった新機能だ。
MicrosoftのC#言語担当最高アーキテクト、アンダース・ヘルスバーグ(Anders Hejlsberg)氏は、
「過去5年以上にわたり、JavaScriptでアプリケーションと同等のプログラムを記述するのが難しすぎるという不満の声が顧客から寄せられてきた」と話している。
コード予測やすぐれたデバッグ、リファクタリング、混在する大量のプログラム・コードの簡単な検索などの基礎機能を備えるTypeScriptは、
JavaScriptによるコード開発に新たな道をひらくだろうと同氏は述べた。
「JavaScriptはスクリプティング言語として作られた。中規模から大規模なコードベース、すなわちクラスやモジュールといったものを構成するようには設計されていないのである。
(中略)JavaScriptは静的型付けのない完全な動的言語だが、今日のリッチなIDEの動力源となっているのはこの静的型付けだ」(ヘルスバーグ氏)
静的型付けでは、開発者は特定のデータ・タイプを生成される変数それぞれに割り振らなければならない。JavaScriptはそれ自体が動的にタイプ化される言語であるため、
事前にデータ・タイプを変数に割り当てる必要がなく、経験の浅い開発者でもコーディングがしやすい。
しかしながら静的型付けがなされる場合は、変数に割り当てられるデータのタイプを決定できるので、コンパイラがコーディング・エラーに関する詳細なレポートを作成したり、
プログラムに必要と思われるものをより正確に予測したりすることができるようになる。例えばVisual Studioでは、TypeScriptによって、
コーダーがJavaScriptを記述する際に必要な情報を「IntelliSense」が先読みし提供できるようになる。その予測精度は、C#やその他の静的言語を使う場合と同程度だそうだ。
?
>>400 は対Dart兵器じゃないの?すでにDart死にかけてるけど。
ASPで10年サポートするなら使おうという人も出るんじゃないかな
あ、japascriptへの変換機なのか。 結局ECMAScriptの次期バージョン待ちという
DMDScriptはD言語からjavascriptへの変換を行います!! え?違うの?
新しいものを取り上げて「○○オワタ」って言い出す奴って やっぱりバカなんだね
穏やかに行こうぜ
目的も用途も内容も全然違うものやがな たとえるならばそう、Phobosとおでんくらい違う
Javascriptは糞cleの商標だからECMAScriptって言わないと
は?
知らないのか・・・
JavaScriptの開発はNetscapeとMozillaでしょ
そのあとSunの持ち物になって更に糞cleが買収したの知らないのか
商標もってるってだけだろ。どうでもいいわ
IO周りとかその後なんか動きあった? DIO!
邪悪の化身ッ!
アニメは5日、24:30からッ!
テキスト処理にスクリプト代わりに使いたいのだが win/macでいい実行環境がないもんかなあ
一時は期待したときもあるけど Dでやりたい場所が無くなったな 大体Pythonで済んでしまうし 速度必要ならC/C++でやってしまう Dはスタートダッシュが失敗でコケた感じ
なぜCでやってしまうのか
実行環境ってちょっと意味が分からない
rdmdじゃダメかな。 意味違ってるかも。俺もわからん。
コードを変更しなくてもコードが動かなくなる言語で書かれたコードは信頼性・保守性が高いと言ってもいいのだろうか
何?お前Pythonディスってんの?
その点Perlってすげえよな
ラリー「6…」
クリスマスには出るよ
何年のクリスマスかは知らんけどな!
利根川ですか
いいえ、加古川です
D言語の話しようぜ
次のリリースはいつぞ
読みやすい…?
読みやすいコードを書く修行をするための言語です
D言語の実用性はD言語製フレームワークの社会貢献度に比例する
その理屈はおかしい
普及を妨げた犯人は丹後に潜伏中
このスレの廃れプリはなんなんだ・・・ 俺以外にD言語やってるやつもういないのか
おれだよおれおれ
Goと比べたら随分マシ
Dで作られたそこそこ有名なソフトって何?
・
>>2 ・ロードモナーククローン
・同人の萌え系シューティング
・nesエミュ
・winnyクローン
など
あ、ロードランナーだった
pspエミュもあるな
Dすっげ、まじすっげ
Dって書く人によってコードかなり変わるよな 関数型っぽく書く人もいればCの延長みたいに書く人もいるし classばっか使う人とかstructばっか使う人とか
俺C++っぽくかいてる てかC++が[]()->{}()こんな素敵な記号列出してきたせいで心が揺れてる
Dっぽいコードってどんなだろうね。 なんかお題だして書いて見るのも面白いかもしれん。FizzBuzzとか
D言語だとさらに、コンパイル時に、とか、1行で、とかの条件が付きそうだ。
ああ、確かにコンパイル時にゴリゴリやるのはDっぽいかも 一行はまたジャンル違う気がするけど
dfl-20110523.zipをウィルスセキュリティZEROでチェックしたら riskwareとかいって隔離しやがった・・・
ZEROなんて使ってるお前が悪い
バスターさんより評判の悪い唯一のウィルス対策ソフトじゃないか
VisualD 0.3.34
2012対応キタ
インテリセンスどう?
>>455 うちのF-SecureでもヒューリスティックONだとmalwareと扱うのを確認した。
どうやら、bitdefenderエンジンのヒューリスティック部分が誤検知するっぽい?
>>461 自己レス。
勘違いだった。dfl-20110523.zipには反応してない。
じゃ何に反応したのかといえば、
DMD本体とDで作ったプログラム全部。
余計深刻なんですが。
反応してくれるか知らんが、レポート送っとくか
phobosにでも反応してんのかねぇ
最近のウィルス対策ソフトさんぱねー Dで作ったソフト公開してもウイルス判定されるとか悲惨だ
D終わったな〜〜
ウイルスZeroとD-languageがひとつのPC内でスタンブルする事じたいレアケースじゃん
ウイルスのように蔓延して欲しいというD言語の願い、それをウイルスチェッカが検知したのだ
rubyとgoとvc runtimeとctagsとlibiconvでもウィルス反応出てるから気にしなくていいだろ
Windowsをウイルスとして検知してもいいはず
W32/zero
Windowsは畑
田
畑彡
むしろGPL類をウィルスとして絶滅させて欲しい
GPLは伝染率100%
それならプロプライエタリソフトウェアをおねがいします
GPL以外は全部プロプライエタリってか
という偏見
感染しても発病しなければ問題無し(キリッ)
>>465 返信どもです!
dmd2.060, DFL 0.9.8(dfl-20110523.zip) は最新同士だと思っています〜
まあ、気長に待とうかなと思っています(他力本願モード)
ライブラリのコードくらい直せばいいじゃん…と言いかけて 他の言語ではそれが普通じゃないことに気づいた
最新同士ならmakelib.bat実行でふつーに通ったはず
>>481 その本家のDFLは全く使い物になりません。
gitの方じゃないとコンパイルできないよ。
本家のzipに入っていてgitには入っていないファイルも入れるようにすべきかなーと考え中
486 :
デフォルトの名無しさん :2012/10/16(火) 14:28:56.44
>>486 どもども!試してみます、ありがとうございます(感謝!)
dioってたたき台とはいえ作ってる人いたのか 情報源ここ頼みすぎて知らんかった
489 :
デフォルトの名無しさん :2012/10/17(水) 18:39:32.45
Win64対応されたら COFF対応! Optlink の直らないバグの山ともおさらばさ! と無邪気に思っていたが 32ビットアプリを作るときは何も変わらなそうだな…
blazeD2っていうの見つけてやってみたけど コンパイルが素のまま通るだけで挙動やっぱおかしい気がする・・・
コンパイル通るとかマジかよ
それはおかしい
そうかコンパイルが通るというそのこと自体がおかしかったのか
Dをはじめてからコンパイルが一発で通ると不安になるようになりました 本当にありがとうございました
コンパイルが通らず リンクが通らず 動かない その過程を経ていないDのライブラリは怖くて使えない
helloworld.dが一見上手くいってるのに壁の角度変えると途端におかしくなっちゃう
一発でコンパイルが通ると不安になるのはみんな一緒か
でもこれわりと最近(4 months ago)リリースされてるんだぞ 動作確認ぐらいしてないものかねえ
Dのバージョンうpしたのは二ヶ月くらい前よ
それでコンパイルエラーが起きないのか・・・ますますおかしいな
メンバ変数の名前一覧(FieldTypeじゃなくてFieldNameTupleみたいなの) が欲しいんですがなんか取れる方法ありますか?
__traitsのallMembersかderivedMembersでどうにでもなるだろきっと
allMembersからだと静的変数弾くのが難しいなと思ってたんですが いわれて頭ひねってたら確かにどうかなりそうな気がしてきました とりあえず頑張ってみます
すいません、どうでもいいんですけど上のレス、 「なんとか上手くいきそう」くらいの意味で書いたつもりだったんですが 「どうかなりそう」は完全に意味違ってますね。失礼しました。
頭が沸騰しそう
ヘッドなのかフットなのかはっきりしたまえ
だれうま
>>147 からの流れの回数だけのループ、
void loop(void delegate() dg, size_t n) { while(n--) dg(); }
こういうの定義したら、
{ /* 〜〜〜 */ }.loop(10);
こう書けるんじゃねと思ったけどダメだった。惜しい
>>510 ブロック+大域アクセスになってるのか・・・
(){}.loop(10)とか({}).loop(10)なら行けるってのが悔しいな
後置はいやいや〜ん
> (){}.loop(10)とか({}).loop(10)なら行けるってのが悔しいな JavaScriptでの関数宣言と関数式の区別みたいな感じか
エラー出て見られぬ?
517 :
516 :2012/10/27(土) 01:09:37.78
n.times(func); のバージョン
http://dpaste.dzfl.pl/0e0321dc 以下ソースです。
import std.stdio;
void times(int n, lazy void dg) { while(n--){ dg(); } }
void main(){
10.times('D'.write);
}
>>516 いや、それが動くのは当然だけど今そういう話をしているんじゃなくて
{write('D');}.loop();
が動かなくて悲しいですねって話をしているんだが。
blazeあきらめて,chipmunkをDで動かしてみてる. 上手くいきそうだけど,なぜか円の二次極モーメントを求めるときにNANを吐きだされる. どっちかっていうとDLL化時点での問題な気もするけど・・・BOXなら問題ないからなんでだろうなぁ
Dは一体どこへ行こうとしているのだろうか・・・
Lispの闇に光を・・・。
北へ10。 南へ半径5の弧を描きつつ10。
chipmunk MITライセンスか うむむ
かなり緩くない?>MIT あんまり利用を躊躇わなくていいライセンスだと思うけど
著作権表示等が必須ってところがちょっとな ○○しないとだめって制限を設けているところにがっかりする シェアウェアはたとえ価格が1円だとしても 支払いという行為が発生することに対してのめんどくささに似てるわけね
あっれー? Error: undefined identifier WIN32_FILE_ATTRIBUTE_DATA
chipmunkとりあえずhelloworld相当は動いた報告
気持ち悪いのはいいんだけど、なんか演算子オーバーロード使うと急にDというよりC++っぽくなるな
>>529 それはちょっと横着過ぎるぞw
MITライセンスの著作権表示義務ってゲームの起動ロゴみたいな鬱陶しいもんじゃなくて
ライセンステキストファイルを同梱したりhelp:aboutに追記する程度だし
例えNYSLであっても、〜を使いましたぐらいはどっかに書くだろう。 BSDLやMITの場合は、その時に著作権表示をコピペしてくるだけだ。
そのくらい軽いライセンスでも、10個とか20個とか使うことになると 記載漏れの心配とかで面倒になってくるかもしれん やがてアレルギーに…
なら自作しろ
無保証なのに名前を書かせる意味が分からない ソースだけならまだ分かるがバイナリにまで感染する意味が分からない
何だこいつ…
単に、自分が作ったんじゃないのに自作だと偽るのに使うのはダメってだけの話じゃね、基本的には ここらへんはD言語と関係ない話になるか
これってDで書き直したらどうなるの CだとDLLとかあるけどDで書き直したら使っているかどうかって判断出来なくね? しれっと自分で開発しましたって言っちゃえるの
知識が足りないッ
DもDLLあるよー><
言い方が悪かった. MITライセンスのCのライブラリをDで書き直して自作プログラムに無断で組み込んでも,著作権表記しないといけないの? ってこと. 外部にDLLとかが出ないから書かなくても気づかれようがないとおもうんだけど
倫理的な話も含めて続きはライセンスのスレ行ってくれ
著作権侵害前提で話を進めるとかね
>532 みたいなmap関数って演算子オーバーロードなしで作れない? デフォのはrange絡んでいやなんだけど
>>547 遅延実行じゃないmapっていう意味なら別に何の工夫もいらずできるけど、
そもそもなんでrangeが嫌かわからん。
rangeなしにD言語は語れない
550 :
デフォルトの名無しさん :2012/11/01(木) 22:39:51.68
プの字も知らん俺にプログラムの何たるかを教えてくれ
nullぶっこんでコンパイルする勇気
DでLINQはよはよ
配列をリターンしたら似たようなことできなかったっけ??
ウラル貼られても過去スレって見れないよな
情弱
新たなる黒魔術の誕生か・・・ さっぱり用法を思いつかんあたり本物だわ
テンプレートに変数を渡すのが楽しくなりそうだな
ドイツのPC雑誌に、D言語の記事が 載っているらしいのですが、知っている人いますか?
ドイツ語でおk
D言語完璧初心者なんだけど、質問スレがなかったのでここに writeflnの第一引数を加工する(文頭と文末に "!" 付けるとか)だけの 関数を作りたいんだけど、可変長引数の扱いがいまいちよくわからなくて困ってる タプルそのままwriteflnに渡せたら楽だと思うんだけど 公式見ても「可変長引数をそのまま foreach できるよ」とのみ 1,2行でD言語っぽく書くならどんな感じ?
import std.stdio; void f(Args...)(Args a){ a[0] *= 10; writeln(a); } void main(){ f(1, 2, 3); } ⇒1023
>タプルそのままwriteflnに渡せたら楽だと思うんだけど なぜ試さないんだ...
toとかwritelnとかは何がどこまでできるかわけがわからなくて実にDらしい
>>563 ありがとう!
writefln(a[0], a[1..$]);
とかアホやってたよ…助かった
Rubyの*argsに慣れ過ぎた
>>564 タプル≒immutable-listって認識があって
ガチ「そのまま」だとは思わなかったんだ…
567 :
デフォルトの名無しさん :2012/11/08(木) 01:31:00.00
むりむりむりむりかたつむり!
最近ECMAScriptが開発効率的にD言語より萌え言語だということを知って辛い
スクリプト言語である時点で比較対象にならないだろ
>>571 おととい入れてみたけどかなりいい
コード補完がちゃんと働いてくれるvisualDって感じかな
プリコンパイラが甘いというか無いんだよなぁ 動的にコードがかければスクリプト言語に匹敵するんだが
お通夜会場はここですか?
IDEは邪道
>>574 なんかあったの?D2の仕様が固定されたとか?
>>572 うお、マジかー。
入れんのめんどそうで躊躇ってたが試してみるわthx
最近 D を始めたんだが、extern(C) で D で書いた関数を簡単に C から呼べるんだな。 これはなかなか便利そうだ。
>>569 もう少し使い比べてみ。
・・・動的型付け言語が、開発支援ツールの支援を受けにくいことに嫌気が差してくるから。
動的型付け言語は所詮「スクリプト」言語だしな 書き捨てるもの
スクリプトは速記体ではありませんかー
enumってなんなん?って概念崩壊してきた
迷走し過ぎじゃねー
enumは列挙型だよ(震え声)
処理を列挙するんですね
>>583 俺にはJSONと何が違うのかさっぱり分からないが。
じぇーそん…?
C++のboost::spiritみたいなのでしょ なんでJSON?
これがJSONに見える頭ならD言語はC++に見えるのでは
俺は車輪の再発明しなくてもluaでいいと思う
さっきから何言ってんのあんた。
595 :
594 :2012/11/16(金) 18:56:06.37
誤爆ゥ
どれが誤爆かわからない
すげえ流れ的に自然な誤爆ww
598 :
デフォルトの名無しさん :2012/11/16(金) 20:30:34.18
589=誤爆しか考えられないだろJK
>598 安価も内容も不自然でない誤爆か
不自然です
おおっと、JSONは完全に俺の勘違いだわw ・・・ただ、今度は正規表現と何が違うのか分からなくなったが。
正規表現やJSON とか言う言葉を知ったばかりの子供かい?
正規表現とはひどい
PC初心者スレ辺りへ行って、検索サイトの開き方でも聞いてみては。
簡単な例では、ネストした括弧は正規表現で処理できない。 お前頭悪すぎるからもう黙れ。
D言語自体をスクリプト言語として使えればいいのに DonD
>>605 サンプル見たほうが早かった。
>>606 正規表現よりは自由度があるのは分かったけど、結局どこまで出来るのかよくわからない。
D言語でD言語が作れる
BNFは学校で習うしアルゴリズム本には大抵載ってるのに・・・
馬鹿にされて悔しいから結局自分で調べた。 ・指定した型の値を含むParseResult構造体を返すパーサーを生成するらしい。 ・型はDで定義されている型で配列やタプルも指定できる。 ・構造体やクラスを指定できるかはわからない。 ・構文木を生成できるかはよくわからない。(タプルを指定できるからできるのかな) 結局眠くて、中途半端な調べ方である。
クラスインスタンスに動的にメンバ関数/変数を追加できますか
無理と言いたいができそうなのが怖い 無理だよね?
opDispatch
616 :
デフォルトの名無しさん :2012/11/17(土) 18:08:02.72
dpaste.dzfl.pl/bad939aa どこまでやりたいかがわかればな
呼ぶ方も動的にできないと価値ないだろ opDispatchだと無理…だよね?
なんでちょっと不安そうなんだよww
インスタンスを連想配列のキーにしてそれに対して関数名→デリゲートの連想配列を作ればいい と思ってやってみたけど1分で他の誰かがやるだろうと思って手を止めたわ あと、クラスのメンバにどうアクセスするかとかその辺はtraitsで出来そうな気がしなくも・・・
あ、インスタンスポインタ(void*)ね、
そこまで不便だとやれないと言ったほうがよさそう
いや、phobosの実装とかみんなそんな魔術じみた感じだし
というか動的にメンバ関数追加って何に使うの?
識別子でアクセスせんと破綻するしね。
もう元クラスを継承した無名クラスのインスタンスで良いじゃない
opDispatchでメンバ変数をいじ・・・れないよな
>>625 普段無名クラスばっか使ってるのにその発想はなかった逆に
>>623 スクリプト言語とのブリッジオブジェクトとか…
xcodeみたいな開発環境で、イベントハンドラのセレクタが
設計時にも存在しているように見せかけるとか…
原理的に無理があるような気がするなぁ きっと無理があると思う 無理があるんじゃないかな
>>627 そういうことをしたいなら、opDispatchを抜きにして
Objective C(のオブジェクト部分)やECMAScriptの
エンジン部分に相当するクラスを先に書くべき。
スクリプト言語とのブリッジオブジェクトであれば
bridge_obj.call("funcName", [arg1, arg2]);
みたいな形式で書けるようにして。
一通り機能が満足したら
alias thisやopDispatchを使って記法を整えればいい。
あればあったで便利なのにやたら否定したがる人っているよね
欲しい欲しくないの話をしてるんじゃないから 現行機能でできるできないの話をしているから
ダックタイピングを可能にすると
処理機構の分だけ重くなるのと
静的型がもつ利点が消される(
>>400 )ので
組み込みにしないのは正解
話の流れ理解してねえな
ほほう
同じコードを何度も実行するloop2のほうが分岐予測が効くとか コードサイズの小さいloop2のほうがキャッシュに乗るとか 理由はつけられると思うけど
あせんぶり出力するんだ
ぐぬぬtemplateだけでforeachを任意個ならべてループをさせようとしたけど出来ない
なぜD言語関係者は黒魔術に凝るのか そこまで凝るならメモリ管理に黒魔術使おうと考えなさいよ
?
!
つ GC
2.061まだー?
動的配列から条件に合った要素を一気に削除する方法ありますか? filterで出来るかと思ったのですが、 filterの戻り値はFilterResultなので下の様にはできませんでした。 import std.algorithm; void main(){ int[] a = [1, 2, 3, 4, 5]; a = a.filter!"a % 2"; // コンパイルエラー }
import std.algorithm; void main(){ int[] a = [1, 2, 3, 4, 5]; a = remove!("a % 2 == 0")(a); }
>>647 ああ・・・公式のphobosリファレンスでremoveのジャンプ先が正しく設定されていなかったのか・・・
thx!
ゲーム作ってる人がいたら聞きたいんだけど シューティングとか大量にオブジェクトが出てくる場合やっぱりGCの影響って出てきちゃうのかな 最初にメモリ確保して使いまわしするほうがいいのかな
影響でまくりカクカクするよ 1.昔ながらの方法ならそれ オブジェクト数に制限できちゃうけど設計時にキャラの総数は高々いくつまでと決めとけば問題ない 2.フリーリスト 足りなくなったらnewするけど不要になったら未使用リンクリストにつなぐからGC動かなくてうめえ
フリーリストでもGC止めとかないと、解放こそされなくても 参照されてないオブジェクトが存在しない確認のためにGCそのものは動くんじゃなかろうか
動くね core.memory.GC.disable()推奨 あと連想配列の内容参照するだけでもメモリ確保されるから相当慎重にしないと
Appenderの使い回しとかmalloc/freeとかしまくってます
あんまり気にし出すと今度はmalloc/freeだらけになって C++でnew/deleteした方が楽じゃね?ってなるから困る
あれ? newしてcore.memory.GC.disable()って出来ないの
gcstubって駄目なんだっけ?
657 :
デフォルトの名無しさん :2012/11/27(火) 03:35:46.96
Optlinkの代替リンカ書いてるけどdmdが吐くOMFが糞過ぎる dmdバックエンドから色々しないと64bitPE作れないぞコレ
Dはオワコン
いつ始まったんだ
Dは体質が日本の政治家と同じ 根本の問題をいつまで経っても後回しにして 目先の破壊的変更ばっかり こんなんだからみんな呆れて違う言語を設計されちゃったりするんだよ ウォルマートは一度修行して出直してこいや
ウォルマートは、世界最大のスーパーマーケットチェーンです
今の政治程度で破壊的変更て 日本沈没くらいやってから出なおしてこいや
opDispatch使うとメンバ関数をタイポしたときなんかよく分からないコンパイルエラーメッセージが出て部屋の隅でふるえる
Dさん動かしたひとはもう見てないのかな
>>664 なんかゲームとかつくってないのかなぁ。
当たり判定まで出来てたから、そこからが楽しいところだと思うんだけど。
ほぼ当たり判定のみでできるものって結構多いよね。
格闘ゲームとか、シューティングとか、横スクロールアクションとか。えーっと、えーっと・・・。
TEA TIMEのエロゲとかとか
667 :
デフォルトの名無しさん :2012/11/29(木) 04:38:36.33
足のせいでPに見える
pixivで募集すればもっとまともなの考えてもらえるだろ
671 :
デフォルトの名無しさん :2012/11/29(木) 11:03:16.43
慣れなのか
>>673 のコイツはもう可愛く見えるようになってしまった
>>677 冬コミ受かってたけどハルヒやめてD言語のエロ本出すわ
1〜2日目なら行くわ!
>>677 なにこの謎ポーズ?
と思ったが
>>673 のこいつの手の格好をまねてる形なのか……。
ならせっかくだから他も真似して、がに股でアヘg(ry
なぜエラーなんですか? template T(alias tt){ const char[] T = typeid(tt).to!string ~ " a;"; } void main(){ mixin(T!(int));// Error: template instance T!(int) T!(int) does not match template declaration T(alias tt) }
自己解決しました。型をパラメータに渡したい場合はC++と同じでいいんですね。難しく考えてました。
std.algorithmとかでテンプレートパラメータのラムダ式を文字列で渡すとこあるけど みんなは""とq{}どっち使ってる? 今""を全部q{}に書き換えてたんだけどq{}使ってもVisualDの支援受けられないからタイプ数増えるだけで利点あるのかという点に気付いた…
他のエディタだけど、q{}の中身もカラーリングさせて使ってる
monoDなら支援受けれるぞ
支援も何も全部メモ帳でガリガリ書いてるわ
せめてサクラエディタで・・・ ところでSTLのtransformにあたるアルゴリズムありますか? mapはもとのrangeを書き換えないので
>>688 分かりました。phobosにないということが・・・
あってもよさそうな気がするけどね。なんか理由があるんだろうか まあ素直にforeachでループ回せって話ではあるけど。
std.algorithmはモナド的なのだから副作用はいらんぜよなのでは
D言語も純粋関数型言語化しようぜ
よろしい。ならば破壊的変更だ。
ならば我らは、諸君と私で百万と一人のD言語erと…
@property uint count() const { return set.fd_count; } ここでのconstって何なんでしょうか?
変数を変更しない関数の意味
ありがとう 代入しようとするとコンパイルエラーになるようですね
クラスのメンバ変数に全部疑似的にconstが付いてると思えばいい 何でわざわざ縛りプレイするのが好きなのかって? 最適化装置はマゾに優しくできてんだよ。あいつはドSだからな。
>>695 クラスのメンバ関数は隠し引数でthisを受け取っているようなもの
consメンバt関数では、その引数リストのthisにconst修飾子がついていると考えればいい
constオブジェクトに対してコールできるかどうかに違いが生まれる
700 :
デフォルトの名無しさん :2012/12/04(火) 07:02:17.85
>>699 コーンスープを注文したのにコールスローサラダを持ってきたのはお前か!!このやろう!!!
cons_member_t mem;
VisualD 0.3.35
remove!がコンパイルエラーになって一週間悩んでたんだけど ふとstd.algorithm.remove!としたら通った まさかと思ったけど案の定基底クラスでremove関数を定義しててまじへこんだ 俺の一週間… ↓このメッセージでわかるかーっ Error: template instance remove!("a") remove is not a template declaration, it is a function
いくらDたんでも英語読めないのを自分のせいにされたら困ると思うの
705 :
ウォルター・ディズレーリ :2012/12/05(水) 15:48:38.72
ハハッ
>>704 Dでコンパイルエラーが出たらまずコンパイラかphobosのバグを疑うだろ?
>>706 ウォルターのバグ対処の遅さに憤りを覚えるのがまず先だ
ウォルターなんてもうこの世界に居ないのに どうしてみんなこの人の名前を出したがるんだろう
ウォルターならさっき見かけたぞ。 ジョン・レノンと寿司食ってた。
>>583 面白そうだったから遊んでみようと思ったんだけど、
ドキュメントがまだ少ないのはしょうがないとしても
サンプルもそのままコンパイル通らないからどう遊べばいいかすらわからんなw
711 :
デフォルトの名無しさん :2012/12/06(木) 08:11:45.46
>>710 D言語を駆使する者はだね
コンパイルが通るかどうかを問題にすることなんてないんだよ
肝心なのはその仕様が脳内で踊っているかどうかだよ
712 :
710 :2012/12/06(木) 08:19:35.73
と思ったらDMDのバージョン上げ忘れてただけだった 失礼しました
Dの仕様はC/C++の欠点を補うと思っていた時期が私にもありました いまはDそのものが欠点です ネイティブ以外取り柄の無いDにはもう何の魅力も感じません C/C++やってた方がましです
↑コレなんかの改変コピペ?
C/C++ で作った obj のリンクは出来るようになった?
TかT[]を受け取ってそれを全部つなげたT[]を返すような関数ってどう書けばいいんだろう TとT[]がどの順番で来るかわからないとかなったら無理?
D言語に不可能はない 俺はプログラミング歴一ヶ月だから先達に任せる
まあ引数に突っ込む前に全部 ~ でつなげればいいだけだな
719 :
デフォルトの名無しさん :2012/12/06(木) 16:14:33.29
引数に突っ込むくらいなら あそこに突っ込みたい
グロ注意
723 :
デフォルトの名無しさん :2012/12/08(土) 02:23:26.31
ゲーム作ろうぜ
auto cat(T, Args ...)(T a, Args args) { static if (Args.length == 0) { static if (is(T[])) { return a; } else { return t ~ new T[0]; } } else { return a ~ cat(args); } }
幸せは自分から歩いて行かなきゃ掴めないが不幸は向こうから突然問答無用でやって来やがるからな
〆切は歩いてこない(けどマッハで走ってくる)
時期的にあれだろうと想像するけど
>>720 =727みたいなのみるとゴミのような人間て本当にいるんだなって実感する
729 :
片山博文MZボット ◆0lBZNi.Q7evd :2012/12/09(日) 14:34:59.93
ctpgの使い方を文書化してくれたらWebMoney900円あげよう。
お前なんで900円で上から目線なんだよ
731 :
片山博文MZボット ◆0lBZNi.Q7evd :2012/12/09(日) 21:45:21.79
documentationがあったので前言を撤回する。
732 :
デフォルトの名無しさん :2012/12/09(日) 22:02:54.36
うっせえハゲ くんな
片山サンは基地外だと思うの
けんかはやめて。粘着されるよ。
736 :
片山博文MZボット ◆0lBZNi.Q7evd :2012/12/12(水) 13:01:24.62
動作するミニマムコードを出してどこがだめかちゃんと明記しろよ
derelict2をdsssなしでmakeするにはどうすればいいですか? dmdのmakeを指定してみたら Error on line 2: can't read makefile '../inc/_inc.mak'
環境変数DCにdmdをセットすればいいみたいですね どこにも書いてない・・・
DreamCastにgamediskをセットすればいいみたいですね
dmdに複数ソースを指定するときにソースの指定順序を変えるとこれがでるんだがなんだい Assertion failure: '!vthis->csym' on line 727 in file 'glue.c'
bugzilla 8071
8720の方かな次バージョンで直ってくるのを待つしかないか 2.061マダー?
2.055 2011/09/04 2.056 2011/10/26 2.057 2011/12/13 2.058 2012/02/14 2.059 2012/04/12 2.060 2012/08/02 リリース間隔が4ヶ月以上あくと流石に心配になってくるよね
次でD1最後だから揉めてるのかな
リリースしようぜっていう号令がかかったからそのうち出る
久々に来たんだけどD3ってどんな感じになるん? まぁD2もクロージャ導入された辺りが最後なんだけど…
いやまだD2も@propertyとか@safeが全部なくなる変更来るぞ
kwsk べ、別にカワサキって意味じゃないんだからね///
User Defined Attribute @つき属性のアイデアが中途半端だったのを焼き直した でも俺はすんなり固まるとは信じないw
信じないね
>>748 ,751
UDAは定義に任意のコンパイル時値やシンボルを関連付けるためのもの。
@safeや@propertyを置き換える目的はない。
確かC#にそういうのが実装されてたよな
import std.stdio; void f(C c, int n){writeln(n);} class C{ void g(){this.f(10);}// (2) } void main(){ C c = new C; c.g(); c.f(4);// (1) } (1).こっちは慣れてるけど (2).これはちょっと感動した だからどうっだってことないけど
拡張メソッドまでいけるのか、ブラックホールだな。
ブラックホールというより アナルホールだろうね
拡張メソッドというよりただの糖衣構文かな
よし、流れ止まったからお題出すね。 D言語でamb出来る? fiber使えば出来そうな気はする。
760 :
デフォルトの名無しさん :2012/12/23(日) 13:40:09.58
最近いじり始めたが構造体のメンバをforeachで回せることを知って D言語でなくては生きていけない体になってしまった
foreach(c; cc){cc ~= c.children;} 気持ちはわかるが末尾追加は許してや って毎度思うんだ
foreach (v; r) でrが既に評価されてるから、末尾追加でメモリ配置し直されたら困るじゃん
それをわかった上で末尾追加は挿入と違ってインデックスは狂わないから 再配置に対応してくれたらなっていう願望ね
それは流石に・・・
cc[] でいいんじゃないかなぁ
>>760 これってどういう意味?
おいらには初耳だったんだけど
tupleof か __traits(allMembers) かな?
>>766 http://www.kmonos.net/alang/d/statement.html >以下のプロパティの定義された構造体やクラスは レンジと呼ばれ、foreachでループすることが可能です:
レンジのプロパティプロパティ用途
.emptyもう要素がない時に true を返す
.frontレンジの最左端の要素を返す
.backレンジの最右端の要素を返す
foreach でのレンジの操作メソッド用途
.popFront()レンジの左端をひとつ右に動かす
.popBack()レンジの右端をひとつ左に動かす
と思ったら全然違った。 よく読んでなかった><
Rangeとか基本ぞ!
らんげ!
どんな変態実装でも許容されるさ、そうD言語ならね。
でもさすがにあれは無理でしょ?
One more thing...
std.regexのmatchの第一引数はregexじゃなくてstringなんだ!
でっかいケロちゃんのはまだクロウカードだお
折田(ウォルト)「苦労してます」
へえ
ウオルタ「俺、正直言語とか作るの向いてないのかも…」
781 :
デフォルトの名無しさん :2012/12/29(土) 18:54:16.00
セイカイ
すごい・・・、関数が第一級オブジェクトだからプログラムが全てmain関数の中で閉じて スカイツリー級のmain関数が出来上がった! 環境を束縛するクロージャうめええええええ
まさにそびえたつクソだ
784 :
デフォルトの名無しさん :2012/12/30(日) 12:47:48.51
skyshit
785 :
デフォルトの名無しさん :2012/12/30(日) 18:50:40.04
Is floating shit yours?
D言語友の会は何処にありや?、 と全世界は知らんと欲す!
鯖は生きてるみたいだから、メンテ中じゃない?
const(char)* を返す関数があるんだけど、これをstringの変数には出来ない? const(char)* arr = function1(); writeln(arr); // ← 実行結果は 1D90C90 が表示される。ポインタそのまま? std.c.stdio.printf("%s\n", arr); // ← こっちは意図通りに文字列が表示される function1()は元々C言語の関数で文字列を返すもの。 D言語から使えるようにするラッパーがあったので 今はそれで呼んでいます。 上記の arr をstring型の変数に変換する方法って無いですかね? 表示するだけならprintf()でいいのですが、 D言語の他の関数に渡せなくて困っています。
import std.conv; してから arr.to!string();
>>789 うおお、こんなことで良かったのか。
ありがとうございます。
変態!
toとconvはまごうことなき変態だった…ような
arr.to!string(); arr.to!(string)(); to!(string)(arr); to!string(arr); のどれが一番読みやすいのか気になる。
D 1.076 and 2.061 release
at propertyを付けない関数はプロパティ形式で呼べなくするかもしれないからto!string(arr)がいいんじゃないか
とうとうきたーーーーーーーーーー!!
にゃにぃ DConf 2013 is scheduled for May 1-3 in Menlo Park, California. Visit the conference website for more details including how to propose a session.
うぉるたんとGoのマスコットの一致度
よし、コンパイル通らなくなってるな プロジェクトを持てば持つほど熱くなる
Winの64bitとかUserDefinedAttributeとかでかい機能追加があるのにChangeLogが見にくくてつらい
override指定が必須になった?
前から必須だったけどあるとしたらバグでところどころ抜けてたのを直した感じじゃない?
804 :
片山博文MZボット ◆0lBZNi.Q7evd :2013/01/04(金) 20:09:30.51
ctpgのバグ発見。 assert(parse!root("123-123+123").value == 123); addExpとmulExpを入れ替えると無限ループに陥るのを何とかしてほしい。
ここで書かないで本人とこ行けよ 恥かしがり屋かよ
806 :
デフォルトの名無しさん :2013/01/05(土) 17:36:58.62
2.062
一体何が始まるんです?
バグ修正
2.061は使わないほうが良いってこと?
changelogにはあるけど ダウンロードにはない これがdmdクオリティ
破壊的でない変更なんて、何も変更しないのと同じ!
changelogにリビジョン書き間違えてるんじゃなく?
リビジョンじゃないよ ウォルタ君的にはリビドーと表現するんだよ そこんとこ間違わないでほしいな
この最新版はあなたにはあげない だってこのリビドーは私だけのものだもの
816 :
デフォルトの名無しさん :2013/01/06(日) 19:03:43.67
DMD2.061のwin64コンパイルのためだけにVC買ってきた VC\bin\amd64\link.exeが必要と気づくまでかなり時間がかかったぞヽ(`Д´)ノ
gccでWin64向けにコンパイル出来る?
買う?VC++ Express落とすだけだろ?
>>816 いつもまず最初にsc.iniマージするからそのとき気付いたよ
64bitにすればOPTLINKを使わなくていいですって? 神か
>>818 リモートデバッガ付きの2012Professionalですが何か?
今更かも知れませんがD1ってwriteln()無いんですか? writefln()は使えるけど…
printf
リモートだなんていやらしいっ! やめて!Dに乱暴する気でしょう?エロ同人みたいに!
久々に使ってみたら、std.string.replaceがundefined identifier replaceとエラーが出てしまいました。 std.string.replaceは廃止されてしまったのでしょうか? DMDの更新履歴にはそれらしき変更はない気がするのですが。
それかなり前 std.array.replace
DMD2.061でWin64コンパイルする方法キボン
>>826 かなり前に変更されてましたか・・・。
文字列の置換えってよく使うし、検索と書き換えが一体になってて使いやすかったんだけどなぁ。
いや、replaceの所属packegeがreplaceされただけだから import std.array; すれば解決だよ?
文字列は配列なので、配列に対しても適用できる文字列操作関数は配列操作関数に改められた。
831 :
デフォルトの名無しさん :2013/01/07(月) 08:38:48.39
>>827 VC++のリンカ入れて
> dmd -m64 ソース.d
>>817 objのフォーマットが違うから無理じゃね?
gccじゃなくてbinutilsのldが解釈出来ればだな MS形式のCOFF、OMFを解釈出来なかったはずだけど
なんちゅう無駄遣い それでもprofessionalか!
binutilsはWindowsではCOFFだろ? メタデータが全然違うから役に立たないけど
COFFはGNU形式、MS形式とあるんじゃなかった? まぁldならリンカースクリプト書けば何とかなりそうだけど
838 :
828 :2013/01/08(火) 16:42:57.73
>>829 ああ、std.string.replaceが廃止されたんじゃなくて、
std.arrayに2種類のreplaceが実装されたという事でしたか。
std.array へ引越して std.string.replace は廃止
文字列に使うことがほとんどだろうからindexOfみたいにalias置いてもいいと思うんだけどな
std.stringはstd.arrayをpublic importしたほうがいいんじゃない?
2.061になってcoffは吐けるわx86_64インラインアセンブラは使えるわで mingw64版GDCはもういらない子だな
COFFが吐けるからVC++用Libをそのまま使えるようになったって解釈でおk?
>>843 むしろVCのkernel32.libがないと実行ファイル作れない
>>844 それって64bitだけじゃなくて32bitでも?
最高じゃん
>>845 -m32では相変わらずOMFとOptlinkです残念でしたー^q^
わくわくしてVisualD経由で64bit版ビルドしようとしたら phobos64.libとか要求されちゃったんだけど… みんなどんな環境でどんなやり方すると正常にコンパイルできるの
dmd2\windows\libにphobos64.lib入ってるじゃん
ただの空main関数なのに107個くらいエラー出すんですけど 皆さんは何ともないですか? phobos64.lib(dmain2_4a8_47b.obj) : error LNK2019: unresolved external symbol GetCommandLineW referenced in function _d_run_main phobos64.lib(dmain2_4a8_47b.obj) : error LNK2019: unresolved external symbol CommandLineToArgvW referenced in function _d_run_main phobos64.lib(dmain2_4a8_47b.obj) : error LNK2019: unresolved external symbol LocalFree referenced in function _d_run_main phobos64.lib(dmain2_4a8_47b.obj) : error LNK2019: unresolved external symbol IsDebuggerPresent referenced in function _d_run_main LIBCMT.lib(a_map.obj) : error LNK2001: unresolved external symbol __imp_WideCharToMultiByte LIBCMT.lib(a_loc.obj) : error LNK2001: unresolved external symbol __imp_WideCharToMultiByte phobos64.lib(dmain2_4a8_47b.obj) : error LNK2019: unresolved external symbol __imp_WideCharToMultiByte referenced in function _d_run_main
64bit版だけ何かおかしいのかこれは
>>849 kernel32.libが見つからないんじゃね?
sc.ini の設定内容と 環境変数と 実際のフォルダの中身をそれぞれ突き合わせて、 それでダメならあきらめれ 所詮α版程度って言ってるから自分で追究してバグレポ出す覚悟がないと意味ないべ
>>849 未解決シンボルが全部windowsAPI(GetCommandLineWとかCommandLineToArgvW)だから
kernel32.libの64bit版とかが見つかってないだけ
これはDMDにくっついてきてないから、上にも書いてあるけどVCのを使う必要があり
sc.iniのLIBの先頭にVCのLibディレクトリへのPATHを追加すればおk
暖かいレスどうもありがとうございます phobos64.libをVCのlibフォルダに突っ込んでいたのですが kernel32.libが見つからないとの書き込みを見て phobos64.libをWindowsSDKに移動してみても変わらず。 あるのにおかしいな??と思っていたら あ、libも32bit版と64bit版両方あったんだ!とそこで気づきまして sc.iniを編集して WindowsSdkDirとVCINSTALLDIRを[Enviroment]の上のほうに持って行ってパスを設定してあげて LIB=%WindowsSdkDir%\Lib\x64;%VCINSTALLDIR%\lib; こんな感じに変更したところ、うまくビルドできるようになりました。 dmd2\windows\lib64とかのフォルダを作ってphobos64.libとかを放り込んで LIB="%@P%\..\lib64";≪上のパス≫;みたいにしたほうがいいのかもしれませんね 要するに、32bit版のlibを参照していてこのような状況になってしまっていたわけですね。 おかげさまで解決&無事動作確認できました。ありがとうございます。 ただ、これやると32bitではビルドできなくなるので、 元々の設定をLIB32みたいにして残しておいて必要に応じて元に戻す必要があるみたいですね。 (ここもLIB/LIB64とかで識別してくれるようになると便利な気がしますね)
WindowsSdkDirとVCINSTALLDIRがきちんと設定されていれば link.exeの引数として渡されるからLIBに設定する必要はない 逆に言うとLIBに設定しないと動かないならWindowsSdkDirとVCINSTALLDIRの設定が間違ってる あと、この2つの環境変数は64bit版でしか参照されないから32bit版とも混ざらなくなる この辺りの環境変数の使い方はdmd2/src/dmd/link.cを見ればすぐわかると思う
D言語側で%WindowsSdkDir%、%VCINSTALLDIR%が動いてるってことは、 システム環境変数のLIBに%WindowsSdkDir%¥Lib¥x64;%VCINSTALLDIR%¥lib;が入ってないだけだと思う
2つのディレクトリパス設定の末尾に\が無いと駄目なのはバグなのだろうか… 現状64bit版はテスト版みたいなもんだからね 参照するライブラリのパスとかもいじくれるように そのうちまた仕様変わるんじゃないの
>>856 わざわざ設定しなくても64bitビルドの時に勝手に足してくるはず
この辺の挙動はそのうち確かに変わりそうw
859 :
デフォルトの名無しさん :2013/01/09(水) 16:48:56.03
omfマンドクセから解放されるぜー
32bitでもリンカにvcの使うような設定増えないかな
OpenWatcomのリンカ使ってみたらどうか
昔フィルターとウォルター間違えて奴の口の中にCoffee豆入れたやつがいたろ そいつを吊し上げろ!!
お前らでペーパーウォルター3DってタイトルのゲームをD言語で作ろうぜ
あとはまかせた。
忍者きた
>>864 敵が「バグ」で「アイディア」で回復。まで思いついた。
バグは友達
ファイナルファイトD
配列とか連想配列とかフォーマット拡張してねじ込もうとしてるから できないってのはあるかも知れない まあ 俺としては OPTLINKから Win9X時代の旧石器PCに最適化されたような設計を 排除してくれれば満足なんだが
2.062の主な新機能 9224 Windows 64bitバイナリのコンパイル対応 VisualC の導入が必要 9222 User Defined Attribute JavaのアノテーションとかC#のカスタム属性みたいなもの? 3011 構文追加 alias INT = int; 7041 非推奨な機能/シンボル名に対するコンパイラの挙動の変更 警告/エラーをフラグ(-dw,-de)で選べるようになった。 【注意】デフォルトではエラー扱いされなくなった 5481 属性追加 - 非推奨関数などが使われたらコンパイル時メッセージを出せる deprecated("I am deprecated.") void depecatedFeature(){} 5269 version(assert) の追加 5587 unittest{} でこけたときのトレースで関数名が見えないため 代わりに行番号で場所がわかるように改善
コレ以外にもtraitsの機能追加とかインラインアセンブラ/SIMDとか通好みの機能拡張がかなりあった deprecated 周りが洗練されてくるあたりが D言語らしくて素晴らしい(棒
>3011 構文追加 alias INT = int; 地味に嬉しいのう でもそのうち廃止されそうな予感がしすぎる
2.062.zipがどこにあるのかいまだにわからない
UDAの面白い悪用法考えようぜ
>>876 偶数秒でしかコンパイルできないソース
でもCTFEできるか
>>872 2.062じゃなくて2.061だ
Coming Soon! じゃないっての
誰か突っ込めよ
いや、Change Logに2.062って書いてあるんだよ アーカイブへのリンクも貼ってあるけどリンク切れになってる
2.061の主な新機能(番号は Bugzilla のもの) 9224 Windows 64bitバイナリのコンパイル対応 VisualC の導入が必要 9222 User Defined Attribute JavaのアノテーションとかC#のカスタム属性みたいなもの? 3011 構文追加 alias INT = int; 7041 非推奨な機能/シンボル名に対するコンパイラの挙動の変更 警告/エラーをフラグ(-dw,-de)で選べるようになった。 【注意】デフォルトではエラー扱いされなくなった 5481 属性追加 - 非推奨関数などが使われたらコンパイル時メッセージを出せる deprecated("I am deprecated.") void depecatedFeature(){} 5269 version(assert) の追加 5587 unittest{} でこけたときのトレースで関数名が見えないため 代わりに行番号で場所がわかるように改善 #もう一個追加 391 char配列の sort/reverse で UTF8のマルチバイト文字が壊れないように変更 バグフィクス扱いになってるけど新機能といっていいんじゃないかと
チクショウ、一番入れたかった字下げが反映されてない!
ウォルターの時差ボケは反映されているようだが
391!
サポート停止のはずのD1にもWin64対応が入ってるんだが これってあと2〜3回リリースするってことかなw
>>881 こうやって安価をつけると専ブラでは字下げが見えるとかなんとか
Phobos のドキュメントバグもいくつか直されてるはずなのに 公式サイトに反映されてないのはどういうことだ …ってそもそもドキュメントを再構築せずリリースしてるやんか
もしかして:専ブラのバグ
AAモードになってなかったんだろ
2.061の主な新機能(番号は Bugzilla のもの) 9224 Windows 64bitバイナリのコンパイル対応 VisualC の導入が必要 9222 User Defined Attribute JavaのアノテーションとかC#のカスタム属性みたいなもの? 3011 構文追加 alias INT = int; 7041 非推奨な機能/シンボル名に対するコンパイラの挙動の変更 警告/エラーをフラグ(-dw,-de)で選べるようになった。 【注意】デフォルトではエラー扱いされなくなった 5481 属性追加 - 非推奨関数などが使われたらコンパイル時メッセージを出せる deprecated("I am deprecated.") void depecatedFeature(){} 5269 version(assert) の追加 5587 unittest{} でこけたときのトレースで関数名が見えないため 代わりに行番号で場所がわかるように改善 #追加 391 char配列の sort/reverse で UTF8のマルチバイト文字が壊れないように変更 バグフィクス扱いになってるけど新機能といっていいんじゃないかと #さらに追加 4762 toString()をもってない構造体でもwritelnで中身を見られる 出力: Foo(123, "text")
>>872 手直し
むしゃくしゃしていたのでもう一度やった。反省はしていない
enhanced な項目だけで41件もあるので他にも見逃しているやつがあるかも
○ よくやった もうお前に用はない く|)へ 〉 ヽ○ノ  ̄ ̄7 ヘ/ / ノ | / | /
|l| | |l| | _,,..,,,,_ ./ ゚ 3 `ヽーっ l ゚ ll ⊃ ⌒_つ )`'ー---‐'''''"(_ ⌒) (⌒ ビターン ⌒ _,,..,,,,_ ./ ゚ 3 `ヽーっ l ゚ ll ⊃ ⌒_つ `'ー---‐'''''" _,,..,,,,,,_ ./ ,' D `ヽーっ l ⊃ ⌒_つ `''ー---‐'''''"
∩___∩ /゙ミヽ、,,___,,/゙ヽ | 丿 ヽ i ノ `ヽ' / ○ ○ | / `(○) (○)´i、 先生助けてっ!、 | U ( _●_) ミ 彡,U ミ(__,▼_)彡ミ Dちゃんが息をしてないのっっ!! 彡、 |∪| ,,/ ,へ、, |∪| /゙ / ヽ ヽノ ヾ_,,..,,,,_ / ' ヽノ `/´ ヽ | ヽ ./ ,' D `ヽーっ / | │ ヾ ヾl ⊃ ⌒_つ ソ │ │ \__`'ー-⊃⊂'''''"__,,,ノ | ` ̄´ ` ̄´
むしろ過呼吸のイメージがある
やめて!そうやって私に pull request させる気でしょう?エロ同人みたいに!
899 :
デフォルトの名無しさん :2013/01/13(日) 10:00:03.29
not pull request. It's a null pointer and It's a sony.
901 :
デフォルトの名無しさん :2013/01/13(日) 22:22:31.58
なんか時々import忘れたりするとstd.algorithm内でエラーメッセージが出まくるんだけどアレなに?
905 :
デフォルトの名無しさん :2013/01/14(月) 15:15:33.46
D-ers Are Not Accommodating.
UDAでMFCのメッセージマップ、Delphiのmessage指令っぽいのがでけた
リンカエラーも見っけた
UDAって[ATTR]と@ATTRが使えるっぽいけどどっちか切り捨てないのかな
http://ideone.com/W66pN2 dpaste死んだのか・・・
Java vs C#
>>907 こりゃすげえ。
後は継承に対応できたらWindowsアプリが楽になるし、
セレクタ変換する関数をコンパイル時に呼べたら(?)objcもいけそうだ
そういえば Javaの JUnitフレームワークも アノテーションを使ってテスト関数を拾い集めたりしてたな エディタの入力支援と連携させた方が使いやすくなるかな
今まで出来なかった「属性への別名」はできる? 教えてえろい人 @dynamicOrstaticLink void someAPIFunc(); version (dynamicLink) { //alias @dynamicOrstaticLink = extern; } else { //alias @dynamicOrstaticLink = attr_none; }
dynamicOr'Static'Link // 念のため
> Hello.
> I am very sad to announce that DPaste life came to an end.
要するに学生なのに金を払って鯖を維持していたのがもたなくなったんだと
> For those who can't live without Dpaste anymore, Vladimir created temporary subdomain.
> Here it is:
http://dpaste.1azy.net/ ソース公開するって言ってるからたぶん一時的な避難所だろう
過去のコンテンツ保持されてるね。安心した
DConf2013 5月予定
http://dconf.org/ まだサイトの中身は空っぽだけど
Submission deadline 2013/1/28 てのは出演側の締め切り? よくわかんね
ここで D3 の何かが出なければあと5年は先になりそうだなw
5光年に見えて2度見した
動的配列を切り出して固定長配列にしたい時ってどうすればいいのかな? 固定長で受け取る関数に動的配列の一部をサクッと渡したいんだけどなんか一手間余計にかかる気がする・・・
>>918 受け取る側でデータをどう扱うつもりかで決まる
中身いじるのかimmutableか、コピー作る必要があるのか、
固定長なら長さはなんでもいいのか、長さまで含んだ型なのか
固定長配列じゃなくて静的配列って言うのか?static属性がついてるわけじゃないけど。 int[2]みたいなやつ。 今は void hoge(int[2] a) {} // 受ける側。引数ひとつにしてあるけど本当はいっぱいある中に混じってる int[] arr = [1,2,3,4,5]; int[2] buf; buf[] = arr[2..4]; hoge(buf); みたいにやってるけど、これもうちょっと短くならない?
↓まあ、こういうの定義すれば auto fixedArray(size_t N, T)(in T[] array) @property @safe pure { T[N] fixed; fixed[] = array; return fixed; } ↓こう書けるけど hoge(arr.fixedArray!2); 確かにこういうんじゃなくてもっと綺麗にできそうな気はするね つか、静的配列って値渡しだしわりと根っこから違う型なのね…… 使うことないから知らんかったわ
>>891 に更に追記
8128 interface の中に unittest を記述できる
static な関数実体を持つ interface のための機能
FIXEDとマークされてなかったから間違って2.062の方にリストされているという
せっかくWikiあるんだからそっちに書けよ・・・と思ったら友の会が死んでやがる・・・ 403だから改修中なんだよなそうだよな
dusers is dead, but he doesn't know it
Walter was already dead. But no one knows that. Our people enjoing their own life. We don't need a D Programming language.
>>925 he charms many parson already.it is too late.
実体の一致とか考えなくて良ければ 配列を返すクラスか関数用意して 処理側関数引数はlazyにしちゃえばいいんだよね
windowsプログラミングをずっとc++でやってたけど、D言語使いだしてからやめられない ウィンドウのクラス化でさんざんウィンドウプロシージャの扱いに苦労してたけど 文字列mixinでクラスのインスタンス化と同時にユニークな関数作ればアホみたいに簡単に解決できる ググるとc++で恐ろしく面倒なことしてる人たちいるけど 是非とも教えてやりたい。
930 :
デフォルトの名無しさん :2013/01/19(土) 14:57:58.45
能書きはいいから、 さっさと教えろやボケが。
よう読みなされ
文字列mixinは便利すぎる黒魔術
>>930 インスタンス化と文字列ミックスインでコールバック関数生成を同時にやるテンプレート一個つくって終わり
よくあるstatic関数+SetWindowLongやATLのvtblすり替えみたいにオーバーヘッドでかい処理しなくていいから楽だぞ
コンパイル時リフレクションでswitchの中身も仮想関数定義によって変更させれるから
win32api直書きと遜色ない速度で走らせられるしな
934 :
デフォルトの名無しさん :2013/01/19(土) 16:50:39.27
今どきのPCで気にするほど何か差が出ることなの?
935 :
デフォルトの名無しさん :2013/01/19(土) 17:02:17.46
シューティングゲームやペイントソフト作ったときポインタのとびができるとかか そもそもwindowsがマウス動かしただけでWM_MOUSEMOVE送りまくる糞仕様d(ry
WM_MOUSEMOVE送りまくる糞仕様という糞仕様人間現る
戦闘力たったの400dpiか…ゴミめ…
文字列mixin使ってると、中で使われてもいい変数を区別させたくなるんだけど、 alias id void; とかで未定義化できないかなあ
939 :
デフォルトの名無しさん :2013/01/19(土) 18:20:18.48
>>936 せめてXみたいに興味のないメッセージをマスクしてくれないもんかねー
BeOSのAPIとか今見てもすごいと思う
GetMessageでマスクできたような・・・
PeekMessageだといろいろついてるよ
あれ?ここWinAPIスレ?
>>938 static assertとis式でなんとかならんかな
static assert (!is(id));
>>943 プログラム板でWinAPIの話するなら
WinAPIスレとは名ばかりの煽りスレより
各環境ごとのスレのほうが捗るからなあ…
サンプルコード見てみたいな
俺も興味ある 簡単なウィンドウ生成コードよかったらリンクとかでもいいから貼ってくださいまし
948 :
デフォルトの名無しさん :2013/01/20(日) 14:38:15.96
Winapiの発展は C言語のインターフェイスによって阻害されていたと言っても過言ではない しかし、我ら選ばれしDの民は この状況を変えるだけの力を得るに至った。 国民よ!今こそ立ち上がる時が来たのだ!! これは、栄光への一歩である。 この世界は、Dによる統治を求められていたのだ。 さあ、前に進もう。時代は私たちが作ろう!!
お、おう
950 :
デフォルトの名無しさん :2013/01/20(日) 15:20:03.96
やべぇ…鶏肉竜田…
951 :
デフォルトの名無しさん :2013/01/20(日) 15:56:08.58
D言語最近かじり始めたんだけど、まず何をできるようにするべき?
まず服を脱ぎます
服をたたむコードを書きます
ネタレスは邪魔だから雑談スレでやってくれ
>>951 C++が使えるならC++との差を把握する
何をやりたいかだよなぁ 割となんでもできる GUI以外
最初はちょっと便利なC++くらいの扱いで十分でないか
957 :
デフォルトの名無しさん :2013/01/20(日) 17:42:16.79
>>954 C++できません。。。
>>955 最終的にはcgiとして動かして、掲示板みたいの作ってみたいです。
トリップ検索や、Yahoo!にPOSTとかもしてみたいですね。
なんかそういう用途ならD言語よりスクリプトの方が向いてると思うけど なんでD言語やりたいの? 言語の適材適所とかわからずに流行ってる(?)からD言語始めるとか言ってるなら D言語はお勧めしないよ 言語仕様変更とかあるし
>>958 コンパイラ言語を一つ習得したいからです。。。
コンパイラ言語のほうが向いてることってなんですか?
960 :
デフォルトの名無しさん :2013/01/20(日) 17:56:53.22
え、仕様変更があるの!? どう仕様…
何故コンパイラ言語にこだわるのか
962 :
デフォルトの名無しさん :2013/01/20(日) 18:00:55.84
今は夕方だからね 挨拶はコンバンワ
ハローワーク帰りだったから、空に刺したよ
湖の水に
C++の改良で、JavaとかC#とか。しかし、やっぱりEXEがほしいとなると、Dかも
つまらないネタレス書くのは何のため?
967 :
デフォルトの名無しさん :2013/01/20(日) 18:53:58.60
枯れ木(それら)も山(D言語界隈)の賑わい 波平の髪の毛くらい静まり返ってるくらいなら ウォルターの鼻毛くらいには賑わいを見せたほうがいいじゃない
JavaやC#では、その設計思想によりネイティブコードを出力できません。つまり、実行速度ではC++に到底かなわないのです(中略) その答えが「D言語」なのです。 D言語のススメ|Cマガジン2004年11月号p.83
実行時最適化のほうが云々
言語が生まれた背景としてネイティブコードが出力されないだけであって 理論上・設計上は出力可能だと思うぞ
今時はJITコンパイラもあるから ネイティヴがスクリプト言語より優れてるのは実行環境がOS以外にいらないところだと思う
JavaやC#も、数値計算のベンチマークだけだとネイティブを凌駕することもあるしな けどユーザーにとっては速度=応答性なんで、JITはどうしても遅く感じられる
.NETなんかはインストール時にコンパイルしとけみたいな設定ができるね いずれにせよサーバサイドではそれ系の言語の不利は全くない
サーバーも、それ単体でサーバーになれるならともかくCGIなんかで毎回起動と終了を繰り返すとry
今時、高負荷が前提だったら、そんな設計にするのが間違いで、言語関係ないな
そこは、大丈夫だ、そう、D言語ならね、と押しておくところだろう
スクリプト言語は確かに強かろうがDの敵ではないのである
D言語は仕様変更があるたびに 喜びに打震えるマゾ御用達の言語である
そうか、仕様変更されないD1を使えば…!
D1は去年でサポート停止(キリッ って言ってたのになんでまだコソコソいじってんだ? って突っ込まれてたよ
仕様変更のないD言語なんかいやだ
ウォルター「そこに穴があるから。男なら突っ込んで当然だろ?」
アッー!
そのレス面白くない
おつ!
レズれ。
スレ梅記念にマジレスすると Qt とか Python とか知ってしまうと D いらないんだよね
いやいや それはねーよw
一般的に荒れてるってほどでもないんだけど まったりしてる時のここがけっこう好きなんでしんどい気分になってしまうなあ
おまえにきにいってもらおうとはおもわん
NGできねえからな。 どうせすぐ飽きて去る。
実はこのスレには本物のアイちゃんがいるのではないかと思っている
QtDなめんな コンパイルできてリンクまでできてしかも動くことがあるんだぞ
動くことがあるのか それは素晴らしいことだね
動かないライブラリはただのライブラリだ
中之島ライブラリ
1000ならDのシェアが0.1%超え
Dのマスコットが世界を席巻!
1000ならDのマスコットのきぐるみが出る
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。