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


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

D言語 Part17



1 名前:デフォルトの名無しさん [2008/02/10(日) 15:06:12 ]
プログラミング言語 D (D Programming Language) について語るスレッドです。
過去スレは >>2

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

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

■参考URL
ttp://f17.aaa.livedoor.jp/~labamba/ (D言語研究)
ttp://dsource.org/ (dsource)
ttp://tinyurl.com/3da5oa (C/C++に疲れた人のD言語)
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動画)

■ IDE
ttp://dronten.googlepages.com/dscite (DSciTE)
ttp://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)

482 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 11:58:46 ]
pauseでスレッドを停止させる設計が間違ってるからじゃないか

483 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 12:54:04 ]
>481
Thread.yield ではダメ? 実行権が勝手に戻ってきちゃうと都合悪いのかな。
だったらtango.core.Thread.Fiberで yield/callするコードを書いといて、
そのファイバーをスレッドで駆動するという手はある。


484 名前:481 mailto:sage [2008/03/03(月) 13:18:00 ]
>>482
そうなんですか?初めて聞きました。浅学なもので…
でも、使いたくなる時もあるんじゃないかと思うので、
設計の良し悪しは別にして、あってもいいような気がしないでもないのですが…

>>483
それはなんとも強引ですねw

とりあえず使うところはWindowsなので、スレッド内でGetCurrentThreadとかすればなんとでもなる…
けど、なんかスマートじゃない感じが…

485 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 13:44:55 ]
動けばいいのだ

486 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 14:08:39 ]
Internal error: ..\ztc\cgcod.c 1522
ってなんですか?

487 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 14:22:13 ]
コンパイラのバグ。
bugzillaに報告しとけば一年ぐらいで直るよ。

488 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 15:08:08 ]
一年後かよ!

489 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 19:15:41 ]
あるある

490 名前:イーペーコー [2008/03/03(月) 19:20:47 ]
D言語はVB.NETよりできることがすくなと聞いたのですが本当ですか??



491 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 19:22:36 ]
少なくは無いけど、遠回り。

492 名前:デフォルトの名無しさん [2008/03/03(月) 19:43:55 ]
D言語で書くくらいならアセブラで書いたほうがいいと効きました
なにやらアセブラはなんでもできるそうでD言語より高機能だそうです

493 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 19:45:37 ]
>>480
わー
サンクス

494 名前:デフォルトの名無しさん [2008/03/03(月) 21:24:05 ]
>>490
あの膨大なライブラリを誰が書いたかってハナシだな。
キャパシティはあんま変わらん。

495 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 22:03:40 ]
>>492
アセンブリ言語でガリガリ効率的に書けるなら,確かに他の言語なんていらないなw

496 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 22:11:42 ]
チューリング完全(ry

497 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 22:15:39 ]
アセンブリがあればという奴にかぎってアセンブリでまとまったモノを書いた経験がない。
チューリング機械があればという奴にかぎってチューリング機械でプログラミングした経験がない。

498 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 22:19:12 ]
僕は、ラムダちゃん!

499 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 22:21:39 ]
>>497
別に限らないと思う。

500 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 22:30:38 ]
>>497は経験がないのはわかった



501 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 22:37:07 ]
       ____
     /      \
   /  _ノ  ヽ、_  \
  /  o゚⌒   ⌒゚o  \  また明日から無限に長いテープを前後に動かす仕事が始まるお
  |     (__人__)    |
  \     ` ⌒´     /

502 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 22:48:01 ]
絶望的な仕事だなぁ

503 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 22:56:25 ]
チューリングマシンより量子コンピュータの方が出来ることが多いそうですが、
D言語は量子コンピュータ上で動きますか?

504 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 23:07:26 ]
>>501
その仕事はいつ終わるんですか。

505 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 23:07:59 ]
量子コンピュータなんてろくにできることないぞ。

506 名前:デフォルトの名無しさん mailto:sage [2008/03/03(月) 23:16:48 ]
どっかの研究者が並列実行可能な生体コンピュータ(分子生物学的な)を使って
現在のノイマン型だと非常に時間の掛かる問題(確か年単位オーダー)を解いたそうだが、計算は一瞬で終わっても解を取り出すのに数週間掛かったそうだ。
質的な差は確かに違うしできること、奥の深さの違いもあるだろうけど、現時点では量的な差がそれを打ち消してしまうほど使い物にならない。
例の様な特殊な事例でなければね。
というか量子的な動作を記述する言語ってどんなものになるんだろうな。
D言語は言語使用自体の例外的なものをできるだけ排除して、できるだけ簡素なものに帰納的に表現できるように
工夫がされているはず。
その“帰納的”という性質そのものがノイマン型コンピュータに依存するわけだから、勿論互換性なんてない。
量子コンピュータはその動作を確率的に、並列コンピュータはその動作を並列的つまり動的計画法バリバリに記述するんだろうねきっと。

507 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 00:29:37 ]
三行で

508 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 00:52:33 ]
今のプログラムに比して超巨大なステートマシンが
大量に右往左往する量子コンピューティングには
テキストでしこしこ記述する手法では太刀打ち出来ない。

509 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 07:29:30 ]
量子コンピュータは一応チューリング完全だけど、
NOT, CNOT, CCNOT, SWAP っつー可逆な操作のみを使って計算する、
古典コンピュータとは根本的に異なる原理に基づいた計算になる。
その性質をフルに発揮するには、そもそも古典コンピュータ用の言語は向いていない。
さらには重ね合わせとかあるしね。

510 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 07:46:48 ]
> D言語は言語使用自体の例外的なものをできるだけ排除して、できるだけ簡素なものに帰納的に表現できるように
> 工夫がされているはず。

正気か?



511 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 08:42:25 ]
でっていう

512 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 12:13:58 ]
このスレ、なんか今年入ってからか全然関係ない話題で盛り上がる運命にあるのか?

513 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 12:36:18 ]
> 全然関係ない話題
運命についての質問とかな

514 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 12:58:39 ]
これから盛り上がるっていう予言かw

515 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 20:24:23 ]
DコンパイラをDで記述すれば大いに盛り上がるはず
頑張れ↓

516 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 20:31:17 ]
2への完全移行とDMD/GDCの互換性を上げるほうが先だろ

517 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 20:48:27 ]
記述に使用する言語と同じ言語のコンパイラって作って何が楽しいの?

518 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 20:53:52 ]
>>517
動的コンパイル

519 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 21:29:36 ]
>>517
そんなこと言ってたらCコンパイラすら作れなくなるな

520 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 21:30:46 ]
マシン語とかアセンブリ言語とかで作れと?



521 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 22:03:38 ]
作るのが楽しいんだよきっと

522 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 22:12:01 ]
でも、そんなもの作る暇あるなら、
何か便利なライブラリでも作って欲しいわ。

523 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 22:12:58 ]
動的コンパイルできるライブラリ作れるじゃん

524 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 22:13:36 ]
>>520
でも同じ言語で新しいバージョンのものだったらまだ話は分かるけど、
同じバージョンなんて作っても・・・。

525 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 22:20:59 ]
その言語がよい言語なら、その言語のコンパイラ自身も
その言語で書かれてる方がいいよね。

移行の過程を無視すれば、だけど。
 > 複雑でデバッグ済みで既に完成しているアプリケーションを
 > わざわざ他言語に 移植することにあまり利点はありません。
 > 新しい Digital Mars のアプリは Dで実装されています。
 www.kmonos.net/alang/d/2.0/faq.html#cpp_to_D

>517のような、新しくコンパイラを書き起こす場合は、Dで書くのも
普通に選択肢に入るんじゃない?
「すでにD言語のコンパイラは2つもあるのに、新しく作って何が楽しいの?」
ならともかく、D言語のコンパイラをD言語で書くこと自体はとくにおかしくないでしょ。

526 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 22:22:10 ]
Streamクラスのseekableなストリームは絶対にreadableなストリーム、と言い切れるのでしょうか。

527 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 22:30:36 ]
さあてね、どうだか

528 名前:デフォルトの名無しさん mailto:sage [2008/03/04(火) 22:38:04 ]
D 3.0からDで作ります。とかならあり得ない話じゃないかな。

529 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 00:04:22 ]
じゃあ最初のD3.0はD2.xxで作られるわけか

530 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 00:14:10 ]
コンパイラ作ってる間に仕様が変わって、新しいコンパイラでは自分自身をコンパイルできなくなると。



531 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 01:03:14 ]
>>526
readableとseekableが分かれているのだから言い切れないんじゃない.
ソースを上から全部読んでないので確証はないけど.

532 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 21:40:09 ]
そう言えば量子コンピュータって量子テレポの原理を使って理論上は
人間が思ったとおりの動作を自動的にしてくれるんだって?
LL(0) 何世紀後の話になるやら・・・。

533 名前:デフォルトの名無しさん mailto:sage [2008/03/05(水) 21:48:37 ]
??

534 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 05:05:18 ]
LL(0)というのは誤爆です・・・

535 名前:デフォルトの名無しさん mailto:sage [2008/03/06(木) 06:33:12 ]
Version()掛けてD2.xで出来上がったD3.0でD3.0を作ってそのD3.0でコンパイルしてみて確認。

536 名前:デフォルトの名無しさん mailto:saqe [2008/03/07(金) 08:56:40 ]
D言語でデバイスドライバはC並に作れますか?

537 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 11:53:23 ]
お約束だが「C並」を定義しないと誰も回答できない

538 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 13:33:59 ]
長時間存在するものをモダンでないGCに投げるのは不安があるところだな。
その辺の工夫をすればかけるのではなかろうか。

539 名前:デフォルトの名無しさん [2008/03/07(金) 14:47:19 ]
つまりCでできることは9割がたDでできるのか否かちょいうこと

540 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 15:03:51 ]
D言語終わったな



541 名前:デフォルトの名無しさん [2008/03/07(金) 15:22:35 ]
>>540
ハゲ同
今じゃVisual Basicですら簡単にC++並みのドライバが書けるのにD言語ときたら・・・

542 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 16:51:32 ]
>>35 のバグ直ったみたいだよ
d.puremagic.com/issues/show_bug.cgi?id=1828
> Fixed dmd 1.028 and 2.012 (and thanks for sorting this out)

543 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 17:32:57 ]
>>542
キタ━━━━━━(゚∀゚)━━━━━━!!!!!!
これで安心してマルチスレッドのコードが書けるわ

544 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 18:09:49 ]
>>539
アッパーコンパチなんで、やろうと思えばできるはず。効率的かはまた別だが。
まー、ビットフィールド位しかできないことおもいつかん。
アラインもいじれるし。ポインタもいじれるし。

>>541
なに?ドライバ入れるのに.NET入れないといけないの?
フロントエンドじゃなくて?

545 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 21:35:45 ]
vbでデバイスドライバとな!?

ランタイムも全部sys 凄すぎるけどネタじゃないか

546 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 21:38:22 ]
>>545
Windows限定なら俺も書いたことがある
仕様が公開されてるキーボードのドライバをvb.netで

547 名前:デフォルトの名無しさん [2008/03/07(金) 21:42:17 ]
ubyteの配列をスライスしてuintの配列として解釈するのはマズいですか

auto ub = new ubyte[0x10];
auto ubs = ub[4..11];

uint* ui = cast(uint*)ubs;

要するにバイト列を任意の値型で再解釈するというモノです。


もっと安全な方法があるぜ!とかあったら教えてください

548 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 22:09:48 ]
エンディアンにさえ気をつければやっていいと思う。


549 名前:デフォルトの名無しさん mailto:sege [2008/03/07(金) 22:48:29 ]
>>547
VBの場合リトルエンディアンは静的なデストラクタとして扱われるから気をつけて。
uint* uiじゃなくてfile*uint[ui]の方がいいよ

550 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 22:56:30 ]
>>549
547じゃないけど、もう少し噛み砕いた説明plz



551 名前:549 mailto:sege [2008/03/07(金) 23:04:25 ]
つまり、Dの場合はリトルエンディアン(パソコンでプログラムを使う際に使用される16進数の形式のネイティブWinAPI関数)は
静的(ガベージコレクタによって関数がオーバーロードされ変数のスコープからはずれたりするのを防ぐコア関数)
なデストラクタ(使い終わったオブジェクトをユーザーからのイベントパンドラ無しにイベント駆動型のラムダ式)
として扱われると言うこと。
uint* uiにするとβ変換(変数をグローバルなスコープから外し新しいシステム型変数として使うための変換)
が正常に行えなくなるのでfile*uint[ui]にしておいたほうがいいということ

552 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 23:08:46 ]
すごいバグつぶしっぷりだな・・・

553 名前:デフォルトの名無しさん mailto:sage [2008/03/07(金) 23:21:18 ]
普及させるにはやっぱD言語製の優秀なアプリが無いと駄目だろうな
ゲームはあるみたいだが

554 名前:547 mailto:sage [2008/03/08(土) 00:09:13 ]
>>551
すいません全然意味がわからないです

エンディアンとガベージコレクタに何の関係が?

>file*uint[ui]
??file型のポインタの配列??

>VBの場合
???

555 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 00:40:40 ]
アプリよりまずライブラリだろ。
そして、ライブラリよりまず言語仕様の安定を・・・。

556 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 00:52:03 ]
安定なんか糞喰らえだ。
Walterたんの突発的な変更に右往左往するのがD言語だ。
と俺は思っているが少数派だろうなぁ。まぁこんな考えだと一生D言語が流行らんけど

557 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 00:52:52 ]
まあ、それはそれで楽しいからいいんだけど、
早く実用したいという欲求もあるしなあ。

558 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 01:26:08 ]
つまり実用的なD言語と実験的なD言語に分離すれば…
ってそれが1.0系列と2.0系列か。

559 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 01:36:14 ]
2.0系列に入った機能で
ある程度賛否の賛の方が大きい機能を
1.0系列にマージした系列も欲しい所だな。

560 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 02:11:45 ]
2.012と1.028きてたのね。
dmd_2.012-030608_i386.debってのもあるけどなんだろうこれは。



561 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 02:14:58 ]
debパッケージなんじゃないの。

562 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 03:14:57 ]
dmd、リンクのときのメッセージが出なくなってるんだな。

563 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 06:58:06 ]
>>551を読んで、>>549がデタラメだということはわかった。

564 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 09:46:55 ]
>>551
×イベントパンドラ
○イベントプロシージャ

×関数のオーバーロード
○関数のオーバーライド


565 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 09:52:21 ]
>>486のエラーを避けるために
原因のコードを普通のブロックで囲んでも意味無かったので
(){
  原因のコード
}();
こんなことしたらエラーでなくなった
でも顔はぐにゃってなった

566 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 11:04:33 ]
{ (
   ^ |
{ (

567 名前:547 [2008/03/08(土) 11:37:37 ]
すいません私の勉強不足でした
ファイル型のポインタも知らなかったなんて・・・
今まで一体何を勉強してきたんだ…
www.geocities.jp/tor_park/Dlang/byte.html

568 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 12:01:12 ]
>>567
なんだこの6章だけデムパで残りはパクリのサイトは...?

569 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 12:26:47 ]
file*uintってなんですか?

570 名前:547 mailto:sage [2008/03/08(土) 12:29:42 ]
>>567
騙らないでください



571 名前:547 ◆iBVPK4.Aq2 mailto:sege [2008/03/08(土) 13:09:14 ]
これ以上詐称するのであれば酉付けます

572 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 13:23:33 ]
IDもなしに後からつけるトリップに何の意味があると

573 名前:547 mailto:sage [2008/03/08(土) 13:37:07 ]
すいません質問はあきらめます
自分で調べてきます

以降の547人は偽認定でお願いします

574 名前:デフォルトの名無しさん [2008/03/08(土) 13:43:06 ]
>>573
だからwww.geocities.jp/tor_park/Dlang/byte.html

575 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 13:55:45 ]
>>574
その偽サイト作るのにどれだけ時間掛けたの?

576 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 13:59:15 ]
すでに時代遅れになっているから、読まないほうがいい
混乱するだけだ

577 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 14:04:23 ]
自演乙

578 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 14:10:39 ]
ttp://www.geocities.jp/tor_park/logo.jpg
更新日時 2008年3月8日 10:19:16

ずいぶん新しいね

579 名前:デフォルトの名無しさん mailto:今日の午前中に作ったよーん [2008/03/08(土) 14:12:39 ]
578

暇人

580 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 14:14:22 ]
Dスレでこんなのを見るとは思わなかった



581 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 14:15:33 ]
www.geocities.jp/tor_park/Dlang/d2.html
「細かい説明は後述するので、この場ではとりあえず文字を表示する方法を試してみましょう。
文字を表示するにはprintgokko命令を使います」

アホか

582 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 14:16:43 ]
>>578
文章は何年も前から変わってない。
C++だったらそれでもいいけど、Dじゃ駄目。

583 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 14:16:49 ]
ジョークサイトにしてももうちょっと知性の感じられるジョークをだな

584 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 14:19:40 ]
構ってもらえてよかったな坊主

585 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 14:20:47 ]
yutori.2ch.net/test/read.cgi/news4vip/1204952244/

   1 名前:以下、名無しにかわりましてVIPがお送りします。[] 投稿日:2008/03/08(土) 13:57:24.68 ID:oVsMTN3J0
     次世代言語”D言語”を使ってプログラミングをしてみよう!
     C++で挫折した君も、プログラミング初心者の君も今日からプログラマーだ!

     D言語入門 www.geocities.jp/tor_park/Dlang/d2.html

586 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 14:26:25 ]
>>582
そのサイト>>567がついさっき作ったんでしょ?、と汲み取ってもらいたかったんだが
文章はWisdomSoftのパクリ

587 名前:デフォルトの名無しさん [2008/03/08(土) 14:27:06 ]
おじゃすー
printgokkoとかアホかと・・・
ptって感じで短くして欲しいぐらいだよ

588 名前:デフォルトの名無しさん [2008/03/08(土) 14:27:11 ]
   1 名前:以下、名無しにかわりましてVIPがお送りします。[] 投稿日:2008/03/08(土) 13:57:24.68 ID:oVsMTN3J0
     次世代言語”D言語”を使ってプログラミングをしてみよう!
     C++で挫折した君も、プログラミング初心者の君も今日からプログラマーだ!

     D言語入門 www.geocities.jp/tor_park/Dlang/d2.html

589 名前: ◆bNGw8Q1jYg [2008/03/08(土) 14:27:59 ]
いつのまにかVIPでこのスレがパートスレ化している件

590 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 14:30:19 ]
これを面白いと思うセンスが理解できない



591 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 14:35:24 ]
まあ、547自体が釣りだったということでFA

592 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 14:38:30 ]
VIPからきますた

593 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 14:42:09 ]
VIPから(ry ww

594 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 14:43:28 ]
徹夜までして偽サイト作ったもんだから、引くに引けなくなったのか・・・

595 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 14:47:27 ]
VIPの方からきますた

596 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 14:58:05 ]
>>582
釣られてる奴がいる
ワロタ

597 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 15:41:29 ]
静岡県在住の高校一年生か
なるほどこりゃ痛い

598 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 16:10:44 ]
2章ひでえ。何がやりたいんだこれ

599 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 16:11:12 ]
こういうのが沸く程度にはメジャー化したということで
順調に発展できたならば、5年後くらいには
Java vs C# vs D
とかでもできてるに違いない(と信じたい)

600 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 16:16:06 ]
>>599
逆に5年後、JAVAとC#があるのかどうか、という感じだな。
JAVAはマジで死滅するんじゃないかという危惧と
C#はMSが次の言語出してきたらどうなるかと。



601 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 16:20:57 ]
MSは"D言語"出すしな

602 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 16:29:07 ]
mjd?

603 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 16:31:42 ]
D言語いくつ作られるんだよw

604 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 16:46:10 ]
>>600
5年後に日本のIT業界がJAVAを捨てられるほど熟練者が増えてるとは思えんがな……

605 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 16:48:24 ]
2章より引用
>細かい説明は後述するので、この場ではとりあえず文字を表示する方法を試してみましょう。
>文字を表示するにはprintgokko命令を使います

>printgokko ("表示したい文字列");

606 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 16:49:53 ]
必死に貼らなくてもいいから

607 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 17:49:57 ]
JAVA無くなって困る人は大勢いそうだけど
C#無くなって困る人は少ない気が

608 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 18:07:06 ]
俺はCOBOLとDなくなったら死んじゃう。

609 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 18:34:13 ]
それはぜひ半分死んでくれ

610 名前: ◆bNGw8Q1jYg [2008/03/08(土) 18:40:35 ]
ごめん消しちゃった
今度はもっとちゃんとした教材作るね



611 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 18:50:39 ]
じゃ俺はDとC++の勢力が入れ替わるのなら100年生きる。

612 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 19:08:01 ]
在る程度メジャーになった言語は、
衰退することはあっても、完全に無くなることは滅多に無いと思うけどなあ。

613 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 19:13:39 ]
COBOLもそろそろ死んで欲しいんだけど、あと1世紀は生きるよね。

614 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 20:18:58 ]
ttp://s01.megalodon.jp/2008-0308-1456-03/www.geocities.jp/tor_park/Dlang/index.html

615 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 20:21:53 ]
もういいよ

616 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 20:22:03 ]
>>614
そこまでしてかまって欲しいのか・・・

617 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 20:24:39 ]
なにやってんだろうね

618 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 20:25:10 ]
つれたw

619 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 20:25:34 ]
そこら中にマルチしてやがるから通報しときました

620 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 20:28:59 ]
同一性保持権の侵害で訴えられんようにな
知ったこっちゃねーけど



621 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 20:30:29 ]
人格権以前に普通の著作権侵害だろ

622 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 20:30:35 ]
芝ゲーでニコニコから流れてきてるんだろ

623 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 20:50:42 ]
pythonや なでしこ とか他にもう少しメジャーな言語スレあるのにキチガイ何でDに来るかね

624 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 20:59:22 ]
Dも有名になったもんだな

あんまり嬉しくないけど

625 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 21:03:56 ]
ウォルたん「pythonの生産性 + Cの速度 + C++の自由度 = D」
一般的なプログラマー(昔)「Dはこける」
〃(今)「そろそろDもやっておくか」
C++「C++かわいいよC++」
0x「C++が使いやすくなってからD涙目wwwwwwwwwwwwwwwwwwwwwwww」
やねうらお「超素敵!!私の処女あげちゃう!」


626 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 21:05:34 ]
>>625
やねうらおwwwwwwwww
しかし正直俺あの人居なかったらDに興味持たなかったな。

627 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 21:30:10 ]
DのGCについての情報が有るページを教えてください。

628 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 21:33:30 ]
ttp://www.emit.jp/dgca/cmptest.html

629 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 21:34:20 ]
俺はやねうらおのおかげでしばらく敬遠してたな・・・ なんか知れば知るほどろくでもないとこが見えてくる人物だから

630 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 21:43:27 ]
ABAさんの所でD使ってるというのを見て、かなり興味持ったんだが
俺もやねうらおでちょっと敬遠してしまった。



631 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 22:07:39 ]
>>626
おれも

632 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 22:11:47 ]
>>625
ウォルたん(昔)「Boost対応めんど。新しい言語つくろ。」
〃(今)「バグ生まれすぎワロタ。」
一般的なプログラマー(昔)「D言語? 何それ?」
〃(今)「D言語? (Sun | Microsoft)が出してたやつ?」
C++「高給なのもC++のおかげ。むしろ皆は感謝すべき。」
0x「やっぱ後方互換と知名度が重要だよな。」
Java「結局ライブラリが全てなんだよね」
やねうらお「C#マンセーwwww」

633 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 23:29:19 ]
あれ、ここって 真面目な D言語の板じゃなかったっけか……orz
ま、おわったぽいからいいけどさ。

>632
C#かwwwww ってかDFLとかだとほぼC#だしなw


634 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 23:44:53 ]
C#というか、.NETだね。
Windows Formsはデザインがよく出来てると思う。
実装が悪くてもっさりしてるのがどうしようもないけど

635 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 08:37:54 ]
>>627
とりあえず最近の話で
ttp://video.google.com/videoplay?docid=-8961819826231183931&q=D%E8%A8%80%E8%AA%9E+GC&total=1&start=0&num=10&so=0&type=search&plindex=0

あとは本家のWeb-Newsからサルベージとか

636 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 12:56:46 ]
わなD更新されてる。やった知りたかった情報だし*^^
www.kmonos.net/alang/wnd/topics/winapi.ja.html


637 名前:636 mailto:sage [2008/03/09(日) 12:58:17 ]
ってAPI Bindingの更新だけかよ……orz RSSでとちったorz

638 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 13:01:12 ]
>>636
そのページどこか変わった?
前見たときから何も変わってないと思うのだけど。

639 名前:デフォルトの名無しさん [2008/03/09(日) 13:13:16 ]
>>638
イカれ?

640 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 13:59:55 ]
最新: 2007/03/07
ってあるが。



641 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 14:19:37 ]
ちょっと大きめ(最大60MB位)のデータを扱うようなウインドウプログラムを組んだんだけど、
処理するたびに仮想メモリを開放せずに食いつぶすんだがどうにかする手法はないかな。
このままだと他のアプリケーションのメモリをスワップアウトさせてしまう。
タスクマネージャで見てみるとメモリ使用量はウインドウを最小化させると減るみたいなんだけど、
仮想メモリは握ったまま。200MBとかしゃれにならん。
GCの挙動も良くわからないし…。

642 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 14:31:57 ]
std.c.stdlib.mallocで管理しきれるならそれでどう?
下記の解説の「明示的なクラスインスタンス割り当て」の項参照
ttp://www.kmonos.net/alang/d/2.0/memory.html

643 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 15:11:12 ]
>>641
>タスクマネージャで見てみるとメモリ使用量はウインドウを最小化させると減るみたいなんだけど、
それページアウトしてるだけだよ。実際には減ってない。

644 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 15:32:15 ]
>>641
ヤマカンでどこら辺があやしと思う?
GC?ライブラリ?自前?

645 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 16:21:28 ]
現在の実装では、GCが確保した領域は解放されないとか、誰か書いてた覚えがある。

646 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 16:37:32 ]
>>641
TangoのGC使うとちょっとはマシになるかも(minimize実装されてる)。
phobosのGCの実装はプログラム終了時以外に確保したメモリを返却しない。

647 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 16:50:22 ]
>>645
>>646

ということはGCあってもfreeしろってことか。
freeつうかdelete

648 名前:647 [2008/03/09(日) 17:21:28 ]
つまり、Dの場合はリトルエンディアン(パソコンでプログラムを使う際に使用される16進数の形式のネイティブWinAPI関数)は
静的(ガベージコレクタによって関数がオーバーロードされ変数のスコープからはずれたりするのを防ぐコア関数)
なデストラクタ(使い終わったオブジェクトをユーザーからのイベントパンドラ無しにイベント駆動型のラムダ式)
として扱われると言うこと。
uint* uiにするとβ変換(変数をグローバルなスコープから外し新しいシステム型変数として使うための変換)
が正常に行えなくなるのでfile*uint[ui]にしておいたほうがいいということ

649 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 17:21:46 ]
>>647
違う

650 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 17:35:34 ]
>>647
解放する手段は無いってこと。



651 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 17:49:23 ]
つまりサブプロセスを立ち上げて不要になったら殺すしかいないと。

652 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 18:01:55 ]
>>647
プロセスとして確保した領域を解放する話と、
各オブジェクトに使っていた領域を解放する話が
マゼコゼになってるぞ。

653 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 18:06:56 ]
>>652
ごめん、あまり読まずにレスしてた。
穴があったら埋まりたい・・・

654 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 18:16:51 ]
みんなスルーしててワロス

655 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 21:00:46 ]
自分で開放するにはmalloc&freeしかないってことでおk?

656 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 21:21:27 ]
レスどうも。

>>643
そうだったんですか。
最小化されるとページアウトさせるのはOSですよね。

>>644
疑おうと思えば全部と言えます。
ただ、自動で回収されるとなってる以上、malloc,freeを使わなきゃいけないのもおかしい気が。。。

>>645-646
以前同じようなことを聞いたときも同じような回答でした。
確かstd.gcの話だったと思います。
minimizeが動かないと言う結論でした。

>>655
mallocでメモリを確保することは出来ても、freeで開放されません。

657 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 21:22:56 ]
リリースビルドしてる?
解放されてると思うんだけど

658 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 21:23:13 ]
いや、freeは解放されるだろ。GC関係ないんだから。

659 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 21:25:26 ]
メモリが解放されないって事はD言語で作られてるゲームとかどうなってるんだろう


660 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 21:29:52 ]
import std.stdio; import std.c.stdlib;
void main(){
  writef("malloc ");
  void* p = malloc(104857600);
  writef("ok");
  readln(stdin);
  writef("free ");
  free(p);
  writef("ok");
  readln(stdin);
}

#include <stdlib.h>
#include <stdio.h>
void main(){
void* p;
printf("malloc");
p = malloc(104857600);
printf(" ok\n");
getch();
printf("free");
free(p);
printf(" ok\n");
getch();
}

こんな感じで試してみました。
Cのほうはもちろん開放されましたが、
Dの方は開放されませんでした。



661 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 21:32:24 ]
>>657
dmd -release main
これで良いんでしょうか?
freeでは開放されませんでした。GCの方はまだ試してません。
DMDのパージョンは1.028です。

662 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 21:33:47 ]
Dのmalloc&freeはプロセスとしてOSからmalloc&freeしているのではなくて、
Dのプロセスが一括してmallocしてきたメモリプールから小分けしているだけでは。
だからプロセスとしては使用メモリは増加する一方。minimizeしないから。

663 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 21:45:37 ]
んー、卒研のプログラム書いた時は
newとdeleteでメモリ開放されてた気がするなぁ。
少なくとも増え続けることはなかった。
@Linuxだけど。

664 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 21:52:22 ]
卒研でD言語か・・・無茶しやがって(AA略

665 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 23:15:03 ]
メモリの解放をどのような意味で使ってるかよくわからない

666 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 23:19:50 ]
ガベコレだよ?

667 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 23:29:25 ]
GCは必要なメモリをOSから確保するが、必要のなくなったメモリをOSに解放することはしていない。

668 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 23:31:29 ]
C#やC++/CLIと同じ様にOSの提供するメモリ管理機能にメモリ管理を任せてるだけ

669 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 23:41:44 ]
「メモリの解放」 は何を意味するか

1. デストラクタが呼ばれる。
2. 内部的に free の処理が走る。
3. free したメモリが実際に OS に返される。

670 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 23:43:07 ]
襲いかかる(笑)



671 名前:670 mailto:sage [2008/03/09(日) 23:43:29 ]
ごめん誤爆

672 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 23:43:55 ]
4. 襲いかかる

673 名前:デフォルトの名無しさん mailto:sage [2008/03/09(日) 23:48:17 ]
std.c.stdlib.mallocはCのラインタイムライブラリとリンクされるから、
おそらくfreeした領域は可能であれば適当な時期にOSに返還されるはず。

std.gc.mallocはGCの管理領域から割り当てられるから、
phobosの実装だと、freeしても永久にプールされつづける、と思う。

>>663
deleteした領域は、空き領域としてプールされて再利用されるから、
new/deleteの繰り返しで増え続けることはないよ。

674 名前:637 mailto:sage [2008/03/10(月) 00:02:51 ]
ちょっと付け足しとくと、
> おそらくfreeした領域は可能であれば適当な時期にOSに返還されるはず。
って書いたけど、Windows版DMDの場合は、DMCのsnn.libを使って、
linux版やGDCはglibcを使うと思うから、そこで実装の差が出てくる可能性はある。

675 名前:デフォルトの名無しさん [2008/03/10(月) 00:33:17 ]
僕のブログ見てほしいんですけど
o.z-z.jp/thbbs.cgi?id=sasanunu&p3=&th=541

676 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 00:33:49 ]
すぐ返還

import std.stdio, std.loader;
void main() {
 scope ExeModule msvcrt = new ExeModule("msvcrt.dll");
 extern(C) void* function(size_t) malloc;
 extern(C) void function(void*) free;
 malloc = cast(typeof(malloc)) msvcrt.getSymbol("malloc");
 free = cast(typeof(free)) msvcrt.getSymbol("free");
 writef("malloc ");
 int size = 32*1024*1024;
 ubyte* p = cast(ubyte*)malloc(size);
 for( int i = 0; i < size; i++ ) p[i] = 0;
 writef("ok");
 readln(stdin);
 writef("free ");
 free(p);
 writef("ok");
 readln(stdin);
}

677 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 01:27:12 ]
>>675は危険

678 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 02:12:20 ]
D言語終了のお知らせ

679 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 02:19:48 ]
どのD言語?

680 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 02:20:56 ]
ばかやろう、まだはじまってもいねぇよ



681 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 02:22:46 ]
さっさと開始してくれ

682 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 02:24:28 ]
3.0になったら始動する

683 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 03:33:37 ]
型が同じ連想配列の結合ってできないの?

684 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 09:53:38 ]
できないね。

キーが重複した場合に左右オペランドのどっちを優先するかって問題があるし、
自分で実装したほうが安心なんじゃない?

K[V] merge(K, V)(K[V] a, K[V] b) {
K[V] c;
foreach(k, v; a) c[k] = v;
foreach(k, v; b) c[k] = v;
return c;
}

685 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 09:55:18 ]
AAに.dupがなかったことに今更きづいた

686 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 10:03:03 ]
dup欲しいよねdup

687 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 17:49:06 ]
tangoでsprintfみたいな文字列の整形が出来るのはどの関数ですか?

688 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 18:26:39 ]
>>687
tango.text.convert.Sprint かな??

689 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 18:51:28 ]
>>688
どうもです。C#の文章整形というものははじめて見ましたが、結構使えそうですね。

phobosに比べてclassいっぱい日本語資料ほとんどなしで、
英語の資料もあるには有るけどなれない言語なので情報にたどり着くのが大変です。

690 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 22:36:00 ]
Tangoはクラス名と関数名だけでだいたい何をするかわかるから、慣れればかなり楽だよ。
細かい挙動は英語読まなきゃいけないけど。
ただ、opCallのオーバーロードがキモイ。それだけ。



691 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 22:42:33 ]
Tango 0.99.5
ttp://dsource.org/projects/tango/wiki/0_99_5_release

692 名前:デフォルトの名無しさん mailto:sage [2008/03/10(月) 22:43:55 ]
tangoのopCallは本当に不人気だな

693 名前:デフォルトの名無しさん mailto:sage [2008/03/11(火) 02:29:18 ]
俺の中ではあれのせいでかなり印章悪いけど他は割と強いのかなあ

694 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 03:20:02 ]
そろそろgdcも新しいの出して欲しい

695 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 04:35:54 ]
sf.netのSVNリポジトリからチェックアウトすればいいんじゃね?
今どうなってるのかは俺は知らんが

696 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 10:28:44 ]
>>694
Subversionリポジトリの方では、1.024と2.008に追従する更新が
9日に来たばかりですね。
lists.puremagic.com/pipermail/d.gnu/2008-March/001474.html


697 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 14:38:12 ]
あまり使わないんで気が付かなかったけど
Tangoだとphobosと違ってmainへの一個目の引数がフルパスにならないんだな。
呼び出しに使ったコマンドそのものになる。

たとえばコマンドプロンプトで
tango使ってdmdでコンパイルしたmain.exeのあるディレクトリをカレントにして
mainと入力して実行すると、第一引数が"main"になる。

windows上での話だけど。

698 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 14:58:47 ]
TangoはGetCommandLineWで取ってるけど、
phobosはCのargvをそのまま使ってるね。

ということは、phobosはマルチバイト文字でおかしくなる可能性があるのかも。

699 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 18:13:56 ]
その辺はガイシュツ

700 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 23:07:06 ]
import tango.io.Console;
import tango.core.Memory;

void main(){
   GC gc;
   Cout("malloc").newline;
   Cin.copyln;
   void* p = gc.malloc(104857600);
   
   Cout("free").newline;
   Cin.copyln;
   gc.free(p);
   
   Cout("finish").newline;
   Cin.copyln;
}

TangoだとGCがしっかり動いてると言うので書いてみた。
やっぱりと言うかなんと言うか、仮想メモリはTangoでも開放されないな。
Cのmallocとは等価じゃないってことか。

Win32API使ってphobosのstd.file.readのような関数を作って30MB位のファイルを読み込んで
それに一文字半角スペースを~で足してscope char[]に読み込みcollectとminimizeをやると言うループを作って
Cout.copylnでウエイトを入れながらまわしてみたけど260MBまで遠慮なくメモリを使うぜ。
多分これが効率的だからそうなってるんだろうけど、collectやminimize使っても制御が出来ないのはなぁ。



701 名前:デフォルトの名無しさん mailto:sage [2008/03/12(水) 23:28:12 ]
どっちのGCもcompaction機能もってないし、
GC周りはどうにかしないといけないよなあ。

702 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 00:11:06 ]
リンカがGCライブラリを切り替えられるようにすればいい。

703 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 00:40:03 ]
>>700
はずしてるかもだけど、この辺の話?
ttp://d.hatena.ne.jp/NyaRuRu/20080306/p1

ちょっと前に読んだなぁって、思い出した。

704 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 00:43:28 ]
Windowsのdmcも、即OSに返還されないね。orz

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
void main(){
printf("malloc");
void* p = malloc(104857600);
memset( p, 0, 104857600 );
printf(" ok\n");
getch();
printf("free");
free(p);
printf(" ok\n");
getch();
}

705 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 00:52:06 ]
>>704
てか原因はそこじゃないかな?

706 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 00:59:57 ]
タスクマネージャのプロセス一覧で見えるメモリ消費量は、
そのプロセスが使ってるメモリ領域を正確に表示した物じゃないらしいので、
freeしたら即減るかっつーとそう言うもんでもないようです。

あとDのメモリ管理ってメモリプールみたいな感じで一度メモリ領域拡張されると縮小されにくい物なんじゃ?

707 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 01:05:52 ]
>>704
www2s.biglobe.ne.jp/~hig/q_a/Programing_QA02.html#Q4

708 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 01:11:25 ]
なあんだ、結局Dのnew&deleteとほぼ同じかもしれないってことかー

709 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 02:10:28 ]
>707
ほぉ〜勉強になったさんくす

710 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 07:31:22 ]
>>706
VCのclやgccだとfreeですぐに減ってるので、多分2段落目のとおりだと思う。
これも実装の違いなんだろう。

結局、Cみたいにある程度管理しながらうまいことメモリを使わないといけないのは変わらないわけかな。



711 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 09:18:41 ]
ガベージコレクタのおかげで、うっかりdelete忘れてプロセス起動中に延々と
メモリを圧迫し続ける心配がないっていう程度ですかねえ。


712 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 09:50:29 ]
基本的にはDでメモリをOSには返せないってこと?
VC++だかgccだかでDLL作ってそっちのmalloc/free使えばいいのか。

713 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 10:00:05 ]
自前でHeapAllocすればいいんじゃ

714 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 13:26:29 ]
返還する目処のある処理を別プロセスにすりゃいいんじゃ?
すりゃいいってほど簡単じゃないけど。

715 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 21:16:30 ]
プロセスにオブジェクトを渡してオブジェクトを受け取る、とか出来ないから
モジュール化がだいぶしょぼくなるな。

出来ればいいのになー。.NET環境だとそういうのもあるのになー。
OSはメモリもオブジェクトのメタデータも管理しちゃえばいいのに。

716 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 21:35:02 ]
tangoにシリアライザなかったっけ。

717 名前:デフォルトの名無しさん mailto:sage [2008/03/13(木) 22:37:26 ]
>>715
モジュールをDLLとして作れば、Dのオブジェクトを渡したり
GCをプロセス間で共有したりできるみたいよ。

718 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 10:13:25 ]
マイクロソフトD言語潰す宣言
「既存のD言語のライセンスはもちろん買収するつもりだ」――CEO会長坂田雄太
an.to/?microsoft01news

719 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 10:18:29 ]
>>718
Fxで開いたらrundll32.exe url.dll,TelnetProtocolHandlerとか出てきたが何をするつもりなんだ。

720 名前:デフォルトの名無しさん [2008/03/14(金) 10:22:03 ]
>>718
正確に「潰す」とは言ってないんだろ?
だったら問題ないと思うが



721 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 10:33:20 ]
ブラクラです

722 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 10:35:46 ]
別にE言語になってもイーっすよ

723 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 11:24:11 ]
Dって元々Mars言語って名前だったのを、
をるたんの友人がD言語って言い張るもんでいつの間にかDになったんじゃなかったっけ。
MSに名前押さえられても元のMars言語って名乗れば問題ないよね。

724 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 11:32:39 ]
>723
マスコットキャラかわいそう・・・・・・

725 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 11:45:40 ]
>>724
あんなゴキブリみたいな顔してるムカつくマスコットなんだから
どこか別の場所に生きる術を見出せるさ。

726 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 11:54:18 ]
>in パラメタ記憶域クラスを scope const の意味としました
あれ、finalは・・・

727 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 13:17:30 ]
finalはみんなの心の中で生き続けるよ

728 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 13:58:12 ]
むしろ「かぶっちゃったけどどうしてもこの名前使いたい」って言って
MSがお金払ってくれたら棚ぼたなのにw

729 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 15:05:36 ]
>>728
最初からそれ狙いでしょ。
つーか、世の中にD言語って、このD言語以前からも色々あるわけだが。

730 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 15:27:27 ]
なるほど、D言語と名づけたのは金狙いか
思惑通りMSが金払ってくれるのは、むしろいいことじゃあないか
めでたしめでたし



731 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 15:57:12 ]
??????????

732 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 16:05:10 ]
このスレもやたらレベルがさがったな

733 名前:デフォルトの名無しさん [2008/03/14(金) 16:12:38 ]
だってD言語だもんな

734 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 16:36:42 ]
なんかマイクロソフトの"D言語"の話題を何回も蒸し返したがる子がいるのね。

735 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 18:08:00 ]
MSにあのマスコットキャラ売っちゃえばいいんじゃね?

736 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 18:36:28 ]
MSならきっと立派に育ててくれる

737 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 18:53:46 ]
マイクロソフトに期待してる人が結構いるんだね
Linux使ってる俺にとってはどうでもいい話だが

738 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 19:12:14 ]
M$ が主導しても自分では Windows でしかコンパイラ作らないんだろ?
価値ないよ。

739 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 20:13:53 ]
そろそろxamlでDFLフォームを作るコンバータをだな

740 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 20:23:43 ]
WPFのDバインディングとかは使ってみたいよね。

Dから.NETのリフレクション機能をさわるのはできたけど、
CLRのGCとDのGCを上手いこと動かしてリークを防ぐのがめんどい。



741 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 20:28:30 ]
Iron DなのかD.NETなのかD#なのかが問題だ。

742 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 20:38:43 ]
どうでもいい

743 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 22:08:43 ]
D.NET はもうある(正確にはあった)

744 名前:デフォルトの名無しさん [2008/03/14(金) 22:23:18 ]
静的に文字列を置換する方法てないですかね

const string foo = "pal = 5;";

class Hoge{
int val;
void DoSomething(){
const string myfoo = static_replace(foo,"p","v");// <-こんなかんじ
mixin(myfoo); // val = 5; に展開して欲しい
}
}

745 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 22:24:55 ]
F#はもうある。

746 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 22:33:36 ]
>>737、向こうで噴いた
200 :login:Penguin :sage :2008/03/14(金) 18:53:16 ID:mDbK1QBH
マイクロソフトに期待してる人が結構いるんだね
Linux使ってる俺にとってはどうでもいい話だが

201 :login:Penguin :sage :2008/03/14(金) 18:54:22 ID:mDbK1QBH
↑誤爆


747 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 22:34:00 ]
>>744
ないんだったら作ればいいんだ。
string static_replace(string text,string from,string to){
    string result;
    while(text.length >= from.length){
        if(text[0..from.length] == from){
            result ~= to;
            text = text[from.length .. $];
        }else{
            result ~= text[0];
            text = text[1..$];
        }
    }
    return result ~ text;
}
あと、const string myfooだとなぜかdmd君は落ちやがったのでstatic付けてみた
const static string myfoo = static_replace(foo,"p","v");


748 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 22:37:42 ]
CTFEあるからstd.string.replaceでイケるっぽくない?

749 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 22:45:26 ]
>>748
残念ながらstd.string.replace君の中のstd.string.findはCTFEで対応していない機能(memchrとか)を使ってるんだよね。

個人的にはversion(compileTime)相当のものを処理系が用意するなりなんなりで、
std.stringとかはCTFE時にも動作するように作り直してほしいなあとか思ってたり。

750 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 22:49:40 ]
pure関数はCTFEされるとかいう風になると思うんだがどうだろう



751 名前:744 mailto:sage [2008/03/14(金) 22:50:11 ]
>>747
>>748
>>749
ありがとうございます
CTFE・・ 初めて聞く単語だ(実はD言語習いたて)
ググってきます

家の環境にはD言語入れてないのでこれからインスコして試してみます

752 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 23:01:48 ]
CTFE の条件てどこにかいてありますか?

753 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 23:05:39 ]
>>752
ソース

754 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 23:19:52 ]
ttp://www.kmonos.net/alang/d/2.0/function.html#interpretation

755 名前:デフォルトの名無しさん mailto:sage [2008/03/14(金) 23:32:52 ]
>>754
サンクス!

756 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 00:23:30 ]
CTFEでwithが使えないってのはどういう理由なんだろう

757 名前:737 mailto:sage [2008/03/15(土) 00:35:21 ]
>>746
ヽ( ・∀・)人(・∀・ )ノナカーマ

758 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 04:08:08 ]
>>756
シンボルの検索は兎も角として、ポインタ使えないのにwithが使えてどうするという気が。

759 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 04:16:15 ]
多くのメンバを持つ構造体にアクセスするときとか、
with(std.stdio)みたいに普段は使わないモジュールを導入するとか
便利だと思うんだけどなあ。

withとポインタが使えないことに何の関係があるのかはよくわからない。

760 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 17:24:57 ]
MacOSX 10.5 Leoprad でD言語の環境をそろえようと思って
sudo port install gdc
して、簡単な HELLO WORLD つくって test.d で保存して
gdc test.d
したんだけど object.d が見つからんと言われたので、ひとまずインポートパスを指定して

gdc -I "/opt/local/include/d/4.1.2" test.d

ってやったら、

ld: file not found: crt.o

てエラーが出たんだが。。。これってリンカエラーだよね。
crt3.o ってファイルは dmc 関係のフォルダでいくつか見つかったんだけど、
どこでパスを指定するの?

というか、gdc のリンカに dmc のオブジェクトファイル渡してもいいのかな??





761 名前:760 mailto:sage [2008/03/15(土) 17:26:03 ]
いや、よく見たら gcc のフォルダにも crt3.o がありました

762 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 17:36:01 ]
file not found: crt.o
なのになんでcrt3.oを探してるの?

763 名前:760 mailto:sage [2008/03/15(土) 17:53:03 ]
あ、しつれい
ld: file not found: crt3.o
だった

764 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 19:42:15 ]
Phobosのboxer.dの中に
TypeInfo type() const
{
return cast(TypeInfo)p_type;

こういうメソッドがあるけど、constがメソッド名の後ろにあるのってどんな意味があるんでしょう?

765 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 19:48:01 ]
それはC++風の書き方で、普通はconst TypeInfo type()と前置する。
constをつけたメンバ関数はconstメンバ関数とみなされて、
thisポインタを経由してオブジェクトの状態を変更しないことが保障される。

766 名前:デフォルトの名無しさん mailto:sage [2008/03/15(土) 20:19:41 ]
>>765
なるほど、C++だとこういう風に表記するんですね。
わざわざ後ろにあるので何か特別な意味があるのかと思いました。
有難う御座いました。

767 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 21:43:32 ]
Tangoについての質問です。
やりたいことは正規表現でstr中のURLをハイパーリンクにすることなんですが、

auto replaced = Regex(r"((?:f|ht)tp://[\w\.$,;:&=?!*~@#\(\)/]*)").replaceAll(str, "<a href=\"$1\">$1</a>");

こういうコードにしてみたら戻り値が無いんですが、perlの

$str =~ s/((?:ht|f)tp\:\/\/[a-zA-Z0-9.$,;:&=?!*~@_\(\)\/#]*)/<a href="$1">$1<\/a>/g;

のようにするにはどうすれば良いのでしょうか。


768 名前:デフォルトの名無しさん mailto:sage [2008/03/16(日) 23:19:16 ]
>>767
Tango使ってないけどソース見てみた.
>戻り値が無い
ということはnullということなんだろうけど,
ただ単にその正規表現だと見つけれてないだけな気がする.
ソース見る限りはsearchやってるだけだし.
Phobosのregexp.dの中にURL用の正規表現文字列があるからそれ使ってみるとか.

Phobosのregexp.dだと後方参照しないグループ化は出来なかったと思うんだけど(余り使ってないので自信なし),
TangoのRegexp.dだと出来るのか.

769 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 01:06:49 ]
>>767
俺もTangoは使ってないんだが、マニュアルを見る限り、
(?:ht|f)の所は(?ht|f)が正しいのではないかと思う。
あと、replaceAllで$1とかは使えないかもしれない。
ソースを見てみると単純に連結していて、$1とかでどうこうという処理はしていないようだから。


770 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 01:45:32 ]
>>768
searchやってるだけじゃないよ。

>>767
なんとか動いた。 $1とかは置換してくれないみたいだね
固定した文字列との置換なら、delegateのいらない方のreplaceAllでもOK

(?:)は使えないので()を使用する。 phobosのregexpもそうだったはず。

//tango-0.99.5 で新しくなったRegex用
import tango.text.Regex, tango.io.Stdout;
void main() {
char[] s = `hoge pc11.2ch.net/ hoge www.digitalmars.com/d/ fuga`;
auto re = RegExpT!(char)(`((ht|f)tp\:\/\/[a-zA-Z0-9.$,;:&=?!*~@_\(\)\/#]*)`,`g`);
auto dg = delegate char[] (RegExpT!(char) re) { return `<a href="`~re.match(1)~`">`~re.match(1)~`</a>`; };
char[] result = re.replaceAll(s, dg);
Stdout(result).newline;
}



771 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 01:57:58 ]
aliasがあるから、わざわざRegExpT使わなくてもいいみたい

import tango.text.Regex, tango.io.Stdout;
void main() {
char[] s = `hoge pc11.2ch.net/ hoge www.digitalmars.com/d/ fuga`;
char[] result = Regex(`((ht|f)tp\:\/\/[a-zA-Z0-9.$,;:&=?!*~@_\(\)\/#]*)`,`g`).replaceAll(s, (Regex r) { return `<a href="`~r.match(1)~`">`~r.match(1)~`</a>`; } );
Stdout(result).newline;
}

772 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 07:27:35 ]
>>770-771
どうもです。
そのソースをまるまるコピペして動かしてみたんですが、
object.Exception: Access Violation
となってしまいました。
うーん。

773 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 14:11:47 ]
>>772
とりあえずTangoを入れて動かしてみたけど
>object.Exception: Access Violation
となるのはStdoutのせいっぽい(俺の環境では).
tango.io.ConsoleのCoutを使ったら,771のソースでちゃんと置換されたのが表示された.
Stdoutでこのエラーになる原因は面倒なので追ってない.

774 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 16:32:06 ]
tango.text.Regex の compileToD すごいな。
出力されたコードを少し書き換えたらCTFEでも動いた。
CTFEで正規表現使いたい時にいいかも。
単純な処理しかしてないから、
Cやアセンブラに書き換えるのも容易かも。しかし長いw

775 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 18:21:13 ]
>>772
Stdoutでバグるのは,Regex.dでdebug時にStdout.dをimportしてたから
コンパイル時にdebugオプションをつけたら動くようになった.
といってもdebugなしで普通にimportしてもエラーが出るので,
この辺の原因はよく分からない.
static thisとかの初期化とかで何か問題が発生してるのかも.
力になれなくて申し訳ない.

776 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 18:54:33 ]
PhobosとTangoが仲良くなりますように(-人-)

777 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 18:54:47 ]
っTangobos

778 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 19:25:04 ]
>>773>>775
うーむ、
Stdoutはデバッグで使いたいので、こうなると正規表現でURLを抜き出すのは面倒ですね。


別の手法も思いついたのでそっちで一度試して見ます。
どうもでした。

779 名前:デフォルトの名無しさん mailto:sage [2008/03/17(月) 22:50:17 ]
>>778
もういいかもしれないけど,とりあえず追加で書いとく.
Stdoutがどうこうとか書いたけど,自分でもよく分からなくなってきたw
771のソース前提で,とりあえず出力される方法.

・Cout/Cerrを置く
色々試してたら,Cout/Cerrを置くと普通にStdoutでも出力されるようになった.
・Stdout(Stdout);
これを置いても出力された.Stdoutの型も出力されるので使えない.
・Stdout.dと同じことをやる
Stdout = new Print!(char) (new Layout!(char), Cout.stream);
同じことしてるのに効果が違うのはよく分からないんだけど.

どれも根本的な解決策じゃないので応急処置的な感じ.
>>770は動いているようだし,環境も関わってるのかなぁ.
それにしてもStdout(Stdout)がまともに動くのは何故…

780 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 12:16:11 ]
日本語うめえ



781 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 12:16:34 ]
誤爆

782 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 15:57:50 ]
なんかネタないの?

783 名前:770 mailto:sage [2008/03/18(火) 17:35:48 ]
>>779
こちらでも、dmdでビルドしたものはAccessViolation出ました。
budで、tango-user-dmd.libを使わずにビルドすると正常動作するけど、
使う設定でビルドだと、AccessViolationでした。

tango-user-dmd.libを再makeすれば直るのかな??

784 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 20:37:12 ]
>>783
budでOKということで,試しにDSSSでビルドしたら普通に動いた.
これくらいは昨日試しておくべきだったorz
770の言うとおり,生成済みライブラリになんらかのバグ(コンパイル状況による?)があるっぽいね.

Tangoのソースからのビルドが英語だらけで挫折.

785 名前:デフォルトの名無しさん mailto:sage [2008/03/19(水) 06:46:04 ]
>>782
ソースを落として、dmd.exeとdmc.exeにパスが通っている状態でlib内のbuild-tango.batとかを実行
…だと思うのだけど、再コンパイルできなかったりできてもやっぱりバグったリ…何かがおかしい。

786 名前:785 mailto:sage [2008/03/19(水) 06:47:12 ]
>>782 じゃなかった… >>784 でした。申し訳ないorz

787 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 03:37:51 ]
今のところ2.0で動くGUIライブラリってない?

788 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 11:46:08 ]
wxDの履歴にinvariant string対応とかあるけどどうなんでしょ

789 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 15:28:54 ]
tangoのDateTimeとかはどこに消えたんですかね・・・
似たようなクラスって何かありますか?

790 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 19:29:35 ]
tango.time.Timeの中にあるようだけど



791 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 19:55:15 ]
久しぶりにPoseidon落としてみたが、キーボードショートカットでrun_projectの割り当てが出来るようになってた。
軽いし、やっぱり気軽にプログラミングするにはいいエディタだな。

792 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 22:22:35 ]
D言語をMac OS Xで始めました。
目的はWin/Linux用のD言語で書かれたコンソールアプリの移植です。
最初に既存のソースコードをXcodeからコンパイルして勉強できる環境を構築しようと思い立ち
いろいろ調べていますが、参考になるサイト等見つかりません。
どなたかMacでその道に足を踏み入れた方はいらっしゃいますか?

793 名前:デフォルトの名無しさん mailto:sage [2008/03/20(木) 23:46:49 ]
D1/D2どちらでもいいので
C++のstringstreamみたいなのが欲しいんだけど
ありませんでしたっけ?

>>792
Macのは見かけたことないなー

794 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 00:02:49 ]
MemoryStreamに書いて、readStringとか。

795 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 00:24:03 ]
OutBufferに書いて、toBytesとか。

というかOutBufferの存在価値が昔から空気過ぎるんだけど必要なのかこれ。

796 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 00:27:01 ]
>>794 こうだと何も表示されないんだけど何が足りないのでしょう?
import std.stdio;
import std.stream;
void main(){
Stream ms = new MemoryStream;
ms.writeLine("hello");
string s = ms.readLine().idup;
writefln(s);
}
>>795 OutBufferはいらないよな・・・

797 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 00:29:54 ]
Streamは読み書きでpositionを共有してるからpositionのリセットが必要。
import std.stdio; 
import std.stream; 
void main(){ 
Stream ms = new MemoryStream; 
ms.writeLine("hello");
ms.position = 0;
string s = ms.readLine().idup; 
writefln(s); 


798 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 00:30:16 ]
これでできたようです
import std.stdio, std.stream;
void main(){
 Stream ms = new MemoryStream;
 ms.writeLine("hello");
 ms.writeLine("world!");
 string s = ms.toString();
 writefln(s);
}

799 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 00:31:30 ]
>>797 もしかしてそうじゃないかなと思ってpositionを再設定しようと
思ったんだが 0 を入れればいいのかわからなかったので
発見した toString() を試してみたらいけました
ありがとう

800 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 00:34:58 ]
>>799
toStringでもOK。
ただ、toStringはread可能,seek可能かによって微妙に動作が変わるから注意な。



801 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 00:38:38 ]
>>795
std.openrjと同じくらいは役に立つんじゃね?

802 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 00:47:09 ]
>>790
これは・・・・・

もしかしてまだ作りかけなのかな・・・・

803 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 00:56:33 ]
壮絶な勘違

804 名前:デフォルトの名無しさん mailto:sage [2008/03/21(金) 01:00:49 ]
単に.NETみたいにしたいだけなんじゃ…






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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