[表示 : 全て 最新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/

223 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 21:59:20 ]
>>209-211
さっぱりわからんのだが・・・
idup付ける代わりにassumeUniqueで済むってことだけじゃないよな?
余計にタイプ数増えるんだが
本当はassumeUniqueは何のためのものなの?

224 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 22:05:37 ]
>>223
idupはデータのコピーが行われるが、
assumeUniqueはコピーが行われない。

225 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 22:40:23 ]
>>224
うーん
そうですか
もうちょっと暗黙のコピーが発生するのを許容して
明示的な指定が減るようになったらいいね

226 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 22:50:17 ]
テストしてなさすぎワロス
いろいろ試してみたがdmd2.006はstd.formatが壊れてるな

//>writef
//testtest1010
//%s=%dvalue200
import std.stdio;
void main(){
 writef("test", "test", 10, 10, "\n%s=%d", "value", 200, "\n");
}

227 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 23:01:33 ]
>>226
>Breaking change: std.stdio.writef can now only accept a format as its first argument.

228 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 23:21:22 ]
>>227
あ 最後に書いてあるのそういうことか thx

229 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 23:34:02 ]
stringにconstつけてみたりinvariantになったりするのはWalterたんからの「ソース見直せリファクタリング汁!!」というご命令に違いない!

230 名前:デフォルトの名無しさん mailto:sage [2007/10/17(水) 23:57:41 ]
Andrei Alexandrescuありがとう、そしてがんばれー
とエールを送っておこう

231 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 01:09:50 ]
>>230
Andrei Alexandrescu先生のTMPが見られるのは今やD言語だけ!(でもない)



232 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 01:40:11 ]
gdcってdmdで言うv2.0以降はあるの?

233 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 01:46:50 ]
svnで対応してるよ。

234 名前:デフォルトの名無しさん mailto:sage [2007/10/18(木) 19:31:42 ]
>>206
ありがと しらんかった

235 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 00:01:06 ]
coroutineが、phobosでほしいなぁ

236 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 00:14:29 ]
そこは言語仕様に組み込むべきだろう。

237 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 06:13:14 ]
dmd2.004 以降でこういうちょっと怪しいのをコンパイルしようとすると途中で固まる。
void main(){ f([[]]); }
void f(int[][] a){}

f(cast(int[][])[[]]); ならおk

-v 付きでコンパイルすると semantic3 までは表示されるけど code が表示されずに止まってる。
何これ?

238 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 06:40:44 ]
D言語で作られたアプリケーションって何があるよ

239 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 11:33:27 ]
Dで作ったOS
それがDOS

240 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 11:37:56 ]
ttp://www.digitalmars.com/d/phobos/std_string.html

int ifind(in const const char[] s, in const const char[] sub);

なんなんだ、const だらけかよ。
inつかっても constをこれだけ使うっていうのがなんとも・・・

241 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 12:44:04 ]
in const constってどういう意味ですかwwww
inって
invariant const scopeだったよねwwwconst三つですかwwwww



242 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 13:09:17 ]
typo
ソース見れ

243 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 13:36:42 ]
D言語でstaticライブラリをつくる方法はどうやるのでしょうか。
コンパイル激早なんで、やる必要があまりないのかもしれませんが・・・

244 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 13:50:03 ]
budなら
bud -lib main.d

何も使わないでやるなら
dmd -c main.d
lib -c -l main.lib main.obj

245 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 13:50:18 ]
>>240
なんかintつけるとDDocが変なものを生成する。

246 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 14:18:48 ]
static引数まだー?

247 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 16:20:50 ]
>>246
なにそれ

248 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 16:53:40 ]
関数名に?入れて述語ry

そういやなんで?とか!とかは識別子にならないの?

249 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 17:01:03 ]
scopeクラスが単にnew ScopeClass();でエラー出さないでしかもスコープ抜けてもデストラクタが呼ばれないですけどこれはバグ?

250 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 17:03:49 ]
やっべDMD古いからかな。新しいので試してみます。一応古いのは1.020です

251 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 17:24:27 ]
>>249
scope周りはバグだらけ。もうどうしようもない



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つのライブラリ名入れることも無くない?






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

前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