- 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)
- 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 ]
- ユーザー定義リテラルって何ぞ・・・? ガクガクガタガタ
- 601 名前:デフォルトの名無しさん mailto:sage [2011/12/23(金) 20:19:04.64 ]
- C99が複素数を言語組み込み、C++が複素数をライブラリ提供してるけど
gccはバイナリ互換性を持たせるために、「コイツは内部的に複素数だ」ってpragma用意してるよね。 Dの複素数もC99の複素数とバイナリ互換性を持ってるはずだが、ライブラリ版はどうなってるんだろう。
- 602 名前:デフォルトの名無しさん mailto:sage [2011/12/24(土) 03:55:23.75 ]
- >>599
そうするのはなぜだか知ってますか? ユーザー定義リテラルを導入するならば複素数だけ優遇する必要がないから?
- 603 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 04:15:55.26 ]
- octal!100はどうするんだよ…。
octだったかな
- 604 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 12:14:29.54 ]
- dlang.org てのがまた出来てる
こっちに移るんかな
- 605 名前:デフォルトの名無しさん mailto:sage [2011/12/25(日) 17:11:57.58 ]
- 当面の間はミラーリングして様子見じゃないの
- 606 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 01:33:27.78 ]
- const(char[])がconst(char)[]に暗黙変換されるようになったんだってな。なんか不具合出ないのかな
- 607 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 07:19:58.60 ]
- 仕様も見ずに言うけどref引数だと変換されないんだよね?
- 608 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 20:31:46.19 ]
- ちょっと生理させてくれ
const(char)[]:中身を書き換えられない配列 const(char[]):?? Cのchar a const[] ?? いやそれじゃchar a[]と同じか
- 609 名前:デフォルトの名無しさん [2011/12/26(月) 23:07:10.07 ]
- const(char[]) a, b;
a = b; が出来ないんじゃなかった?
- 610 名前:デフォルトの名無しさん mailto:sage [2011/12/26(月) 23:17:27.56 ]
- ・・・えっち
- 611 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 02:56:23.39 ]
- 月桂冠
- 612 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 08:42:56.37 ]
- 厶板ではここが一番落ち着く
- 613 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 11:50:14.46 ]
- わかるわ
俺もD言語に全く興味ないのに覗いてるしな
- 614 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 12:05:34.60 ]
- あれ、俺がいる
- 615 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 13:37:36.63 ]
- 逃げない奴はよく訓練されたD言語erだ
- 616 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 21:03:32.31 ]
- D言語が落ち着くまで待ち続けるぜ
- 617 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 21:08:22.82 ]
- UFCSとラムダ式が入るらしい
まだまだ若者には負けんよ
- 618 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 21:21:05.99 ]
- UFCSって何?
- 619 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 21:22:04.16 ]
- Windows版64bit対応くらいしてくり
- 620 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 21:23:30.80 ]
- Universal Fire Contol System
- 621 名前:デフォルトの名無しさん mailto:sage [2011/12/27(火) 21:47:40.01 ]
- これで敵軍も拾った武器で戦えるようになるね! っておい
- 622 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 10:39:17.88 ]
- 2.057でもHello, World1MBのまま?
- 623 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 13:05:42.51 ]
- import std.stdio;
void main() { writeln("hello, world."); } ↑に -O -relese -inline 付けて 933404byte=911.5kbyteだった
- 624 名前:デフォルトの名無しさん mailto:sage [2011/12/28(水) 14:06:17.81 ]
- クソだな
|

|