- 1 名前:デフォルトの名無しさん mailto:sage [2011/08/24(水) 06:02:12.35 ]
- プログラミング言語 D (D Programming Language) について語るスレッドです。
■前スレ D言語 Part27 hibari.2ch.net/test/read.cgi/tech/1303022487/ ■本家 www.digitalmars.com/d/ www.d-programming-language.org/ (ドキュメント) www.kmonos.net/alang/d/ (和訳) ■コンパイラ www.digitalmars.com/d/dcompiler.html (DMD, 本家) dgcc.sourceforge.net/ (GDC, gccフロントエンド) www.dsource.org/projects/ldc (LDC, バックエンドにLLVM) ■参考URL f17.aaa.livedoor.jp/~labamba/ (D言語研究) f17.aaa.livedoor.jp/~labamba/?D%B8%C0%B8%ECBOF (D言語BOF) dsource.org/ (dsource) tinyurl.com/candcpp2d2 (C/C++に疲れた人のD言語2.0) www.kmonos.net/alang/wnd/ (わかったつもりになるD言語) shinh.skr.jp/d/ (SDL, SDL_*, OpenGL, GLU, glutのポーティングとか) shoo.s20.xrea.com/shoo/programing (D言語とTangoの入門講座) www.nicovideo.jp/mylist/4453698 (D言語で作られた芝ゲー niconico動画) www.asahi-net.or.jp/~cs8k-cyu/ (ABA Games) dusers.dip.jp (D言語友の会) www.wish.sakura.ne.jp/desuno/game/Drawing (PrincessDrawing! D言語で作られた横スクロールSTG)
- 501 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 19:41:32.73 ]
- >>498 いまその作業やってる。
https://github.com/D-Programming-Language/phobos/pull/342 ためしてみるといいよ。
- 502 名前:デフォルトの名無しさん mailto:sage [2011/12/04(日) 20:50:08.62 ]
- >>501
ざっと斜め読みしてたら吹き出した
- 503 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 01:02:11.63 ]
- えっ newするときカッコなんか書きたくない!!
- 504 名前:デフォルトの名無しさん [2011/12/05(月) 01:21:26.57 ]
- newは変わらんだろC++的に考えて
- 505 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 12:41:15.80 ]
- C++は括弧の有無で結果が変わるからなあ
- 506 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 19:24:34.67 ]
- @propertyついてるコンストラクタは見かける
でもなんというかぞっとしないな
- 507 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 20:45:45.99 ]
- どっちだ? ぞっとする/ぞっとしない
- 508 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 20:56:53.14 ]
- ぞっとする:恐ろしい、寒いetcぞっとしない:面白くない、つまらない、感心しない、興味・関心がわかないetc
意味がちがう。
- 509 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 21:01:53.15 ]
- でもこういうのって「ぞっとする」がどう見ても通じない場面じゃないと通じないよね
Dは普通にぞっとさせてくるし
- 510 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 21:05:18.09 ]
- 本とかあまり読まない人には通じないのかな?
まあ、否定形なのに対称をなしてないからわかりにくいのは確かだけど。
- 511 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 21:08:00.31 ]
- ぞっとしない の反対は ぞくっとする なのかな
- 512 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 21:14:49.68 ]
- 「鳥肌が立つ」が寒さと恐怖・嫌悪と興奮・感動の両方を表わすという問題だわな
英語でもgoose bumps, chill, terrible/terrificが寒さ・恐怖・興奮の多義語だし 日本語の歴史中でも中世の「すごし」が寒いと嫌悪と興奮の多義語。 ぞっとする、ぞくっとするも同じカテゴリだわな
- 513 名前:デフォルトの名無しさん mailto:sage [2011/12/05(月) 22:40:30.11 ]
- ここではDの言葉で話せ
- 514 名前:デフォルトの名無しさん mailto:sage [2011/12/06(火) 01:37:48.78 ]
- 公式ページ更新されたっぽいけど Change Logやっぱり見れねー
なにしとん
- 515 名前:デフォルトの名無しさん mailto:sage [2011/12/06(火) 08:06:47.61 ]
- まるで、
日本語 Part28 みたいだな。
- 516 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 12:36:55.85 ]
- dblog.aldacron.net/
おまいら、俺だけのけ者にしてこっそりニュースブログ見てたな ぜったいにゆるさない!
- 517 名前:デフォルトの名無しさん [2011/12/07(水) 13:53:05.52 ]
- >>516で知ったけどVisualDにC++ Conversion Wizardなんて出来てんじゃん
・・・まあ気休め程度かな
- 518 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 20:30:41.92 ]
- 数年前に作った50行くらいのプログラム修正して2.055でコンパイルしたら
本当に200KB -> 1MBになったwww ぱねぇwww
- 519 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 22:50:37.71 ]
- 2.056はどや?
- 520 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 22:54:21.47 ]
- 2MBくらいになりそう
- 521 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 22:58:44.08 ]
- import std.stdio;
void main() { write("Hello World.\n"); } 2.056で HelloWorld は1.04MB
- 522 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 23:00:04.35 ]
- このサイズは一体何に使われているの?
- 523 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 23:22:53.25 ]
- linux 32 bitで
% dmd | head -1 DMD32 D Compiler v2.056 % dmd -ofmain -O -release main.d % strip main % ls -lh main -rwxrwxr-x 1 c c 189K 2011-12-07 23:19 main* 200kBくらい?
- 524 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 23:24:46.37 ]
- stripしちゃらめえええ
- 525 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 23:37:22.61 ]
- extern (C) void printf(in char* format, ...);
void main() { printf("Hello World.\n"); } 2.056でこれだと 154kB phobosはかさばるなぁ
- 526 名前:デフォルトの名無しさん mailto:sage [2011/12/07(水) 23:41:27.65 ]
- Windowsバイナリcygwinでstrip出来ないんだけどみんなそう?
- 527 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 19:14:20.57 ]
- GCついて200KBとかならまだ納得いったがさすがにこれは無いわ
- 528 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 19:34:39.63 ]
- よくわかんないけどこれって Phobos がテンプレート使いすぎてこうなったりしてんの?
薄いテンプレートイディオムで書き直せば改善されたりしないかな。 std.datetime のコード量もカオスだし・・・。
- 529 名前:デフォルトの名無しさん mailto:sage [2011/12/08(木) 20:24:11.81 ]
- すまん>>518なんだが、2.056だったわ
少し前のレス読むと2.055→2.056で急に増えたっぽい 何があったんだろう
- 530 名前:デフォルトの名無しさん mailto:sage [2011/12/09(金) 01:11:10.66 ]
- HelloWorld1MBワロタ
Dは飽きさせないな
- 531 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 14:15:42.16 ]
- > HelloWorld 1MB
2.054 -> 2.055 で std.uniに巨大なテーブルが追加されている。 おそらくwritelnがこれを取り込むのでexeサイズが大きくなっている
- 532 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 14:17:27.77 ]
- >ファイルからでデータを読んでbyteの配列に格納しようとしたら、 メガバイト級のコードが読み込まれた、 という事態は避けたいものです
^^;
- 533 名前:デフォルトの名無しさん mailto:sage [2011/12/10(土) 19:42:10.71 ]
- マクロまだー?
- 534 名前:デフォルトの名無しさん mailto:sage [2011/12/12(月) 03:16:48.17 ]
- D1が消えます
- 535 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 17:33:32.46 ]
- 2.057出たね
- 536 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 18:38:15.43 ]
- 変更点。中の人は本当に乙
dusers.dip.jp/modules/forum/index.php?topic_id=108
- 537 名前:デフォルトの名無しさん [2011/12/14(水) 18:55:11.51 ]
- enumでinit出来たのか・・・
- 538 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 18:55:22.43 ]
- 例のswitchのはまだまだか
- 539 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 18:56:20.11 ]
- 単にint型のenumを作って
列挙子initをint.initで定義してるだけだな まあ確かにできるけどw
- 540 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 19:14:56.85 ]
- enumで思い出したけど
どうせならenumの全メンバをforeachで回させてくんないかな valuesみたいなプロパティがあればいいんだが
- 541 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 19:25:57.64 ]
- >> 540
std.traitsにEnumMembersがある
- 542 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 19:42:50.78 ]
- >>541
そんなのがあったのか thx
- 543 名前:デフォルトの名無しさん [2011/12/14(水) 20:51:37.93 ]
- >std.regex.replaceに破壊的変更
Yeeeeeeeeeeeeeeeeeeeeeeeeeeeeaaaaaaaahhhhhhhhhhhhhhh!!!!!!
- 544 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 21:07:19.34 ]
- マゾが多いなw
- 545 名前:デフォルトの名無しさん mailto:sage [2011/12/14(水) 23:21:15.01 ]
- www.phoronix.com/scan.php?page=news_item&px=MTAyNzI
New Features Approved For Fedora 17 D2 programming language support.
- 546 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 00:41:43.74 ]
- Change LogでBreaking changeが赤文字になってて吹いた
- 547 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 01:31:58.13 ]
- あれ? std.intrinsic どこ行った・・・?
- 548 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 02:44:08.62 ]
- さよならTango
- 549 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 02:44:36.08 ]
- そろそろD2を固定してもいいんじゃないか
- 550 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 02:56:21.67 ]
- マゾが多いな
- 551 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 07:10:08.79 ]
- D3はまだか…
- 552 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 11:45:55.95 ]
- >>547
モジュールとしてはすでにdeprecated, 置き換え先はcore.bitop Documentからリンクが消えたのは、たぶん間違えて消しちゃったんじゃないかな
- 553 名前:デフォルトの名無しさん mailto:sage [2011/12/15(木) 13:02:33.06 ]
- >>552
thx
- 554 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 18:12:09.44 ]
- WindowsAPIのHANDLEはaliasとenum、どちらがいいんだろうか
- 555 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 21:13:17.44 ]
- intptr_t的なものがいいんじゃね?
- 556 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 21:22:17.91 ]
- alias intptr_t HANDLE;
かな、普通に考えると
- 557 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 21:42:50.13 ]
- 配列を戻り値にする関数で最後にuniqを使いたいんだけど
int[] func() { int[] values; // ... return uniq(values); } uniqの戻り値って配列じゃないんだよな というかrange絡みの関数は全体的にそんな感じだ どうすればいいのやら
- 558 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 22:53:09.06 ]
- uniq(values);
return values;
- 559 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 23:18:30.31 ]
- だめだった
- 560 名前:デフォルトの名無しさん mailto:sage [2011/12/17(土) 23:58:46.01 ]
- std.array.array
- 561 名前:デフォルトの名無しさん mailto:sage [2011/12/18(日) 00:35:09.07 ]
- そっちか!Thx
- 562 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 00:13:18.38 ]
- @safe pure nothrowたん・・・(*´Д`*)ハァハァ
- 563 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 00:15:53.63 ]
- @政府 うあ 野田たん・・・(><)
- 564 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 02:38:12.30 ]
- @trustedをつけてまわるだけの簡単なおしごと
- 565 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 03:05:58.78 ]
- なんでAppenderはpureじゃないの
- 566 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 22:25:57.35 ]
- throwする可能性があるからじゃ?
- 567 名前:デフォルトの名無しさん mailto:sage [2011/12/19(月) 23:39:33.94 ]
- これ1になるんだけどそういうもん?
ttp://ideone.com/WULc0
- 568 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 00:19:15.32 ]
- aaA見たけどわかんね
- 569 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 01:14:34.46 ]
- >>567
おてんとうさまがゆるしても おれがゆるさねぇ
- 570 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 02:48:56.13 ]
- あれ?pureとnothrowは直交してないのか?
- 571 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 15:58:11.56 ]
- >>567
ある意味正しい。 > hoge["fuga"] = hoge.length 左辺の評価でまずkey="fuga"のエントリが確保され、この時点でhoge.length==1になる その後確保されたエントリにhoge.lengthの評価結果(==1)が設定される。 *(p++) = *(p++)とかと同じようなもの
- 572 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 16:02:41.35 ]
- >>565
GC関連の関数を内部で直接呼んでいるため。 言語としてはnew式はpure扱いだが、ランタイムのGC関数がpureであるべきかは newsgroup上の議論でも明確な結論が出てなかったと思う。
- 573 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 16:04:05.33 ]
- >>570
直交している。Appenderがpureでない理由は>>572の通り。
- 574 名前:デフォルトの名無しさん mailto:sage [2011/12/20(火) 20:20:35.80 ]
- >>571
なるほど納得した
- 575 名前:デフォルトの名無しさん [2011/12/21(水) 00:17:01.32 ]
- 直感的にはhoge.set("fuga", hoge.length);みたいな評価順の方が嬉しいかな
- 576 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 00:40:50.28 ]
- アセンブリ想像出来てれば直感的だし今のでいいと思うけど
- 577 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 00:43:41.69 ]
- 右辺で例外が起きたらと考えると、怖いな
- 578 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 01:27:27.23 ]
- opIndexAssign( "fuga", hoge.length )
こんなオーバーロードないんだっけ?
- 579 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 01:36:45.52 ]
- >>577
assert(笑);
- 580 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 01:50:49.40 ]
- >>577
STLのコンテナでfront()とpop()が分かれてる理由系の話だね ideone.com/rBvF3
- 581 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 17:13:59.45 ]
- D1系のアップデート見てて思ったんだけど
CTFEできる範囲って仕様で明確化されてるの? 仕様に沿ったコンパイラでCEFEのせいで コンパイルできる事とできない事があるってのはとても困る気がする
- 582 名前:デフォルトの名無しさん mailto:sage [2011/12/21(水) 17:17:28.83 ]
- pureなものじゃない?
今@pure付けられる範囲をどんどん広くしていってる気がする
- 583 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 02:24:56.04 ]
- @safeならCTFEできる、ってのもあったような。
- 584 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 13:21:42.68 ]
- ぶっちゃけ、大抵のプログラムは、C#なりPythonなりHaskellなりGoなりの高級言語を使えばよくて、
わざわざ「Cに代わる低級言語」を持ち出す必要はない 一方で、本当にC言語に取って代わろうとするなら、 高級言語を持ち出せない、プアな環境で使えないといけない ・ポインタ演算は手放せない ・GCは使えない ・ポリモーフィズムも使えない ・テンプレートも容量を食い過ぎる ・正規表現を実行時にコンパイルするのは贅沢すぎる ・標準ライブラリーが充実させても意味が無い ・標準でないアーキテクチャをサポートしなければならない それなら、C言語で十分じゃない? 文字列型?ハッシュマップ?サードパーティ製のを使えばいい ドキュメント自動生成なら、言語仕様を変更しなくても、Pythonとかでツールを作ればいい Cのシンタックスがキモいとか、Lisp風マクロとかが欲しいと言うのなら、 JavaScriptに対するCoffeeScriptみたいな物を作ればいい
- 585 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 13:26:14.29 ]
- 哀れなD使い達を説得しにきたの?
- 586 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 14:35:57.36 ]
- あちこち手を伸ばしすぎて
かつて売りにしてた機能まで潰しまくる迷走ぶりについては認める
- 587 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 14:56:03.70 ]
- ttp://www.kmonos.net/alang/d/2.0/builtin.html
- 588 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 16:41:48.27 ]
- 複素数…
- 589 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 22:25:33.38 ]
- typedefってなんで消えたの?
あの超シンプルに型を作れるところが気に入ってたんだけど
- 590 名前:デフォルトの名無しさん mailto:sage [2011/12/22(木) 23:06:14.50 ]
- 基本的にマクロみたいな機能は無駄です
- 591 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 09:28:03.36 ]
- それってaliasのこと?
- 592 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 10:52:52.35 ]
- alias は便利だけど危うさが漂う
もうちっと機能を狭めてもいい
- 593 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 11:15:18.32 ]
- >>590
そんなんじゃ「そうじゃねーよ俺は便利に使ってんだよ」と反論できちまう せめて「typedefあるとコンパイラの実装が超大変になるんだよ、わかれよ」くらい言ってほしい
- 594 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 11:43:45.05 ]
- strong typedefはまともにやるとめんどくさいからな。
t f(t, t)って関数があってtからuを新たに作ったときに、t f(u, t)として使えるのが正しいのか t f(u, u)が正しいのかu f(u, u)が正しいのか。
- 595 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 12:11:48.42 ]
- ユーザ定義リテラルがあれば
複素数をビルトイン型にしなくてもいいような気もする (パフォーマンス的には分からんが)
- 596 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 12:14:25.88 ]
- >>594
やっと納得した uがどこまでtか微妙なのが仕様的に面倒なのね あれ、でもenum…
- 597 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 12:56:34.72 ]
- >>595
複素数がライブラリに移動したときにその話はあった 結論から言うとcomplex型とimaginary型を併用することでパフォーマンス的にも問題なく解消する ただし記述が面倒だからユーザー定義リテラルが必須
- 598 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 19:54:02.30 ]
- ユーザー定義リテラルを入れたいから複素数リテラルをなくしたのか?
ユーザー定義リテラルを入れなくても、複素数リテラルがあれば、複素数についてのパフォーマンスは元々解決されていたんでしょう。 なくす必要性がまだ見えないんだよね
- 599 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 20:07:50.18 ]
- コンパイラ組みこみじゃなく、
ライブラリの存在を前提としたシンタックスシュガー化するということかと。 Dならstring→immutable char[]が似ているし、 C#のstringはSystem.Stringの別名だ(と思う)し。
- 600 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 20:17:25.54 ]
- ユーザー定義リテラルって何ぞ・・・? ガクガクガタガタ
|

|