1 名前:デフォルトの名無しさん mailto:sage [2007/02/10(土) 01:09:54 ] プログラミング言語 D について語るスレッドです。 過去スレは >>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)
463 名前:デフォルトの名無しさん mailto:sage [2007/03/08(木) 23:07:26 ] DFL…つかってみて、どうもFontが変更されないと思ったら、 font = new Font(cast(char[])(wincs.toMBSz("MS 明朝"))[0..9], 24f); とすることで解決することが判明…これはイカンよなぁ…
464 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 00:23:45 ] わなDキタ
465 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 00:57:51 ] >>463 listview.font = new Font("MS 明朝", 16); これでちゃんと変更されたが? どのコントロールだ? 0.9.5から全コントロールがUnicodeサポートされたことになってるから 対応作業の抜けがあるのかも
466 名前:465 mailto:sage [2007/03/09(金) 02:10:14 ] あ サイズだけしか変化してなかったのかもしれんので もっかい確認してきまつ
467 名前:465 mailto:sage [2007/03/09(金) 02:19:32 ] >>463 ほんとだ 確かにMBSに変換してからじゃないとダメみたいだわ
468 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 11:12:02 ] >>463 dfl/drawing.d の 2965〜2968行
469 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 13:16:36 ] dのxmlの処理ライブラリってあったっけ? 急ぎではないがちょっとほしいなと思っていて、 なければ書こうかと思っているところ。
470 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 13:40:27 ] expatのポーティングくらいならどこかにあった気が……。 XMLじゃないけどもしかしたら代用になるかもしれないbogoYAML。 shinh.skr.jp/d/bogoyaml.html
471 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 16:15:02 ] >>469 お蔵入りにしてるSAXパーサなら俺がもってる。
472 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 17:12:30 ] >>471 願わくば頂きたい。ライセンスとかはご随意に。 NYSL by k.inabaならうれしいw ちなみに俺が書こうとしていたのはDOMです。 完成したらdsourceかどこかで公開いたします。 ライセンスはもちろんNYSL。なぜならこれも特別でないライブラリだからです。
473 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 17:25:51 ] わなD凄いっす!
474 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 17:36:22 ] >>472 www.vipper.net/vip194365.zip.html 役に立つか分からんけど一応。 ライセンスは勿論NYSLです。 未だ名前空間にウマく対応出来てないし途中で作りかけの奴もあるうえに、 文字コード変換が抜けてるけど勘弁して。
475 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 17:37:04 ] D言語研究がgoogleで見れないと結構、不便。 google サーチ最高!みたいな、書き込みでテンプレートのページが 上書きされてたの消したのだけど、なんか、あるのかなぁとか思ったり。 新しい情報少ないのでいいんじゃないかとも思ったり。
476 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 17:44:21 ] >>474 頂きました。ってかOSXすかw YAMLではNGだったんですが、用途が OSXユーザから、GPSのトラックデータ(XML)からGoogle Earthのレイヤ(XML)に変換したいという依頼を受けた っつー理由だったんですわw Xcode用のDテンプレートを書こうとしたが、思っただけでやっておりませぬ。
477 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 17:45:51 ] >>476 何故バレた?ちなみにPPCのOSXだぜwww
478 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 17:52:27 ] >>477 OS9のStuffitやOSXの標準zipを使うと、リソースフォークが別ファイルになって保存されるので、*xやWindowsのユーザーからはすぐ判別つきますよ。 .DS_Storeとか__MACOSXで検索すると理由はわかるはず。 私は卒論書いてたころはOS9で、いまはMacBook Proだす。コンパイル速いっすよ。
479 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 17:54:57 ] >>478 そんな事があるのか。ありがと。
480 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 18:01:35 ] 煮るなり焼くなり好きにしろライセンスキタ━━━━━━(゚∀゚)━━━━━━ !!!!
481 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 18:02:37 ] Thumb.db が入ってたら Windows ユーザだな。
482 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 21:01:37 ] NYSL : winNY iS his Life.
483 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 21:05:06 ] むりがあるだろ
484 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 21:16:15 ] NYSL = NewYork StyLe
485 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 21:16:32 ] >>463-468 自前でこんなん書いて逃げるしかないのかなあ Font createFont(char[] font, uint size) { return new Font(toMBSz(font)[0..font.length], size); } 作者にtoMBSzを使わなくてもいいようにしてもらうべきか? 自分でやろうにもフォント関係は経験なくてわからんのだが・・・
486 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 21:28:08 ] NYSL Yields Synonym License.
487 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 21:29:19 ] しまった。これじゃGPLみたいだ、、、
488 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 22:18:00 ] >>475 確かに、1.007がリリースされたのに、まだ1.006だったり。
489 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 23:11:49 ] 各自が勝手に追加すればいいんじゃない? それがwikiってもんでしょ。
490 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 23:21:03 ] うー。やぱし文字列はもっと簡単に扱いたい……。 UTF-8/16/32の生のバイト列をドンと置かれただけで、 「この言語はUnicode対応、文字列を簡単に扱えます」とか言われても納得いかーん。
491 名前:デフォルトの名無しさん mailto:sage [2007/03/09(金) 23:29:14 ] うむ。もうちとコードポイントを抽象的に扱う手段が欲しいな。
492 名前:468 mailto:sage [2007/03/09(金) 23:42:51 ] >>485 dfl/drawing.d の 2965〜2968行 #################################### if(name.length >= lf.lfFaceName.length) throw new DflException("Invalid font name"); lf.lfFaceName[0 .. name.length] = name; lf.lfFaceName[name.length] = 0; #################################### を、とりあえず #################################### { char* p = toAnsiz(name); for( int i = 0; (lf.lfFaceName[i] = p[i]) != 0; i++ ) if( i >= lf.lfFaceName.length-1 ) throw new DflException("Invalid font name"); } #################################### と、書き換えてみた。
493 名前:デフォルトの名無しさん [2007/03/09(金) 23:59:56 ] で、もうパーサコンビネータライブラリは登場した?
494 名前:485 mailto:sage [2007/03/10(土) 00:23:01 ] thx >>492 を誰か ttp://dsource.org/forums/viewforum.php?f=39 にコミットしてくんない?
495 名前:デフォルトの名無しさん mailto:sage [2007/03/10(土) 01:27:00 ] chappy * <= penis.toAnal(name); まで読んだ
496 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 09:37:22 ] >>495 二項演算子inをオーバーロードしようぜ
497 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 16:48:45 ] 1.008とばして1.009か。
498 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 16:56:11 ] 新しいフィーチャーはないのね。
499 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 16:57:45 ] ノーフューチャー
500 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 20:46:15 ] フィーチャーで思い出したけど、 1.Template inheritance. 2.Array operations. この辺の更新ってやる気ないんかね。 そもそもできて何の得があるのか…
501 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 20:57:09 ] >>500 1.0よりずっと前から絶賛放置中。
502 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 21:32:09 ] いまのWalterタンの興味の対象はなんなんだぜ?
503 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 21:42:51 ] コミュニティに振り回されてるのでは・・・・
504 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 22:09:02 ] 1.Template inheritance. は,コードの重複をさらに減少させることができて 2.Array operations. は,マルチコアCPU時代には必要な物では
505 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 22:10:16 ] 1.008ないのかよww バージョン番号を無駄遣いし始めたら 1.998->1.999->1.1000も夢ではないなw
506 名前:デフォルトの名無しさん mailto:sage [2007/03/11(日) 22:14:43 ] >>502 C++0x
507 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 21:04:40 ] マジで1.008どこにいったんだ。 普通にウォルタータンの間違い?まさかギャグ
508 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 22:11:08 ] 1.4.2 → 5.0 の Java よりはマシ。
509 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 22:12:04 ] 1.5じゃないのか・・・
510 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 22:56:45 ] >>507 本人曰くスペシャルビルドらしい。詳細は不明。
511 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 23:02:16 ] なんかやばい機能をつけて、出す前に封印したとか?
512 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 23:08:03 ] 10.21Hzの低周波で暴走する機能が付いたはず
513 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 23:48:46 ] HOS?
514 名前:デフォルトの名無しさん mailto:sage [2007/03/12(月) 23:56:39 ] SRAM隔離しとくか。
515 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 00:00:31 ] >>492 import dfl.all, dfl.internal.utf; { Font font = new Font(toAnsi("MS 明朝"), 16); } これで解決できてしまうので投稿はやめようかと思う 自分で変換しなきゃいけないのは誰が悪いんだ? OSがフォント名をUnicodeで受け付けてくれないのが悪いのか dflが変換してくれるべきなのかどっちだろう dflが変換するべきならどうやって切り替えるべきだろう?
516 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 00:03:33 ] そういうのはライブラリが吸収すべきだと思うんだが
517 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 00:25:37 ] >>515 > OSがフォント名をUnicodeで受け付けてくれないのが悪いのか OS側は勿論Unicodeフォント名に対応してるよ。 CreateFont(Indirect)()にしろ、LOGFONTにしろね。 糞な現状では、ttp://www.kmonos.net/alang/wnd/topics/winapi.ja.html に書いてある方法が比較的マシな対処法かと。 少なくともTCHARマクロに慣れているC/C++プログラマにとっては親しみやすい 方法だろう。
518 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 00:33:48 ] charはUTF-8文字(のうちの1オクテット)ってことになってるのに、 他のバイナリデータを平気で代入してるなんて気持ち悪すぎる。
519 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 00:44:11 ] DのGCってポインタ再配置されたりする? Cの関数に渡すようなポインタはmalloc()とかGlobalAlloc()とかすべき?
520 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 00:51:56 ] >>517 あーそうかわかったわかった -version=Unicode かどうかで CreateFontIndirectA/W を使い分けてもらえばいいだけっぽいな
521 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 01:00:43 ] dfl 内部で CreateFontIndirectA / LOGFONTA を使ってしまっているからダメなんだな CreateFontIndirect / LOGFONT に alias してそっちを使ってもらおう
522 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 01:37:30 ] 1byte圏の人がW版のAPIの使い所がわからないからA版使ってるなんてオチは都市伝説でいいんだよな
523 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 01:52:08 ] >>522 Latin-1とかでもUTF-8エンコーディングならマルチバイトになるよ。 な〜んも気にしないでいいのは、ASCIIしか使わない人だけ。
524 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 10:52:16 ] 結局sjisつかえないの?
525 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 11:27:54 ] リテラルは無理なのかな。 CGIならDで十分いけますか?
526 名前:デフォルトの名無しさん [2007/03/13(火) 12:18:16 ] 日本語で始まる引数がとれないんです>< ver1.009, XPpro // jp.d import std.cstream; void main(char[][] arg) { dout.writeString(arg[1]); } >jp 日本語 {語 >jp 0日本語 0日本語
527 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 12:33:55 ] 過去ログ嫁
528 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 12:34:57 ] >>526 引数はshiftjisじゃね? 出力先もshiftjisだから微妙に表示できて混乱するだろうが。
529 名前:デフォルトの名無しさん [2007/03/13(火) 13:18:38 ] >527 テンプレの過去ログは全滅っぽくて見つからないのです・・・ どこかに倉庫ありますか? >528 引数はshiftjisだと思います・・・ でもJcodeConvert通してもだめで, argの配列に切り分けるときにすでに失敗してるんじゃないかと
530 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 13:24:43 ] inabaさんのとこのtxのargvfix使え。 でもあれも\が消えるんだよね。仕様?
531 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 14:20:03 ] void main(char[][] _args){ char[][] args; foreach(char[] arg; _args){ args ~= fromMBSz((arg ~ '\0').ptr); } なんてのをわざわざ入れてる俺。 ホントはスタートアップルーチンでやってくれなきゃ困るんだけどなぁ。
532 名前:531 mailto:sage [2007/03/13(火) 14:27:23 ] って、これをそのままwriteStringしてもやっぱ文字化けしちゃうか。 さんざ語られた文字コード問題だけど、過去ログ消えてるのは痛いか。 困ったときはinabaさんに頼るか。 www.kmonos.net/alang/wnd/topics/pitfall.ja.html#mojibake
533 名前:デフォルトの名無しさん mailto:sage [2007/03/13(火) 18:47:10 ] >529 にくちゃんねる Part8 >50-100 Part9 >509-
534 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 01:25:00 ] >>532 >正しくは、標準ライブラリが画面出力の直前に、その環境の文字コードへと変換をかけるべきです。 (「利用者がwriteflnする直前に変換する」のは間違いです、念のため…)。 そうかなぁ?おいら的には、正しくはコンソールがUTF-8を表示出来るべきです。 で、次善の策としては、利用者がwriteflnする直前に変換するで、最後が、 標準ライブラリで対応だと思う。 D言語はUTF-8(UNICODE)で動くんだから、環境の問題は環境で解決するべきだと思う。
535 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 01:34:21 ] >>534 > D言語はUTF-8(UNICODE)で動くんだから、環境の問題は環境で解決するべき そういう言語は決して実用的な言語にはなりえません。 そのようなポリシーで開発されたソフトウェアを多くの人に/多くの環境で 使ってもらうことは不可能です。
536 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 02:33:19 ] いい加減UTF8環境に移行しても良いと思うんだ。
537 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 02:38:31 ] >>536 Windowsでは無理だからそれ。
538 名前:526 [2007/03/14(水) 02:38:45 ] >528 できました!が\はやっぱり無視されたみたいです... // jp.d import std.cstream, tx.all, jcode; void main(char[][] arg) { argvfix(arg); dout.writeString(JcodeConvert(arg[1],"auto","sjis")); } >jp 日本語\ほげ 出力:日本語ほげ >531 解決しないみたいです.同じような症状になってしまいました. >533 ありがとうございます>< 今から見ているところです. part8 res69にある"で括る方法は使えそうです >test "もうだめぽ" >自 ファイルのパスを与えるのが目的だったので -fパス のような形式にしたらとりあえずちゃんと動きました 皆さんありがとう
539 名前:>526 [2007/03/14(水) 02:41:12 ] >538の, >528は>530の間違いです
540 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 02:48:27 ] 日本語WindowsのシステムコードページはCP932固定。 UTF-8のコードページはあってもMultibyteToWideChar()等で使えるだけの 偽コードページ。 コンソールコードページも当然UTF-8なんてものはない。 日本語版MSVC++もCP932なソースしか通さない。 そんな環境だぞWindowsは。 MBCS=DBCSと決めうち、mb_len()は2以下で決めうちなコードがあまりにも はびこっているために、もはや修正不可能であるらしい。
541 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 03:17:40 ] >>535 そりゃそうだ、だから、しょうがなしに標準ライブラリで対応(サービス)するのは 構わないと思う。 んがぁ、「正しくは」と言い切るかどうかに、引っかかるわけ。 理念を曲げる、余計な装飾を施すことを否定しないけど、そっちを正しいとするのには 違和感が有るんですよ。
542 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 04:13:23 ] でも仮に「Windowsが対応してないのが悪いんだよ!」ってウォルターたんに言われたらやっぱり開き直りに感じない? 一応Dは現実的に実用的っていうポリシーがあるわけだし。 標準の入出力が化けるって実用上冗談にもならないじゃん。
543 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 04:14:43 ] D言語で作られた有名なアプリって何がある?
544 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 05:07:24 ] 開き直りとは思わないなかな。 まだ、やりたくない事をやってもらえる段階じゃ無いと思うし。 あと、そんな所に時間を使って欲しくないのもあるな。 ほっときゃWindowsが対応して時間が解決してくれるかもしれないし。
545 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 08:36:04 ] おうぷんそおすなのでそうすをおくりつけることでたいおうしてもらいたいおとしごろ
546 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 08:48:32 ] いつDはおうぷんそおすになったんだよw ソース公開してねぇじゃんよw
547 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 09:04:48 ] xml関係に関して。いろいろほじってみました。 ttp://www.prowiki.org/wiki4d/wiki.cgi?AllLibraries/XmlLibraries ttp://www.dsource.org/projects/mango/browser/branches/v2.1/mango/xml Boost::Randomみたく、 DOM, SAXともにinterfaceが定義してあって、 実装を任意に結合できるようにすると賢い気もするがどうなんだろ。 個人的にはECMAScript系(JavaScriptとかActionScriptとか)のDOM結合が 使いやすかったりしなくもないので、そういう拡張が無理なくできるとうれしいのだが。
548 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 10:26:15 ] >>546 例えば、dmd/src/dmd/*とか、厳密な意味でのオープンソースでも仕様が公開されてるし、日本人が書いたpatchをオフシャルに取り入れたりとか。
549 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 11:45:31 ] >>542 そう言う問題じゃないし、標準ライブラリの話だし。
550 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 13:02:27 ] >>530 1週間以内になおしまっす >>534 ,>>541 言語の都合に環境の方を合わせるっちゅーのは変だと思うのですが。 特定の(かなり限定された)条件の環境でしか動きませんというのは汎用言語としてはダメじゃないかなあ。 環境はOSごとマシンごとユーザー毎に違うのが当然で、それを全部吸収して 言語から統一的に扱えるようにすることこそが標準ライブラリの役目では。
551 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 13:14:19 ] コンソール側でUTF-8対応するのは大いに結構なのだけど。 POSIXで定められた標準入出力はバイナリストリームなので、 アプリ側の出力するテキストに何のエンコーディングが使われてるかは コンソール側ではどれか1つと仮定するしかないべ。 SJISとUTF-8なプロセスを2つ立ち上げたらどっちかが文字化け。 ckなんかはSJISもUTF-8も表示できるけど、アレも内容から推論してるだけだろうし。 1つに仮定するならどれかと言われれば、環境デフォルトので、ってのが妥当だと思う。 Walterも文字列の国際化に関してはそれほど詳しいわけじゃ無いって気がする。 「時代はUnicodeです・言語は文字列を簡単に扱えるべきです」なんて言ってた割には まだ「英語環境でしか動作しねぇじゃん」て箇所多いし。 あっちも「マルチバイト環境のノウハウあんだろーくれよー」とか思ってんじゃ? うちら日本人も本家にがんがんフィードバックを提供すべきなんだろうけど、 英語/日本語の壁はASCII/Shift_JISよりも厚いなぁ……。
552 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 14:51:57 ] ま、言語実装にしか興味が無いっつか、要は趣味なんじゃないの。 I18N化の泥仕事なんて、実用上は必要だけれども、退屈なだけだろうし。 しっかし、OS内部を早々とUTF-16化していたWindows NTファミリが、 UTF-8には対応しない(出来ない)ってのも、何か笑えるものがあるな。
553 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 19:46:56 ] >>550 お世話になってます
554 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 20:32:44 ] >>550-551 君達は要不要で議論してると思う。要不要で言えば有れば便利。 ここには争いが無いんですよ。
555 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 21:08:20 ] あらゆる状況を考えると、言語側で変な細工をするよりも、 ユーザープログラムが吐く文字コードに環境があわせるか、 ユーザープログラムが吐く文字コードを環境にあわせるか、 で考えるべきだろう、という理屈は納得できる。 (吐く出力だけじゃなくて、入力についても同じことね) 利便性を考えると、各々の(言語)ユーザーがその時々で対処するよりも、 ライブラリで既存の環境に応じて処理されるのが自然で、それを実現する ライブラリが標準でついてくるのが当然だ、というのも分かる。 入出力を標準ライブラリ側でD言語の文字型に変換してくれるのをデフォとして、 それぞれの入出力関数について無変換(つまりubyte列)で入出力できるものを別途用意、 というのが自然だと思う。
556 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 21:29:45 ] >>555 それはかなり言語一般に対する議論が混ざってると思う。 D言語はその言語仕様で高らかに、Unicodeが言語仕様です。 と唱えてるんだから、「本当は」とか「当然」が使えないはず。 本当はUnicodeが前提なので、当然環境に合わせる処理が必要。 と考えるのが自然。 まず、一番良いのは環境側が受け入れてくれること、(コンソールのUTF-8対応) 次にプログラムで明示すること、(作り込み) そして最後が標準ライブラリでの対応(サービス、サービすぅう)
557 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 21:41:37 ] まあ、自然だろうが何だろうが、 肝心の Walter タンにやる気がなきゃどうにもならんなあ。
558 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 21:43:11 ] >>557 だから、ライブラリの話だって。 Walterタンのやる気はあんまり関係ないと思う。
559 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 21:54:55 ] >>556 > D言語はその言語仕様で高らかに、Unicodeが言語仕様です。 > と唱えてるんだから、「本当は」とか「当然」が使えないはず。 > 本当はUnicodeが前提なので、当然環境に合わせる処理が必要。 ここらへんどういう意味なのかよく分からんけど、 D言語では文字型とソースコードはUTFである、ってだけで、 D言語が想定する文字コードはそれだけだ、とは仕様は 言ってないと思うんだけど、どっかでそんなこと言ってたっけ?
560 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 21:55:17 ] つまりおいらが言いたいのは、標準ライブラリで当然(本当は)コード変換に対応すべき。 と言う考え方に立つと、日本限ってみても、標準ライブラリに当然EBCDIC対応もJEFコード対応も、 EUC対応も、TRON対応も、DEC漢字対応、ISOも必要という話になるわけで、こんな行為が、「本当は」 と言える事なのか疑問という事。 ここの交通整理をするために、D言語はその言語仕様で「Unicodeです」と宣言してるんだから、 「本当は」というのは、もの凄く間違った考え方だと思う。
561 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 21:56:26 ] >>559 議論を混ぜ返してるだけだと思う。 他文字コード対応を標準ライブラリで行うことが、「本当は」に当たるか否かを議論してる。
562 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 22:02:23 ] もちろんD言語に限らず、言語一般の議論に拡張すれば、実行環境に対応した文字コード変換ライブラリの 存在を言語標準に規定する方法や、実行環境の文字コードで言語を記述することを仕様とする(C言語)など、 色々有ると思う。 でも、D言語は、言語仕様でUnicodeとする道を選んでるんだから、「本当は」は使えないと思う。
563 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 22:03:21 ] >>560 > も必要という話になるわけで ならんでしょ。 あらゆる状況に対応することまでは要求されてないだろうし。 >>561 >560の > ここの交通整理をするために、D言語はその言語仕様で「Unicodeです」と宣言してるんだから、 とかいうのがどこから出てきた話なのか訊いてるわけで、 混ぜ返すとかよく分からん意図じゃないよ。
564 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 22:04:54 ] # レガシーエンコーディングももう少しマトモに扱えるようにならんもんかなあ # 現状、Unicodeもだめだめだけど
565 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 22:07:26 ] >>563 ここまでかみ砕いて説明してるのに、まだそんなこと言ってるのなら、 君は文字コードを理解してるとは思えない。
566 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 22:09:11 ] >>564 そこで必要なのは、ICUをDに移植することだと思う。
567 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 22:10:32 ] コンソールの標準エンコードがutf-8じゃないレガシーなOSなんて窓から(ry
568 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 22:18:03 ] >>556 望み通り「コンソールがUTF-8対応」したとして、 SJISを吐くプログラムとUTF-8を吐くプログラムを コンソール側はどうやって見分けるんだ?
569 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 22:19:17 ] >>568 どうも議論がかみ合わないんだけど、Win厨なのか?
570 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 22:24:17 ] >>567 乱暴な話だけど、その通りだと思う。 Winはかなり特殊な環境だと言う自覚が無いから、「本当は」とか言っちゃうんだと思う。
571 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 22:28:40 ] >>566 あいや待たれよ、移植しただけではDのchar[]と入り乱れて混乱する。 いっそICUのUnicodeStringをDに丸ごと組み込んでStringという名を与え、 文字列リテラルもStringのインスタンスとしてしまう方が……。
572 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 22:33:18 ] たしかに文字列が文字配列ってのは潮流に乗り損ねてる気がしないでもないよなあ。
573 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 22:33:57 ] >>571 なんだよねー。 で、そうなってくると、Walterタンのやる気が問題になってくるか… というか今更出来ないになってしまうか・・・
574 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 22:47:27 ] 結局、 > D言語はUTF-8(UNICODE)で動く というのを、 > D言語はその言語仕様で高らかに、Unicodeが言語仕様です。と唱えてる > ここの交通整理をするために、D言語はその言語仕様で「Unicodeです」と宣言してる > D言語は、言語仕様でUnicodeとする道を選んでる と拡大解釈したために、文字コード関係の標準ライブラリ対応を > 理念を曲げる、余計な装飾を施す と捉えて、 > 正しくはコンソールがUTF-8を表示出来るべきです。 と考えた、 ということかな。一連の引用部が同一人物かどうかは知らんけど。 www.kmonos.net/alang/d/overview.html > 宗教やおおげさな哲学とも縁がありません。 > 現実的なプログラマのための、 現実的な言語です。 という(そのうえ後発言語である)D言語としては、 やっぱり標準ライブラリ対応が自然だと思った。
575 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 22:51:51 ] Win厨とか言い出すやつの相手はしないほうがいいぽ
576 名前:デフォルトの名無しさん mailto:sage [2007/03/14(水) 23:33:42 ] DにC99の複合リテラルっぽいものないの?
577 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 00:08:23 ] >>574 >やっぱり標準ライブラリ対応が自然だと思った。 >>560
578 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 00:10:15 ] >>575 というか、Win厨は相手に出来ないレベルの話をしてるんで、 お願いだからWin厨は出てこないで。
579 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 00:12:36 ] >>574 同一人物でしょ。>>550 でK.Inaba氏に突っ込まれてるのと同じ人じゃないの。 Javaや.NETのようにcharがUnicode文字であるような言語は UTF-8環境でしか使えなくて当然、とでもいいたいのかね。 「現実的なプログラマのための、現実的な言語です」ってのも立派に 「理念」のウチ、なんだけどね。 >>570 とかもう、アホかと。
580 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 00:15:34 ] >>560 は極論だろ。「対応している環境において」まともに動くのであれば さしあたり問題は無い。その環境が広ければ広いほど言うことはないが。 現状では、Linuxに対応しているとは言っているが、実際にはUTF-8ロケール でなければ明白な問題が生じるわけだ。 UTF-8ロケールにしろ、ってのは現実的な言語としては論外な選択肢。
581 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 00:18:48 ] >>577 すでに>563で突っ込んでるな (それに対して>565では説明放棄。説明する義務はないけど) >>579 > 「現実的なプログラマのための、現実的な言語です」ってのも立派に > 「理念」のウチ、なんだけどね。 意味はわかるけど、それ以上は言葉遊びになっちゃう危険が
582 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 00:25:47 ] >>579-581 頭悪いだろお前達(w
583 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 00:26:04 ] >ここの交通整理をするために、D言語はその言語仕様で「Unicodeです」と宣言してるんだから、 これはじめて聞いた
584 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 00:26:58 ] ただの煽り厨房か。
585 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 00:36:53 ] argvすら化ける言語/ライブラリなんてサービスレベル低すぎるっしょ? 使う気にならんでしょ? 皆が皆同じような変換コード書くのは馬鹿馬鹿しいでしょ? 標準ライブラリ側で吸収してくれれば皆が幸せになれるでしょ? 実際Javaとか.NETとかTclとかPythonとか、Unicode対応の言語は 皆そうやって変換してるでしょ? そこを「UTF-8環境なら動く、そうしなさい」ってのは、Walterタンが 述べている「現実的な〜」という「理念」に合致してますか? 彼は「世界はUTF-8になるべきだ。俺はUTF-8な世界しか相手にしない」 という「理念」でも語ったんですか? ってだけの話なんだけどね。
586 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 00:39:47 ] >>585 > 使う気にならんでしょ? は同意できない
587 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 00:53:47 ] 言語側で何もしたくないのなら、いっそ(エンコーディング面は) Cと同じ仕様にしてくれたほうがなんぼかマシだったかも。
588 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 01:03:15 ] >>587 何もしたくないとかしなくて良いって言う話はしてない。 >>534 での指摘を良く嫁。 標準ライブラリがやる必要は無いし、 サービスとして提供するにしても、WritefInする直前に変換するのが正しい。
589 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 01:11:34 ] >>534 の指摘は、 > WritefInする直前に変換するのが正しい という理由や根拠の説明にまるでなっていないと思うのだが。 なぜ、それが正しい? 逆に言えば、プログラマに陽に変換することを強いない他の言語は、 間違っているとでも言うの? 少なくともプログラマが「陽に」変換するコードを書くスタイルは、I18N/L10Nと 真っ向から対立する。 そこで"iso-8859-1"などとエンコーディングを直接指定してしまえば、 もう他所へは持っていけないプログラムの出来上がりだ。 (無論、それが必要なことなら、そうすることも出来るべきだが) だから、Cのlocaleシステムでは、「実行環境の」LC_CTYPE環境変数 (Windowsの場合はコードページ)を見て、よきに計らうようなデザインに なっている。Javaも、同様のデザインがなされている。当然だろう。
590 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 01:13:13 ] >>589 よくもまぁ、そんな稚拙な意見を長々書けると思う。 長々書くから、なんか考えてるのかな?と思えばWin厨の意見だし。
591 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 01:14:13 ] D言語をUnicode原理で統一したい人にとっては それが正しい言語周辺の設計なんだろ。 ただ、それが現実的じゃないだけで。
592 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 01:15:29 ] とりあえずここで無駄な論争する時間があるんだったら自分で作れよって思った。
593 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 01:16:48 ] 出力をSJISに変換したとしてバイト列で書き出すのに、C互換関数を使わなきゃならんのがなんとも
594 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 01:17:07 ] >>591 いや、実際に標準関数に自動変換は組み込まれてないわけで(w それは言語外の提供ライブラリで行うべき仕組みと考えてる訳で、 となると、WritefInする直前に変換するのが正しいありかたなんで(w 現実と向き合えば良いと思う。
595 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 01:21:06 ] >>593 試しにそれをなるべく移植性の高い方法で書いてみそ。 反吐が出そうになるから。 wcs系ルーチンが両可能なことを前提にするとしても、 Cのwchar_tのサイズは固定じゃないし。
596 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 01:24:03 ] Win厨的には_MBCS=D言語ならUTF-8と_UNICODEそれぞれのWin32APIを提供してくれればそれでいい。 ネームスペースとか有効に活用してさ。 あとtoUTF32メソッドがあれば嬉しい。普段、文字列属性チェックとかUTF16に変換してからやってるし。
597 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 01:28:25 ] >>594 論点ズレ杉。あるべき論の文脈として「正しい」かどうかの話を していたのに、 現状全肯定の上で「現状ではプログラマとしてこうするのが正しい」 ってなんだそら。
598 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 01:30:58 ] >>597 だから、有るべき論として、標準関数に頼るのは間違いという話をしてるんで。 Win厨のWin厨に取って便利という話を幾らされても困るわけ、何億回されても 聞けない。
599 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 01:31:54 ] お前がDじゃあるまいに。
600 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 01:32:11 ] >>597 と、言うか汎用機〜組み込みまで一通り組んだこと無いのに 議論に参加しようとすると、相手の言い分を理解できないと思うよ。
601 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 01:33:15 ] あからさまな偏見持ちとまともに取り合わないほうが良いんじゃないか?
602 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 01:35:18 ] 変換しないといけない箇所は、main()の引数と、コンソールの出力/入力だけだよね?
603 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 01:36:04 ] >>600 それ前提が間違ってるわ。 GCを採用し、内部コードをUTF-8に選んだ時点で、Dの実行環境って かなり限定的に仮定されてると見ていいでしょ。
604 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 01:36:39 ] 自分の意見を通したいがために印象操作に忙しいんだからほっとけ。
605 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 01:36:45 ] >>602 違う。実行環境の外部ライブラリ、システムコール、API等とテキストを やりとりするあらゆる場所。
606 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 01:37:47 ] >>601 というか、彼の振りして便乗で煽ってる人がいる気がしないでもない。
607 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 01:41:58 ] コードページ依存のデフォルト値はコードページ。 ここらへん基本はどのOSでも同じだと思うが違うのか? VC厨およびJava厨だからわかんないです><
608 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 01:51:02 ] >>607 日本語でおk
609 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 04:24:50 ] 内部ではうにでもいいけど 外部に繋げるときは簡単に処理できるようにしてちょ
610 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 06:14:46 ] >>605 俺は標準入出力だけ対応してくれればかまいませんが。 外部ライブラリやAPIなんて環境依存が前提の場所でない? あるいはtangoなりなんなりコミットして書いとけば済むことかと。
611 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 06:50:41 ] もう誰かパッチ投げるなり、ライブラリ書くなりすればいいのに・・
612 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 07:58:12 ] 相手をWin厨と決め付けたがる厨大活躍。 もういいよ、くだらん。
613 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 08:09:08 ] >>612 逃げるのか。まぁ今の君の選択としてはいいんじゃないかなそれで。 次に人に絡むときは、もうちょっと勉強してからにした方がいいよ。 でないと、また同じように敗走するだけだから。
614 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 08:23:34 ] >>610 んー。同じことだと思いますよ。 結局システムレベルの標準入出力をラップしてくれ、ちゃんと 変換してくれってことでしょう。 同様に、Dランタイムが特定のシステムコールなりAPIなりを 呼んでいる箇所では、ちゃんとエンコーディング変換を一貫して 行わないと、ユーザ側につけがまわることになります。 ユーザ側でtoMBSz()をかませば良い、と思われるかもしれませんが、現状の toMBSz()は(機能的にはWin32に限らず必要なものであるにも関わらず) Win32ベッタリの仕様であり、コードの移植性を保持するのが困難に なりますし、いかにも「一時しのぎ」的で、今後のバージョンでは それが不要になり、コードが新しいバージョンでは動かなくなる可能性も 大です。 char[]で受け取る関数にtoMBSz()で変換したホストエンコーディングの バイト列を渡すことにも問題があります。char[]をUTF-8文字列と定めている Dの仕様に反することですし、 例えばその関数の中で文字列を解析した上でシステムコールを呼んでいる かも知れません。実際に文字列の中身を見ている関数に、 UTF-8以外のエンコーディングの文字列を与えることは、明らかな 問題を引き起こします。 ガタガタなコアライブラリの上に何かを積み上げようとしても、砂上の楼閣に 過ぎません。土台が駄目ではどうしようもないのです。
615 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 09:19:30 ] char[]がUTF-8って定まってたっけ?
616 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 09:30:34 ] >>615 ttp://www.kmonos.net/alang/d/type.html を参照。
617 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 11:05:08 ] 初心者スレ、質問スレを除くとこのスレがこの板で一番盛り上がってるようだな
618 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 11:16:00 ] 昨日は約一名へんなひとが暴れまわってたからなw
619 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 12:24:07 ] >>614 argsの文字コードが環境依存することに気づいてげんなりしてきた
620 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 12:31:30 ] 伸びまくってて全然読んでないけど コンパイラの方がおちついてPhobosを弄れる余裕ができれば おまいらが考えるようなことはWalterタンも気づくでしょ 内部と密接に絡んでるようなthread.dが微妙なとこを見ると、 あまりPhobosはテストされてないようだし そんなにすぐDを使いたかったらTangoを使えと
621 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 13:12:11 ] >コンパイラの方がおちついてPhobosを弄れる余裕ができれば そんな日がおとづれるのだろうか?(反語)
622 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 13:46:56 ] >>621 そんなこと言うけどさ、結局はいつか落ち着くんじゃないかなぁ、現実的に。まぁそれに何年かかるか分からんけど
623 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 15:45:23 ] >>622 おれも数年前はそう思ってた… # 待つなら10年単位で覚悟して待て。待てないなら自分で動け
624 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 17:21:13 ] Dのエッセンスをパkゲフンゲフン受け継いだ言語を どこか別の企業が出してくれるとか……。 Windowsアプリ開発がメインターゲットってことでGUIビルダも付けて。 というか、DigitalMarsが会社としてDをどう扱うつもりなのか、 いやそもそも、DigitalMarsがどういう会社なのかすら サパーリ分からんのは俺だけだろうか。
625 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 17:23:48 ] 後にプログラマーを悩ませる悪名高い変態言語D++が誕生するとは、このとき誰が想像し得ただろうか。
626 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 17:40:52 ] それがC++0xなわけでして
627 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 19:28:20 ] C++0xdになった時に、D言語の偉大さがようやく分かるのさっ
628 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 20:15:00 ] CやJavaで既にできてることがDで出来ないわけあるかっての 見るべき環境変数なりシステム情報なりをちゃんと見れば出来ること。
629 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 20:16:06 ] コルーチンまだ〜?
630 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 20:36:38 ] ほんとコルーチンほしいよな
631 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 20:47:35 ] 特に考えずにargvをwriteflnで出力してなんの問題の無かった人ですが とりあえず文字列まわりのライブラリが揃うの待ってます
632 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 20:59:41 ] っTango
633 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 21:16:19 ] コルーチンじゃ柔軟性が低いから継続をください。
634 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 21:24:26 ] 継続は言語機能に加えただけで使わなくても実行速度が遅くなるから、無くていい
635 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 21:32:05 ] callcc相当を呼び出した時にスタックをコピーする方式にすれば未使用時の実行速度低下を避けれるんじゃね?
636 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 21:55:36 ] いっそ関数呼び出しとかの挙動をプログラム側で再実装できりゃ いいんじゃなかろうか。どんな実行順序だろうがやりたい放題。
637 名前:デフォルトの名無しさん mailto:sage [2007/03/15(木) 23:03:56 ] >>535 Rubyを馬鹿にするなーwww >>543 ABA氏のゲームは、国内より、むしろ海外で有名 >>630 こるーちんて実際何に使うの? ゲームでも微妙なのに
638 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 06:31:29 ] >>637 えっ、びみょうなのか? 結構つかってるんだが、 世はそういう判断なのか・・・
639 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 07:15:37 ] >>638 プログラミングが下手くそなんじゃない?
640 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 07:26:38 ] >>639 もうしわけない
641 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 13:44:13 ] >>638 いや、あっても、組み込みスクリプト言語レベルで実装されてりゃいいやって感じなんだけど、 使いどころある?
642 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 15:10:58 ] よく聞く利用法だと、シューティングゲームとかの各キャラクターの挙動で、 1フレーム分動かしてsuspend()とか? Stateパターンするには大げさだろー、とか思う時に欲しいことがある。 でも、言語組み込みせんとコルーチンて使えないの?
643 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 15:16:22 ] 静的変数とラベルで実現できないことはないが、 自分で状態管理する羽目になるから本末転倒だろ
644 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 16:10:47 ] 要するにシンタックスシュガーだから、簡単にかけないと意味がないってことか。
645 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 22:49:43 ] いざとなればスレッド+同期処理を纏めて、ユーザライブラリとして作れると思うが。 まぁ無駄なオーバーヘッドはかかるが、分野によっちゃどうでもいいだろうし。 もっと低レベルな実装だとWin32ならFiberが使えるけど、Linuxにはそういうのあるん?
646 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 23:01:49 ] TangoにFiberってなかったっけ
647 名前:デフォルトの名無しさん mailto:sage [2007/03/16(金) 23:09:54 ] あ、ホントだ。 www.dsource.org/projects/tango/wiki/ChapterThreading 休日はじっくりtango探索でもしようか……
648 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 04:08:39 ] >>433 残念ながらなぜかDのexeにはupxが効かない
649 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 09:35:45 ] >>648 効いたよ。upxは最新版使ってる?
650 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 14:29:49 ] >>649 ギャフン
651 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 18:56:50 ] import pkg.*; はガチで欲しい
652 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 11:26:05 ] そろそろDでも触ってみようと思っているのですが、 eclipse のプラグインとしての開発環境で、 現在も開発が続けられているものはないでしょうか?
653 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 11:47:34 ] >>652 www.kmonos.net/alang/wnd/devenv.ja.html#ide Descentはリアルタイムにコンパイルエラー表示してくれたりしたけど、やっぱまだまだ途上っぽ。 結局エディタ+コマンドラインに落ち着くことになるんじゃないかな……。
654 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 11:54:04 ] インテリセンス互換、参照コードへのジャンプ、そしてデバッガ D言語が普及言語を名乗るならここへんが最低水準になってくるね 最大のライバルはVC6.0だから。
655 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 03:05:37 ] インテリセンスって未だに実現されないけどそんなに難しいのか
656 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 03:22:51 ] >>655 お前、本格的なGUIコンポーネントの類の開発やったことないだろ。 確かにただ作るだけならそれほど難しくはない。が、 インテリセンスのような類の機能はただ作るだけじゃそれこそ 無いほうがましだ!ぐらいの悪評を買うだけなんだよ。
657 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 08:06:57 ] ふーん、そういうもんかな 具体的には何が悪評を買わせるのか聞きたいな
658 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 08:35:32 ] ためしにEclipseでC++プログラミングしてみるといい
659 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 11:39:50 ] VC++にしたってncbファイルが結構なサイズになってるし。 情報集めるためにレスポンス遅くなったりするしな。(これは俺の環境がしょぼいせいかもわからんが)。
660 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 12:15:29 ] DFL 0.9.5.01 リリース
661 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 15:19:34 ] eclipse/javaやVC#おまけにDelphiあたりはレスポンスも十分早いこと考えると、 C++のは言語仕様の複雑さのせいって気がする。 インテリセンス作ろうと思ったら、 やっぱりコンパイラのソースから構文解析部分を引っこ抜いてくるのかな? だとしたら、言語仕様がコロコロ変わるのが一番の問題なのか?
662 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 18:31:14 ] finalとprivateを同時に付けるのってどんな意味あるの? privateな時点である意味finalみたいなもんだと思ってたんだけど
663 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 18:48:23 ] final privateだとサブクラスでオーバーライド(ぽいこと)ができる?
664 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 19:19:38 ] >>662 www.kmonos.net/alang/d/function.html 多分finalは「決して仮想関数にならない」が保障される予感。 あとはクラス設計者の意思表示として、かなぁ。 個人的には、よほどの理由が無い限りメンバをfinalになんてして欲しくないが。
665 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 19:34:36 ] 俺はむしろ基本finalで 重要な一部分だけ仮想関数の方が挙動が読みやすいし好きだな。
666 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 21:02:18 ] >>665 C++の仕様か 関数名(と引数の型)の意味論を基準として実装を信用するか、 他者の実装を信用せず特定のクラスの実装のみを信用する、という差かと
667 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 21:05:16 ] 意図しない再実装をするのは他人なんだから、 そんな状況でfinalにしてあったら余計ひどいことになるような気が。
668 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 22:20:00 ] Tango 0.96 beta 2 リリース
669 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 01:52:27 ] ん? privateでもすでに「決して仮想関数ならない」ことになるのか。 そいや意思表示の点でも同じことだよな。 んじゃprivateにfinalを重ねるのは、ほぼ意味無しと言っていいのかも。 >>665 private+finalの話とはまた違う話で恐縮なのだけど。 経験的に、予期せぬオーバーライドを行いたいってニーズは結構あった。 派生やUnitTestなんて考慮されてない既存のクラスに対してUnitTest書きたいって時に、 DBアクセスするメソッドだけスタブに置き換えるとか。 基本finalだとそういうときに融通が利かなくなっちゃうんだよねぇ。 virtualとかで”オーバーライド考慮してます”ってマーク付けられるのは良い事だと思うけど。
670 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 01:58:42 ] そういやさ、メンバ変数にfinal付けてる人たまに居るけどさ、あれって意味あるの?
671 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 07:22:55 ] Java だと定数になるんだっけか
672 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 08:18:32 ] テンプレートで型の前にinとか付けるとコンパイラエラー出るけど仕様?gdc使ってる
673 名前:665 mailto:sage [2007/03/20(火) 12:58:46 ] >>669 オーバーライドを意識してないメソッドをオーバーライドって 元のコードを丹念に追いかけないと何が起こるか予測しきれないから恐くて自分は出来ない。 で、元のコードを追いかけるなら元のコードを, ついでに継承を意識した形に置き換えちゃうから結局基本finalでも自分は困らないんだよな。 自分の場合は元のコードを弄れる状況が多いからこういう持論になるけど、 こればっかは普段相手にするコードの種類によって考えもかわってくるんでしょうね。
674 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 00:28:05 ] >>670 サーセン、Javaの癖でconstと間違えました……
675 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 00:37:06 ] tangoてホントに根本から入れ替えちゃうんだなぁ……。 Objectクラスのインターフェースから変わってるとか、 ちょっとそーいう感覚は無かったからビックリ。 標準ライブラリを変えるというのが何を意味するのかなんて 深く考えてなかったんだなぁ俺。 Dを追っかけ始めてからなんか色々と、 普段気にしないような知識が身に付いてきた気がする……。
676 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 01:30:34 ] tangoってGCも変わるの?
677 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 02:27:07 ] 実行時のGC制御は、std.gc.disable()の代わりに tango.core.Memoryをimportしてgc.disable()とかするらしい。 実装自体はパッと見、Phobosのをまんま流用してるように見える。 細かいところは違うのかもしれんけど。 標準として採用されて、パッケージ名の先頭のtango.取れんかな。 あとutil.以下の諸々も、util.外して一階層上げていい気が。
678 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 16:30:28 ] むしろphobosがstd.*からphobos.*に降格するだけでいいとおも
679 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 07:01:16 ] tango名前悪すぎ
680 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 07:01:40 ] 辞書猫の tango だよ!
681 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 09:57:37 ] tangoは魅力的だけど、 乗り換えるのはめんどくさい。 tangoはjava.*みたいなかんじで、 d.*とかにしてしまうとかがいいかもね。
682 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 15:01:27 ] でもやっぱ今後tangoがレガシーになることがあるかもしれないから phobos.*とtango.*がいいと思う
683 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 15:34:58 ] tango入れてみた。インストーラで入れて buildでコンパイルするんだな。 下手な翻訳でもしてみるか。。。
684 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 18:09:26 ] >>683 影でひっそり応援するよ
685 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 18:28:57 ] ライブラリ使うときにいちいちファイル配置とかコンパイルオプションとか気にするのマンドクセーなー。 なのでそろそろD言語独自の中間コンパイル形式が欲しくなってきたなぁ、と思う今日この頃。 プロジェクト内にポンと単一のファイルをコピーして、 $ dmd myapp.d some_d_library.dlib とかできれば楽なのになー。 現状の*.libと*.diをまとめてtar化する程度の手間でできんもんかな。
686 名前:デフォルトの名無しさん mailto:sage [2007/03/23(金) 22:12:07 ] >>685 つ sc.ini
687 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 00:32:08 ] ガベコレ付きIDEのない言語なんて…
688 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 01:30:33 ] ポイズン っていうかイミフ
689 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 04:54:03 ] そうだね プロテインだね
690 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 20:37:06 ] まあEclipseでVS2005Ex程度の開発環境ができれば最高なんだけどね
691 名前:デフォルトの名無しさん mailto:sage [2007/03/25(日) 22:40:44 ] そうだね プロテインだね
692 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 01:02:20 ] VSのプラグイン開発してた人ってソース公開とか してくれんかな。。。 俺もプラグイン作ってみたいけど、 英語の資料しかない。
693 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 11:51:02 ] tangoでかいなぁ。とりあえず、D言語研究にごちゃごちゃ乗せてるので 誰か適当でいいので翻訳手伝って欲しいです。 一人じゃ手におえそうにないし、気力も持たん。
694 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 13:35:10 ] >>692 VSIP SDKって使用するのにマイクロソフトと特別な契約交わして クローズドソースにしないといけなかったと記憶してるんだが、改定されたんかな。
695 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 15:22:31 ] マジスカ。 うーむ、そういう項目は見たことないんだけど。 Affiliateが無料で、その上が再販権とか宣伝協力があって有料じゃないのかな。 まぁそういうのあるならしょうがないか。
696 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 18:37:00 ] 1.010なんかいっぱいきたぞ
697 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 18:50:15 ] 一番上がよく分からん Object.factory()はリフレクション関係…?
698 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 19:28:57 ] New/Changed Features * Added template partial specialization derived from multiple parameters. 複数パラメータの(?)テンプレートの部分特殊化を追加 * Added Object.factory(char[] classname) method to create class objects based on a string. 文字列からクラスオブジェクトを作成するメソッド Object.factory(char[] classname) を追加 * Added std.gc.malloc(), std.gc.extend() and std.gc.capacity(). * Added std.string.isEmail() and std.string.isURL(). * Added std.stdio.readln(). * Improved gc performance for array resize and append. 配列のリサイズと追加時におけるガベコレのパフォーマンスを向上 * Bugzilla 64: Unhandled errors should go to stderr ハンドルされていないエラーを標準エラー出力に出力 * Added predefined Ddoc macro DOCFILENAME 組み込み Ddoc マクロ DOCFILENAME を追加 一番上がよくワカラン。
699 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 19:30:14 ] > Bugzilla 931: D Strings vs C++ Strings Page Incorrect Page って、コードページのことか?
700 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 19:45:12 ] >>699 ttp://www.digitalmars.com/d/cppstrings.html この「ページ」のことだよ。
701 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 19:54:53 ] > * Fixed problem with CTFE and array literals が気になる。
702 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 20:01:04 ] >>700 ああ、なるほど。
703 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 20:49:15 ] >>698 ttp://www.digitalmars.com/d/template-comparison.html ここでpartial specializationとページ内検索すれば例が出てくる Partial specialization derived from multiple parameters // D class Foo(T : Bar!(T, U), U) { ... } // C++ template<class T, class U> class Foo< Bar<T,U> > { ... };
704 名前:デフォルトの名無しさん mailto:sage [2007/03/26(月) 23:23:05 ] うーむ。最近GCまわりがどんどん、良くなってきてますなぁ。 素晴らしい。大規模アプリに使えないとか言えなくなってきてる。 気がする。
705 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 00:11:16 ] あとは仕様確定とライブラr(ry
706 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 00:12:28 ] まだまだ仕様が足りないなぁ。やりたいことができないことが多すぎ。
707 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 00:34:18 ] C++のときも標準ライブラリが生まれるのかなり後だったんだから気長に待とうぜ
708 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 00:43:53 ] C:\dmd\tango\tango\io\Console.d(82): class tango.io.Console.Console.Input D compiler and phobos/object.d are mismatched って感じのエラーが連発して出るんですが、何をしくじってるんでしょう? インストーラーのTangoを使ってみたんですが。 スイッチしても戻しても同じエラーが・・・
709 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 00:49:00 ] >>708 tangoはまだdmd 1.010に対応していない。
710 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 01:00:30 ] おおう ありがとう。 動きました。その上日本語も出た。 ウホ
711 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 01:11:09 ] んー? なんで >>708 がエラーになるようになったんだ
712 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 01:18:58 ] >>711 ClassInfoの構造が変わった。
713 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 01:24:11 ] >>712 そうか dくす
714 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 03:00:12 ] 今度はDFLがダメポ('A`; C:\dmd\import\dfl\internal\dlib.d(27): module Thread cannot read file 'tango\core\Thread.d' 該当するソースを見ても何がわるいんかわかりません。 DFLとTangoはインストーラーでインスコしました。 TangoのLibフォルダの中身空っぽなんですが。 これはまずってますか?
715 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 03:54:01 ] オプションスイッチが必要ではなかったか
716 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 03:58:16 ] 今回のClassInfoの変更で思ったんだが -v1オプションはマジで飾りか?w
717 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 04:21:10 ] なんかわけわからんようになったス... コンパイルは出来てもEXEができんくなったり EXEが出来てるのに実行しても何もおこらんかったり。 import.dがないと連呼されたりと。
718 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 12:18:37 ] DFL 0.9.5.02 リリース
719 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 12:48:02 ] 出来ました。 dmd .1007とdmを解凍後にC:\直下においてパスを通し、 その後DFLインストーラー・Tangoインストーラーを実行して Rebuildをdmdフォルダに。 後は適当なサンプルを -Ic:\dmd\import -Ic:\dmd\tango -dc=dmd-win-tango -debug -v1 -L/exet:nt/su:windows:4.0 をつけてrebuildしたら出来ました。 Poseidonでも再生マークついてる所いじったらいけました。
720 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 22:20:44 ] DWTよりDFLが主流?
721 名前:デフォルトの名無しさん mailto:sage [2007/03/27(火) 22:52:41 ] Tioportが頑張ってくれれば、DWTが勢いづくんだがな
722 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 00:16:34 ] >>720 ここしばらく放置気味だからなあ>DWT DFLは文字コード周りが適当だったのが多少改善されてきたらしいし。 結構いいんじゃないかなと。 わなDで推奨されてたwxDはマルチプラットフォームは嬉しいんだけどexeがちょっとデブ過ぎませんか。
723 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 00:37:16 ] ひさびさに情勢を除いてみたらTangoとかいうのが本家に喧嘩うってるん? Javaみたいにライブラリが乱造された世界が結構好きなので期待。
724 名前:デフォルトの名無しさん mailto:sage [2007/03/28(水) 11:20:47 ] なにをいっているんだ
725 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 01:55:45 ] tangoのソースのなかにはウォルターたん名前も出てきてるぞ。 なんでかしらんけど。
726 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 02:36:45 ] phobosからパクってきたものだろ
727 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 07:25:19 ] DってC#のeventみたいなことをするには、独自くらす作くらなアカン? 言語仕様として似たようなのあるのかな?
728 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 11:02:13 ] 関数1個なら delegate でいいけど、 複数の関数を登録したいなら 独自クラス作る事になるのかな。 なんかライブラリにないのかな?
729 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 11:15:55 ] DFLはC#式のイベントだな。 自分で作っても難しくなさそうなもんだが。
730 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 13:40:11 ] std.signalsを使えない?
731 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 14:28:40 ] 何気にphobosのObjectの仕様が変わったか……。 tangoの方も同じものが追加されるんだろかね。 というか、コレObjectのstaticメソッドでなく普通の関数じゃ駄目だったのか? ちゅーか、クラス情報てコンパイル後も必ず残るようになってたのか。 メタ情報はビルド時にだけ使われてexe生成後には綺麗さっぱり消えてる、 そんな鮮やかさが好きなのに。
732 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 19:19:07 ] Objectは、GC関連でも結構変わってる。
733 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 20:45:35 ] tangoとphobosは混在使用できますか?それとも排他使用?
734 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 22:22:37 ] 少なくとも混在できる設計には 今は なっていないはず
735 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 22:41:08 ] -version=PhobosCompatibility 試したことは無いんだけど、これじゃだめなの?
736 名前:デフォルトの名無しさん mailto:sage [2007/03/29(木) 22:50:15 ] それはphobos互換にするだけなんでは?
737 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 02:06:11 ] ある特定のライブラリと一緒に使えないなんてライブラリとしてちょっと微妙臭い
738 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 08:54:33 ] よくある事だ。
739 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 11:00:52 ] 置き換え用のライブラリなのに同時に使えてどうすんだよwwwww コアの部分はかぶってるし、Phobosにしかないクラスとかは 個別にコンパイルして使えばいいじゃん
740 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 13:10:11 ] toMBSzの類がtangoに見当たらなくて困る罠。 WideCharToMultyByte直呼びだとWin依存だし、 wcstombsでもwchar_tの扱いとかsetlocale()とか色々メドイし、 ああ自分でやりたくない。
741 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 13:44:30 ] phobosでもtoMBSzはWin32環境にしかないわけだが というかそんな長いもんでもないしコピペしてくればいいじゃん
742 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 16:43:09 ] 何その永続型車輪の再開発
743 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 19:02:15 ] ヌ? Tangoって日本語おkじゃないの
744 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 20:33:03 ] ググってたら、いいもの見つけた tango用phobosが入っていた最後のリビジョン www.dsource.org/projects/tango/browser/trunk?rev=1236 ページ下部にある Zip Archive のリンクからダウンロードできる。 ソースは少し古いので、多少修正が必要。 中のphobosフォルダを配置して、そのlibを作成したら、 tangoとphobosの混在使用できました。(Win32)
745 名前:デフォルトの名無しさん mailto:sage [2007/03/30(金) 20:37:29 ] C99 vs D
746 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 00:43:30 ] dflってイベント関係どうなってるんでしょうか。 click ~= delegate(Object sender, EventArgs ea) { msgBox("befu"); }; 無反応です。 wndProckとかオーバーライドしてやれという事ですか。
747 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 01:51:56 ] うーぬ、 ListViewだけか。 なんでだろう。
748 名前:デフォルトの名無しさん [2007/03/31(土) 22:49:35 ] ちょっと質問しさせてください。 char[]->char*は.ptr渡せばいいみたいなんですが、 char*->char[]の方法がわかりません。 cast(char[])とやってもキャストできんと言われてしまうんですが、 どうすればいいんでしょうか。
749 名前:デフォルトの名無しさん mailto:sage [2007/03/31(土) 22:53:25 ] >>748 >char[]->char*は.ptr渡せばいいみたいなんですが、 よくない。std.string.toStringz使うべき。 >cast(char[])とやってもキャストできんと言われてしまうんですが、どうすればいいんでしょうか。 std.string.toString
750 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 00:52:24 ] おお。 ありがとうございます。
751 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 15:02:46 ] Tangoのドキュメント作ってみた(英語) ttp://up.uppple.com/src/up2852.zip 詳しくは同梱のreadme読んでね
752 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:24:31 ] >748 お節介かもしれないけどCの文字列とDの文字列は全然違うものだよ。
753 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 09:48:47 ] Dでキャスト多用するのって格好悪いですか?
754 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 15:25:53 ] そんなのプログラムによって違う
755 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 23:46:37 ] AllegroがDでできるようになったら使う
756 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 00:54:47 ] ご自由に
757 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 21:48:34 ] www.kmonos.net/alang/wnd/topics/flectioned.ja.html > (標準で添付されているphobos.libは-gなしでコンパイルされているため、 > 実はうまくリフレクションが効きません。phobosを-gつきで > コンパイルし直すのが推奨されています。) phobosを-g付きでコンパイルする方法をどなたかまとめてもらえませんか?
758 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 22:53:08 ] makeでDFLAGSに-g指定すりゃ済むだけの話じゃないの?
759 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 23:34:21 ] >>757 以前、俺も少し戸惑ったよ。 その時のメモより… dmd/src/phobos/ にある、 .MAKファイルをテキストエディタで開く。 DMD=\dmd\bin\dmd CC=dmc などとある行の、各コンパイラのパスを、自分の環境に合うよう書き換える。 DFLAGS=-O -release -nofloat -w とある行に、-g を書き加える。 編集が終わったら保存して閉じる。 dmd/src/phobos/minit.obj のファイル更新日時を、 dmd/src/phobos/internal/minit.asm よりも新しくしておく。(アセンブルにはmasmが必要!?) dmd/src/phobos/ をカレントフォルダにしてから、makeを実行 例: make phobos.lib -f win32.mak しばらくすると、カレントフォルダに phobos.lib が作成されるはず。それをlibフォルダへ入れる。 dmd/src/phobos/ に作成された大量のオブジェクトファイルは不要なので削除していい。 だけど minit.obj だけは、今後のmakeの為に残して置く。
760 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 23:42:44 ] thx 後でやってみる
761 名前:759 mailto:sage [2007/04/04(水) 23:44:32 ] 補足 「ファイル更新日時を新しく・・・」は、更新日時を書き換えるツールなどで行います。 これは、アセンブルを回避したいためです。
762 名前:デフォルトの名無しさん [2007/04/05(木) 00:03:53 ] Descent を入れたのですが、他にもコンパイラーを入れる必要があるでしょうか? どうにも、コードのエラーチェックはしてくれるのですが、コンパイルされないし、 そもそも構成及び実行でも、Dらしきものが出てきません。 Eclipse3.2 なのですが、それがまずいのでしょうか?
763 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 00:07:29 ] >>761 cygwin 入れてるんで touch minit.obj した > dmd/src/phobos/ にある、 .MAKファイルをテキストエディタで開く。 いじった .mak ファイルは2つ dmd\src\phobos\win32.mak dmd\src\phobos\internal\gc\win32.mak さて phobos.lib はできたがちゃんと使えるかな?
764 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 00:14:18 ] www.kmonos.net/alang/wnd/topics/flectioned.ja.html これのサンプルを実行してみたが >hello Error: ArrayBoundsError hello(10) としか表示されないな・・・再コンパイル前と状況は変わらないようだ 何が悪いのでしょうか?
765 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 08:12:30 ] D Frameworkってのを落として中身覗いてみたら グリッドついてるしW系APIメインで使われてるし これは使えるのかなと思ったら1年以上更新されてないのね><
766 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 12:16:49 ] チミが続きをやればいいのだよ
767 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 12:18:09 ] リンクplz
768 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 12:54:49 ] >>764 D 1.010で >> Bugzilla 64: Unhandled errors should go to stderr ていう変更が入ったせい。 flectionedはException.printを置き換えて表示を変更してるんだけど、 DMDがException.printじゃなくてException.toStringを使うようになた。
769 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 14:55:08 ] >>768 まだ最新版には対応してなかったのか 残念
770 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 18:56:59 ] >>769 DMDの仕様変更が活発である限り常にそう
771 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 19:04:02 ] main.def(2) : Error 112: SUBSYSTEM Directive SUBSYSTEM CONSOLE,4.0 ^ main.def(2) : Error 52: .DEF Syntax Error SUBSYSTEM CONSOLE,4.0 これは一体何のエラーでしょうか。
772 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 19:43:49 ] >>770 まあね 丁度 flectioned を使おうと思ったタイミングで それが使えなくなるような変更があったなんて 運悪すぎだろ常識的に考えてとかおもて 早く更新されないかなー
773 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 20:11:41 ] 乗り遅れるの覚悟でバージョン下げればいいじゃくぁwせdrftgyふじこlp;
774 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 17:14:54 ] >>773 DMDの仕様変更が活発である限りそれはやめたほうがいい
775 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 17:16:29 ] void tester(float[2] bad, float[] good) { assert (&good[1] - &good[0] == 1); // ok assert (&bad[1] - &bad[0] == 1); // !!!!!?????? if (bad.ptr == good.ptr) // 静的配列ってポインタ渡しだっけ? { assert (&bad[0] == &good[0]); // ok assert (&bad[1] == &good[1]); // !!!!!?????? } } void main() { float[2] test; tester(test, test); } なぜだ……
776 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 19:27:45 ] 仕様にないことやろうとしてねえ?
777 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 19:29:17 ] >>775 www.kmonos.net/alang/d/abi.html >静的な配列を関数へ渡すと、例え静的な配列として宣言されていても、 >結果は実際には静的配列への参照となります。 ということで、静的配列は参照渡しされますね。
778 名前:デフォルトの名無しさん mailto:sage [2007/04/06(金) 21:00:40 ] >>775 適当に試してみたけど assertが失敗するのはdmdのバグっぽいから適当に報告するのが吉。
779 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 20:50:26 ] dflのツリービュー、+-の所しかマウスクリック判定しやがらん。 英語の達者な誰か報告したって。
780 名前:デフォルトの名無しさん mailto:sage [2007/04/08(日) 23:00:43 ] >>779 テストめんどいから最小の再現コード張って
781 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 20:48:38 ] private import dfl.all; class MyForm: dfl.form.Form {dfl.treeview.TreeView treeView1; this() { text = "My Form"; clientSize = dfl.drawing.Size(240, 245); treeView1 = new dfl.treeview.TreeView(); treeView1.name = "treeView1"; treeView1.bounds = dfl.base.Rect(0, 0, 232, 228); treeView1.parent = this; TreeNode tn = new TreeNode("hoge"); tn.nodes.add("omg"); treeView1.nodes.add(tn); treeView1.click ~= &testClick; treeView1.doubleClick ~= &testClick; } void testClick(Object sender, EventArgs e) { msgBox("piko-n"); } } int main() { Application.run(new MyForm()); return 0; } 他のダブルクリックとかは何やっても正常。 HitTestですらラベル無視なんだけど、なんでだろう。
782 名前:デフォルトの名無しさん mailto:sage [2007/04/09(月) 21:00:15 ] ちなみにイメージリスト作ってビットマップ置いて ダブルクリックイベントでHitTestするとすべて正常。 やっぱりクリックだけぽい。
783 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 00:44:28 ] std.c.stdioにfilemode関数があるんですが、 これを呼び出すと Symbol Undefined _filemode と出てリンクができなくなってしまいます。 何かコンパイルオプションをつける、環境変数を指定する等しなければならないことがあるのでしょうか。 それともDMDのバージョンが古い(1.005)のが原因なのでしょうか。
784 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 00:55:00 ] >>783 うちの std.c.stdio にはないけど?(dmd1.010)
785 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 01:05:30 ] >>781 確かに click は + - でしか反応しないけど afterSelect / beforeSelect を使えばいいのでは?
786 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 04:06:04 ] bud を導入して実行してみたらsc.iniが見つからないと言われました。 bud.exe とソースコードをdmd.exeと同じフォルダに入れたら成功したので 環境変数の問題だと思うのですが、どうすればいいのでしょうか。 Error: bud:Unable to find Config File 'sc.ini' in [.\,,C:\Documents and Settings\ユーザ名,C:\作業フォルダ\]
787 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 05:43:48 ] >>784 すいません。間違えました。 filenoでした。 extern(C) int fileno(int); とかやってもだめでした。
788 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 05:48:57 ] fileno()は大抵マクロ 非標準だし
789 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 06:15:47 ] じゃあDで標準入力をバイナリモードで開きたい時はどうすればいいのですか?
790 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 07:36:26 ] さあ。phobosにはそんな概念ないからの。
791 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 12:04:17 ] どうせ構造体の中の変数1つ拾ってるだけだろうから、 そういうインライン関数作っちゃえ。
792 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 14:01:38 ] version(Win32) stdout._flag |= _F_BIN; としても効かんな。なんでだろ
793 名前:783 mailto:sage [2007/04/10(火) 16:03:35 ] とりあえずDMCのstdio.hをのぞいてみると、filenoで参照しているのは構造体の_fileメンバだたt。 といわけでこんなプログラムを書いてみた。 import std.c.stdio; version(Windows) extern(C) int setmode(int, int); char[] readStdIn(ulong size) { char[] buf; char c; version(Windows) { int O_BINARY = 0x8000; setmode(stdin._file, O_BINARY); } while(buf.length < size && (c = getchar) != EOF) buf ~= c; return buf; } void main() { char[] str = readStdIn(500000); FILE* fp = fopen("output.jpg", "wb"); fwrite(str.ptr, str.length, 1, fp); fclose(fp); } test.exe < input.jpg とやってみても壊れたファイルしか出力されませんでした。 テキストを入力して実験した結果、バイナリモードに切り替わっていないようです。 同じようなCのプログラムを書いてみたところ、 BCCならきちんとバイナリモードになっていましたが、DMCはテキストモードのままでした。 どうやらDMCのバグか仕様の予感です。
794 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 16:12:57 ] Cライブラリの問題な気が
795 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 16:22:51 ] そもそも標準入出力がテキスト以外を扱うように出来てるかが問題だな。
796 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 16:44:24 ] つまり解決策無し?
797 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 16:51:53 ] phobosをコンパイルしなおせばいけるんじゃないか?
798 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 17:02:34 ] >>793 で試したCのプログラムがちゃんと動くようなCライブラリとリンクしてやれば、うまくいきそうな気がするなあ。
799 名前:デフォルトの名無しさん mailto:sage [2007/04/10(火) 21:49:11 ] つまりまだニヤニヤする以外の目的で使うなって琴田。
800 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 00:15:02 ] そうでもないか
801 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 02:34:20 ] import std.cstream, std.c.windows.windows, std.stream; extern (Windows) HANDLE GetStdHandle(DWORD nStdHandle); const STD_INPUT_HANDLE = -10; const STD_OUTPUT_HANDLE = -11; void main() { auto din2 = new File(GetStdHandle(STD_INPUT_HANDLE), FileMode.In); auto dout2 = new File(GetStdHandle(STD_OUTPUT_HANDLE), FileMode.Out); auto buffer = new ubyte[256]; while (true) { auto len = din2.read(buffer); if (len == 0) break; dout2.write(buffer[0..len]); } } こうか?
802 名前:783 mailto:sage [2007/04/11(水) 08:03:20 ] >>801 あ、できた。 つまり標準入力をバイナリモードで得たければOSのAPIを叩けということなんですね。 ありがとうございました。
803 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 09:20:55 ] D言語はあんまりわからんけどC/C++ @Win32 なら freopen("CON","rb",stdin); でいけるからこれでいいんじゃね?
804 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 21:43:55 ] D言語っていつのまにやら、Version1.0になってたんだね。 1.0越えたら手を付けてみようと思ってたんで、今後このスレにはお世話になると思います。 よろしくお願い
805 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 21:45:28 ] 名前だけ 1.0 になったけど、 今までと変わらず仕様変更してます。 どう見ても名前だけです。 本当にありがとうございました。
806 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 22:53:44 ] 1.010で-v付けても1.0互換じゃなくなっちまったしなw
807 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 23:02:34 ] >>806 -v1 が1.0互換で、 -v はverboseなんじゃないの?
808 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 23:07:31 ] 1.*って以上の意味はないんだろうな…
809 名前:デフォルトの名無しさん mailto:sage [2007/04/11(水) 23:09:52 ] >>807 すまんそのとおり
810 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 01:04:09 ] >>803 標準入力とCONでは意味が違う。 リダイレクトやパイプ越しのケースがあるからな。 Cランタイムライブラリに依存せず標準入力から読み出したければ GetStdHandle(STD_INPUT_HANDLE)でハンドル取ってきて ReadFile() これでいい。
811 名前:デフォルトの名無しさん [2007/04/12(木) 07:44:57 ] D言語関連の和書って、まだなにもないんだっけ?
812 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 07:48:56 ] ググったらパーフェクトガイドとかってのがでてきたけど、古い上に売れ切れてるし。
813 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 08:01:35 ] >>812 むっちゃ古い k.inabaさん以外全部沈没
814 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 08:05:18 ] コンパイラが0.106とかの時代だからまだ新しい方じゃない?
815 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 08:16:10 ] inabaタンが、頑張ってくれてるみたいだから一括ダウンロードしてみたけど これ壊れてない? 目次だけで内容が見れないんだけど。 vista で見てるからかなぁ?
816 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 11:57:09 ] 新しいキーワードのmacroってなに?
817 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 12:41:12 ] For the future (unimplemented) AST macro feature.
818 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 13:29:12 ] >>815 ttp://support.microsoft.com/kb/902225/ → 方法2
819 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 13:55:14 ] What's New for D 1.011 Apr 11, 2007 New/Changed Features Extended Codeview symbolic debug output with LF_OEM types. Extended Dwarf symbolic debug output with DW_TAG_darray_type, DW_TAG_aarray_type, and DW_TAG_delegate types. Added keywords ref and macro. final classes cannot be subclassed. final for variables now works. ref now works as a replacement for inout. Fixed so multiple type inferring declarations like auto a=1,c=2; works. Bugs Fixed Fixed problem with overloading of function templates that have the same template parameter list, but different function parameters. Fixed problems with type deduction from specializations that are template instances. Fixed assert template.c(2956) s->parent Got .property to work for typeof. Fixed bug in DW_AT_comp_dir output for some linux versions. D.announce/8027 D.announce/8047 D/51800 Bugzilla 1028: Segfault using tuple inside asm code. Bugzilla 1052: DMD 1.009 - aliasing functions from superclasses may result in incorrect conflicts Bugzilla 1080: Failed to link to std.windows.registry Bugzilla 1081: with using real and -O option, dmd generate bug code Bugzilla 1082: The .offsetof property yields a signed int, a size_t would be more appropriate Bugzilla 1086: CodeView: missing line information for string switch Bugzilla 1092: compiler crash in ..\ztc\cod1.c 2528 Bugzilla 1102: switch case couldn't contain template member Bugzilla 1108: Indexing an int[] not evaluatable at compile time Bugzilla 1122: dmd generate bad line number while reporting error message
820 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 14:02:31 ] 今になってrefを導入してくるか……っ! 「inoutはrefに置き換えるかもしれません」って確かに言ってたけど!
821 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 14:13:22 ] コード書き換えの嵐ktkr いつかはやらなくちゃだったかもだけど、1.00になったときがよかったなぁ
822 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 14:46:21 ] それでこそD言語
823 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 15:32:12 ] D 0.1011 でいいんじゃね?
824 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 16:14:34 ] >>823 なんか二進数みたいに見えてきた・・・orz
825 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 16:16:16 ] 実は16進数で 0.D0.1011
826 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 18:17:07 ] >>825 その投稿時間はネタに合わせたのか
827 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 19:49:04 ] >>825 みらくるだなぁ
828 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 20:44:25 ] >>825 の16揃いはバネを使ったインチキだったので 警察に捕まりました。
829 名前:デフォルトの名無しさん mailto:sage [2007/04/12(木) 20:50:07 ] >>825 上手いねえ
830 名前:815 mailto:sage [2007/04/12(木) 21:57:56 ] >>818 d
831 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 06:46:32 ] ドキュメント生成が見た目いまいちなんですけども標準以外でツール作られてたりしないの?
832 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 10:49:14 ] Doxygen は、Dに対応してるらしいぞ。 見た目はdmdでも、.ddocファイルで指定すれば、在る程度好きなようになるでしょ。 .ddocでユニークな文字列を埋め込んでおいて、スクリプトなどで再加工するとか…。
833 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 13:44:06 ] 1.012きた バグ修正オンリーか
834 名前:デフォルトの名無しさん mailto:sage [2007/04/13(金) 16:27:23 ] digitalmars重すぎる。ミラーとか無いのかな?
835 名前:デフォルトの名無しさん mailto:sage [2007/04/14(土) 09:08:50 ] >>831 candydocとかいいかんじかも。
836 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 01:22:12 ] すみません。 最近始めたものですが、無名クラスについて教えていただけないですか。 Java で書くと以下のようになるものは、Dだとどのように書けば良いのでしょうか。 Player player = new Player(new Strategy(){ public void method() { }});
837 名前:デフォルトの名無しさん mailto:sage [2007/04/15(日) 01:39:16 ] auto player = new Player(new class Strategy { public void method() { } });
838 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 05:31:38 ] >>835 サンクス。 無駄に格好いいなこれw
839 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 12:23:53 ] DでAjaxやってるひといますか?
840 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 13:23:20 ] DとAjaxに何の関係が? DでCGIするって話?
841 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 17:45:13 ] CGI用のFrameworkっぽい物あったっけ?
842 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 21:41:05 ] ttp://www.wikiroom.com/sakurai/index.php?FrontPage ここくらいしか知らない
843 名前:デフォルトの名無しさん mailto:sage [2007/04/16(月) 21:52:10 ] dsource.orgにあった気がする。
844 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 03:52:07 ] GWTみたいなのをDでやりたいんです
845 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 04:19:04 ] Dのような低レベル言語でWebアプリ作るの大変そうだな〜。 PHPとかとはまた違った面白さがありそうだが。
846 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 04:49:42 ] いやD言語は高レベルだし。ライブラリが揃ってないのが激しく面倒だけど。
847 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 09:23:20 ] これが歳の差か
848 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 09:26:47 ] Dは中レベルだよ。
849 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 10:03:03 ] Dでファイルのアップに対応したCGIライブラリ作ったけど、 1.4MB以上のファイルを食べさせるとしぬという素敵仕様になってしまったorz
850 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 10:06:31 ] Dで使えるODBCアクセス用クラスみたいなのありますか
851 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 10:15:44 ] 言語仕様の変更が怖くて D でライブラリ作る気しないなあ。
852 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 11:47:19 ] あなたにはD言語はおすすめできません
853 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 12:18:31 ] >>850 Cで使えればDでも使えますが ttp://www.kmonos.net/alang/wnd/topics/ddbi.ja.html こんなのもあります
854 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 12:21:48 ] しかしinout->refの変更は結構痛いなw DMD1.012だとDirectXのヘッダーとかDFLとか使えなくなったし 自分ですぐ直せるけど早く公式の方で対応されないかなー
855 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 12:27:00 ] Tango 0.97 RC1 has been released.
856 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 13:08:24 ] s/inout/ref/g で直しとけ
857 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 17:06:36 ] さらにs/ref/inout/gで直さなきゃならないなんてことは無いよな?
858 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 17:09:29 ] もしかして、参照も導入されることになったの?
859 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 18:31:30 ] ?
860 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 19:44:52 ] 文字列をコードとしてミックスイン なんていう機能があるんですか。
861 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 19:46:16 ] はい。あるんです。
862 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 19:52:28 ] なんかリフレクションできそうだな。 これでjarみたいなリンクが出来たら主戦言語にかえるかも。
863 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 19:55:12 ] flectioned
864 名前:デフォルトの名無しさん mailto:sage [2007/04/17(火) 19:55:34 ] >>856-857 s/ref/ref_/g s/inout/ref/g としないと死ねるぞ
865 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 16:53:15 ] std.boxerでバグ見つけた Mac OS X 10.3.9 PowerPCなんだけど4bytes未満のデータをboxするとデータが壊れる。
866 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 17:09:49 ] Box box(TypeInfo, void*)のコード読んでみたらどうみてもstd.stdarg使ってないな。 しかもリトルエンディアン前提でコード書いてやがる。まあ仕方ないか。
867 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 19:15:01 ] 既出かもしれないが、 void func(void[] v) { } void main() { func(cast(void[])['a']); } で落ちる。
868 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 19:58:24 ] これだけで落ちるな。 void main() { void[] v = cast(void[])['a']; } 配列リテラルを void[] にキャストするのが無理っぽいね。
869 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 19:59:08 ] というか、 void main() { cast(void[])['a']; } これだけでいいか。
870 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 20:16:15 ] 落ちないなあ… dmd v1.012 windows xp
871 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 20:27:51 ] >>867-869 落ちない gdc 0.23 @ Mac OS X 10.3.9 PowerPC
872 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 21:27:12 ] ああ、コンパイラ古いからなのか? gdc 0.21 @ MacOSX 10.4.9 Core 2 Duo
873 名前:デフォルトの名無しさん mailto:sage [2007/04/18(水) 23:53:54 ] 可変個引数テンプレートで悩んでいます。 class foo(T...) { int opApply(int delegate(ref T) dg) { int result = 0; return result; } } void poo() { foo!(int) hoge; foreach(int i ; hoge) { } } Compile Error: function foo!(int).foo.opApply (int delegate(ref (int))) does not match parameter types (int delegate(ref int __applyArg0)) foreachを動作させるにはどうすればよいのでしょうか? どなたかご教授お願いいたしますm(_ _)m
874 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 00:07:34 ] class foo(T...) Tが複数なんだから int opApply(int delegate(ref T[0]) dg) あと foo!(int) hoge; は auto hoge = new foo!(int); それともタプルをforeachで回したいのかな
875 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 00:12:36 ] foo!(int)とやればforeach(int n; hoge)に対応できて、 foo!(int,int)とやればforeach(int i, int n; hoge)に対応できる、 ってやりたいんじゃない?
876 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 00:19:47 ] >> 875 はい、そのとおりです
877 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 07:41:46 ] そこで文字列mixinですよ import std.metastrings; template F(int i,T...){ static if(T.length == 0) const char[] F=""; else const char[] F="ref T["~ToString!(i)~"]" ~ (i+1==T.length?"":","~F!(i+1,T[1..$])); } struct A(T...){ mixin("alias int delegate("~F!(0,T)~")dg_t;"); int opApply(dg_t dg){ return 0; } } void main(){ A!(int,char)X; A!(int)Y; foreach(int x,char c;X){} foreach(int y;Y){} }
878 名前:873 mailto:sage [2007/04/19(木) 12:38:15 ] >> 877 ありがとうございます!無事動作しました。 ただ、 (i+1==T.length?"":","~F!(i+1,T[1..$])); だと期待する動作ではなかったので(引数が一つ足りない)、 (i==T.length?"":","~F!(i+1,T[1..$])); とさせていただきました。 文字列mixin、すごいですねえ!!
879 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 14:57:54 ] 頼むから>>の後にスペースを入れないでくれ
880 名前:873 mailto:sage [2007/04/19(木) 15:26:42 ] >>879 はっっ ごめんなさい
881 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 15:31:09 ] gdc固有のバグは何処に報告すればいいんだ?
882 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 17:27:22 ] インターフェーステンプレートなんてものも出来るのか・・・
883 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 18:49:12 ] >>881 バグ報告? 自分で修正してパッチ公開だろ。 そのコードが良かったら誰かがいつかマージしてくれる。
884 名前:デフォルトの名無しさん mailto:sage [2007/04/19(木) 18:51:00 ] >>881 bugzilla
885 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 06:24:59 ] DFL 0.9.5.03 リリース DMD 1.013 リリース
886 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 07:33:15 ] > DMD バグ潰しか
887 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 08:44:43 ] DFLキター
888 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 11:54:54 ] あぁ・・昨日アップデートしたばかりなのに・・・
889 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 13:49:00 ] 毎日アップデートするのを楽しむのじゃ
890 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 15:57:00 ] >>889 D言語ってそうゆうワクワク感がいいですよね。 アップデートを確認してバグが大量にフィックスされていた時は いつも感動の連続ですよ。
891 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 15:59:11 ] 結局ダメ言語
892 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 21:55:55 ] Richard Deyman って誰?
893 名前:デフォルトの名無しさん mailto:sage [2007/04/20(金) 22:02:00 ] readlnがバグってるの早く直してほしいな
894 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 00:49:55 ] 久しぶりにJavaで仕事したらスイスイ書けてこんなに便利だったのかと改めて思った Dにも頑張って貰いたい
895 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 00:58:13 ] 便利なのはEclipse
896 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 10:41:01 ] IDE マダァ?(・∀・ )っ/凵⌒☆チンチン
897 名前:デフォルトの名無しさん mailto:sage [2007/04/21(土) 11:06:36 ] >>896 CodeBlocksがまあまあ使える