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/
252 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 17:40:25 ] 把握しました
253 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 17:50:04 ] 本当にconstとかinveriantとか必要なのか? C++から移ってきたときはほしいなと思ったこともあったけど、現状のconstとinveriantを見てるとうざったさ以上の便利さを感じない… もっと上手い方法なかったのかな…
254 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 18:03:42 ] デリゲート便利だなw Scheme触って帰ってきたら使わずには居られないwwww
255 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 19:50:18 ] >>253 constまわりは、まだまだこれからって感じだと思う。 現時点では文字列をimmutableにするためにしか使われてないし。 評価を下すのはまだ早いと思う。 現状のconstまわりの仕様には問題あると思うが。 文字列(配列)のスライスはコピー作らないから、文字列をimmutableにする意味はあると思うし、現時点では、 「inveriantは文字列をimmutableにするためのもの」 って割り切って、それ以外の機能は使わないようにすれば何とかやっていけそうだと俺は感じてる。
256 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 23:12:18 ] >>244 ありがとうございます 作れました!
257 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 02:46:33 ] 勇気出してD2を入れることにしたぞー!
258 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 07:56:12 ] macroって結局なんなの?
259 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 13:09:30 ] >>258 カンファレンスのをるたんのスライド見れば分かるよ。
260 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 14:45:02 ] それでも俺は1系列を使い続ける
261 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 16:50:22 ] >260 1系列は俺に任せてお前達は先に行け! まで読んだ
262 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 17:38:26 ] >>261 文字数増えてるという不思議。
263 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 18:20:58 ] >>262 つまり行間じゃなくて字間を読んだということか
264 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 20:27:45 ] D2.0のstring周りの改変は 暗黙のコピーがいやでしょうがない どこでどう動いてるか把握したい 文字列で、知らぬ間にメモリをちょっとでも使われるのも嫌でたまらん ってことかな。 スクリプトライクな手軽なコーディングを できるだけ殺さないように、がんばってんだよね
265 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 22:14:00 ] みんな phobos と tango のどっち使ってる? phobos は単純明快だが機能面でちょっと不足な上にバグ多いし、 tango は機能面はある程度充実してるけどドキュメントが整備されてない上に使いにくかったりするし、 なんかこう、どっちも中途半端なんだよなぁ。
266 名前:デフォルトの名無しさん [2007/10/20(土) 22:28:27 ] >>248 全角?も駄目なんだな。これで我慢しとけ。 bool もしかしてnullですか(Object nullかどうか調べるオブジェクト) { return nullかどうか調べるオブジェクト is null; }
267 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 00:09:01 ] もしかしてnullですか?
268 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 00:10:25 ] もしかしてnullですか¿
269 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 00:11:09 ] nullですよ¡
270 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 03:22:06 ] >>264 藻前は組み込みに向いている Dが組み込みに対応するその日まで Dで生き延びろ
271 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 03:25:55 ] >>264 の発言は>>264 自身のことじゃなくてDの文字列仕様の意図でしょ?
272 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 07:58:34 ] >>265 両者の良いところが全部一つに集まると、 素晴らしき真のDが誕生してどんな願いも叶えてくれると伝説にはあります
273 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 09:51:27 ] >>270 げ、するどい 正直びっくりした。 組み込み屋です。 Dが早く使えないかねらってます。
274 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 12:02:31 ] ちょっと和んだ
275 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 13:55:30 ] >>273 そう考えると2.006 invariant stringは有望だなあ。 Walterたんが「リアルタイム処理ではmalloc/freeよりGCの実行制御のほうが有利なこともある」 ってるが、そういうのは確かにあるので分かる気はする。 実際free listと組み合わせるとなかなか高速に動作してくれるし。 ada並の用途になるとDも本望だろう。
276 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 14:37:40 ] >>272 それを後の人は「闇鍋」と呼んだ。
277 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 14:57:01 ] D1〜D7まで揃えるとDragonが(ry
278 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 15:34:37 ] 組み込み屋ってなにするひと?
279 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 15:45:17 ] >>278 ttp://ja.wikipedia.org/wiki/組み込みシステム
280 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 15:57:58 ] >>279 サンクス
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; に代表される 気持ち悪いインタフェースがなくなればってのも加えておいてくれ