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


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

D言語 Part15



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 ]
回復が不可能になるとだな






[ 続きを読む ] / [ 携帯版 ]

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

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