1 名前:デフォルトの名無しさん mailto:sage [2007/10/05(金) 20:16:30 ] プログラミング言語 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://www.sun-inet.or.jp/~yaneurao/dlang/ ttp://wisdom.sakura.ne.jp/programming/d/
281 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 17:11:50 ] 組み込みに関してはかなり素人で見当違いなことかもしれないんだが… たとえばH8のマイコンがGCCのコンパイラでコンパイルできるみたいだけど、 GDCとH8を使ってD言語による組み込み向けのプログラムを作ることはできないのかな?
282 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 18:59:26 ] GDC
283 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 19:00:39 ] ごめん、途中で送ってしまった GDCでクロスコンパイラはつくれるかもしれないが、 ターゲットが32ビットCPUでないとだめかもしれない。
284 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 19:01:25 ] tango 0.99.2を使ってるんだが、IConduitやらOutputStreamやら入出力周りの関係と用途がさっぱりわからん。 ソースによらず汎用的にストリームを扱いたいときはどのインタフェースをサポートすればいい?
285 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 20:22:16 ] >>281 去年 gdc を H8 にポートしてみた事がある。 phobos の GC がうまく動作しないところで絶賛放置中。 2日の作業じゃここらが限界だった。
286 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 22:06:18 ] GCつかわなければいけるんじゃなかろうかと一瞬考えたけど、そんなDに意味はあるのかどうか真剣に考えてしまった。
287 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 22:16:38 ] ベターC++と高速コンパイルだぜ!
288 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 22:41:03 ] GDCだと遅い罠
289 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 00:17:21 ] じゃあ意味ないんじゃね?
290 名前:デフォルトの名無しさん [2007/10/22(月) 00:56:13 ] >>284 flectioned から抜き出してみた。tango と phobos の差異を吸収するような 書き方が一番なんでないかい? static if(is(typeof((new object.Object()).toUtf8()) == char[])){ const bool inTango = true; const bool inPhobos = false; }else{ const bool inTango = false; static if(is(typeof((new object.Object()).toString()))){ const bool inPhobos = true; }else{ const bool inPhobos = false; } } static if(inTango){ import tango.stdc.stdio; } else static if(inPhobos) { import std.c.stdio; } int main() { printf("Hello world"); return 0; }
291 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 00:58:57 ] またあげちまったよ・・・すまん
292 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 01:23:43 ] ttp://dsource.org/projects/tangobos/browser/trunk Tangobos is a compatibility layer to allow most Phobos software to be compiled unmodified on Tango. It is effectively a port of Phobos to Tango: it is only modified to the degree required to make it compile. これってTango/Phobos共存させるのが目的なんだよな?
293 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 02:30:10 ] テラタンゴボスwww
294 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 10:56:20 ] なんというド直球ネーミングw
295 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 11:06:07 ] D言語製のブラウザってある?
296 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 12:24:25 ] >>292 Tangoboswww 見間違いかと思ったわw
297 名前:デフォルトの名無しさん [2007/10/22(月) 12:57:13 ] >>292 Tangoの上に乗っかるPhobos互換レイヤか
298 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 13:07:18 ] どっちかに統一したほうが良いように思うのは俺だけ?w
299 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 13:09:36 ] Tangoboswwwwwwwwwwwww
300 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 13:31:59 ] >>298 統一してほしいね〜 そもそも、TangoはPhobosと共存できないように 作る必要があったのだろうか?
301 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 14:03:17 ] 誰かがグレイトなライブラリを作ればいい。 どうせ D はまだ実用されてるとは言いがたい状況なんだし、 新規のライブラリがポンと出てきた所で問題は無い。
302 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 14:08:58 ] それをここで作るんですよ
303 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 14:27:52 ] Pascal型UpperCamelCaseが嫌いなのでphobos中心にマージされて欲しいと思う俺がいるが、 phobosはバージョンアップに追従するのが原則、 Tangoはそこまでやったりもしてないからなあ。 C++ユーザからの乗り換えパスとしてSTLとboost相当の移植は欲しい気がする lexical_castとかはC++では使えるけどDではtoStringその他が使えるからまあいいけど。
304 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 14:35:52 ] >>303 >lexical_cast 確かめてないけどstd.conv.toは?
305 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 16:47:31 ] makefileがわりにmake.dってファイル作ってrdmd make.d optionってやるのよさそうだね。 bud使ったほうが早いかな?むしろrdmd bud.dってかww
306 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 16:49:55 ] いまさら気づいたけどなんもよくないね
307 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 17:01:00 ] D2でライブラリ関係のコンパイル通らなすぎわろたあああああああああああ
308 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 17:31:37 ] >>303 ちゃんと「The D Style」なんてのまで存在してるのに、 そこまでlowerCamelが嫌いだったのかねぇ・・。 豊富な機能やクラス設計に「おお」と思いつつ、ドキュメントのHelloWorldを見た時点で > tango.io.Console; 「え? モジュール名・・」 > Cout("Hello...")(s).newline 「え? Coutて? UpperCamelな関数? いや()演算子持ったオブジェクト? つかなんで可変引数使わへんのん? で、newline? 構文が最終的にプロパティ参照になっちゃってるやん?」 そんなTango。
309 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 17:34:31 ] そういう話題が出ないはずないと思うんだけどなぁ・・・ なんか考えがあってのことなのかね?
310 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 17:44:08 ] Tangoは機能自体はいいんだが、俺も設計が気に食わない。
311 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 17:54:10 ] たしかにCoutはきもい void coutln(T...)(T t){ ... } とか各自定義汁ってことか?www
312 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 17:56:18 ] とりあえず動けばおkってことになってるのかな???
313 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 18:15:54 ] 自分はCoutよりStdout派。 import tango.io.Stdout; Stdout("こんにちは 世界\n"); Stdout(1, 2, 3, 4, 5).newline; int a = 5, b = 10; Stdout.format("てすと {} + {} = {}", a, b, a+b).newline;
314 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 18:33:08 ] opCallのオーバーロードは、C++のビットシフトのオーバーロードより数倍キモイ。
315 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 18:34:55 ] まぁ、なんだかんだワガママ言ってもphobosよりはOOPが生きてるし、 使いたいといえば使いたいんだよねTango。 SDLに対するSDL_image/mixer/..、C++のSTLに対するboostみたく、 phobosがコンパイラ添付の最低限ライブラリ、 Tangoが「事実上の標準」な拡張ライブラリ、とかに分かれててくれるのが理想と思う俺。 組込みとか色々タイトな分野じゃない限り、普通Tangoを被せて使うものだよ、みたいな。
316 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 19:09:10 ] ならTangoはPhobosを利用しないといけないな! つーかなんでTangoはPhobosと共存できないのwww意味不明wwwwww
317 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 19:11:50 ] Phobosは廃止でいいよwwwwwwww
318 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 19:41:58 ] そこでTangobosが登場する?? Phongoとか、ネーミングはもうちょっとなんとかならんかったのか。
319 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 19:51:41 ] Tacos
320 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 20:02:40 ] >>319 それ良さそう。
321 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 20:19:52 ] >>304 俺も使ってないけど使えると思う。 というのはともかくとして、C++はlexical_castが無いと面倒な場面があるのだが、 Dではstd.conv.toを使わなくても結構いけるのでそのへんが良い。
322 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 20:21:13 ] >>319 cはどっから来たんだよw
323 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 20:22:33 ] 無理に2つのライブラリ名入れることも無くない?
324 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 21:01:04 ] PThaonbgoos
325 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 21:02:42 ] よめなす。ふぁんぐーす(bはサイレント)?
326 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 21:09:56 ] たんごぼす
327 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 21:24:47 ] こんどこそでいもすで
328 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 22:06:25 ] Daimos(デイモス)はもうすでにあるし、Harmonia(ハルモニア)でよくね? ギリシャ神話でアレス(Ares)の娘…ポボス(Phobos)とデイモス(Daimos)の妹? ハーモニー(調和)の語源。とってつけたような設定じゃないか。
329 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 22:07:57 ] すまん、スペルミス。 ×Daimos ○Deimos
330 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 22:12:21 ] ハルモニアっていうとロマサガ思い出す・・・
331 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 22:25:30 ] ちなみに Harmonia harmonia.terrainformatica.com/doku.php も Ares www.dsource.org/projects/ares/ もすでにあるが
332 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 22:27:36 ] >>328 それいいけど名前資源の無駄遣いはそろそろ控えるべきだと思ったw やるならマジでやって欲しい・・・
333 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 22:28:16 ] あるのかよ だから無駄遣いはダメだと(ry
334 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 23:23:03 ] あったのか ライブラリの名前資源の干渉は防げないもんなぁ
335 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 23:31:29 ] じゃあ、 com.digitalmars.phobosとかするか?w
336 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 23:34:07 ] そんなことされたら勝手に名前変えるぞゴルア
337 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 00:38:02 ] もう日本語にしちゃおうぜ
338 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 00:41:43 ] しかもひらがなな
339 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 00:44:24 ] 日本人である私たちがコードやコメントやパッケージ名に日本語を使わないのはおかしい! って言ってみるテスト
340 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 00:45:24 ] import 標準.標準入出力; void main() { writefln("ほげほげ"); } // こんなの嫌だぞ俺w
341 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 00:47:01 ] でも import std.stdio; よりは意味が取れる罠w 表意文字万歳
342 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 00:53:23 ] ヒント: タイプ数
343 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 00:55:16 ] じゃあひらがなかカタカナでいこう
344 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 00:57:55 ] ヒント: 文字幅
345 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 01:15:21 ] 輸入 標準.標準入出力; 無 主() { 整形書出改行("ほげほげ"); } こんな中国産言語ならありそうだな
346 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 01:18:50 ] そしてブロックはPython風にインデントでやれば{}も消える!!
347 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 01:26:22 ] >>344 半カナはどうだ? タイプはかな入力で。 ドウニュウ キカク.キカクニュウシュツ; ナシ メイン(){ ギョウカキ("ホゲホゲ"); }
348 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 01:36:31 ] 話を広げておいて申し訳ないのだがものすごい既視感がwww 前に似たような話してたお
349 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 01:36:58 ] >>347 かな入力なんてできる人はかなりレアだぞ… 俺にはつらいw
350 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 01:39:11 ] Phobos上でTangoが動作しつつ、キモイ名前をどうにかしてくれたらTangoはかなり使いやすいライブラリだと思うんだ。 って話だったっけ?
351 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 01:53:33 ] まったくそのとおりである
352 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 02:12:57 ] std::cout << "hoge" << std::endl; の悪習を引きずるかのような Cout("hoge").newline; に代表される 気持ち悪いインタフェースがなくなればってのも加えておいてくれ
353 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 02:57:09 ] そもそも std::cout << "hoge" << std::endl; の良かったところはグローバルな演算子オーバーロードで簡単に拡張が加えられるところだったと思うんだ。 std::ostream& operator<<(std::ostream& strm, const Hoge& fuga); 逆にいえばこれが使えなければ意味がないわけで… Cout("hoge").newline; とかは何を意図してこんなことをしようと思ったのか… まぁ、可変個数引数だと問題はあるけど。 String s; Cout(s.append("aa"), s.append("bb"), s.append("cc"))).newline; これだと aabbccとなるかccbbaaとなるかわからん。
354 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 03:00:35 ] ここではおまいらが好き勝手言ってるだけだけど、 何か良くて何が悪いのかが評価できるなら素晴らしいライブラリを作ることもできそうなのになw Phobosのobject.dをいじらず、The D Style準拠で Cout周りのインタフェースをほげほげした(どうすんだこれ) そんなTangoに改造したらいいってわけか
355 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 03:01:20 ] 2か所訂正…orz auto s = new String; で aaaabbaabbccとなるかccccbbccbbaaとなるか…か。
356 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 03:03:07 ] >>353 待て待てその最後みたいなのはC++でもやっちゃいけないことになってるんじゃなかったか それを問題視する必要はないことしようぜ
357 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 03:04:05 ] >>353 >演算子オーバーロード ヒント: toString
358 名前:357 mailto:sage [2007/10/23(火) 03:05:52 ] あ、でもtoStringよりもストリーム演算子の方が効率的だわな。
359 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 03:08:47 ] >>353 >opCall_rまだー? まで読んだ。
360 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 03:10:52 ] ("hogahage")Cout; こうですか><
361 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 03:11:59 ] 俺もそうおもたw けどおかしいだろw
362 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 03:34:05 ] (Cout "hogahage"); じゃあこうですか><
363 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 10:42:06 ] そして半角ひらがなの復活
364 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 17:17:25 ] 暇だから上げてみます。 自分用に作ったフレームワークです。 libwindowはライブラリでそっちをなるべくいじらない方向で設計されてます。 WorksMainはライブラリの実装で関数をガリガリ書くことでその目的を遂げます。 このライブラリはウインドウズ専用です。 www9.uploader.jp/dl/sukiyaki/sukiyaki_uljp00003.zip.html
365 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 17:37:53 ] >>363 ちょ!それスレ違い。 いや、俺もそのスレみてるからわかるんだが。
366 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 18:49:23 ] >>364 方向性にはげあがるほど同意 lowerCamelはいかが?(参照>>308 )
367 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 19:55:18 ] >>365-366 じゃああえて・・・DFLでよくね?
368 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 20:20:35 ] >>362 それなんてLisp?
369 名前:デフォルトの名無しさん [2007/10/23(火) 21:07:29 ] >>366 関数名はキャピタライズを採用して欲しかった俺がいる。 Time now = Now; とかやりたかったのに・・
370 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 21:42:58 ] これで諦めてください><; Time now = Time.now();
371 名前:364 mailto:sage [2007/10/23(火) 23:33:54 ] www9.uploader.jp/home/sukiyaki/ ここのアップローダはD関係なら自由に使ってください。合計200MBまで入りますから。 っていうか、人のライブラリがどうなってるか気になる!!! そうそう、あとで後悔した時用に削除Passを忘れずに。 で!レスサンクス!! >>366 こういう先頭大文字とかって名前あったんですね。。。 C++辺りからの癖になってるんですけど、次は小文字も検討してみます。 >>367 それ言われるとちょっと弱い。笑 Hにも・・・を見るとTangoだとかvar1系だとかそういうのが良くわからないので使ってないんですけど、 将来的な移植性を考えるとやっぱ習得したいですねぇ。。。
372 名前:デフォルトの名無しさん mailto:sage [2007/10/23(火) 23:57:44 ] 「ひとこぶらくだはひとこぶうんち ふたこぶらくだはふたこぶうんち これはうそ!」 lower/upper camel という字面を見てたら思い出した子供時代のはかない記憶。
373 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 12:20:43 ] Overload setっていうのでtoStringがかぶらなくなるのかと思ったら import std.string; class Foo { void bar(char* ptr) { string s = toString(ptr); // std.string.toString(char*)呼んで欲しい // けどObjcet.toStringにマッチしないのでエラー } } ダメなのか。まあstd.conv.toができたからいいけど
374 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 13:14:32 ] string s = .toString(ptr); って書けばいいから、できなくても別に不便ではないな
375 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 13:29:20 ] ExceptionとErrorの使い分けがわかりません>< おしえてくだしあ><
376 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 13:31:57 ] class Exception; 回復可能な例外は全て Exception クラスから派生すべきです class Error: object.Exception; 回復不可能な例外は Error クラスから派生すべきです
377 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 13:33:33 ] 回復が可能かそうでないかの区別がつきません><><><
378 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 14:57:06 ] 例外が回復可能かどうかなんて設計段階で判断できるような。 設計で判断できなくても経験積めばここは復帰無理だなっていうのが直感で分かるように。
379 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 15:35:55 ] どの範囲で復帰不能か可能か、って話もあるしな
380 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 15:38:23 ] なにがどうなると回復不可能になるの?
381 名前:デフォルトの名無しさん mailto:sage [2007/10/24(水) 15:46:00 ] 回復が不可能になるとだな