トップページ⇒tech
1001コメント223KB

D言語 Part28

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2011/08/24(水) 06:02:12.35
プログラミング言語 D (D Programming Language) について語るスレッドです。

■前スレ
D言語 Part27
http://hibari.2ch.net/test/read.cgi/tech/1303022487/

■本家
http://www.digitalmars.com/d/
http://www.d-programming-language.org/ (ドキュメント)
http://www.kmonos.net/alang/d/ (和訳)

■コンパイラ
http://www.digitalmars.com/d/dcompiler.html (DMD, 本家)
http://dgcc.sourceforge.net/ (GDC, gccフロントエンド)
http://www.dsource.org/projects/ldc (LDC, バックエンドにLLVM)

■参考URL
http://f17.aaa.livedoor.jp/~labamba/ (D言語研究)
http://f17.aaa.livedoor.jp/~labamba/?D%B8%C0%B8%ECBOF (D言語BOF)
http://dsource.org/ (dsource)
http://tinyurl.com/candcpp2d2 (C/C++に疲れた人のD言語2.0)
http://www.kmonos.net/alang/wnd/ (わかったつもりになるD言語)
http://shinh.skr.jp/d/ (SDL, SDL_*, OpenGL, GLU, glutのポーティングとか)
http://shoo.s20.xrea.com/shoo/programing (D言語とTangoの入門講座)
http://www.nicovideo.jp/mylist/4453698 (D言語で作られた芝ゲー niconico動画)
http://www.asahi-net.or.jp/~cs8k-cyu/ (ABA Games)
http://dusers.dip.jp (D言語友の会)
http://www.wish.sakura.ne.jp/desuno/game/Drawing (PrincessDrawing! D言語で作られた横スクロールSTG)
0002デフォルトの名無しさん2011/08/24(水) 07:05:17.43
■参考URL その2
ttp://www.ku6.jp/keyword6/1.html (SDLのポーティング 最新)

■ IDE
ttp://forums.codeblocks.org/index.php?board=20.0 (Code::Blocks)
ttp://www.dprogramming.com/entice.php (Entice Designer)
ttp://www.dsource.org/projects/descent (Descent)
ttp://www.dsource.org/projects/poseidon (Poseidon)
ttp://alexanderbothe.com/?id=27 (D-IDE)
ttp://www.dsource.org/projects/visuald (Visual D)
ttp://codepoet.sourceforge.net (CodePoet ※計画中)

■過去スレ、関連スレ
http://makimo.to:8000/cgi-bin/search/search.cgi?q=D%8C%BE%8C%EA&sf=2&all=on&view=table&shw=5000

■その他関連スレ
統合開発環境Eclipseプラグイン開発QA
http://pc11.2ch.net/test/read.cgi/tech/1081517094/

"Code of the Nerds" Digital Mars C/C++
http://hibari.2ch.net/test/read.cgi/tech/1044210976/
0003デフォルトの名無しさん2011/08/24(水) 07:15:11.52
  D  >>1 乙 もうお前に用はない 
 く|)へ
  〉   ヽCノ
 ̄ ̄7  ヘ/
  /   ノ
  |
 /
 |
/
0004デフォルトの名無しさん2011/08/24(水) 13:28:18.93
>>1乙

PrincessDrawing!ってリンク切れてるな
0005デフォルトの名無しさん2011/08/24(水) 16:09:32.22
ディ、ディ、D言語wwwwwwwwwwwwwwww
0006デフォルトの名無しさん2011/08/24(水) 16:17:11.86
>>4
これかな
http://www.desunoya.sakura.ne.jp/product/Drawing/index.html
ソースとかはないんだな
0007デフォルトの名無しさん2011/08/24(水) 19:41:32.55
>>1

テンプレ乙

GDC は、今はこっちでメンテされているので、次回からよろしゅう
ttps://bitbucket.org/goshawk/gdc/wiki/Home
0008デフォルトの名無しさん2011/08/24(水) 20:30:53.45
ソース公開されるの待ってる
0009デフォルトの名無しさん2011/08/24(水) 23:10:05.83
ttp://ideone.com/TPiMM
仕様…なのか…?
0010デフォルトの名無しさん2011/08/24(水) 23:39:24.44
>>9
仕様でおk

これの一番下とおなじような状況
ttp://www.kmonos.net/alang/d/2.0/template-mixin.html
0011デフォルトの名無しさん2011/08/24(水) 23:53:32.03
mixinの内容は外部から守られていて、mixin側の内容の意図は保証されるわけね。
0012デフォルトの名無しさん2011/08/24(水) 23:53:38.11
なるほどなぁ

プロパティが黙って違う値を返してくるもんだから30分くらい嵌ってしまった
気をつけんと
0013デフォルトの名無しさん2011/08/25(木) 00:53:46.53
C++そこそこやったんで
More Effective C++に手を出そうとしている俺に
Dの魅力を語ってくれ
0014デフォルトの名無しさん2011/08/25(木) 01:10:47.44
>>13
違いを把握した上で
その上で有用だと思ったのなら
その時にまた来い

強いて言えば、愛だ。
他に語る事などない。
0015デフォルトの名無しさん2011/08/25(木) 01:17:02.29
>>13
ツールとして見るのではなく
プロジェクトやコミュニティに対する当事者意識を持てるかどうか
0016デフォルトの名無しさん2011/08/25(木) 01:19:33.16
んじゃC#やるとするか
0017デフォルトの名無しさん2011/08/25(木) 01:35:38.40
特に引き留める理由もないな
0018デフォルトの名無しさん2011/08/25(木) 07:58:41.76
お前ら愛がないぞw
0019デフォルトの名無しさん2011/08/25(木) 09:53:46.38
D.NETがあれば・・・あるんだっけか
0020デフォルトの名無しさん2011/08/25(木) 10:54:27.84
A言語
B言語
E言語

まだかよ
0021デフォルトの名無しさん2011/08/25(木) 11:01:54.28
Cが何の後継か調べて自由研究の題材にでもしてろ
0022デフォルトの名無しさん2011/08/25(木) 12:02:37.58
Eきむち
0023デフォルトの名無しさん2011/08/25(木) 20:08:42.45
http://kmonos.net/alang/abc/
0024デフォルトの名無しさん2011/08/25(木) 20:13:07.80
>>23
今朝「帰ったらd.y.dでmerdの記事見直そう」と思ってて
今まで忘れていたために気にかかっていたところだったありがとう
0025デフォルトの名無しさん2011/08/25(木) 23:18:39.02
>>20
当然AtoZ全部ある
0026デフォルトの名無しさん2011/08/26(金) 08:01:32.06
復活
0027デフォルトの名無しさん2011/08/26(金) 20:38:26.55
>>25
ガセ乙
0028デフォルトの名無しさん2011/08/26(金) 20:55:48.92
>>27
なぜガセと思ったのか詳しく
ガセと言いたかっただけ乙
0029デフォルトの名無しさん2011/08/26(金) 21:50:07.32
余裕で全部有るな
http://en.wikipedia.org/wiki/List_of_programming_languages
0030デフォルトの名無しさん2011/08/26(金) 21:51:40.91
HとIがない
0031デフォルトの名無しさん2011/08/26(金) 21:52:06.57
NもOも
0032デフォルトの名無しさん2011/08/26(金) 21:54:34.57
フシアナEYE
0033デフォルトの名無しさん2011/08/26(金) 22:11:40.03
C言語といえばC言語だろ
0034デフォルトの名無しさん2011/08/26(金) 22:44:36.31
公式名称でアルファベット一文字でなければいけないのかそうでないのかハッキリさせてくれないか
0035デフォルトの名無しさん2011/08/26(金) 23:41:44.47
つまらん流れだな
何回目だよ
0036デフォルトの名無しさん2011/08/27(土) 03:29:30.77
もうPythonでいいよ
0037デフォルトの名無しさん2011/08/27(土) 04:24:35.03
パイトン?
0038デフォルトの名無しさん2011/08/27(土) 06:15:29.90
pythonもrubyもllvm経由でコンパイルできるようになってるし
webgl, webclなんかも出てきてるし
dでなければならない理由がなくなってしまった
これも時代の流れか
0039デフォルトの名無しさん2011/08/27(土) 07:13:59.57
お前がどんな理由でD言語を使ってたのか謎
0040デフォルトの名無しさん2011/08/27(土) 08:33:28.46
Dをつかう理由それはそこにDがあるからだ
というかMLとかに流れてるのメールの流量がすごい
なんなのあれ…
0041デフォルトの名無しさん2011/08/27(土) 10:04:39.25
Dの最大の欠点はウォルたんが死んじゃったら終わっちゃうこと
こんなやばいもん本腰入れて使えないよ
0042デフォルトの名無しさん2011/08/27(土) 10:32:03.86
口じゃ嫌がってても体は正直
0043デフォルトの名無しさん2011/08/27(土) 13:13:52.87
うぉるたん
「俺の財宝か?欲しけりゃくれてやる・・・。
 探せ! この世の全てをそこに置いてきた!」
0044デフォルトの名無しさん2011/08/27(土) 16:16:31.25
ウォルたんマジウォルウォル
0045デフォルトの名無しさん2011/08/27(土) 19:13:11.92
Dの意思継ぐやつなんていねーよ
0046デフォルトの名無しさん2011/08/27(土) 19:20:40.92
D言語(笑)
0047デフォルトの名無しさん2011/08/27(土) 19:41:53.47
Javaはそれなりに成功というか普及したのに
Dはなんでこうなった
0048デフォルトの名無しさん2011/08/27(土) 19:48:08.21
俺が見放したから
でも次の規格ができたら戻ってくる予定
0049デフォルトの名無しさん2011/08/27(土) 21:18:20.12
えっ
0050デフォルトの名無しさん2011/08/27(土) 22:13:43.65
営利企業のものではなくて、コミュニティのものだ。
これ、メリット、だよね?ね?
0051デフォルトの名無しさん2011/08/28(日) 02:27:20.38
でも何故か開発がクローズドなんだよねw
0052デフォルトの名無しさん2011/08/28(日) 02:35:57.75
言語仕様がオープンなら可能性はゼロじゃない
0053デフォルトの名無しさん2011/08/28(日) 18:15:36.32
Oops! Internet Explorer could not find www.digitalmars.com
0054デフォルトの名無しさん2011/08/28(日) 18:23:16.47
D言語おわた?
0055デフォルトの名無しさん2011/08/28(日) 18:52:29.50
始まってもいないよ
0056デフォルトの名無しさん2011/08/28(日) 22:03:21.67
直ったな
0057デフォルトの名無しさん2011/08/28(日) 23:07:50.42
$ type test.d
import std.conv;
void main() {
 parse!int("42", 10);
 parse!int("-42", 10);
}
$ dmd -run test.d
std.conv.ConvException@std\conv.d(38): std.conv(1209): Can't convert value `-42' of type string base 10 to type int


(゚д゚)
0058デフォルトの名無しさん2011/08/29(月) 00:39:59.77
unittestからして負数考慮してねえ・・・
0059デフォルトの名無しさん2011/08/29(月) 04:31:43.83
win版の仕様です
0060デフォルトの名無しさん2011/08/29(月) 10:29:28.12
ただ勝ちあるのみ
0061デフォルトの名無しさん2011/08/29(月) 20:23:58.29
std.dateをimportして、parseとtoUTCStringとtoDateStringを使ったら、toDateStringのみタイムゾーンが違うようです。
parseやtoUTCStringと同じタイムゾーンで使うにはどうすればいいのでしょうか?

std.datetimeへの移行は、未翻訳のドキュメントを読むのがつらいので、できれば今は避けたいです・・・。
0062デフォルトの名無しさん2011/08/29(月) 21:01:16.79
でもstd.dateは消滅するんじゃないかなあ
バグだとしても修正されなさそうだし
0063デフォルトの名無しさん2011/08/29(月) 21:12:42.59
どうせ同じコードを数ヶ月先まで使おうなんて思うわけ無いしstd.date使ってもいいだろ
0064デフォルトの名無しさん2011/08/29(月) 23:19:39.54
そのりくつはおかしい
0065デフォルトの名無しさん2011/08/29(月) 23:34:37.76
30年も持つソフトを作ろうとは思わないだろう?
Dは他言語の100倍の速さで時間が流れている
そういうことだ
0066デフォルトの名無しさん2011/08/29(月) 23:57:47.07
自分は考え方を変えた
30年も面倒見れないわ
もし30年もメンテするなら
途中で誰かに引き継ぐ必要があるが
Dなんて普及しないもん誰が使いたがるんだ
0067デフォルトの名無しさん2011/08/30(火) 00:28:49.81
使いたがらせる必要性について
0068デフォルトの名無しさん2011/08/30(火) 01:16:46.24
使いたがる人間性について
0069デフォルトの名無しさん2011/08/30(火) 01:33:11.65
個性
0070デフォルトの名無しさん2011/08/30(火) 03:11:57.12
というか30年の歴史持ってる言語がCとfortranくらいしかなんじゃないか…
lisp辺りもいけるかよくわからんけど
0071デフォルトの名無しさん2011/08/30(火) 03:14:04.45
COBOL
0072デフォルトの名無しさん2011/08/30(火) 03:14:52.37
http://hibari.2ch.net/test/read.cgi/tech/1098953121/829
うむ…C意外と若かったな
0073デフォルトの名無しさん2011/08/30(火) 14:36:07.12
こんなの思いついた 引数でenum定義できたら面白そうじゃね?
void hoge(enum { a, b, c } type) {
  writeln(type);
}
hoge(type.b);
とか
0074デフォルトの名無しさん2011/08/30(火) 14:43:23.64
それ呼び出し側のカッコの中だけ
名前空間変わるの?

オーバーロード・オーバーライドも難しくなりそう

# 本音はIDEがつくりにくくなるから反対
0075デフォルトの名無しさん2011/08/30(火) 15:24:51.56
引数のtype.bはどこから出てくんのーとかな
俺も反対
0076デフォルトの名無しさん2011/08/30(火) 15:33:16.01
いっそ多相enumが入ればいい。

void hoge(enum { a, b, c } arg);
void foo(enum { c, d, e } arg);

hoge(enum.c); // {a, b, c}集合の中のcとして解釈
foo(enum.c); // {c, d, e}集合の中のcとして解釈

void bar(enum {a, b, c, d, e} arg)
{
 final switch(arg){
  case enum.a, enum.b, enum.c: hoge(arg); break; //argは{a,b,c}
  case enum.d, enum.e: foo(arg); break; //argは{d, e}
 }
}

Dに型推論は無いので所々キャストが必要になるかもしれない。
0077デフォルトの名無しさん2011/08/30(火) 17:14:03.26
void bar(enum {a, b, c, d, e} arg)
{
enum {a, b} aaa;
 switch(arg){
  case enum.a, enum.b, enum.c: hoge(arg); break; //argは{c}
  case enum.d, enum.e: foo(arg); break; //argは{d, e}
 }
}

ますます酷くなるな
0078デフォルトの名無しさん2011/08/30(火) 18:27:00.51
そんなの実装する変態言語なんてあるわけない
強いていうならどこかのDとかいう言語くらいだな
0079デフォルトの名無しさん2011/08/31(水) 04:25:42.91
D言語で作られた有名なソフトとかあんの?
0080デフォルトの名無しさん2011/08/31(水) 04:44:11.30
いりす症候群とか
0081デフォルトの名無しさん2011/08/31(水) 06:27:25.57
ecmascript+html5→アプリケーション
JavaVM|dotNet→ローカルデータ処理、OS管理
ruby|python→操作簡略化、シェルスクリプト

後は高速処理特化言語で並列化だろうな
プロセスとパイプを扱えるライブラリがあれば
シェルスクリプトの代わりもできるかもしれないけど
mainが邪魔すぎる
0082デフォルトの名無しさん2011/09/01(木) 01:20:17.47
いつの間にかKindleStoreでD言語の公式仕様書が2.99ドルで売られてるけど大丈夫なのかこれ
0083デフォルトの名無しさん2011/09/01(木) 01:25:06.26
ウォルターがキレたら仕様変更があるだけだから問題ないね
0084デフォルトの名無しさん2011/09/01(木) 01:27:01.60
TDPLじゃなくて
http://d-programming-language.org/ そのままかと思ってるけど
0085デフォルトの名無しさん2011/09/01(木) 01:30:33.00
TDPLって何?
東京ディズニープアーランド?
0086デフォルトの名無しさん2011/09/01(木) 01:38:41.22
ttp://www.walterbright.com/
ここからリンク張ってあるくらいだから本人の副収入だべ

>>85
ttp://d.hatena.ne.jp/repeatedly/20110506/1304651110
0087デフォルトの名無しさん2011/09/01(木) 01:47:19.55
The D Programming Language

ああこれね
0088デフォルトの名無しさん2011/09/01(木) 21:48:37.15
2.055まだ?
0089デフォルトの名無しさん2011/09/01(木) 23:52:22.85
>>81
ecma⊂html5
0090デフォルトの名無しさん2011/09/02(金) 00:06:15.13
ecmaはecmaだろ
jscriptだってecmaの処理系だぞってスレ違いか
0091デフォルトの名無しさん2011/09/02(金) 07:36:26.51
近い将来javascriptに変換、あるいはインタプリタ実装できてない言語は廃れると思う
windowsユーザーよりもhtml5対応ブラウザユーザーの方が多くなるだろうから
ウェブアプリを開発できない言語は先生きのこれない
0092デフォルトの名無しさん2011/09/02(金) 07:46:43.91
ブログにでも書いてろ
0093デフォルトの名無しさん2011/09/02(金) 11:51:41.61
ハハハワロス

組み込みみたいにシビアな世界ではそんなもの通用しないから
0094デフォルトの名無しさん2011/09/02(金) 12:32:34.70
出た出た「○×みたいにシビアな世界」

そのセリフを吐きながら新しいものを全く吸収できず自滅していった技術者が
過去どれだけいたっけかな。

メインフレーム以外はおもちゃと断じていた奴
ゲームは機械語プログラミングが全てと信じていた奴
etcetc
0095デフォルトの名無しさん2011/09/02(金) 14:36:10.97
みんなでD言語を普及させようぜ。
そのためのキラーアプリを作ろう。
どんどんアイディアを言ってくれ!
0096デフォルトの名無しさん2011/09/02(金) 14:37:10.14
普及しなくてもいいんじゃね派が多数
0097デフォルトの名無しさん2011/09/02(金) 15:17:22.92
それでもD言語のキラーアプリは、一つや二つくらいは必要
0098デフォルトの名無しさん2011/09/02(金) 15:18:03.47
ひさしぶりにきのこ先生みた
0099デフォルトの名無しさん2011/09/02(金) 15:19:21.88
Dでjavasriptコンパイラ作るか
0100デフォルトの名無しさん2011/09/02(金) 15:34:41.72
>>99それイイね!
0101デフォルトの名無しさん2011/09/02(金) 17:08:33.53
忘れられたDMDScript・・・
http://www.digitalmars.com/dscript/
0102デフォルトの名無しさん2011/09/02(金) 18:33:00.23
Go を思い出してしまった
あれどうなったんだろ
0103デフォルトの名無しさん2011/09/02(金) 18:55:36.22
>>101すまぬ・・・すまぬ・・・DMDScriptよ・・・。
他の考えようか。
0104デフォルトの名無しさん2011/09/02(金) 19:03:35.86
Dでプログラミングしたら
javascript吐くのとかは無理?
0105デフォルトの名無しさん2011/09/02(金) 19:22:06.05
日本語でおk
0106デフォルトの名無しさん2011/09/02(金) 19:30:34.83
D言語からJavaScriptへのトランスレータみたいなものは、有名なものは
多分まだない。
0107デフォルトの名無しさん2011/09/02(金) 19:37:08.27
>>104いまから>>106を作ろう!
0108デフォルトの名無しさん2011/09/03(土) 00:32:31.91
Webアプリケーションを作ればいいと思うよ
0109デフォルトの名無しさん2011/09/03(土) 00:37:34.13
仕様変更がまだ怖いから来年本気出す
0110デフォルトの名無しさん2011/09/03(土) 01:09:52.05
仕様変更が怖くて何でD使ってんの?
0111デフォルトの名無しさん2011/09/03(土) 01:30:14.23
将来性があるから
0112デフォルトの名無しさん2011/09/03(土) 02:42:20.53
仕様変更しない言語なんて無いだろ
CもC++もC#もObjective-CもJavaもJavascriptも何らかの形で常に仕様変更してるよ
0113デフォルトの名無しさん2011/09/03(土) 04:33:27.18
CやC++の仕様変更周期はまるで亀の一生だが、DのそれはCエレガンスの寿命みたいなもんだ。
0114デフォルトの名無しさん2011/09/04(日) 15:45:15.15
5年前に書いたDプログラムを今コンパイルしたら全部の行でエラー出るんだろ
そんな言語使えるか
0115デフォルトの名無しさん2011/09/04(日) 15:49:21.61
仕事増えていいじゃん
0116デフォルトの名無しさん2011/09/04(日) 16:04:31.69
古いバージョン使えばエラーでないよ^^
0117デフォルトの名無しさん2011/09/04(日) 16:26:12.12
全部の行は無いだろ
'}' だけの行とか絶対出ないし
総合的に見てもせいぜいエラー率150%くらいのもんだろ
0118デフォルトの名無しさん2011/09/04(日) 21:19:29.59
関数の引数に「in」って付けたとき、昔はC++で言うconst参照の意味だったと思うのだけど、今はそうなってないのはバグ?
関数の引数に「scope」って付けても何も変わらないような気がするけど、値渡しで「const scope」無意味じゃない?
0119デフォルトの名無しさん2011/09/04(日) 21:24:35.44
enum str = "a";
str = "b";
代入できちゃうな
これってバグだよね
0120デフォルトの名無しさん2011/09/04(日) 22:22:46.45
出来ないけど何言ってるの?
http://ideone.com/AjSpV
0121デフォルトの名無しさん2011/09/04(日) 22:31:49.86
そのコンパイラ一周りも古い
肩の力抜けよ。ここはDスレだぜ
0122デフォルトの名無しさん2011/09/04(日) 22:32:53.43
ideoneがランタイムエラーになっているのはlinuxだから。
windowsだと普通に代入できるよ。
そもそも、そこは「Error: constant str is not an lvalue」とコンパイルエラーになるべき。
0123デフォルトの名無しさん2011/09/08(木) 15:22:59.79
2.055
0124デフォルトの名無しさん2011/09/08(木) 15:51:47.98
キターーーーー
0125デフォルトの名無しさん2011/09/08(木) 16:04:26.57
というのはガセ
0126デフォルトの名無しさん2011/09/08(木) 16:08:01.13
ライオンとピーマンを追加してカロリー0の豆腐を考慮に入れたらしい
0127デフォルトの名無しさん2011/09/08(木) 19:38:22.26
圧倒的じゃないかdmdのバグ量は…
0128デフォルトの名無しさん2011/09/08(木) 22:00:36.32
バグを作る為に新機能を追加してるんだってば
D使いのくせにそんな事も知らないの?
0129デフォルトの名無しさん2011/09/08(木) 23:32:21.70
コンパイラやライブラリだけじゃなくユーザコードもバグらせるDさん
0130デフォルトの名無しさん2011/09/08(木) 23:37:03.05
そういう時はバージョンを戻せば大丈夫でしょw
0131デフォルトの名無しさん2011/09/09(金) 22:40:09.84
ttp://techtarget.itmedia.co.jp/tt/news/1109/08/news04.html
Tangoはじまったな
0132デフォルトの名無しさん2011/09/10(土) 01:49:26.32
itmediaとな…その時点で、D関係ねぇな…
うん関係なかったな
0133デフォルトの名無しさん2011/09/10(土) 02:20:33.13
>> 57

http://d.puremagic.com/issues/show_bug.cgi?id=6609
Bugzillaに登録して

https://github.com/D-Programming-Language/phobos/pull/250
Pull request出した
0134デフォルトの名無しさん2011/09/10(土) 08:02:33.69
D言語はJavaやC#が後方互換性を維持してる意義がよく分かる言語だな
もはやぼくのかんがえたさいきょうのぷろぐらみんぐげんご
0135デフォルトの名無しさん2011/09/10(土) 08:37:41.65
>>133
乙なんだな

bitbucketばっかり使ってるけどgithubにもアカウント作っとこうかしらん
0136デフォルトの名無しさん2011/09/10(土) 14:45:07.68
おい2.054から2.055にしたのにoverride:がthis()にかかってるとか
どうして今までコンパイル通ってたのかわからないような部分を修正しただけで動いちまったぞ
どうなってるんだ?Dはもう終わっちまったのか?
0137デフォルトの名無しさん2011/09/10(土) 14:46:17.98
焦らしプレイか……。
0138デフォルトの名無しさん2011/09/10(土) 16:44:42.91
うひゃあ、getExt()をextension()に変えたりfnmatch()をglobMatch()に変えたりしてたら
途端に何もかも動かなくなった
びっくりするほどユートピア!
0139デフォルトの名無しさん2011/09/10(土) 18:08:47.95
俺のソース上のstd.algorithm.removeがコンパイル通らなくなったから
どこが悪いのかとunittestと比較しようとしたら
unittestからコピペしてきたのもコンパイル通らなくてワロタ
0140デフォルトの名無しさん2011/09/10(土) 18:12:19.45
まさにD!
0141デフォルトの名無しさん2011/09/10(土) 19:55:30.77
std.path の変更はただのリネームじゃなかった気がするが

・・・と思ったらレファレンスが更新されてNEEEE!
0142デフォルトの名無しさん2011/09/10(土) 20:27:51.43
unittestが仕様です は罠
0143デフォルトの名無しさん2011/09/10(土) 21:10:10.61
D back in top 20!
ttp://www.tiobe.com/index.php/content/paperinfo/tpci/index.html?a
0144デフォルトの名無しさん2011/09/10(土) 21:42:16.19
void main(){}

2.053 => 146,972 バイト
2.054 => 149,532 バイト
2.055 => 150,556 バイト

順調にむくんでいってる
0145デフォルトの名無しさん2011/09/10(土) 21:58:32.44
そのうち150,550 byteくらいはGCなんだろうな
0146デフォルトの名無しさん2011/09/10(土) 21:58:49.27
>>139は間違いだった反省している
むしろ今までコンパイル通ってたのがおかしかった
0147デフォルトの名無しさん2011/09/10(土) 22:45:55.54
globMatch()はなにかおかしい…。たまにglobMatch内でAssersionFailure起こす。
0148デフォルトの名無しさん2011/09/10(土) 22:56:47.36
なんか053から055にバージョン上げたら文脈によってnewで落ちるようになった
またGC周りの何かの予感が
自分のバグならいいけど・・いやいくないけど
0149デフォルトの名無しさん2011/09/10(土) 23:02:01.31
>>147
'['が含まれてるパスがおかしいのは確認した

というか'['とか普通にパスに使える文字じゃないの?なんなのこの仕様
0150デフォルトの名無しさん2011/09/11(日) 00:06:28.19
第2引数何指定してる?
0151デフォルトの名無しさん2011/09/11(日) 00:38:38.06
>>149
UNIX系のシェルだと、[ABC]でAかBかCのどれか、みたいなワイルドカードが使えるものがあるんだよ。

……本当に'['を指定したい時のための記法は用意されてるんだろうか。
0152デフォルトの名無しさん2011/09/11(日) 00:46:08.96
fnmatch()には「エスケープはできません(キリッ」と書かれてのけぞったが
replace("[", "[[]")でなんとかなった
glabMatchはそれやるとassertで落ちる
0153デフォルトの名無しさん2011/09/11(日) 05:03:12.23
globMatchの第2引数では[]{}は特別な意味持ってるから開きと閉じの個数が合ってないと落ちるよ、てか落とすよ
0154デフォルトの名無しさん2011/09/11(日) 05:20:47.30
D言語のライブラリ、Tangoの次はMank(ry
0155デフォルトの名無しさん2011/09/11(日) 08:35:13.32
大人しく普通のワイルドカードで比較するか
0156デフォルトの名無しさん2011/09/11(日) 08:45:34.34
そのうち例外出すように変わるだろうね
0157デフォルトの名無しさん2011/09/11(日) 09:40:41.88
男らしく副作用が多すぎて使い物にならない関数の代表を目指してほしい
0158デフォルトの名無しさん2011/09/11(日) 09:55:54.49
strtokさんを超えてくれ
0159デフォルトの名無しさん2011/09/11(日) 17:34:05.26
ドキュメントは d-p-l のサイトだけ更新されたな
やっぱりこっちが本家なのか

日本語との照会がしづらくなるのう
0160デフォルトの名無しさん2011/09/11(日) 18:06:34.25
public auto hoge() @property { return 0; }
これがコンパイル通らないのって仕様?@2.055
public int hoge() @property { return 0; }
や
public auto hoge() { return 0; }
はもちろん通る
0161デフォルトの名無しさん2011/09/11(日) 18:08:59.49
std.path.getExt() -> extension() の危険な罠を回避した
手をつけるのを遅らせておいてよかった・・・
0162デフォルトの名無しさん2011/09/11(日) 18:10:02.59
@property {
public auto hoge() { return 0; }
}
でとりあえずコンパイルはできるみたい。
0163デフォルトの名無しさん2011/09/11(日) 18:14:38.02
>>161
あれどうしてあんな風になったんだろ?
0164デフォルトの名無しさん2011/09/11(日) 18:25:14.51
元の getExt() にドットが含まれない方が違和感あったから
俺はこっちがいい
0165デフォルトの名無しさん2011/09/11(日) 19:25:24.14
static if (__VERSION__ < 2055) {
std.algorithm.sort!"std.path.fcmp(a.name,b.name)<0"( list );
} else {
std.algorithm.sort!"std.path.filenameCmp(a.name,b.name)<0"( list );
}

こういうのをもっと簡単に書けないものか・・・

alias pred UZEEEEEEE
0166デフォルトの名無しさん2011/09/11(日) 20:08:22.80
何度もやるならalias使うしか
0167デフォルトの名無しさん2011/09/11(日) 20:52:58.99
std.path.rel2abs(".") -> absolutePath(".") も罠だった

カレントディレクトリ取る方法が他にあれば・・・
0168デフォルトの名無しさん2011/09/11(日) 21:24:59.46
std.file.getcwdでええんちゃう?

なんでstd.fileなのさ
0169デフォルトの名無しさん2011/09/12(月) 00:53:14.41
やっぱりあるんだね
Windowsユーザにその名前は盲点だった

そして最新のドキュメントからは消えている・・・
0170デフォルトの名無しさん2011/09/12(月) 02:11:28.75
>>168
std.file と std.path は統合してもいいんじゃ?と時々思う。
分かれてるもっともらしい理由を以前ここで見た気がするが忘れた。

ttp://ideone.com/t2Ym9
2.055のバグ(?)かと思ったけど、Ideoneの出力もなんか予想と違うような…
0171デフォルトの名無しさん2011/09/12(月) 02:56:25.22
システムコールを必要とするものしないもの、かな?妄想だけど
……だったらrel2absの意味がわからんか
0172デフォルトの名無しさん2011/09/13(火) 01:44:39.54
原因不明でnewに失敗するんだけど
core.memory.GC.disable();すると落ちなくなる、、
何これ、、、、、
0173デフォルトの名無しさん2011/09/13(火) 10:23:55.95
>>172
どっか別のオブジェクトのデストラクタが意図せぬ順番で走るパターン
とエスパーしてみる
0174デフォルトの名無しさん2011/09/13(火) 10:28:40.15
ttp://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
TIOBE 順位の躍進の理由は
C++11に注目が集まって、それと比較するためとにらんでいる

D = C++11 と混同した層とかそういうデマとかもたくさんあったに違いない
だから2〜3ヶ月もすると(ry
0175デフォルトの名無しさん2011/09/13(火) 19:32:09.37
0.2%増えたのって大きいのか小さいのか
0176デフォルトの名無しさん2011/09/13(火) 20:12:33.24
ぐらふを見るべき
ttp://www.tiobe.com/index.php/paperinfo/tpci/D.html
0177デフォルトの名無しさん2011/09/13(火) 21:03:17.40
数年前に何があったんだってばよ
0178デフォルトの名無しさん2011/09/13(火) 21:45:57.54
2007年正月のはver. 1.00発表
やっと正式版になったかと思ったのも懐かしい思い出
0179デフォルトの名無しさん2011/09/14(水) 02:13:15.18
>>174
単純にAndreiの入門書が出たからだよ。
大規模C++ソフトウェアデザインの著者だからネームバリューが凄い
0180デフォルトの名無しさん2011/09/14(水) 13:16:56.89
MC++Dかと
0181デフォルトの名無しさん2011/09/15(木) 00:36:33.06
ねえねえ、今のPhobosってどのくらい強力って感じなの?
0182デフォルトの名無しさん2011/09/15(木) 01:32:20.67
std.c.stdioのprintfまじ強力
0183デフォルトの名無しさん2011/09/15(木) 09:33:30.30
mapファイル出力して中身を見ると
16384バイトごとに必ず文字抜けする
このバグ、誰も報告してないんやろか・・・
01841832011/09/15(木) 10:00:52.37
補足
OPTLINK (R) for Win32 Release 8.00.12
0185デフォルトの名無しさん2011/09/15(木) 17:48:44.11
取り合えず報告してみて
報告済みなら誰かが重複マークをつけてくれると思って書いたらいい
0186デフォルトの名無しさん2011/09/15(木) 18:04:45.48
バグがコミュニケーションの輪を広げるんだよ!!
D言語はウォルターの人間愛でできてるんだよ!!!
0187デフォルトの名無しさん2011/09/15(木) 18:09:28.85
むしろ、D言語の存在そのものがバグ
0188デフォルトの名無しさん2011/09/15(木) 18:52:07.48
書いた
http://d.puremagic.com/issues/show_bug.cgi?id=6673
0189デフォルトの名無しさん2011/09/15(木) 19:38:16.95
D言語友の会 http://dusers.dip.jp/
久しぶりに覗いたらChangelogがちゃんと日本語化されててワロタ
というか、日本語で解説見るまで toUTF16z → toUTFz になったの気づかなかった

有志には乙と言わざるを得ない
0190デフォルトの名無しさん2011/09/15(木) 19:47:51.72
toUTF16zの代替はtoUTFz!(wchar*)であることに気付かなくて一瞬阿鼻叫喚になったんだ

友の会の中の人は本当に乙だな
0191デフォルトの名無しさん2011/09/15(木) 19:54:08.98
お、DWTアプリにクラス1個追加したら-gつけた時に出るようになったOPTLINKのエラーが
もう2〜3個クラス追加したら出なくなった
0192デフォルトの名無しさん2011/09/15(木) 23:51:38.45
.NETはオワコン
0193デフォルトの名無しさん2011/09/16(金) 01:22:45.57
opDotに@propertyつけてなかったが為に起きた、segvもせずにでたらめな値を返すバグに、数時間はまってた。
しかも単純なコードだと再現しねぇ(dmd2.055win)
0194デフォルトの名無しさん2011/09/16(金) 01:56:45.22
え、詳しく
0195デフォルトの名無しさん2011/09/16(金) 06:22:39.75
Dもやろうと思えばJITコンパイラ書けるよね。
Safeモードもあるし。
0196デフォルトの名無しさん2011/09/16(金) 10:33:12.82
-safe は犠牲になったのだ・・・
0197デフォルトの名無しさん2011/09/16(金) 20:00:06.39
Phobos「-safe? -property? 何のことです?」
0198デフォルトの名無しさん2011/09/16(金) 20:06:21.46
memory safe D って -safe もろとも消えたと思ってたけど
SafeD ってのは別物なの?
0199デフォルトの名無しさん2011/09/17(土) 17:18:52.43
え?safeなくなったの?
propertyはまだあるよね?
0200デフォルトの名無しさん2011/09/17(土) 17:47:43.97
-safeは無くなったみたい
phobosさえ使わなければちゃんと機能したのになぁ…
0201デフォルトの名無しさん2011/09/17(土) 19:51:10.43
さーてOS作るか
0202デフォルトの名無しさん2011/09/17(土) 21:01:55.83
OSのバージョンアップ頻度 < 開発環境の更新頻度
0203デフォルトの名無しさん2011/09/17(土) 21:03:29.02
DのOSか
名前はDOSで決まり
0204デフォルトの名無しさん2011/09/17(土) 21:22:36.14
あ、DOSを使っててC言語を思いついたのかもね
0205デフォルトの名無しさん2011/09/17(土) 23:02:18.83
>>194 すまん。193は勘違いだった。今やったら再現しないわ。
スレよごしてごめん
0206デフォルトの名無しさん2011/09/17(土) 23:08:27.23
Dだから実は勘違いでない可能性大
0207デフォルトの名無しさん2011/09/18(日) 03:40:06.23
opDotなんて使うのか?
もはやalias thisだろ
0208デフォルトの名無しさん2011/09/18(日) 09:55:18.32
WinRTに対応したら
ネイティブ言語としてのまさかの覇権があるかもよ
0209デフォルトの名無しさん2011/09/18(日) 10:03:19.85
ではまず WinRTから SJISを排除するところから
0210デフォルトの名無しさん2011/09/18(日) 11:26:35.64
>>207
ひと手間加えるだけでECMA ScriptやLuaのような
連想配列ベースのオブジェクトが作れるという魔法の道具ですぜ。
0211デフォルトの名無しさん2011/09/18(日) 16:58:12.02
>>210
kwsk
0212デフォルトの名無しさん2011/09/18(日) 17:33:19.48
std.xmlか何かに無かったっけ?
0213デフォルトの名無しさん2011/09/18(日) 17:35:12.26
魔導書2、Dの記事だけ読みてえ
0214デフォルトの名無しさん2011/09/18(日) 18:48:11.06
記事が1つしか載らないってことはD言語は全然変態じゃないってことか…
0215デフォルトの名無しさん2011/09/18(日) 18:56:08.44
いや、Haskellとか他の言語の記事も入ってる号で単独記事だから十分変態
0216デフォルトの名無しさん2011/09/18(日) 22:02:25.15
phobosの中のような、たとえば
sizediff_t indexOf(char1, char2)(const(char1)[] s, const(char2)[] sub )
のような、
関数名(型名)(引数){}の様な構文ってどのような解釈をしたらいいんですか?
関数名(引数){}な構文しか知らないんで、どう読んで良いのか良く判りません。
0217デフォルトの名無しさん2011/09/18(日) 22:14:19.98
http://www.kmonos.net/alang/d/2.0/template.html#function-templates
これです
0218デフォルトの名無しさん2011/09/19(月) 02:30:26.73
テンプレートパラメータです
0219デフォルトの名無しさん2011/09/19(月) 02:31:30.43
opDotってまだ使い道あったのか
0220デフォルトの名無しさん2011/09/20(火) 02:32:18.02
immutableはsharedのひとつ?
0221デフォルトの名無しさん2011/09/20(火) 07:13:22.23
immutableはすべてのスレッドから等しく参照してよいと定められているけど、
コンパイラがどこまでsharedとの一貫性を保ってくれるかは不明。
shared関係はなんというかまだ整理されきっていない感じ。
0222デフォルトの名無しさん2011/09/21(水) 15:18:23.70
なぜ defineEnum が消されねばならんのだ、ぐぬぬ・・・

enum SCE_D {
COMMENT,
COMMENTLINE
}
assertEquals(std.conv.parse!SCE_D("COMMENTLINE"), SCE_D.COMMENTLINE);
----------------------------------------------------------------------
[email protected](123): COMMENT != COMMENTLINE
02232222011/09/21(水) 15:55:58.81
Issue 4744 て コードをいじった痕跡があるのに
FIX されてないじゃん
なんぞ・・・
0224デフォルトの名無しさん2011/09/23(金) 03:50:26.96
>> 222
それコンパイル時に文字列のタプルを長さ順にソートしないといけないから
実装がえらく面倒になる。
0225デフォルトの名無しさん2011/09/23(金) 10:31:39.37
前方一致いらない
単語切り出して完全一致を比較するだけでいいはず
0226デフォルトの名無しさん2011/09/23(金) 10:52:13.80
Phobos 敗走・恐怖の神

何でこんな名前つけたし・・・
0227デフォルトの名無しさん2011/09/23(金) 10:58:40.74
木星の衛星だっけ? 火星?
0228デフォルトの名無しさん2011/09/23(金) 11:29:34.14
火星。MarsだからPhobos
純然たる恐怖の神であるDeimosよりは合ってるんじゃないかな
0229デフォルトの名無しさん2011/09/23(金) 19:58:08.29
ヴァンパイアハンターの土偶さんのイメージがつきまとう
0230デフォルトの名無しさん2011/09/23(金) 22:51:35.07
ウォルター「実は昔知ったのさ。日本でカセイというと別の意味もあるって事にね。おっとこれ以上の詮索は無しにしてくれ。」
0231デフォルトの名無しさん2011/09/24(土) 01:17:05.52
誰かDでファイアーエムブレムクローン作ってくれ
0232デフォルトの名無しさん2011/09/24(土) 01:18:04.99
231 がんばれ
0233デフォルトの名無しさん2011/09/25(日) 01:21:41.50
それよりdioだ
0234デフォルトの名無しさん2011/09/25(日) 01:46:23.19
邪悪の化身ッ!
0235デフォルトの名無しさん2011/09/25(日) 01:46:43.69
無駄無駄ぁ
0236デフォルトの名無しさん2011/09/27(火) 03:19:52.49
実数型のkeyを持つ連想配列にどのようにアクセスしたら良いのか判りません。

real[real] foo;
foo[0.12345] = 0.99; // ok
writef( "foo = %f", foo[0.12345] ); // NG

変数を介してもだめで、foreachはRenge violationでした。
もしかしてバグでしょうか?
それとも実数型のkeyはもてないのでしょうか?
0237デフォルトの名無しさん2011/09/27(火) 03:33:11.33
問題なかった@DMD2.055 Win
0238デフォルトの名無しさん2011/09/27(火) 03:42:35.94
writef だと何も出ない?けど writefln ならいけた
仕様かどうかは面倒なので調べない てかもう寝る

foreach で回すときは連想配列のプロパティを使わないとダメなはず
foreach (f; foo.keys) {
writeln(f);
writeln(foo[f]);
}
0239デフォルトの名無しさん2011/09/28(水) 20:45:36.41
interface I {}
class C : I {}

void func(Object obj) {}
func(cast(I) new C); // コンパイルエラー

interfaceのインスタンスは無条件でObjectのインスタンスと看做していいんじゃないかなぁ
それともObjectを実装してなくてintarfaceを実装してる存在なんてものがありうるの?
0240デフォルトの名無しさん2011/09/28(水) 21:03:10.91
元々interfaceはWindowsのCOM互換のための機能だったんだぜ
いつのまにかinterfaceからObjectにダウンキャストできるようになったけど、
COM由来のinterfaceでそれやったらどうなるか恐ろしいんだぜ。

Delphiも事情は一緒だけど……
0241デフォルトの名無しさん2011/09/28(水) 21:37:34.74
interface から object のダウンキャストって普通なのか…

俺はなんとなく java みたいに機能追加のための方便の一種として
しか認識してないわ > interface
0242デフォルトの名無しさん2011/09/28(水) 23:00:43.62
Javaから入ったくちだからObjectであって当たり前だと思ってた
そういうことだったのね
0243デフォルトの名無しさん2011/09/29(木) 00:14:13.96
interfaceをObjectにキャストする必要がでたら設計間違えてると考えたほうがいい
0244デフォルトの名無しさん2011/09/29(木) 19:09:13.70
するとinterfaceで型を定義することが間違ってるってことか…
そもそも大幅に性質の違うclassどもに便宜上一部共通の部分を作って
一緒くたに扱う必要がある時点でまずいのか?
mixinじゃコレクションは作れないしなぁ
Variantの配列なんて悪夢のような代物は見たくもないし
0245デフォルトの名無しさん2011/09/29(木) 20:43:40.77
「interfaceをObjectにキャストしてなんかする」の部分をそのinterfaceのメソッドにしてしまえば済む話じゃね?
0246デフォルトの名無しさん2011/09/29(木) 20:44:26.53
すまんテンパってた
>>244で書いたような事じゃObjectへのダウンキャストは発生しない

そういう状況で出てきたinterface型のオブジェクトを
DFLのControl#tag(こいつがObject型)とかにセットしようとした時に例の問題が発生するのであって
このtagは.NET由来でObjectになってるんだと思うが、こいつが本来Variantであるべきなんだ
俺が全面的に間違ってました。ごめんなさい。
だからDさん俺を破壊的変更するのはやめてください、やめて、とめ あ
0247デフォルトの名無しさん2011/09/29(木) 20:55:39.26
DFLも.NETもわからんけど、Dで実装されたinterfaceであることが確定的に明らかなら
ふつーにObjectにダウンキャストしてもいいんじゃね?
0248デフォルトの名無しさん2011/09/29(木) 21:41:38.67
アップキャストでは・・・・
0249デフォルトの名無しさん2011/09/30(金) 05:42:46.54
元の型が確定してるなら問題ないでしょ?
DFL程度のソースだったらTagを独自に置き換えちゃってもよさそうだけど
0250デフォルトの名無しさん2011/10/01(土) 13:11:33.01
DFLのgithubのforkは健在みたいだけど原作者どこいってもうたんや…
0251デフォルトの名無しさん2011/10/01(土) 18:27:54.38
interfaceをtagとして登録するなら…
0252デフォルトの名無しさん2011/10/02(日) 00:07:48.25
interfaceは基底クラスとは役割が違うよ
本当にそのコンテキストでinterfaceを使う必要があるのかよく考えてみて
0253デフォルトの名無しさん2011/10/02(日) 00:39:48.67
種類も役割も様々なclassに対して一部だけ共通の側面を持たせようとする用途だから
interfaceでいいと思うんだけどなぁ
0254デフォルトの名無しさん2011/10/02(日) 02:08:09.19
interfaceはもっと身近な存在でいてほしいね
0255デフォルトの名無しさん2011/10/02(日) 04:17:02.49
Objectの派生がいい気がしてきた
0256デフォルトの名無しさん2011/10/02(日) 04:20:29.54
それともControl#tagが専用のinterfaceを受け取るべきなのかな?
でなければVariant?
0257デフォルトの名無しさん2011/10/02(日) 08:39:17.92
>>256
専用interfaceなんかにしたら既存のクラスを置けなくなっちゃう><
いやラッパかませば置けるけど意味無いし
役割的にはVariantが妥当じゃないかな
0258デフォルトの名無しさん2011/10/02(日) 16:36:03.96
久しぶりに来たけどD言語どうなってる?
まだ破壊的仕様変更やってんの?
0259デフォルトの名無しさん2011/10/02(日) 17:02:52.31
今はそんなでもない
主要API消滅するときも0.002バージョン分ほど猶予がある
0260デフォルトの名無しさん2011/10/02(日) 18:10:56.21
標準ライブラリ内での名前被りが解消すれば
そこそこ安定するのではないだろうか・・・年明けくらい
0261デフォルトの名無しさん2011/10/02(日) 19:01:51.31
言語的な仕様はほぼ固まって、
標準ライブラリを色々いじってるところって感じでいいの?
昔いじってる時いまいちイケてないライブラリだったけど
ずいぶん変わったのかな
0262デフォルトの名無しさん2011/10/02(日) 19:10:28.76
ずいぶん変わった
ロケールとかエンコーディングとか微妙に基本的な部分が欠けてるような気もするが
基本的にはすごくいい感じ、だと思う、たぶん…

D1の頃から「他の言語よりずいぶん早くやりたい事を書けるなぁ」と思ってたんだが
そういう面ではグレードアップしてるとは実感してる
0263デフォルトの名無しさん2011/10/02(日) 19:48:44.21
ロケールとかエンコーディングとかは
やはりCJKの人間が関わらないと厳しいのだろうか
0264デフォルトの名無しさん2011/10/02(日) 20:01:58.53
D的には内部コードは全部Unicodeだからロケールとかエンコーディングとかは入出力まわりだけどうにかなればいい。
文字コード透過性だのなんだのは内部コードをUnicodeに決め打ってる時点で捨ててる。
だからsetlocaleだのmbなんたらだのは要らなくて、
「ファイルをOSのロケールからUnicodeに変換しながら読む」程度の機能さえあれば充分なはず。
0265デフォルトの名無しさん2011/10/02(日) 20:30:11.17
これも入出力の他の部分が決まらなくて足止め食らってる感が
0266デフォルトの名無しさん2011/10/02(日) 20:39:23.17
ロケールは通貨記号とか日付の書式とかにも係わってるから入出力だけじゃないけどね

いや入出力なのか?
0267デフォルトの名無しさん2011/10/02(日) 20:44:13.31
>>266
そういうのは、あっても使われないから問題ない。
日本でも数字区切りを3桁で区切るか4桁で区切るか、12/31って書くか12月31日って書くか、
頭に円記号を付けるか最後に漢字で「円」って付けるかなんてのは
ハッキリ言って用途次第アプリケーション次第であって、OSの設定を拾って切り替わったりしたら逆に迷惑な場合がほとんどだろ。
0268デフォルトの名無しさん2011/10/02(日) 20:49:38.40
そのOSの設定を拾う(「今の設定は"ja-JP"だ」とか)APIくらいあってもいいとは思うけどな
0269デフォルトの名無しさん2011/10/02(日) 22:45:42.67
実際そのあたりあまり使わないけど
年/月/日 月/日/年 日/月/年 の順番あたりは
使わなくもないかなあ
0270デフォルトの名無しさん2011/10/02(日) 22:48:12.52
>>264
メモリ上のデータのエンコーディングを変えたいって事は結構ある
入出力にも当然必要だけど、バイト配列と文字列の相互変換も必要
0271デフォルトの名無しさん2011/10/02(日) 23:11:00.27
>>270
「OSの現在のロケールのエンコーディング」と「内部コードであるUnicode」以外は
「標準ライブラリ」でやらずに、iconv(をDでラップしたライブラリ)にでも任せるべきだと思うんだ。
0272デフォルトの名無しさん2011/10/02(日) 23:15:55.10
>>270
ああ、>>271はちょっと違うな、ごめん。
toMBSzはAPIコールに特化してるけど、こいつの逐次処理やストリームからの読み書きに便利な版が必要って話だよね。
それなら賛成。
0273デフォルトの名無しさん2011/10/02(日) 23:47:12.19
内部はiconvでもその程度は標準で欲しいなあ
.NETのEncodingは便利よ
0274デフォルトの名無しさん2011/10/03(月) 01:15:11.26
ガラパゴスプラットフォームが待たれる
0275デフォルトの名無しさん2011/10/03(月) 02:05:14.38
かなり緩いBSDライセンスですら取り込まない体制なので、iconvも独自実装でないと標準には
0276デフォルトの名無しさん2011/10/03(月) 02:15:22.21
とにもかくにもdio
0277デフォルトの名無しさん2011/10/03(月) 03:13:57.16
基本はboostライセンスなんだっけ?
0278デフォルトの名無しさん2011/10/03(月) 07:49:17.83
boostライセンスだな
0279デフォルトの名無しさん2011/10/04(火) 00:09:05.29
ならiconvは厳しいか
エンコーディングの実装にOSの機能はどこまで使えるのだろうか
0280デフォルトの名無しさん2011/10/04(火) 00:33:03.90
まずOSによって対応エンコーディングに差がある、同じエンコーディングでも微妙にテーブルが違う、
Linuxなんかではlibcのロケール関数を使うことになるが言うまでもなくコイツの仕様は酷過ぎる上にBSD系と動作が違う
MacだとCoreFoundationをリンクしないといけない、Windowsだとエンコーディングを数字で指定するがこれと
他OSでLANG環境変数で指定したりするエンコーディング名と一対一対応があるわけでも勿論無い

……とまあそんな感じなので、iconvに丸投げが一番楽よ。
API自体はWindowsが一番整備されてるかな、よく言われるように変換テーブルが多少独自なのを除けば。
0281デフォルトの名無しさん2011/10/04(火) 01:31:14.64
まあ各国でよく使うエンコーディングが
自国版のOSで使えさえすればいいとは思うけど
それ抜きにしてもAPIは厳しそうだな・・・
0282デフォルトの名無しさん2011/10/04(火) 01:43:05.75
まあWindows以外は、iconvぐらいデフォルトでインストールされてるだろうってのを当て込んで
ダイナミックリンクしてもいいとは思うけど。
0283デフォルトの名無しさん2011/10/04(火) 12:55:36.47
std.encoding.EncodingSchemeから派生させて、EncodingSchemeCP932とか作ればいいのかな?
http://www.kmonos.net/alang/d/2.0/phobos/std_encoding.html
中身は、変換テーブルでやるなり、iconv呼ぶなりして
0284デフォルトの名無しさん2011/10/04(火) 16:56:35.51
>>283
俺初めてstd.encoding見たけど、dchar : 他のエンコーディングの複数バイト が常に 1 : n なのを想定されてないかこのインターフェース?
誰かウォルたんに合成文字の存在を教えてあげないと。
0285デフォルトの名無しさん2011/10/05(水) 13:47:51.03
>>101のバイナリを入れたんだけど、
VBのScriptControlからEvalしても何も帰ってこない。

ScriptControl1.Language = "DMDScript"
MsgBox ScriptControl1.Eval("1") 'Empty
MsgBox ScriptControl1.Eval("+") 'Anonymous(1) : Error: expression expected, not 'EOF'

エラーは出るからそれなりに動いてはいるようだけど、だれか助けて
0286デフォルトの名無しさん2011/10/08(土) 11:46:51.26
DLFってクレジット表示なしで商用利用可能なんだっけ?
0287デフォルトの名無しさん2011/10/08(土) 12:13:48.37
DFLか?
0288デフォルトの名無しさん2011/10/08(土) 12:54:06.05
そう
0289デフォルトの名無しさん2011/10/08(土) 14:16:46.65
3タイプのうち、普通に使う分にはzlibライセンスになると思う
表示なしでいい
0290デフォルトの名無しさん2011/10/08(土) 14:34:23.05
なるほど
それじゃDLF使おうかなあ
0291デフォルトの名無しさん2011/10/08(土) 15:31:51.26
その前にちゃんと名前を覚えてあげてください
0292デフォルトの名無しさん2011/10/08(土) 20:03:55.36
deprecateの関数置き換えたらobject.Error: Access Violationあああああああああああああ
0293デフォルトの名無しさん2011/10/08(土) 20:29:40.65
extensionがバグってた

Notice: As of Phobos 2.055, std.path.getExt has been scheduled for deprecation in February 2012. Please use extension instead.
getExtの代わりに使えってかいてあるけど動きが違ってた

void main()
{
string fname = "aaa.ext";
assert(std.path.getExt(fname) == "ext");
assert(std.path.extension(fname) == ".ext");
}

報告できる方よろしくお願いします。
それとも仕様変更だったり?
0294デフォルトの名無しさん2011/10/08(土) 20:32:43.33
>>291
ワロタ

DFLは、バグで結構やばい動作することがあるって話があったから、商用で使うなら
気をつけた方がいいぞ
0295デフォルトの名無しさん2011/10/08(土) 20:33:25.70
>> 293
これは仕様変更。
0296デフォルトの名無しさん2011/10/08(土) 20:37:33.04
>>295
やっぱり?
.NETとかも'.'ついてるし'.'ないと分割した後単純に結合できないしやっぱりそうなのかー
コードの拡張子比較してるとこ全部直さないと・・・・
0297デフォルトの名無しさん2011/10/09(日) 00:20:28.16
自分でgetExtを再実装すればいい
0298デフォルトの名無しさん2011/10/09(日) 02:19:18.44
listdirとかisabsとか自作してる俺ェ…
0299デフォルトの名無しさん2011/10/10(月) 13:11:48.66
GCCにDのフロントエンドが取り込まれるらしい

実際にGCCにコンパイラが組み込まれたら
今までみたいに自由気ままに破壊的変更できなくなるんじゃなかろうか
0300デフォルトの名無しさん2011/10/10(月) 13:18:03.43
本家が変わらず火星なら、Iainの人が血を吐きながら頑張るだけじゃねーの
利用者とフィードバック増えるとむしろスムーズに進化できる可能性も
0301デフォルトの名無しさん2011/10/10(月) 13:25:15.96
http://ideone.com/IuwjS

removeの仕様がイケてないというか、テンプレート対応がしょぼいというか・・・
0302デフォルトの名無しさん2011/10/10(月) 13:34:23.79
.NETレベルのライブラリがないと普及しないお
0303デフォルトの名無しさん2011/10/10(月) 13:40:17.44
removeはどうせ二つ用意するなら名前変えればよかったのに
0304デフォルトの名無しさん2011/10/10(月) 14:12:55.14
pythonにはそういうライブラリあるの?
0305デフォルトの名無しさん2011/10/10(月) 14:29:28.99
>>301
違うな。俺が間違ってた。ごめんよ、ごめんよ
0306デフォルトの名無しさん2011/10/13(木) 10:29:16.53
D -> Go
DMDScript -> Dart

さようならうぉるたん
0307デフォルトの名無しさん2011/10/13(木) 13:03:52.61
そうなんだ、すごいね
0308デフォルトの名無しさん2011/10/14(金) 12:17:05.74
訃報: C 言語の開発者、デニス・リッチー氏が死去
ttp://developers.slashdot.jp/story/11/10/13/0224245/

Google+ で Rob Pike 氏が語ったところによると、C 言語の開発者、K&R の R であるところの Dennis Ritchie 博士が亡くなられた。
70 歳 (Rob Pike 氏による Google+ への投稿) 。

長らく闘病中だったとのことで、先週末に自宅で息を引き取ったそうだ。
0309デフォルトの名無しさん2011/10/14(金) 15:40:28.43
この人達がBからCを作らなきゃDもなかったし他の派生言語もなかった
黎明期の偉大な人たちが次々去っていくなぁ
0310デフォルトの名無しさん2011/10/14(金) 15:59:55.43
ttp://cpplover.blogspot.com/2011/10/dart_13.html
某Dの人がDart->Dに置換しても通じるとか書いてるから読んでみたら
予想を遙かに超越してDそのまんまだった

まあDはC++も駆逐するけどな
0311デフォルトの名無しさん2011/10/14(金) 17:07:49.36
はてブのコメントにマジレスの嵐w
Dart触ってみようかな。結局Goは敬遠してしまったし。
0312デフォルトの名無しさん2011/10/14(金) 17:44:36.58
>>310
C系の記法から「常識的に考えて」導かれる記法だからねえ。
DはGCへの依存を弱めた記法を確立してbetter Cとしての立場を強めるとか
Variantを活用できるようになればなと思う。
0313デフォルトの名無しさん2011/10/15(土) 14:04:18.25
iPhoneやらUbuntuやら、巷では破壊的変更に飛び込む勇者だらけなのに

指をくわえてみているだけのD言語erは まさかいないよな?
0314デフォルトの名無しさん2011/10/15(土) 17:09:54.34
アップルが嫌いだからiPhoneには関わりません
0315デフォルトの名無しさん2011/10/15(土) 20:16:42.25
一見破壊的にみえるだけで実は既存のものを延長した結果
という場合もあって一時的に不安定になるけど山を越えると
また安定してくるという…繰り返される歴史

山が高すぎると超えられない。というのもそれなりにありそうだけども
0316デフォルトの名無しさん2011/10/15(土) 21:20:44.29
メモリ関係でバグが出ると挫折する
0317デフォルトの名無しさん2011/10/15(土) 22:06:47.85
OPTLINKのバグとは戦えない
0318デフォルトの名無しさん2011/10/15(土) 23:16:06.35
clangみたいにオープンな開発にすりゃいいのに
ウォルたん的にも別にクローズドな開発にする必要なさそうなもんだけど
せっかく発展の余地があるのにもったいない
0319デフォルトの名無しさん2011/10/17(月) 22:55:27.87
dってオープンソースじゃなかったんですか
0320デフォルトの名無しさん2011/10/17(月) 22:59:05.96
肝心なところは秘密
0321デフォルトの名無しさん2011/10/18(火) 18:31:28.75
えっ
0322デフォルトの名無しさん2011/10/19(水) 01:06:12.82
Webで使う分には実用に耐えるんですかね?
0323デフォルトの名無しさん2011/10/19(水) 22:33:35.30
規模にもよる
0324デフォルトの名無しさん2011/10/19(水) 22:38:28.33
CでWebアプリ書ける人なら楽勝
0325デフォルトの名無しさん2011/10/19(水) 23:50:24.13
だね
0326デフォルトの名無しさん2011/10/20(木) 00:11:13.61
http://ideone.com/4V7My
テンプレート関数のマングリングがおかしい件

map file の tfunc を検索すると文字化けしてるのがわかる(WinXP 32)
やっと突き止めたぜ・・・
0327デフォルトの名無しさん2011/10/20(木) 00:23:35.05
もしかしてこれでOPTLINKの謎エラーが消滅するのか
0328デフォルトの名無しさん2011/10/20(木) 01:37:23.43
>>326
見落としがあった。保存するファイル名によって再現しなくなるwww
テンプレート云々じゃなくてトータルの文字数カモシレナイ
0329デフォルトの名無しさん2011/10/20(木) 02:01:22.70
test.dで

void o123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234(){}
void main(){
略();
}

だと正常、1文字付け加えると文字化けか
正常な場合は
_D4test115o123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234FZv
で丁度128文字だしトータル文字数で確かに間違いなさそうだね
0330デフォルトの名無しさん2011/10/20(木) 02:14:16.76
連投スマソ
マングリング後の修飾名の文字数→上限128文字を超えると化けた
Windows のみかも。ideoneでは再現せず
http://ideone.com/9TWvd

長いモジュール名(std.algorithmとか)ついたテンプレート使うと
簡単に引っかかっちまう
0331デフォルトの名無しさん2011/10/20(木) 02:18:35.09
連投スマソ と書いたけど先越されたw まあいいや
バグ報告しとく
0332デフォルトの名無しさん2011/10/20(木) 03:59:19.24
http://d.puremagic.com/issues/show_bug.cgi?id=6831
直せオラ! で押し通せばよかった・・・つかれた
0333デフォルトの名無しさん2011/10/20(木) 10:57:51.06
>>332
速攻でコメが来てる
・optlinkを直さないと対応できない
・linkerを書き直す計画はあるけどいつになるかわからん

やっぱりoptlinkは切らないとダメだな
0334デフォルトの名無しさん2011/10/20(木) 19:02:40.75
C/C++のプログラムをソースのみで配布するのは
社会に対する罪だと気づいた
0335デフォルトの名無しさん2011/10/20(木) 19:35:40.51
うん
0336デフォルトの名無しさん2011/10/20(木) 20:23:27.57
その点Dのソースならガリガリ修正する楽しみがあって抜群の社会貢献度
0337デフォルトの名無しさん2011/10/21(金) 00:00:58.48
optlinkってoptasmとなんか関係ある?
0338デフォルトの名無しさん2011/10/21(金) 15:06:13.85
ないと思う
0339デフォルトの名無しさん2011/10/22(土) 11:10:54.16
D1からD2に移行したらDLLを動的ロードして使う部分で
謎のエラーというか色々意味不明な現象が発生するんで調べてみたら、
TLSのせいで複数回DLLがロードされているせいだった
なんちゅう盲点や
0340デフォルトの名無しさん2011/10/22(土) 11:47:41.59
データ領域は徹底的にデフォTLSにする方針だからなあ
知ってればどうってことないけど、チュートリアルでなるべく周知してかないと
他言語から移行する時の軽いハマりポイントになるかもね

スレッド大量に作るような方向へ向かおうとするんだと、
将来的にTLSでの静的初期化はもっと書きづらくして気軽にやれなくなったりして
0341デフォルトの名無しさん2011/10/22(土) 18:21:11.00
エラーになってくれればいいが何が起こるかわからんというのは困る
0342デフォルトの名無しさん2011/10/22(土) 18:29:20.71
そういう意味ではCとのインタフェースを残しているのがすごくマイナス

システム言語の看板を掲げるならデバッガが強力じゃないとつらいな
0343デフォルトの名無しさん2011/10/22(土) 18:55:56.49
そもそもスレッドを考慮して無いdllの造りが悪いんじゃないの?
0344デフォルトの名無しさん2011/10/22(土) 19:17:08.83
俺の為のチラ裏メモ
TLS = Thread local storage
0345デフォルトの名無しさん2011/10/22(土) 19:28:29.22
Walterは特にCライブラリをダイレクトに使えるのを大事にしてる気がするので、
避けては通れなさそうなんだよな。
Cなんて実質原始CLIみたいなもんなんだけど、デフォTLS前提としない言語外環境との連携をどう考えるか。

素のstatic thisはスレッド毎に走るのに注意、shared static thisはロックに注意、で当面しのぐしか無いがー
0346デフォルトの名無しさん2011/10/22(土) 20:27:56.44
スレッド使ったことないからその辺平気だぜ
0347デフォルトの名無しさん2011/10/26(水) 10:38:48.83
Visual Dの更新キタ
phbosでF1ヘルプ参照できるようになった

mago debugger を選んだ場合の機能が強化されてるみたいだがよくわからん
0348デフォルトの名無しさん2011/10/26(水) 21:18:01.54
特に理由はないんですが、GCJの過去問をDで解いてみようと思いました。
今日初めてD言語に触りました。
TopCoderとかのプログラミングコンテストでC++を使う場合は、
#defineを使ってforループの凡ミスを防ぐためにこんなことをします。

#define rep(i, n) for(int i=0; i<n; i++)

こうすることで以下のようなバグをなくすことができます。
for(int i=0; i<n; i++) {
  for(int j=0; j<n; i++) { // i++がバグ
    // do something
  }
}

代わりにこう書けるので、これに関してはバグがなくなります。
rep(i, n) {
  rep(j, n) {
    // do something
  }
}

D言語でも同じようなことができますか?
できないなら諦めますが、できるならその方法をご教示ください。
0349デフォルトの名無しさん2011/10/26(水) 21:28:35.26
Dにマクロはない。ので、同じことはできない。
代替の方法については、その例に限っていえばループを

foreach (i; 0..n) { // do something }

で、書けばバグを防ぐ役目は果たせるな。
もしくは
void rep(size_t rn, void delegate() dg) { foreach (0..rn) dg(); }
↑こういうのを定義しておけば
↓こう書ける。

rep(n, { // do something });
0350デフォルトの名無しさん2011/10/26(水) 22:56:40.38
C++でももうすぐforeach的なものが使えるからそれでいいじゃないか
03513482011/10/26(水) 22:59:11.58
>349
即レスありがとうございました。
動作させることができました。
拡張性が高そうなので
foreach(i; 0..n)
を使うことにしました。
foreach(i; 1..n)
とかになっても簡単に書けそうなので。

とは言っても、もともとTangoを使っていて、それだと
foreach(i; 0..n)
がコンパイルできなかったので(found '..' when expecting ';' following 'for condition')、Phobosにコードを書き変えました。
PhobosだとWindowsでコンソールアプリを作るときに、文字化けしたと思うので、ちょっとイヤなんですが...。
0352デフォルトの名無しさん2011/10/26(水) 23:01:25.17
>>348
構文をこういう風に独自defineする人間の神経は疑うけどね
0353デフォルトの名無しさん2011/10/26(水) 23:28:04.58
tangoなんか使ってると恐い日本人コミッタのお兄さん達に睨まれるぞ
0354デフォルトの名無しさん2011/10/26(水) 23:49:54.92
にらまれてるしw
0355デフォルトの名無しさん2011/10/27(木) 07:17:55.57
dmd 1.071 and 2.056 release
0356デフォルトの名無しさん2011/10/27(木) 11:31:57.49
http://www.d-programming-language.org/intro-to-datetime.html
std.datetime の解説記事ができてた。

だれか翻訳をt(ry
0357デフォルトの名無しさん2011/10/27(木) 13:39:27.54
知ってるだろ? 法則があるのをさ……。
0358デフォルトの名無しさん2011/10/27(木) 16:45:13.81
Kには近づいてはならない!
0359デフォルトの名無しさん2011/10/27(木) 19:04:21.39
>>356
おお、簡潔な解説が出たのか!と思って行って著者名を見た時の絶望感
0360デフォルトの名無しさん2011/10/27(木) 23:43:09.19
> dmd 1.071 and 2.056 release

今回のreleaseの大きいところは
Bugzilla 3748: inoutがまともに動くようになった
Bugzilla 3659: structのopEqualsシグネチャ制限がなくなった
Bugzilla 4022 他 CTFEでAAが結構まともに動くようになった
辺りかな。
0361デフォルトの名無しさん2011/10/28(金) 00:00:52.95
AAがなんの略だかわかんなくて五分くらい真剣に悩んだけど連想配列か
0362デフォルトの名無しさん2011/10/28(金) 00:41:21.27
> 360
http://dusers.dip.jp/modules/forum/index.php?topic_id=106

もう少し細かく書いた。
0363デフォルトの名無しさん2011/10/28(金) 00:53:39.18
今回のBugFixは、Regressionのが多いね
0364デフォルトの名無しさん2011/10/28(金) 07:15:26.25
いつも乙
D2もいよいよ安定してきてしまった感が
0365デフォルトの名無しさん2011/10/28(金) 11:01:12.68
バグフィックスの数に騙されるな
新たなバグもどんどん増えているぞ
コンパイルできないたすけて
0366デフォルトの名無しさん2011/10/28(金) 13:15:23.42
落ち着いて全部のライブラリをビルドしなおすんだ
0367デフォルトの名無しさん2011/10/28(金) 13:32:44.02
GUIライブラリってある?
0368デフォルトの名無しさん2011/10/28(金) 18:54:26.37
あるよ
0369デフォルトの名無しさん2011/10/28(金) 19:01:44.43
---
do
 if (derived is base)
  return true;
while ((derived = derived.base) !is null)
return false;
---
2.055までこれがコンパイル通ってたという事実に驚愕しきり
0370デフォルトの名無しさん2011/10/28(金) 20:00:20.97
>>368
たとえば?
0371デフォルトの名無しさん2011/10/28(金) 21:09:23.72
http://dusers.dip.jp/modules/wiki/?Libraries
0372デフォルトの名無しさん2011/10/28(金) 21:22:12.52
DFL,DWT(2),wxD,gtkD,QtDは去年の段階ではかろうじて生きてた
そこに載ってる他の奴は…死んでるねぇ…
0373デフォルトの名無しさん2011/10/28(金) 22:22:37.03
>>369
そういうのは結構あると思う。
メチャメチャな文法はテストしにくい。
壊そうと遊んでたらいくつか見つけたことがある
0374デフォルトの名無しさん2011/10/29(土) 03:48:19.15
DFLの非公式githubは生きてる
0375デフォルトの名無しさん2011/10/29(土) 06:58:28.32
ライブラリフルコンパイルしたら案の定通らねーwww
0376デフォルトの名無しさん2011/10/29(土) 17:32:00.40
なんの?
0377デフォルトの名無しさん2011/10/30(日) 03:46:05.26
これしき
0378デフォルトの名無しさん2011/10/31(月) 22:41:45.56
そういうのいいから
0379デフォルトの名無しさん2011/10/31(月) 23:03:33.24
base a=new const(derived);が通る?
0380デフォルトの名無しさん2011/11/01(火) 14:01:45.55
const は全くアテにならない
0381デフォルトの名無しさん2011/11/02(水) 00:39:57.71
そんなー
0382デフォルトの名無しさん2011/11/02(水) 00:56:58.89
>> 369
do { ... } while(...) の後に;が必須になったやつか。
それは確かに自分も驚いた。
0383デフォルトの名無しさん2011/11/02(水) 12:01:24.45
おー、気づかなかったw
罠にしかならないから do - until に変えてほしいわ
0384デフォルトの名無しさん2011/11/03(木) 11:27:22.63
GUIはfxlibが最低限の機能持ってて満足
0385デフォルトの名無しさん2011/11/03(木) 16:44:57.79
DWT2め、Tableにマルチバイト文字を長々と表示させて
スクロールさせまくると表示だけ固まりやがる
0386デフォルトの名無しさん2011/11/04(金) 01:15:46.11
std.socketってどう変わったの?
0387デフォルトの名無しさん2011/11/05(土) 01:31:47.86
重くなった
0388デフォルトの名無しさん2011/11/06(日) 19:24:23.17
そういえばstd.loaderってあるけどあれなんなの?
使って大丈夫なの?
0389デフォルトの名無しさん2011/11/06(日) 21:35:45.31
>>388
今見てみたら…
Windowsの部分は、Ansi系APIつかってる (Unicode文字を含んだPATHからは読み込めない)
しかもUTF-8←→Ansi変換が全くされてない (ノ∀`)アチャー
0390デフォルトの名無しさん2011/11/06(日) 23:28:02.22
これだから外人は
0391デフォルトの名無しさん2011/11/06(日) 23:51:01.39
ウォルター「え・・・」
0392デフォルトの名無しさん2011/11/07(月) 13:08:11.03
dmdでコンパイルしようとしたら、
OPTLINKのエラー(Error 42:Symbol Undefined)が大量に出てきた
visualC#を直前に入れていたので、C#アンインストールしても、
dmd入れなおしても直んないんだけど、どうすればいい?

以下エラー内容の最初の方
OPTLINK (R) for Win32 Release 8.00.12
Copyright (C) Digital Mars 1989-2010 All rights reserved.
http://www.digitalmars.com/ctg/optlink.html
OPTLINK : Warning 23: No Stack
test.obj(test)
Error 42: Symbol Undefined _D3std5stdio4File6__dtorMFZv
test.obj(test)
Error 42: Symbol Undefined __d_local_unwind2
test.obj(test)
0393デフォルトの名無しさん2011/11/07(月) 13:10:33.20
詳細書くの忘れてた
windows7 Ultimate 64bit版で起きた現象です
0394デフォルトの名無しさん2011/11/07(月) 13:42:33.22
main() が無い
0395デフォルトの名無しさん2011/11/07(月) 16:09:19.80
>>390-391
素人以下wwwwwwwww
03963922011/11/07(月) 17:24:59.79
main()は書いてる。
dmdをinstallerで入れなおしたらエラーが下に変わった
(エラー内容抜粋)
OPTLINK (R) for Win32 Release 8.00.12
Copyright (C) Digital Mars 1989-2010 All rights reserved.
http://www.digitalmars.com/ctg/optlink.html
C:\D\dmd2\windows\bin\..\lib\phobos.lib(dmain2)
Error 42: Symbol Undefined _WideCharToMultiByte@32
C:\D\dmd2\windows\bin\..\lib\phobos.lib(dmain2)
Error 42: Symbol Undefined _LocalFree@4
0397デフォルトの名無しさん2011/11/07(月) 18:18:07.51
環境変数LIBがあやしい
0398デフォルトの名無しさん2011/11/07(月) 22:55:54.28
LIBってsc.iniで上書きされなかったっけ。
dmd入れ直してるならシロの気もするけど。
0399デフォルトの名無しさん2011/11/07(月) 23:50:37.62
Windows 64bit って動いてたっけ?
0400デフォルトの名無しさん2011/11/07(月) 23:53:31.18
win7 premiumだけど普通にコンパイルもリンクもexeそのものも動いてるよ
64bitのexeファイルが生成されてるわけじゃないけど
0401デフォルトの名無しさん2011/11/08(火) 00:50:13.18
コンパイルオプションで 64指定しなきゃいいのか
なるほど、思い出した
0402sage2011/11/08(火) 03:20:18.41
Windowsで生成されるコードは常に32bitコードだよ
実行したプロセスをタスクマネージャで確認すれば判る
0403デフォルトの名無しさん2011/11/08(火) 04:46:18.03
Windowsバイナリ生成に関して、 64bit版生成オプションは 存在してません。(キッパリ
0404デフォルトの名無しさん2011/11/09(水) 22:05:18.25
std.container.RedBlackTreeを使っていて、
「A以上B未満」な要素を列挙したいんですけどなんかうまい方法ありますか?
upperBoundとlowerBoundの両方を適用できたら楽だったんですが
0405デフォルトの名無しさん2011/11/10(木) 23:26:40.42
もうやだこのOPTLINK…
0406デフォルトの名無しさん2011/11/11(金) 00:57:10.96
std.containerの中身はtakeだのwalkなんとかだの!魔界か!
0407デフォルトの名無しさん2011/11/11(金) 01:37:29.92
BufferedFileにSJISテキストかませると死ぬのどうにかなりませんか・・・
0408デフォルトの名無しさん2011/11/11(金) 12:45:00.74
http://ideone.com/kdNYw

こんな感じにforeachループ内で各ループのスコープ時の変数を
それぞれdelegateに渡したいんだけど、結果が全てループの最後の
時のもので処理されてしまうのです。何か良い方法ありますか。

Javaのfinal的なものが必要?
0409デフォルトの名無しさん2011/11/11(金) 13:09:25.44
ループ変数が使い回されてるのが原因だから。
対策はこんなか http://ideone.com/AZrzo

なんか既視感あるな
0410デフォルトの名無しさん2011/11/11(金) 13:33:53.70
なるほど、bindでいけるんですね。
ありがとうございます。
0411デフォルトの名無しさん2011/11/11(金) 13:36:42.50
じゃない、引数で生成時に渡してやればいいんですね。
0412デフォルトの名無しさん2011/11/11(金) 18:22:23.63
jsでよく見るパターン
0413デフォルトの名無しさん2011/11/11(金) 21:03:39.39
JavaScriptの問題点を前向きにあげてけ

new演算子がキモい
0414デフォルトの名無しさん2011/11/11(金) 21:14:35.12
about D programing language only

javascript shit
0415デフォルトの名無しさん2011/11/11(金) 21:40:56.68
誤爆しました
0416デフォルトの名無しさん2011/11/12(土) 01:28:11.08
go back
0417デフォルトの名無しさん2011/11/12(土) 02:26:42.38
Fuck'in Javs
0418デフォルトの名無しさん2011/11/14(月) 05:36:52.67
今年後半に入ってから随分更新が静かだと思ってたけど64bit版開発してたのかよ。
しかもD1のも
普及に向けて本腰を入れ始めたか
0419デフォルトの名無しさん2011/11/14(月) 06:20:03.53
Deimosには死ぬほど期待している
0420デフォルトの名無しさん2011/11/14(月) 08:00:00.23
いや、だからioどうするんだよw
0421デフォルトの名無しさん2011/11/14(月) 10:22:58.26
>>418
その情報を知った場所を教えてくれないかい
0422デフォルトの名無しさん2011/11/14(月) 13:06:56.99
D関連ページを www.digitalmars.com から d-programming-language.org へ引越ししてるみたいだね
0423デフォルトの名無しさん2011/11/14(月) 13:11:01.81
URLのリダイレクトが設定されて
>>159 が解消される
0424デフォルトの名無しさん2011/11/14(月) 15:27:44.01
http://d-programming-language.org/new/
こっちの話か

古いサンプルコードが動かないみたいな
積もりに積もった問題を一気に直す積もりかな
0425デフォルトの名無しさん2011/11/14(月) 20:26:51.95
英語わかんない僕はどうすればいいですか><
0426デフォルトの名無しさん2011/11/14(月) 20:32:43.31
つExcite翻訳
つGoogle翻訳
0427デフォルトの名無しさん2011/11/14(月) 21:07:56.39
英語と米語とC語をまずマスターしろ
それからD語
0428デフォルトの名無しさん2011/11/14(月) 21:23:40.19
英語圏は滅ぶから日本語だけ覚えとけば問題ない
0429デフォルトの名無しさん2011/11/14(月) 22:22:33.63
つ 日本語プログラム言語「なでしこ」
0430デフォルトの名無しさん2011/11/14(月) 23:25:25.89
滅ぶとして、でも日本のほうが滅ぶの早そう
0431デフォルトの名無しさん2011/11/15(火) 09:28:26.93
全ての起源である韓国語が一番無難じゃないかな
0432デフォルトの名無しさん2011/11/17(木) 07:24:16.84
韓国が起源ニダ
0433デフォルトの名無しさん2011/11/17(木) 20:36:48.26
もうやだoptlink
別のリンカ使いたい
0434デフォルトの名無しさん2011/11/17(木) 21:29:12.10
omf に対応したリンカはなかなか無いなー

誰かOpen Watcom C でなんとかできる猛者はいないか
0435デフォルトの名無しさん2011/11/17(木) 22:59:52.71
omf捨ててcoffになって欲しい
0436デフォルトの名無しさん2011/11/17(木) 23:38:33.99
GDCいやなんでもない


結局「コンパイルが速い」(キリッ

とか言ってる裏でその辺が犠牲になってるんだよな
0437デフォルトの名無しさん2011/11/17(木) 23:40:49.60
Windowsユーザに逃げ場なし
0438デフォルトの名無しさん2011/11/18(金) 00:48:50.95
悪いことしてるわけじゃないんだ
逃げずに堂々としてればどうとでもなる
0439デフォルトの名無しさん2011/11/19(土) 08:14:04.36
堂々としてたらサービス残業代不払いでも問題ないって言うのか?
0440デフォルトの名無しさん2011/11/19(土) 10:37:04.13
おかしなことを言うやつだな
不払いで良いからサービス残業でしょう?
0441デフォルトの名無しさん2011/11/19(土) 11:29:55.78
いや、うぉるたんにギャラを出しましょうって話しだろ
0442デフォルトの名無しさん2011/11/19(土) 13:32:30.45
いまだにDigital Marsがどんな組織なのかわからん
0443デフォルトの名無しさん2011/11/19(土) 13:33:27.63
解説キボンヌ
0444デフォルトの名無しさん2011/11/19(土) 16:31:22.61
え?
0445デフォルトの名無しさん2011/11/19(土) 18:37:27.38
>>444
http://hibari.2ch.net/test/read.cgi/tech/1261676778/213
http://hibari.2ch.net/test/read.cgi/tech/1272358443/83
http://hibari.2ch.net/test/read.cgi/tech/1321350331/22
http://hibari.2ch.net/test/read.cgi/tech/1318935200/82
http://hibari.2ch.net/test/read.cgi/tech/1290415962/444
http://hibari.2ch.net/test/read.cgi/tech/1314133332/444
http://hibari.2ch.net/test/read.cgi/tech/1315141054/25
http://hibari.2ch.net/test/read.cgi/tech/1321282584/4
http://hibari.2ch.net/test/read.cgi/tech/1156332916/186
http://hibari.2ch.net/test/read.cgi/tech/1177431417/279
http://hibari.2ch.net/test/read.cgi/tech/1295493964/744
http://hibari.2ch.net/test/read.cgi/tech/1300000513/237
http://hibari.2ch.net/test/read.cgi/tech/1163319215/911
0446デフォルトの名無しさん2011/11/21(月) 21:27:16.82
同人サークルかなんかじゃないの?
0447デフォルトの名無しさん2011/11/21(月) 23:37:29.27
税金対策の個人企業で
たまにパッケージングのアルバイトが呼ばれる、と妄想
0448デフォルトの名無しさん2011/11/22(火) 00:49:24.40
何かつくろうよ
0449デフォルトの名無しさん2011/11/22(火) 01:13:25.28
何を作るか決まったら起こしてくれ
0450デフォルトの名無しさん2011/11/22(火) 23:25:13.20
>>449
SICPをひたすら実装
0451デフォルトの名無しさん2011/11/23(水) 00:01:32.19
新しいリンカ
0452デフォルトの名無しさん2011/11/23(水) 00:22:12.89
Dのあのマスコットがカンフーアクションするゲーム
0453デフォルトの名無しさん2011/11/23(水) 16:22:19.19
win用のリンカとデバッガを作り直して
64bit対応とともに玉砕しようぜ
0454デフォルトの名無しさん2011/11/23(水) 22:20:44.35
>>453
がんばれ
0455デフォルトの名無しさん2011/11/24(木) 21:18:31.16
lua組み込みたいんだけどはやりのバインダとかある?
環境はwin32
0456デフォルトの名無しさん2011/11/24(木) 22:09:53.24
ttp://code.google.com/p/dlua/
0457デフォルトの名無しさん2011/11/24(木) 22:16:37.18
ttp://www.dsource.org/projects/bindings/wiki/LuaLib
0458デフォルトの名無しさん2011/11/24(木) 23:13:55.19
意外と最近まで生きてるのな
0459デフォルトの名無しさん2011/11/24(木) 23:42:19.95
LuaDってのもあるが前に使った時は使い物にならん感じだった。
今は知らぬ。
0460デフォルトの名無しさん2011/11/25(金) 03:26:35.41
LuaLibを組みこんだ。
今のところ動いている…ぽい。
0461デフォルトの名無しさん2011/11/27(日) 13:48:11.18
今困っているという訳ではないが

DDOCの仕組みって
環境依存で出力されなくなる関数( version (Windows)とか )
をちゃんと処理できるんだっけ?
0462デフォルトの名無しさん2011/11/28(月) 02:37:03.24
やったことない
0463デフォルトの名無しさん2011/11/28(月) 03:04:36.57
eclipseにプラグインのDDTをいれてやってるんだが、急にoptlinkが出るようになったorz
それまでコンパイルできてたプロジェクトもexe吐けなくなったし
コンソールから打ってもdmdなんてないぞって怒られるし、敷居高すぎだろ・・・
0464デフォルトの名無しさん2011/11/28(月) 11:54:40.75
ttp://ja.wiktionary.org/wiki/%E6%95%B7%E5%B1%85%E3%81%8C%E9%AB%98%E3%81%84
0465デフォルトの名無しさん2011/11/28(月) 18:03:29.34
うむ、そこは閾が高いというべきだな
0466デフォルトの名無しさん2011/11/28(月) 19:24:14.09
>急にoptlinkが出るようになったorz
optlinkが出たんじゃどうしようもねぇな…
0467デフォルトの名無しさん2011/11/28(月) 19:57:32.55
TIOBE のシェアはやはり下降トレンドだな
0468デフォルトの名無しさん2011/11/28(月) 23:37:09.23
>>463
どうしてPATHの確認とかしないの?
0469デフォルトの名無しさん2011/11/29(火) 20:40:11.27
ちょっとしたプログラムを2.055を使って作っててバイナリサイズが980kbだったんだけど
2.056に変えたら一気に2289kbになった Dってこういうものなんかー
0470デフォルトの名無しさん2011/11/29(火) 21:30:38.88
なんだなんだstd.datetimeをリンクでもしたのか
0471デフォルトの名無しさん2011/11/29(火) 23:24:49.36
changelog 2.056が見れなくなってる・・・おいおい
0472デフォルトの名無しさん2011/11/30(水) 06:25:24.80
DでWindowsのShellExtensionは作れますか?
0473デフォルトの名無しさん2011/11/30(水) 20:08:56.01
作れます
0474デフォルトの名無しさん2011/12/02(金) 00:05:47.09
おい、phobosのコミッターに坂本真綾好きがいるぞ・・・
0475デフォルトの名無しさん2011/12/02(金) 00:15:39.02
それジョナさんだよ
0476デフォルトの名無しさん2011/12/02(金) 12:05:55.54
std.datetimeってどうしてあんなに巨大になったんですか?
0477デフォルトの名無しさん2011/12/02(金) 13:26:36.94
2.056のバイナリがでかくなるのは phobosが原因なのは分かってる

std.windows.registory の *W 関数への対応
これがあやしい

>>476
機能ごとに分割してくれと散々言われてるけど押し切れないらしい
0478デフォルトの名無しさん2011/12/02(金) 17:10:14.09
よくみてないけど、あのサイズなら、汎用化して別のライブラリとして切り出せる要素があるんじゃないかな。
0479デフォルトの名無しさん2011/12/02(金) 19:33:06.42
サイズはともかくdur!"seconds"みたいな書き方が微妙…
文字列にすることになんかメリットあんの?
0480デフォルトの名無しさん2011/12/02(金) 19:48:52.22
定義する必要のない識別子(rubyで言うところのシンボル)の代わり
0481デフォルトの名無しさん2011/12/02(金) 20:48:23.64
それって完全にDDoc殺してるよね
0482デフォルトの名無しさん2011/12/02(金) 21:17:42.80
DDoc殺すってどういうことですか?
0483デフォルトの名無しさん2011/12/02(金) 21:56:13.78
DDoc殺しよりIDE殺しのが気になる
0484デフォルトの名無しさん2011/12/02(金) 22:28:29.75
DDocにそういう場合の専用の書き方つけたら
IDEがそれを使えるんじゃね?
0485デフォルトの名無しさん2011/12/02(金) 23:12:32.09
datetimeじゃなくて core.time 由来だな
alias 切るくらいすればいいのに
0486デフォルトの名無しさん2011/12/02(金) 23:17:37.95
newで確保できる最大のメモリサイズってどこで定義されてんの。
200Mほどnewしたらハングするんだけど。
0487デフォルトの名無しさん2011/12/02(金) 23:38:13.04
GC に時間がかかってるというオチでは?
0488デフォルトの名無しさん2011/12/02(金) 23:41:18.62
プロパティ使おうとしただけなのに怒られる><
http://ideone.com/M6sbF
0489デフォルトの名無しさん2011/12/02(金) 23:47:19.09
>>488
目を覚ませ ペシペシ
0490デフォルトの名無しさん2011/12/03(土) 00:49:47.07
http://d.puremagic.com/issues/show_bug.cgi?id=6767
ワロタ
0491デフォルトの名無しさん2011/12/03(土) 01:02:51.70
なんだMacか。どうでもいい。



・・・・あれ?!
0492デフォルトの名無しさん2011/12/03(土) 13:23:34.08
まるで日本人が書いたような英語だな
0493デフォルトの名無しさん2011/12/03(土) 14:25:26.53
範囲比較でもジャンプテーブルでもなく
全部個別で比較してんのかw
0494デフォルトの名無しさん2011/12/03(土) 15:01:09.13
Cのtemplateを嗤えない
0495デフォルトの名無しさん2011/12/03(土) 15:26:55.25
case long.min: .. case long.max:
とか書くなよ!絶対書くなよ!
0496デフォルトの名無しさん2011/12/03(土) 15:36:22.04
>>495
くらえ!
mixin(import("case_range_bomb"));
0497デフォルトの名無しさん2011/12/03(土) 15:45:52.77
>>495
弾かれるけどな
Error: had 18446744073709551615 cases which is more than 256 cases in case range
0498デフォルトの名無しさん2011/12/03(土) 16:42:33.22
phobosって-property付きでコンパイルできるようになってるの?
0499デフォルトの名無しさん2011/12/04(日) 15:56:14.95
やってないけどDなら出来ないんじゃない?
気になったんだけど@propertyって今後無印の関数を()無しで呼び出せなくなるフラグ?
0500デフォルトの名無しさん2011/12/04(日) 18:33:57.17
そうでしょ
0501デフォルトの名無しさん2011/12/04(日) 19:41:32.73
>>498 いまその作業やってる。
https://github.com/D-Programming-Language/phobos/pull/342
ためしてみるといいよ。
0502デフォルトの名無しさん2011/12/04(日) 20:50:08.62
>>501
ざっと斜め読みしてたら吹き出した
0503デフォルトの名無しさん2011/12/05(月) 01:02:11.63
えっ newするときカッコなんか書きたくない!!
0504デフォルトの名無しさん2011/12/05(月) 01:21:26.57
newは変わらんだろC++的に考えて
0505デフォルトの名無しさん2011/12/05(月) 12:41:15.80
C++は括弧の有無で結果が変わるからなあ
0506デフォルトの名無しさん2011/12/05(月) 19:24:34.67
@propertyついてるコンストラクタは見かける
でもなんというかぞっとしないな
0507デフォルトの名無しさん2011/12/05(月) 20:45:45.99
どっちだ? ぞっとする/ぞっとしない
0508デフォルトの名無しさん2011/12/05(月) 20:56:53.14
ぞっとする:恐ろしい、寒いetcぞっとしない:面白くない、つまらない、感心しない、興味・関心がわかないetc

意味がちがう。
0509デフォルトの名無しさん2011/12/05(月) 21:01:53.15
でもこういうのって「ぞっとする」がどう見ても通じない場面じゃないと通じないよね
Dは普通にぞっとさせてくるし
0510デフォルトの名無しさん2011/12/05(月) 21:05:18.09
本とかあまり読まない人には通じないのかな?
まあ、否定形なのに対称をなしてないからわかりにくいのは確かだけど。
0511デフォルトの名無しさん2011/12/05(月) 21:08:00.31
ぞっとしない の反対は ぞくっとする なのかな
0512デフォルトの名無しさん2011/12/05(月) 21:14:49.68
「鳥肌が立つ」が寒さと恐怖・嫌悪と興奮・感動の両方を表わすという問題だわな
英語でもgoose bumps, chill, terrible/terrificが寒さ・恐怖・興奮の多義語だし
日本語の歴史中でも中世の「すごし」が寒いと嫌悪と興奮の多義語。
ぞっとする、ぞくっとするも同じカテゴリだわな
0513デフォルトの名無しさん2011/12/05(月) 22:40:30.11
ここではDの言葉で話せ
0514デフォルトの名無しさん2011/12/06(火) 01:37:48.78
公式ページ更新されたっぽいけど Change Logやっぱり見れねー
なにしとん
0515デフォルトの名無しさん2011/12/06(火) 08:06:47.61
まるで、

 日本語 Part28

みたいだな。
0516デフォルトの名無しさん2011/12/07(水) 12:36:55.85
http://dblog.aldacron.net/
おまいら、俺だけのけ者にしてこっそりニュースブログ見てたな
ぜったいにゆるさない!
0517デフォルトの名無しさん2011/12/07(水) 13:53:05.52
>>516で知ったけどVisualDにC++ Conversion Wizardなんて出来てんじゃん
・・・まあ気休め程度かな
0518デフォルトの名無しさん2011/12/07(水) 20:30:41.92
数年前に作った50行くらいのプログラム修正して2.055でコンパイルしたら
本当に200KB -> 1MBになったwww
ぱねぇwww
0519デフォルトの名無しさん2011/12/07(水) 22:50:37.71
2.056はどや?
0520デフォルトの名無しさん2011/12/07(水) 22:54:21.47
2MBくらいになりそう
0521デフォルトの名無しさん2011/12/07(水) 22:58:44.08
import std.stdio;
void main() { write("Hello World.\n"); }

2.056で HelloWorld は1.04MB
0522デフォルトの名無しさん2011/12/07(水) 23:00:04.35
このサイズは一体何に使われているの?
0523デフォルトの名無しさん2011/12/07(水) 23:22:53.25
linux 32 bitで

% dmd | head -1
DMD32 D Compiler v2.056
% dmd -ofmain -O -release main.d
% strip main
% ls -lh main
-rwxrwxr-x 1 c c 189K 2011-12-07 23:19 main*

200kBくらい?
0524デフォルトの名無しさん2011/12/07(水) 23:24:46.37
stripしちゃらめえええ
0525デフォルトの名無しさん2011/12/07(水) 23:37:22.61
extern (C) void printf(in char* format, ...);
void main() { printf("Hello World.\n"); }

2.056でこれだと 154kB
phobosはかさばるなぁ
0526デフォルトの名無しさん2011/12/07(水) 23:41:27.65
Windowsバイナリcygwinでstrip出来ないんだけどみんなそう?
0527デフォルトの名無しさん2011/12/08(木) 19:14:20.57
GCついて200KBとかならまだ納得いったがさすがにこれは無いわ
0528デフォルトの名無しさん2011/12/08(木) 19:34:39.63
よくわかんないけどこれって Phobos がテンプレート使いすぎてこうなったりしてんの?
薄いテンプレートイディオムで書き直せば改善されたりしないかな。
std.datetime のコード量もカオスだし・・・。
0529デフォルトの名無しさん2011/12/08(木) 20:24:11.81
すまん>>518なんだが、2.056だったわ

少し前のレス読むと2.055→2.056で急に増えたっぽい
何があったんだろう
0530デフォルトの名無しさん2011/12/09(金) 01:11:10.66
HelloWorld1MBワロタ
Dは飽きさせないな
0531デフォルトの名無しさん2011/12/10(土) 14:15:42.16
> HelloWorld 1MB
2.054 -> 2.055 で std.uniに巨大なテーブルが追加されている。
おそらくwritelnがこれを取り込むのでexeサイズが大きくなっている
0532デフォルトの名無しさん2011/12/10(土) 14:17:27.77
>ファイルからでデータを読んでbyteの配列に格納しようとしたら、 メガバイト級のコードが読み込まれた、 という事態は避けたいものです
^^;
0533デフォルトの名無しさん2011/12/10(土) 19:42:10.71
マクロまだー?
0534デフォルトの名無しさん2011/12/12(月) 03:16:48.17
D1が消えます
0535デフォルトの名無しさん2011/12/14(水) 17:33:32.46
2.057出たね
0536デフォルトの名無しさん2011/12/14(水) 18:38:15.43
変更点。中の人は本当に乙
http://dusers.dip.jp/modules/forum/index.php?topic_id=108
0537デフォルトの名無しさん2011/12/14(水) 18:55:11.51
enumでinit出来たのか・・・
0538デフォルトの名無しさん2011/12/14(水) 18:55:22.43
例のswitchのはまだまだか
0539デフォルトの名無しさん2011/12/14(水) 18:56:20.11
単にint型のenumを作って
列挙子initをint.initで定義してるだけだな
まあ確かにできるけどw
0540デフォルトの名無しさん2011/12/14(水) 19:14:56.85
enumで思い出したけど
どうせならenumの全メンバをforeachで回させてくんないかな
valuesみたいなプロパティがあればいいんだが
0541デフォルトの名無しさん2011/12/14(水) 19:25:57.64
>> 540
std.traitsにEnumMembersがある
0542デフォルトの名無しさん2011/12/14(水) 19:42:50.78
>>541
そんなのがあったのか
thx
0543デフォルトの名無しさん2011/12/14(水) 20:51:37.93
>std.regex.replaceに破壊的変更
Yeeeeeeeeeeeeeeeeeeeeeeeeeeeeaaaaaaaahhhhhhhhhhhhhhh!!!!!!
0544デフォルトの名無しさん2011/12/14(水) 21:07:19.34
マゾが多いなw
0545デフォルトの名無しさん2011/12/14(水) 23:21:15.01
http://www.phoronix.com/scan.php?page=news_item&px=MTAyNzI
New Features Approved For Fedora 17

D2 programming language support.
0546デフォルトの名無しさん2011/12/15(木) 00:41:43.74
Change LogでBreaking changeが赤文字になってて吹いた
0547デフォルトの名無しさん2011/12/15(木) 01:31:58.13
あれ? std.intrinsic どこ行った・・・?
0548デフォルトの名無しさん2011/12/15(木) 02:44:08.62
さよならTango
0549デフォルトの名無しさん2011/12/15(木) 02:44:36.08
そろそろD2を固定してもいいんじゃないか
0550デフォルトの名無しさん2011/12/15(木) 02:56:21.67
マゾが多いな
0551デフォルトの名無しさん2011/12/15(木) 07:10:08.79
D3はまだか…
0552デフォルトの名無しさん2011/12/15(木) 11:45:55.95
>>547
モジュールとしてはすでにdeprecated, 置き換え先はcore.bitop
Documentからリンクが消えたのは、たぶん間違えて消しちゃったんじゃないかな
0553デフォルトの名無しさん2011/12/15(木) 13:02:33.06
>>552
thx
0554デフォルトの名無しさん2011/12/17(土) 18:12:09.44
WindowsAPIのHANDLEはaliasとenum、どちらがいいんだろうか
0555デフォルトの名無しさん2011/12/17(土) 21:13:17.44
intptr_t的なものがいいんじゃね?
0556デフォルトの名無しさん2011/12/17(土) 21:22:17.91
alias intptr_t HANDLE;
かな、普通に考えると
0557デフォルトの名無しさん2011/12/17(土) 21:42:50.13
配列を戻り値にする関数で最後にuniqを使いたいんだけど

int[] func() {
 int[] values;
 // ...
 return uniq(values);
}

uniqの戻り値って配列じゃないんだよな
というかrange絡みの関数は全体的にそんな感じだ
どうすればいいのやら
0558デフォルトの名無しさん2011/12/17(土) 22:53:09.06
uniq(values);
return values;
0559デフォルトの名無しさん2011/12/17(土) 23:18:30.31
だめだった
0560デフォルトの名無しさん2011/12/17(土) 23:58:46.01
std.array.array
0561デフォルトの名無しさん2011/12/18(日) 00:35:09.07
そっちか!Thx
0562デフォルトの名無しさん2011/12/19(月) 00:13:18.38
@safe pure nothrowたん・・・(*´Д`*)ハァハァ
0563デフォルトの名無しさん2011/12/19(月) 00:15:53.63
@政府 うあ 野田たん・・・(><)
0564デフォルトの名無しさん2011/12/19(月) 02:38:12.30
@trustedをつけてまわるだけの簡単なおしごと
0565デフォルトの名無しさん2011/12/19(月) 03:05:58.78
なんでAppenderはpureじゃないの
0566デフォルトの名無しさん2011/12/19(月) 22:25:57.35
throwする可能性があるからじゃ?
0567デフォルトの名無しさん2011/12/19(月) 23:39:33.94
これ1になるんだけどそういうもん?

ttp://ideone.com/WULc0

0568デフォルトの名無しさん2011/12/20(火) 00:19:15.32
aaA見たけどわかんね
0569デフォルトの名無しさん2011/12/20(火) 01:14:34.46
>>567
おてんとうさまがゆるしても
おれがゆるさねぇ
0570デフォルトの名無しさん2011/12/20(火) 02:48:56.13
あれ?pureとnothrowは直交してないのか?
0571デフォルトの名無しさん2011/12/20(火) 15:58:11.56
>>567
ある意味正しい。

> hoge["fuga"] = hoge.length
左辺の評価でまずkey="fuga"のエントリが確保され、この時点でhoge.length==1になる
その後確保されたエントリにhoge.lengthの評価結果(==1)が設定される。

*(p++) = *(p++)とかと同じようなもの
0572デフォルトの名無しさん2011/12/20(火) 16:02:41.35
>>565
GC関連の関数を内部で直接呼んでいるため。
言語としてはnew式はpure扱いだが、ランタイムのGC関数がpureであるべきかは
newsgroup上の議論でも明確な結論が出てなかったと思う。
0573デフォルトの名無しさん2011/12/20(火) 16:04:05.33
>>570
直交している。Appenderがpureでない理由は>>572の通り。
0574デフォルトの名無しさん2011/12/20(火) 20:20:35.80
>>571
なるほど納得した
0575デフォルトの名無しさん2011/12/21(水) 00:17:01.32
直感的にはhoge.set("fuga", hoge.length);みたいな評価順の方が嬉しいかな
0576デフォルトの名無しさん2011/12/21(水) 00:40:50.28
アセンブリ想像出来てれば直感的だし今のでいいと思うけど
0577デフォルトの名無しさん2011/12/21(水) 00:43:41.69
右辺で例外が起きたらと考えると、怖いな
0578デフォルトの名無しさん2011/12/21(水) 01:27:27.23
opIndexAssign( "fuga", hoge.length )
こんなオーバーロードないんだっけ?
0579デフォルトの名無しさん2011/12/21(水) 01:36:45.52
>>577
assert(笑);
0580デフォルトの名無しさん2011/12/21(水) 01:50:49.40
>>577
STLのコンテナでfront()とpop()が分かれてる理由系の話だね
http://ideone.com/rBvF3
0581デフォルトの名無しさん2011/12/21(水) 17:13:59.45
D1系のアップデート見てて思ったんだけど
CTFEできる範囲って仕様で明確化されてるの?

仕様に沿ったコンパイラでCEFEのせいで
コンパイルできる事とできない事があるってのはとても困る気がする
0582デフォルトの名無しさん2011/12/21(水) 17:17:28.83
pureなものじゃない?
今@pure付けられる範囲をどんどん広くしていってる気がする
0583デフォルトの名無しさん2011/12/22(木) 02:24:56.04
@safeならCTFEできる、ってのもあったような。
0584デフォルトの名無しさん2011/12/22(木) 13:21:42.68
ぶっちゃけ、大抵のプログラムは、C#なりPythonなりHaskellなりGoなりの高級言語を使えばよくて、
わざわざ「Cに代わる低級言語」を持ち出す必要はない

一方で、本当にC言語に取って代わろうとするなら、
高級言語を持ち出せない、プアな環境で使えないといけない

・ポインタ演算は手放せない
・GCは使えない
・ポリモーフィズムも使えない
・テンプレートも容量を食い過ぎる
・正規表現を実行時にコンパイルするのは贅沢すぎる
・標準ライブラリーが充実させても意味が無い
・標準でないアーキテクチャをサポートしなければならない

それなら、C言語で十分じゃない?

文字列型?ハッシュマップ?サードパーティ製のを使えばいい

ドキュメント自動生成なら、言語仕様を変更しなくても、Pythonとかでツールを作ればいい

Cのシンタックスがキモいとか、Lisp風マクロとかが欲しいと言うのなら、
JavaScriptに対するCoffeeScriptみたいな物を作ればいい
0585デフォルトの名無しさん2011/12/22(木) 13:26:14.29
哀れなD使い達を説得しにきたの?
0586デフォルトの名無しさん2011/12/22(木) 14:35:57.36
あちこち手を伸ばしすぎて
かつて売りにしてた機能まで潰しまくる迷走ぶりについては認める
0587デフォルトの名無しさん2011/12/22(木) 14:56:03.70
ttp://www.kmonos.net/alang/d/2.0/builtin.html
0588デフォルトの名無しさん2011/12/22(木) 16:41:48.27
複素数…
0589デフォルトの名無しさん2011/12/22(木) 22:25:33.38
typedefってなんで消えたの?
あの超シンプルに型を作れるところが気に入ってたんだけど
0590デフォルトの名無しさん2011/12/22(木) 23:06:14.50
基本的にマクロみたいな機能は無駄です
0591デフォルトの名無しさん2011/12/23(金) 09:28:03.36
それってaliasのこと?
0592デフォルトの名無しさん2011/12/23(金) 10:52:52.35
alias は便利だけど危うさが漂う
もうちっと機能を狭めてもいい
0593デフォルトの名無しさん2011/12/23(金) 11:15:18.32
>>590
そんなんじゃ「そうじゃねーよ俺は便利に使ってんだよ」と反論できちまう
せめて「typedefあるとコンパイラの実装が超大変になるんだよ、わかれよ」くらい言ってほしい
0594デフォルトの名無しさん2011/12/23(金) 11:43:45.05
strong typedefはまともにやるとめんどくさいからな。
t f(t, t)って関数があってtからuを新たに作ったときに、t f(u, t)として使えるのが正しいのか
t f(u, u)が正しいのかu f(u, u)が正しいのか。
0595デフォルトの名無しさん2011/12/23(金) 12:11:48.42
ユーザ定義リテラルがあれば
複素数をビルトイン型にしなくてもいいような気もする
(パフォーマンス的には分からんが)
0596デフォルトの名無しさん2011/12/23(金) 12:14:25.88
>>594
やっと納得した
uがどこまでtか微妙なのが仕様的に面倒なのね

あれ、でもenum…
0597デフォルトの名無しさん2011/12/23(金) 12:56:34.72
>>595
複素数がライブラリに移動したときにその話はあった
結論から言うとcomplex型とimaginary型を併用することでパフォーマンス的にも問題なく解消する
ただし記述が面倒だからユーザー定義リテラルが必須
0598デフォルトの名無しさん2011/12/23(金) 19:54:02.30
ユーザー定義リテラルを入れたいから複素数リテラルをなくしたのか?
ユーザー定義リテラルを入れなくても、複素数リテラルがあれば、複素数についてのパフォーマンスは元々解決されていたんでしょう。
なくす必要性がまだ見えないんだよね
0599デフォルトの名無しさん2011/12/23(金) 20:07:50.18
コンパイラ組みこみじゃなく、
ライブラリの存在を前提としたシンタックスシュガー化するということかと。
Dならstring→immutable char[]が似ているし、
C#のstringはSystem.Stringの別名だ(と思う)し。
0600デフォルトの名無しさん2011/12/23(金) 20:17:25.54
ユーザー定義リテラルって何ぞ・・・? ガクガクガタガタ
0601デフォルトの名無しさん2011/12/23(金) 20:19:04.64
C99が複素数を言語組み込み、C++が複素数をライブラリ提供してるけど
gccはバイナリ互換性を持たせるために、「コイツは内部的に複素数だ」ってpragma用意してるよね。

Dの複素数もC99の複素数とバイナリ互換性を持ってるはずだが、ライブラリ版はどうなってるんだろう。
0602デフォルトの名無しさん2011/12/24(土) 03:55:23.75
>>599
そうするのはなぜだか知ってますか?
ユーザー定義リテラルを導入するならば複素数だけ優遇する必要がないから?
0603デフォルトの名無しさん2011/12/25(日) 04:15:55.26
octal!100はどうするんだよ…。
octだったかな
0604デフォルトの名無しさん2011/12/25(日) 12:14:29.54
dlang.org てのがまた出来てる
こっちに移るんかな
0605デフォルトの名無しさん2011/12/25(日) 17:11:57.58
当面の間はミラーリングして様子見じゃないの
0606デフォルトの名無しさん2011/12/26(月) 01:33:27.78
const(char[])がconst(char)[]に暗黙変換されるようになったんだってな。なんか不具合出ないのかな
0607デフォルトの名無しさん2011/12/26(月) 07:19:58.60
仕様も見ずに言うけどref引数だと変換されないんだよね?
0608デフォルトの名無しさん2011/12/26(月) 20:31:46.19
ちょっと生理させてくれ

const(char)[]:中身を書き換えられない配列
const(char[]):?? Cのchar a const[] ?? いやそれじゃchar a[]と同じか
0609デフォルトの名無しさん2011/12/26(月) 23:07:10.07
const(char[]) a, b;
a = b;
が出来ないんじゃなかった?
0610デフォルトの名無しさん2011/12/26(月) 23:17:27.56
・・・えっち
0611デフォルトの名無しさん2011/12/27(火) 02:56:23.39
月桂冠
0612デフォルトの名無しさん2011/12/27(火) 08:42:56.37
厶板ではここが一番落ち着く
0613デフォルトの名無しさん2011/12/27(火) 11:50:14.46
わかるわ
俺もD言語に全く興味ないのに覗いてるしな
0614デフォルトの名無しさん2011/12/27(火) 12:05:34.60
あれ、俺がいる
0615デフォルトの名無しさん2011/12/27(火) 13:37:36.63
逃げない奴はよく訓練されたD言語erだ
0616デフォルトの名無しさん2011/12/27(火) 21:03:32.31
D言語が落ち着くまで待ち続けるぜ
0617デフォルトの名無しさん2011/12/27(火) 21:08:22.82
UFCSとラムダ式が入るらしい
まだまだ若者には負けんよ
0618デフォルトの名無しさん2011/12/27(火) 21:21:05.99
UFCSって何?
0619デフォルトの名無しさん2011/12/27(火) 21:22:04.16
Windows版64bit対応くらいしてくり
0620デフォルトの名無しさん2011/12/27(火) 21:23:30.80
Universal Fire Contol System
0621デフォルトの名無しさん2011/12/27(火) 21:47:40.01
これで敵軍も拾った武器で戦えるようになるね! っておい
0622デフォルトの名無しさん2011/12/28(水) 10:39:17.88
2.057でもHello, World1MBのまま?
0623デフォルトの名無しさん2011/12/28(水) 13:05:42.51
import std.stdio;
void main() { writeln("hello, world."); }

↑に -O -relese -inline 付けて
933404byte=911.5kbyteだった
0624デフォルトの名無しさん2011/12/28(水) 14:06:17.81
クソだな
0625デフォルトの名無しさん2011/12/28(水) 15:43:07.33
>>622
2.058から220KBに減るよ
0626デフォルトの名無しさん2011/12/28(水) 15:50:05.25
別にでかくても実害ないとは思ってるが、小さいバイナリ好きなのもちょっとわかる
0627デフォルトの名無しさん2011/12/28(水) 15:58:44.05
>>625
リリース直後にそういう話が出てたから対応済みかと思ってたわ
2.057 に移行する意欲が減退・・・冬眠でもするか
0628デフォルトの名無しさん2011/12/28(水) 16:43:49.87
サイズってそんなに重要?
配布するにしても7zとか使えば誤差みたいなもんだと思うんだけどなあ
0629デフォルトの名無しさん2011/12/28(水) 17:50:25.84
その辺はPyの文法が許せるかとか
MyClassName instance = new MyClassName();
の冗長性が許せるかとか
そういうレベルの話だと思う。
気にする人もいればそうでない人もいる。
0630デフォルトの名無しさん2011/12/28(水) 17:52:43.48
小さいプログラムだと結構嫌だな、サイズでかいの
まあそういうのはDなんか使わないでスクリプト言語でも使ってろって話なんだけど
0631デフォルトの名無しさん2011/12/28(水) 18:46:43.46
公開したり、他の人へあげるの、躊躇するよね
大した機能もないのに1MBだと、何か仕込んでるじゃないと勘ぐられそうでw
0632デフォルトの名無しさん2011/12/28(水) 23:04:03.41
upx使うと147kbまでがっつりと減った。
こっちはこっちで抵抗あるとは思うが、いちおう。

しかし900kbってなんかDelphiを思わせるサイズだ。
Dってアルファベットになんか呪いでもあるのかとw
0633デフォルトの名無しさん2011/12/28(水) 23:13:50.50
Deburin
0634デフォルトの名無しさん2011/12/28(水) 23:19:14.70
そのファイルサイズ、大きいように見えるでしょ?
でも、実際にはOSのシステムファイルと共通してる部分が多いから、実際にはそんなにサイズは食ってないんです。
0635デフォルトの名無しさん2011/12/28(水) 23:41:09.33
いや表示されてるだけサイズ食ってるだろw
ゼロパディングされてるわけでもあるまいし
0636デフォルトの名無しさん2011/12/28(水) 23:41:48.93
実際に900KB食ってるだろ
0637デフォルトの名無しさん2011/12/28(水) 23:43:30.61
これが本当のエクササイズ
0638デフォルトの名無しさん2011/12/29(木) 09:47:22.63
upx使うと減るってことは冗長な記述が多いってことか……
0639デフォルトの名無しさん2011/12/29(木) 12:49:18.74
Dは大らかな人達が開発してるんだよ
ファイルサイズくらいどうってことないよ
0640デフォルトの名無しさん2011/12/29(木) 15:14:24.01
649 デフォルトの名無しさん [sage] 2011/12/29(木) 14:50:37.28 ID: Be:
学生プログラマ日本一決定戦(予選は社会人も参加可)
ttp://codevs.jp/howto.html
現在予選開催中
応募締切 2012.1.6 12:00

おもしろいことやっているじゃん。誰か今から参加しろよ。
0641デフォルトの名無しさん2011/12/29(木) 17:12:06.58
>>640
盛り上がってないからって
あちこちで宣伝すんなよ
0642デフォルトの名無しさん2011/12/29(木) 19:03:34.97
>>635
バイナリエディタでexe見てみたら、ゼロばかり並んでるw
0643デフォルトの名無しさん2011/12/29(木) 20:32:50.15
タワーディフェンスだと・・・?
http://codevs.jp/rule.html
0644デフォルトの名無しさん2011/12/29(木) 20:40:47.22
Watch out, or you may attract a thunderbolt!!
0645デフォルトの名無しさん2011/12/29(木) 22:13:18.43
久々にJavaScriptで書いてみたが、コンパイル時型チェックがないのは面倒ではあるな
大規模プログラミングでこれは使えないだろうとは思った。
0646デフォルトの名無しさん2011/12/30(金) 12:35:56.70
だが、それがいい
0647デフォルトの名無しさん2011/12/30(金) 13:45:55.76
近頃のDはコンパイラアップデートしても割とすぐコンパイルできる代わりに
端々で以前と違う挙動をしてアプリをバグらせてくれる
これはいいものだ
0648デフォルトの名無しさん2011/12/30(金) 13:54:14.69
年内今日明日で何か作る
0649デフォルトの名無しさん2011/12/30(金) 17:31:39.90
import std.xml;
import std.stdio;
void main() {
 auto doc = new Document(new Tag("root"));
 auto e = new Element("elem");
 e.tag.attr["attr"] = `"quot"`; // '"'入りの文字列
 doc ~= e;
 writeln(std.string.join(doc.pretty(1),"\n"));
}

$ dmd -run x.d
<root>
<elem attr=""quot"" />
</root>

以前std.xmlで属性がエスケープされないって話があって、確か直ったはずなんだけど
どうして戻ってるの…
0650デフォルトの名無しさん2011/12/30(金) 18:11:03.14
std.xmlってなくなるんじゃないの?
0651デフォルトの名無しさん2011/12/30(金) 18:21:06.27
Cのlongと同じ型!みたいなエイリアスが詰まったモジュールとかありませんか?
0652デフォルトの名無しさん2011/12/30(金) 19:21:53.92
>>650
無くなるのはいいけどいつまで経っても無くならないなぁ
代替手段ができるまではちゃんとメンテしてほしす
0653デフォルトの名無しさん2011/12/30(金) 21:13:57.83
>>651
Cはプリミティブ型のバイト数決まってないから無理
0654デフォルトの名無しさん2011/12/30(金) 21:54:49.34
>>653
だからこそdmcの型と対応するaliasが欲しいって話じゃね?
0655デフォルトの名無しさん2011/12/31(土) 01:31:26.59
version か何かで分岐すれば良い
0656デフォルトの名無しさん2011/12/31(土) 01:55:24.04
それをユーザ側でいちいち用意するのは馬鹿らしいってことじゃないの?
intptr_tはあるけどな
0657デフォルトの名無しさん2011/12/31(土) 08:00:29.16
使う人いるのか、いないだろうな
他のライブラリポーティングするにしても大抵Uint8とかGLintみたいにそのライブラリ固有で型定義してるし
0658デフォルトの名無しさん2011/12/31(土) 08:35:48.82
typedef long HogeLibInteger;
D語に訳すにはどうすればいいんでしょうか
0659デフォルトの名無しさん2011/12/31(土) 09:26:42.03
alias long HogeLibInteger;
0660デフォルトの名無しさん2011/12/31(土) 15:51:22.55
typedefがオワコンになった今、今更キーワードaliasをtypedefに戻せない辺りに哀愁を感じる
0661デフォルトの名無しさん2011/12/31(土) 16:02:11.71
3.0に期待
0662デフォルトの名無しさん2011/12/31(土) 16:30:12.61
@strong alias
こんな感じで
0663デフォルトの名無しさん2011/12/31(土) 20:10:52.35
どっちでもいいけどななー
typedefに戻すメリットもたいしたものないし
0664デフォルトの名無しさん2011/12/31(土) 21:16:57.34
typedefってJavaのgotoみたいな永久欠番になるのかな
0665デフォルトの名無しさん2011/12/31(土) 21:18:15.30
3.0開発し始めたら

アンドレイ「いいこと考えた。1行で完全に新しい型を定義できる機能とか新しくね?」
ウォルたん「いいね!なぜかtypedefってキーワードが空いてるからそれ使おう」

ってなるよ
0666デフォルトの名無しさん2011/12/31(土) 21:38:40.28
typedefの代わりに、structで包めばいいかな
0667デフォルトの名無しさん2011/12/31(土) 21:55:14.94
別にstrong typedefは新しい機能でもなんでもないぞ。C言語由来の型システムとはなじまないってだけで。
0668デフォルトの名無しさん2011/12/31(土) 23:28:12.64
リファクタリング...ひらめき...実装...リリース!
0669デフォルトの名無しさん2012/01/01(日) 01:23:56.49
灰になった!
0670デフォルトの名無しさん2012/01/01(日) 04:42:41.23
代替手段ができるまではメンテして欲しいよな
0671デフォルトの名無しさん2012/01/01(日) 09:48:04.67
代替手段ができるできる詐欺である可能性もあるからな
そろそろD言語も元年を標榜してみる?
0672デフォルトの名無しさん2012/01/01(日) 20:42:49.91
-propertyへの対応で元日終わりそう
0673デフォルトの名無しさん2012/01/01(日) 21:34:04.83
あれ?

int func1() { return 1; }
@property int func2() { return 1; }

void func3(int i) { }
@property void func4(int i) { }

void main() {
 int i;
// i = func1; // -propertyだとコンパイルエラー
 i = func2;

 func3 = i; // コンパイルできる…
 func4 = i;
}

これってそういう仕様なの?
0674デフォルトの名無しさん2012/01/02(月) 05:53:20.19
Dって引数以外でref変数あるの?
0675デフォルトの名無しさん2012/01/02(月) 10:10:17.53
>>674
関数の返り値はrefにできる。
変数自体には指定できないけど、ポインタやクラスで代替可能。
0676デフォルトの名無しさん2012/01/02(月) 10:50:07.97
ありがとうございます。おとなしくポインタ使います
0677デフォルトの名無しさん2012/01/02(月) 11:24:20.97
ポインヨだろ 間違えるな
0678デフォルトの名無しさん2012/01/02(月) 14:35:37.56
ポインティーヌ
0679デフォルトの名無しさん2012/01/02(月) 18:08:52.92
>>673
https://github.com/D-Programming-Language/dmd/pull/279
パッチを出したがまだマージされていない
0680デフォルトの名無しさん2012/01/02(月) 18:17:05.66
>>649
ざっとstd.xmlのコード見てみたが、
> e.tag.attr["attr"] = `"quot"`; // '"'入りの文字列
はTagクラスのpublicなattrフィールド(連想配列)に直接値を設定しているから、
encode/decodeとか何も動かない。

つまりそんな機能は元から無い様に見える。
0681デフォルトの名無しさん2012/01/02(月) 19:20:56.52
Tagクラスの toNonEndString のところ
decodeじゃなくて、encodeにすべきなんじゃないのか?
0682デフォルトの名無しさん2012/01/02(月) 20:03:47.76
>>681
ああ、そっち(出力)の方か。確かにそこをencodeにすると、
outputがエンコードされるようになるな。

誰かbugzillaにレポート投げてくれればfixされるかも。
0683デフォルトの名無しさん2012/01/02(月) 22:54:27.85
>>679
やっぱバグなのね。ありがと

つまり次のバージョンでもう半分の-property地獄を体験することになるわけだな
これだからDはやめらんねぇ!
0684デフォルトの名無しさん2012/01/03(火) 00:42:58.19
std.xml Commentクラスのコンストラクタ内
× if (content == "-" || content.indexOf("==") != -1)
○ if (content == "-" || content.indexOf("--") != -1)
0685デフォルトの名無しさん2012/01/03(火) 05:59:45.30
おお
やっぱ消えると分かっていてもメンテしてくれないと困るな
0686デフォルトの名無しさん2012/01/03(火) 06:00:41.72
あるいはguthubで特定のソースに対するpatchを簡単に絞り込めないのかな
0687デフォルトの名無しさん2012/01/03(火) 14:21:43.58
ネスト関数に事前条件無しで事後条件書くと構文エラーになるけど、
事前条件有りで事後条件書くとコンパイル通って動くんだけど、なんか理由があるのかな?
0688デフォルトの名無しさん2012/01/03(火) 21:12:23.26
>>687
手元で試したら全部通ったけど、どんなコード書いたの?
0689デフォルトの名無しさん2012/01/03(火) 22:31:29.87
>>688

void main()
{
string foo()
//in
//{
//}
out (result)
{
assert(result.length == 0);
}
body
{
return null;
}
}

__EOF__

このままコンパイルしようとすると構文エラーで通らない。コメントアウトすると通る。
ちなみにコンパイラはDMD64(v2.057)をUbuntu向けパッケージからインストールしたもの。
0690デフォルトの名無しさん2012/01/03(火) 22:35:18.75
エラーメッセージはこんな感じ

d.d(7): found 'foo' when expecting ';' following statement
d.d(7): expression expected, not ')'
d.d(7): found 'out' when expecting ')'
d.d(8): found '{' when expecting ';' following statement
d.d(11): Declaration expected, not 'body'
d.d(14): unrecognized declaration
0691デフォルトの名無しさん2012/01/03(火) 23:08:59.74
それ多分ウォルターの自作自演だから
0692デフォルトの名無しさん2012/01/04(水) 00:21:59.25
>>689
パーザーの問題。DMDのパーザーは手書きだからこういう抜けが未だにある。
in/outなしでbodyだけ付けるのも同じようにrejectされるな。

原因は判ったのでパッチを書いておくが、bugzillaはどうする?
自分で投げてみるいいチャンスかも。
0693デフォルトの名無しさん2012/01/04(水) 00:32:34.95
ちなみにテストコードはこれ

void main()
{
size_t foo() in{} out{} body{ return 0; } // OK
size_t bar() /*in{}*/ out{} body{ return 0; } // NG1
size_t baz() /*in{} out{}*/ body{ return 0; } // NG2
}
0694デフォルトの名無しさん2012/01/04(水) 03:41:31.25
あ、仮引数の省略ってできたっけ?
0695デフォルトの名無しさん2012/01/04(水) 03:42:00.71
あと使わない実引数の省略もか
0696デフォルトの名無しさん2012/01/04(水) 09:52:43.56
>>694
仮引数の省略は不可。
一応、可変個引数で似たようなことは出来るが、余計めんどくさい・・・

>>695
デフォルト引数が設定されている引数については省略可。
0697デフォルトの名無しさん2012/01/04(水) 12:15:29.91
いやそうでなくて、変数名の省略
0698デフォルトの名無しさん2012/01/04(水) 13:06:37.84
変数名省略できる言語なんかあるのか?
0699デフォルトの名無しさん2012/01/04(水) 13:13:57.12
timerStart( 1000, (Timer,EventArgs){ doSomeThing(); } );

こういうのが書ければいいってことでしょ
0700デフォルトの名無しさん2012/01/04(水) 13:17:33.72
長い変数名を書くのが面倒で、短い変数名にしたいって事なら、alias使えばおk。
クラスや構造体の参照を簡略化したいなら、with文を使うのもあり。

型名を書くのを省略したいという事なら、残念ながらDでは出来ません。
関数オブジェクトを簡単に作りたいなら、関数リテラルを使えばおk。
型が違うだけで、処理の内容が同じ関数を書くのが嫌という話なら、テンプレートを使えばおk
0701デフォルトの名無しさん2012/01/04(水) 13:36:24.87
>>697
void foo(int, long){ ... }
みたいに、通常の関数で型だけを書いて仮引数名を省略することは可能。
これはC言語系列のsyntaxを受け継いでいる。

>>699
2.058からは関数リテラルで仮引数名の省略は出来なくなる。なぜなら
関数リテラルのパラメータ型推論・funciton/delegate推論が入ったため、

(a, b){ doSomethig(); }

で、a,bが型名か仮引数名かパース時点では判明しないため。
→2.057までは型名として、2.058以降は仮引数名として扱われるようになる

>>700
上に書いたとおり、関数リテラル限定で型名を書くのを省略できるようになる。
0702デフォルトの名無しさん2012/01/04(水) 14:02:36.29
>>701
なんで通るんだろうと思いつつ。
で、どうやって引数の値にアクセスするのよ?
http://ideone.com/6NLyf

誰だ、型名省略できるって言ったやつ。
まあ、戻り値の型は省略できるけどね。
http://ideone.com/AXEQu
0703デフォルトの名無しさん2012/01/04(水) 14:49:02.14
>>702
上:コールバック関数やデリゲートに渡すやつで
  「関数の型(引数リスト)が決められているけど
   引数は結局使われない」というケース。>>699 はその例
下:2.058(次期リリース)以降の話。
0704デフォルトの名無しさん2012/01/04(水) 15:44:02.20
>>702
C言語やってないだろ!引数を参照しないとコンパイル時に警告でるからそれ対策で型名だけにするってよくやるよ
0705デフォルトの名無しさん2012/01/04(水) 23:44:58.41
>>704
そうそれが知りたかった
0706デフォルトの名無しさん2012/01/05(木) 01:32:26.19
>>689
issueとパッチのPullRequestを出しておきました。

http://d.puremagic.com/issues/show_bug.cgi?id=7218
https://github.com/D-Programming-Language/dmd/pull/608
0707デフォルトの名無しさん2012/01/05(木) 09:25:27.92
>>704
しらねーよ!悪かったな!
0708デフォルトの名無しさん2012/01/05(木) 17:24:31.05
>>706
マージされた
https://github.com/D-Programming-Language/dmd/commit/4d93bbf53cba3eb19733d2e5cd209b67034f2d10
0709デフォルトの名無しさん2012/01/05(木) 19:10:11.82
はやっ
どうなってんだ
0710デフォルトの名無しさん2012/01/05(木) 23:12:29.93
はやすぎる(笑)
0711デフォルトの名無しさん2012/01/05(木) 23:23:18.36
ム板では結局ここが一番落ち着く
0712デフォルトの名無しさん2012/01/05(木) 23:29:57.36
上に同じこと書いたのを完全に忘れていた
もう駄目かな…
0713デフォルトの名無しさん2012/01/05(木) 23:45:00.75
・基本的にWalterは毎日commitを行っている
・PullRequestも最低1つぐらいは一日にマージされる
・Parser関係のfixは理解しやすい&影響範囲も限られる
→変更の規模としては小さい部類なので比較的早くにマージされる

まあ、パッチの規模がでかいと逆に半年ぐらい放置状態になるんだけど。
0714デフォルトの名無しさん2012/01/06(金) 06:30:57.53
他の言語と違ってここのはコンパイラの修正がユーザーに近い時点で行われてるから
根強いファンが絶えないのも頷けるなw
0715デフォルトの名無しさん2012/01/08(日) 14:40:44.35
dwt2もgithubに移行か
0716デフォルトの名無しさん2012/01/08(日) 18:03:48.52
dwt2 もろくにメンテされてなかったけど
移行してマシになるの?
0717デフォルトの名無しさん2012/01/08(日) 20:18:31.68
一応メンテはされてるんだけど
オフィシャルへの反映が遅い…
0718デフォルトの名無しさん2012/01/08(日) 23:41:55.28
ハードウェアがより高性能に進化、ソフトウェアがより多機能に進化、
それに命令や操作をする人間は進化するどころか文化や人格を決め付けや思い込みで否定する争いを始めた
0719デフォルトの名無しさん2012/01/09(月) 01:26:59.13
DはマルチメディアやGUI関連に弱すぎる
0720デフォルトの名無しさん2012/01/09(月) 02:04:44.28
質問です。
std.randomのuniformのboundariesを指定したいときはどうすればよいのでしょうか。
0721デフォルトの名無しさん2012/01/09(月) 02:12:35.95
uniform!("[]")(0.0, 1.0, generator);
0722デフォルトの名無しさん2012/01/09(月) 09:33:38.41
なんだその指定方法(笑)
0723デフォルトの名無しさん2012/01/09(月) 10:53:52.75
>>721
ありがとうございました。
0724デフォルトの名無しさん2012/01/09(月) 11:27:03.86
おまえらバンドのDは好き?
http://www.d-gcr.com/
0725デフォルトの名無しさん2012/01/09(月) 16:41:13.84
今はじめて知ったから好きも嫌いもない
0726デフォルトの名無しさん2012/01/09(月) 17:06:04.89
知ってたけど話題にするほどいいバンドじゃないからあえて書き込まなかったのに…
0727デフォルトの名無しさん2012/01/10(火) 06:38:59.55
すみません。教えてください。

可変個関数引数に、ポインタを指定するにはどうすれば良いですか?

void die( ... )
{
real* foo = cast( real* )_argptr;
*foo = 0.0;
}

void main()
{
real evil = 666.0;
die( &evil );
}

こんな感じなのですが、上手く渡せません。

すいません。よろしくお願いします。
0728デフォルトの名無しさん2012/01/10(火) 10:15:31.56
import core.vararg;
...
real* foo = va_arg!( real* )( _argptr );
...

phobos のソースを _argptr でgrepした (w
0729デフォルトの名無しさん2012/01/11(水) 02:01:31.34
それポインタ?
0730デフォルトの名無しさん2012/01/11(水) 11:51:42.81
_argptrは、渡された引数へのポインタなんだから。
http://ideone.com/j4fL9

でも、もっといいのは、可変個引数関数を使うのではなくて、テンプレートのタプルを使う方法。
http://ideone.com/oNAbZ

もっと言うなら、ポインタを渡さずに、ref引数や、参照型のクラスを使う方が安全。
0731デフォルトの名無しさん2012/01/11(水) 15:05:14.13
Internal error: ..\ztc\cgcs.c 354
ってなんぞ?
0732デフォルトの名無しさん2012/01/11(水) 16:45:47.49
自己解決しますた
配列を返す関数を呼んでその戻り値に直接[]で添え字指定してたのが問題のようですた
0733デフォルトの名無しさん2012/01/11(水) 17:38:51.29
Deimos楽しそうだね
0734デフォルトの名無しさん2012/01/11(水) 19:39:44.49
なにせDでアプリ書くにはCのライブラリが必sゲルンゲフン
0735デフォルトの名無しさん2012/01/11(水) 20:26:50.36
githubから消えてるんだけどdeimosってどこにあるんだ
あとVisualDがインテリセンス的なもの載せてさらに凄くなってやがる
0736デフォルトの名無しさん2012/01/12(木) 01:00:24.65
http://github.com/d-programming-deimos
0737デフォルトの名無しさん2012/01/12(木) 01:11:09.31
Dもrubyみたいにブラッシュアップしてくれる中学生(ただし美少女に限る)どこかにいないかな
0738デフォルトの名無しさん2012/01/12(木) 20:10:17.09
スタックやキューなどのデータ構造のコレといったライブラリはありますか?
なければ自分で作るのでいいんですが、一応……。
0739デフォルトの名無しさん2012/01/12(木) 20:58:39.02
dcollectionsなのかなあ、コレというのは
個人的には配列が強力すぎて必要性を感じない
0740デフォルトの名無しさん2012/01/15(日) 11:28:39.23
bool foo(T)(T[] a ...){
return true;
}
void main(){
assert(foo(1,1,1,1,1,1));//OK
assert(foo("abc","abc","abc","abc"));//コンパイルエラー
}

これをコンパイルしようとしたら
test.d(6): Error: expected 1 function arguments, not 4
って怒られる
0741デフォルトの名無しさん2012/01/15(日) 12:09:07.55
foo(1,1,1,1,1,1);
のほうは実は
foo([1,1,1,1,1,1]);
でも呼び出せる。
2番目のもこれだと解釈されてる
0742デフォルトの名無しさん2012/01/15(日) 12:09:27.16
import std.stdio;

bool foo(T)(T[] a ...){
  foreach(i; a)
    write(i);
  return true;
}
void main(){
  foo([1,2,3]); // 出力: 123
}

SomeType[] a ...
という可変個引数の場合、可変部分ナシで配列を一つ渡すことでaに直接配列を渡せる。
だから、文字列(char[])に限らずfooに最初配列を渡した時点でaに対して配列を渡したことになって、複数渡すとエラーになる。

配列自体を可変個引数として渡したい場合は
foo!(string)("abc", "abc", "abc")
foo!(int[])([1,2,3], [4,5,6])
みたいにTが何であるか教えてやらないといけない。
0743デフォルトの名無しさん2012/01/15(日) 13:03:58.75
>>741-742
Tをちゃんと指定しないといけないんですね。
ありがとうございました。
0744デフォルトの名無しさん2012/01/15(日) 13:07:31.14
いやまあ、引数が配列複数な時点でコンパイラがTを配列として扱うべきな気もするけど……
0745デフォルトの名無しさん2012/01/19(木) 12:38:20.34
std.container.Array!(char) str;
が通らないんですけどどうすればいいんでしょう
ちょっとgcから切り離されたstringが欲しかっただけなんですけど
0746デフォルトの名無しさん2012/01/19(木) 14:28:21.70
>>745
malloc/freeを直接つかうとか
0747デフォルトの名無しさん2012/01/19(木) 19:07:59.01
@property void push(int[] arr, int val) { arr ~= val; }
void main() {
 int[] arr;
 arr.push = 42;
}

UFCSとか見てて、どうせだからこういうことしたくなるけど
さすがに無茶だよなぁ
0748デフォルトの名無しさん2012/01/19(木) 19:11:08.92
>>745
Array!(dchar) にしないとだめみたいだな
いいんだか、悪いんだか
0749デフォルトの名無しさん2012/01/19(木) 19:41:50.36
>>747
後でソース読むときが大変だと思う
0750デフォルトの名無しさん2012/01/19(木) 20:35:15.76
interfaceにGUID付けられるようにならないかな
RTTIからGUID取れるようにしてObjectのQIだけですべてのパターンに対応できる感じで
まあDelphiのパクリなんだけど
ちなみにこんな感じでできたら最高
http://ideone.com/GspW0
0751デフォルトの名無しさん2012/01/20(金) 04:40:49.62
昆布のtoってオブジェクトに対してかけるとobj.to!Tに転送されるんだね
ソース見るまで気づかなかった
0752デフォルトの名無しさん2012/01/20(金) 08:25:24.26
class A{
T to(T:string)(){
return "";
}
}
toStringより特殊化の方がいいってこと?
0753デフォルトの名無しさん2012/01/20(金) 10:53:58.40
最近は
T to(T)() if (is(T == string)) {
のほうだな
0754デフォルトの名無しさん2012/01/20(金) 11:09:13.49
しかし class の to は deprecate で cast 使うようになりそう?
http://www.d-programming-language.org/phobos/std_conv.html#toImpl
Scheduled for deprecation in January 2012. Please define opCast for user-defined types instead of a to function. to will now use opCast.
0755デフォルトの名無しさん2012/01/20(金) 11:42:27.25
to は双方向で
toString は一方通行のイメージ
0756デフォルトの名無しさん2012/01/20(金) 23:04:37.08
foreachでmixinって出来ない?
foreachを展開してmixinしかないかな
こんな感じにしたい
int abc, def;
foreach(s; ["abc", "def"])
writeln(mixin(s));
0757デフォルトの名無しさん2012/01/21(土) 00:59:55.47
mixinの中身はコンパイル時に確定しないといけないから無理じゃないかな
今CTFEでループさせるなら再帰しか無いけどstatic foreachって入る予定あるの?
0758デフォルトの名無しさん2012/01/21(土) 01:55:05.17
>>756
こういう事じゃないんだろうな、と思いつつ。
http://ideone.com/iZWxL
0759デフォルトの名無しさん2012/01/21(土) 02:14:38.17
>>756
foreachをコンパイル時に回す(=展開する)なら、
配列ではなくタプルを渡すとうまく行く

import std.traits;
foreach(s;TypeTuple!("abc","def"))
 writeln(mixin(s));
0760デフォルトの名無しさん2012/01/21(土) 02:25:29.44
>>751-755
型Aのオブジェクトaから型Bへの変換を行わせたい時、std.conv.toは
1. a.opCast!B()
2. a.to!B() // deprecated
3. B(a) // Bはstruct
または new B(a) // Bはclass
を試そうとする。但し B==string の場合はa.toString()が優先される。
0761デフォルトの名無しさん2012/01/21(土) 02:51:27.28
>>757-759
聞いてみるもんだなありがとう!
>>759がまんまだったよ
でもstd.traitsじゃなくてstd.typetupleだった
0762デフォルトの名無しさん2012/01/21(土) 02:56:10.51
俺はなんて遠まわしな事をしているんだ。
http://ideone.com/dUPb6
0763デフォルトの名無しさん2012/01/21(土) 07:35:04.36
>>759
おおすばらしい
この辺いつか文法的に整理されると信じてる
0764デフォルトの名無しさん2012/01/21(土) 11:52:28.16
>>761
正直言ってTypeTupleという名前は混乱の元だと思ってる。
(型だけではなく式やシンボルも受け取れるので)
Seq!(...)より抽象的でいいと思うんだけどなあ
0765デフォルトの名無しさん2012/01/21(土) 22:38:12.57
ところでRangeって便利ですか?
0766デフォルトの名無しさん2012/01/21(土) 22:54:46.75
Ranger
0767デフォルトの名無しさん2012/01/22(日) 00:04:41.28
便利さが実感できない
0768デフォルトの名無しさん2012/01/22(日) 00:45:12.66
かゆいところに手が届かない
0769デフォルトの名無しさん2012/01/22(日) 14:33:09.60
auto cap = std.regex.match( ... ).captures;

cap.length == 0 と cap.empty の結果が違うのはなんでなん?
0770デフォルトの名無しさん2012/01/22(日) 16:30:51.49
間違えた
前は cap.empty を見なくても length だけで行けてたのに、何で変えてしまったん?
0771デフォルトの名無しさん2012/01/22(日) 16:31:16.51
違わないけどどういう時?
0772デフォルトの名無しさん2012/01/22(日) 16:41:52.41
公式じゃないdflってドラッグドロップしたら落ちるバグって治ってますか
0773デフォルトの名無しさん2012/01/22(日) 17:05:25.62
確かこのスレの人が直したはず
0774デフォルトの名無しさん2012/01/22(日) 18:12:29.32
Application.autoCollect = false;

公式見解のこの方法じゃなくて?
0775デフォルトの名無しさん2012/01/22(日) 18:18:14.98
>>769-771
auto cap = std.regex.match( ... ).captures;
if (cap.length == M+1) {
// マッチしたときの処理
// 2.057 だとマッチしなくても入ってくる
}

こんな風に書いてたのが全滅して泣いた
0776デフォルトの名無しさん2012/01/24(火) 23:07:56.06
スコープの外に出てないローカルオブジェクトってスコープの終わりで自動的にGCとかされます?
0777デフォルトの名無しさん2012/01/25(水) 00:06:00.07
>>776
つttp://kmonos.net/alang/d/2.0/garbage.html
されない。明示的にdeleteしても、scope属性を付けても保証されるのはデストラクタの実行まで。
core.memory.GC.collect()を呼んでも動かないかも?
ttp://bm98.yaneu.com/dlang/Chapter-06.html
↑ちょっと古いけど、この辺の実装今はどうなってるんだろう?
0778デフォルトの名無しさん2012/01/25(水) 00:07:04.54
いえーい!777ゲット!
0779デフォルトの名無しさん2012/01/25(水) 00:07:22.76
oh…
0780デフォルトの名無しさん2012/01/25(水) 00:16:29.13
>>778
777オメw
0781デフォルトの名無しさん2012/01/25(水) 07:49:24.19
>>740-744
PullRequest投げました
http://d.puremagic.com/issues/show_bug.cgi? id=7359
https://github.com/D-Programming-Language/dmd/pull/637
0782デフォルトの名無しさん2012/01/25(水) 07:58:58.20
>781
もうマージされてた
https://github.com/D-Programming-Language/dmd/commit/c9f0d0646ad3dde8a383f6f195763459e5d9a35b
0783デフォルトの名無しさん2012/01/26(木) 02:00:58.42
すぐバグ修正されるのは素晴らしいね
0784デフォルトの名無しさん2012/01/27(金) 18:00:14.63
if ( DialogResult.YES == msgBox( msg, caption, MsgBoxButtons.YES_NO), MsgBoxIcon.QUESTION )
doSomething();
0785デフォルトの名無しさん2012/01/28(土) 01:07:17.94
しまった、オカルト板と間違えた
0786デフォルトの名無しさん2012/01/28(土) 11:32:26.21
闇言語だからだいたいあってる
0787デフォルトの名無しさん2012/01/28(土) 15:33:27.90
いつから出来なくなったん・・
auto f = FILE("test.txt", "w");
0788デフォルトの名無しさん2012/01/28(土) 16:42:32.13
>>784
ついった見ててやっとわかったけど `, MsgBoxIcon.QUESTION` の位置を間違えてるせいで
毎回doSomething()が実行されてナニコレ、って言いたかったんだな
0789デフォルトの名無しさん2012/01/28(土) 20:35:04.94
auto f = File("test.txt", "w");
0790デフォルトの名無しさん2012/01/29(日) 01:19:23.20
>>789
その考えは盲点でした。すばらしい!!
0791デフォルトの名無しさん2012/01/29(日) 16:33:18.48
Add new => lambda syntax.
なにこれ
つーかアップデートのたびBug直されまくってるのな
0792デフォルトの名無しさん2012/01/29(日) 16:38:36.32
これかな
http://www.d-programming-language.org/expression.html#Lambda
0793デフォルトの名無しさん2012/01/29(日) 16:51:09.63
dmdやphobosのバグに対処するのは楽しいがoptlinkだけはダメだ
血管が切れそうになる
0794デフォルトの名無しさん2012/01/29(日) 17:24:14.36
http://d.puremagic.com/issues/show_bug.cgi?id=6831
RESOLVED WONTFIX だと・・・? orz
0795デフォルトの名無しさん2012/01/29(日) 20:08:19.93
ラムダ式って => になんの?
既存の演算子を使い回すのやめてくれよ
0796デフォルトの名無しさん2012/01/29(日) 20:11:30.02
既存?
Dの外の話でもしてるのか?
0797デフォルトの名無しさん2012/01/29(日) 20:11:32.91
新しい文法だそうで
=>これまで使われてたか?
0798デフォルトの名無しさん2012/01/29(日) 20:26:31.18
未使用
0799デフォルトの名無しさん2012/01/29(日) 21:06:53.00
Haskell とかで別の意味の演算子として使われてるとかそういう話か?
0800デフォルトの名無しさん2012/01/29(日) 21:30:41.51
C#とかでも=>だから合わせた方がいいんだろな
0801デフォルトの名無しさん2012/01/30(月) 21:56:29.10
久しぶりにD言語スレ見てみたが相変わらず破壊的変更はあるようで
Rangeについて詳しい資料公式に転がってないか?
0802デフォルトの名無しさん2012/01/30(月) 22:17:51.92
ここが最近の詳しく解説しているページ。公式かどうかは知らない。
http://ddili.org/ders/d.en/ranges.html
0803デフォルトの名無しさん2012/02/01(水) 01:02:10.04
class A{void f(){}}
class B: A{override void f(){}}

のとき、Bを継承したクラスがfをオーバーライドしてるか判断する方法ってありますか?
0804デフォルトの名無しさん2012/02/01(水) 01:08:55.00
Bをさらに継承したクラスCがあった場合
(&B.f is &C.f) で判断できる
これがtrueの場合オーバーライドしていない
0805デフォルトの名無しさん2012/02/01(水) 01:31:01.79
import std.stdio;
class A{void f(){}}
class B:A
{
  void p(B b){
    if(&b.f is &f){
      writeln("---");
    }else{
      writeln("override!");
    }
  }
  override void f(){}
}
class C:B{}
class D:C{override void f(){}}

void main()
{
  auto b = new B;
  b.p(new C);
  b.p(new D);
}

実行結果
override!
override!


なぜ・・・orz
0806デフォルトの名無しさん2012/02/01(水) 01:44:59.45
auto v1 = &b.f;
auto v2 = &f;
(v1.funcptr is v2.funcptr)
これで判断できました。ありがとうございます。
0807デフォルトの名無しさん2012/02/01(水) 21:27:54.19
scopedってもう使ってもいい系?
0808デフォルトの名無しさん2012/02/01(水) 22:02:42.96
なんか悪い噂とかあったっけ?
0809デフォルトの名無しさん2012/02/01(水) 22:19:17.76
scope記憶クラスの代用品として仮実装中ってどっかで見たような記憶があるようなないような
0810デフォルトの名無しさん2012/02/02(木) 01:21:12.60
class A { }

void main() {
Object[] a = new A[2];
}

これ暗黙変換できなくなったの?
0811デフォルトの名無しさん2012/02/02(木) 02:11:51.89
それ元からできないと思う
0812デフォルトの名無しさん2012/02/02(木) 02:25:44.57
>>810
それを許すと以下のような問題が起きる

class A { } 
class C { } 

void main() { 
Object[] a = new A[2]; 
a[0] = new C; // Aしか入らない所にCを入れている
} 
0813デフォルトの名無しさん2012/02/02(木) 02:34:58.93
いやその理屈はおかしい
0814デフォルトの名無しさん2012/02/02(木) 02:41:46.52
Javaでもできたお
0815デフォルトの名無しさん2012/02/02(木) 02:42:33.29
動的に静的の問題じゃないの?
0816デフォルトの名無しさん2012/02/02(木) 18:27:31.78
>>810
>Object[] a = new A[2];
これと
Object[] a = [ new A(), new A() ];
これは違うよね。上は暗黙変換出来なくていいと思う。
0817デフォルトの名無しさん2012/02/02(木) 19:00:50.88
A[2] b;
pragma(msg, typeof(new A[2]));
pragma(msg, typeof( [new A(),new A()] ));
pragma(msg, typeof(b));

A[]
A[]
A[2u]
0818デフォルトの名無しさん2012/02/02(木) 19:06:16.22
>>817
ほお…知らなかった
Dの静的配列と動的配列の値渡し/参照渡しとかの仕様が頭の中でこんがらがる
0819デフォルトの名無しさん2012/02/02(木) 20:56:50.02
前から気になってたんだけど
static if(...) {
} else static if(...) { ← ここのstaticってなんで必要なの?
}
0820デフォルトの名無しさん2012/02/02(木) 21:20:36.45
static if(...) {
} else {
  static if(...) {
   ...
  }
}
の略だから
0821デフォルトの名無しさん2012/02/02(木) 21:28:43.30
>>817
816で言いたかったのは、動的か静的かではなく、
>Object[] a = new A[2];
は配列長を確保してるだけなので必要な場面が思いつかない。
暗黙変換できなくていいと思う。
でも810がやりたかったのはエスパーすると
Object[] a = [ new A(), new A() ];
こっちじゃね?なら暗黙変換できるよーと言う事です。
0822デフォルトの名無しさん2012/02/02(木) 21:52:58.62
new A[2];の結果は各要素(参照)がnullである長さ2の動的配列ってことか

new A[2];はnew A[](2);に読み替えられてるのかな
08238212012/02/02(木) 22:02:22.30
あ、「先祖クラスの配列へのcastは例外的に暗黙でいいやん」と言う話だったならたしかにそう思います。
0824デフォルトの名無しさん2012/02/02(木) 22:10:09.59
>>822
Error: cannot implicitly convert expression (new A[](2u)) of type A[] to Object[]

と出てるからまさにその通りだと思う。
0825デフォルトの名無しさん2012/02/02(木) 22:20:34.66
>>822
C++感覚で new A[2] と書くとドツボにはまりそう。
0826デフォルトの名無しさん2012/02/02(木) 23:53:54.57
静的配列
サイズがコンパイル時に決定
値渡し、返り値にも使える
静的配列の代入は複製
動的配列はサイズが同じなら代入できる、違えば例外、この場合も複製されるはず(うろ覚え)

動的配列
参照型
int[]にint[10]とかを代入できるはずだがどうなるかは忘れた
0827デフォルトの名無しさん2012/02/03(金) 01:53:58.80
>>826
int[10] a;
int[] b;
b = a; // 複製されない
assert( b.ptr == a.ptr );
b = a.dup; // 複製される
assert( b.ptr != a.ptr );
b[] = a; // 複製される
assert( b.ptr != a.ptr );
0828デフォルトの名無しさん2012/02/03(金) 19:48:53.28
$ type reg.d
import std.regex;
import std.stdio;
void main() {
writeln(match("他"d, regex("バ"d)));
writeln(match("他"d, regex("ビ"d)));
writeln(match("他"d, regex("ブ"d)));
}
$ dmd -run reg.d
[]
[]
core.exception.AssertError@D:\devtools\dlang\dmd2\windows\bin\..\..\src\phobos\std\utf.d(800): Attempted to decode past the end of a string


偶然踏んでしまった
0829デフォルトの名無しさん2012/02/03(金) 22:41:57.52
056->057間のstd.regexの変更っぷりに吹いた
0830デフォルトの名無しさん2012/02/04(土) 08:13:07.47
typeidと.classinfoがあるのは歴史的な理由?便利さから?
0831デフォルトの名無しさん2012/02/04(土) 08:28:41.96
>>810
公式ドキュメントのArraysに暗黙変換できるって書いてんだが…
0832デフォルトの名無しさん2012/02/04(土) 12:44:43.72
きっと夢でも見たんだろう
0833デフォルトの名無しさん2012/02/04(土) 12:49:28.15
2.057ではねられるようになって首を傾げてたんだぜ
やっぱり regression か
0834デフォルトの名無しさん2012/02/04(土) 17:44:44.34
Arrayに関しては禁止するべきだと思うんだがな
動的配列に静的配列入れたときも破壊的変更するとき初めてコピーされるという奇妙な仕様になってるし明示的にdupとかキャストさせるべき
0835デフォルトの名無しさん2012/02/04(土) 19:04:51.37
っCopy-On-Write
0836デフォルトの名無しさん2012/02/06(月) 12:32:24.51
>>831-833
http://d.puremagic.com/issues/show_bug.cgi?id=926

なんか 「D2 では禁止!ドキュメントが古い!」とか
言ってるんすけど・・・ユルセナイ シャザイト バイショウヲ ヨウキュウシル
0837デフォルトの名無しさん2012/02/06(月) 13:12:32.03
trunk のドキュメントをのぞいて見たらこうなってた。(´・ω・`) ショボーン

○ A[] -> const(Object)[]
× A[] -> Object[]
0838デフォルトの名無しさん2012/02/06(月) 19:16:23.41
あー、うーん、まあそうか…
0839デフォルトの名無しさん2012/02/06(月) 19:35:51.35
なるほど、そうじゃないと
auto a1 = new A[](10);
Object[] a2 = a1;
a2[0] = new Object;
でバグっちゃうのか。
明示的に
Object[] a2 = a1.dup;
こうするのは今もできるってことね
0840デフォルトの名無しさん2012/02/06(月) 20:30:19.03
そういやdupでimmutable剥がせる件ってどうなったんだろ
0841デフォルトの名無しさん2012/02/07(火) 17:22:48.20
細かい仕様変更にはもうついていけないよう
0842デフォルトの名無しさん2012/02/08(水) 00:52:17.22
dupはimmutableはがせるでしょ
idupだとimmutableのまま
0843デフォルトの名無しさん2012/02/08(水) 02:57:23.76
constとimmutableの違いがよく分からないよぅ
0844デフォルトの名無しさん2012/02/08(水) 03:03:38.39
const: 不変値を関数間で共有
immutable: 不変値をスレッド間で共有
0845デフォルトの名無しさん2012/02/08(水) 09:54:57.34
2.058ダウンロードどこでできるんですか!?
0846デフォルトの名無しさん2012/02/08(水) 12:12:21.70
まだリリースされてない
どうしてもさわってみたければ github から3点セットでDLしてビルドしる
0847デフォルトの名無しさん2012/02/08(水) 17:35:50.05
>>844
間違ったこと教えちゃいかんよ・・・

const その参照から値は変えられないが、別の要因で変わることがある。
immutable いかなる要因でも値が変わらない。
0848デフォルトの名無しさん2012/02/08(水) 17:50:05.45
constの分かりやすい例。
http://ideone.com/sGgmK
0849デフォルトの名無しさん2012/02/08(水) 18:46:46.08
ガンダムで例えると
シールド付きがconstで
フルアーマーがimmutableってことね

この例えはとにかく、なるほど…勉強になりました。
0850デフォルトの名無しさん2012/02/08(水) 18:52:49.18
constは引数変数向けの型ってイメージがあるな
引数と関わりのないconst変数なんて作らないよね?
0851デフォルトの名無しさん2012/02/08(水) 19:05:15.37
クラスのフィールドでインスタンス初期化時に固定するものとかconstにする
0852デフォルトの名無しさん2012/02/08(水) 19:09:39.82
それってimmutableでもいけるんじゃないの?
0853デフォルトの名無しさん2012/02/08(水) 20:19:05.10
Const と Immutable
http://www.kmonos.net/alang/d/2.0/const3.html

>>852
static this()
0854デフォルトの名無しさん2012/02/09(木) 16:56:02.59
static thisでだとimmutable初期化できないのかーと思ったけどできるじゃん
どういうことが言いたかったの?
0855デフォルトの名無しさん2012/02/09(木) 18:53:53.23
>>854
ごめん、勘違いしてた
0856デフォルトの名無しさん2012/02/10(金) 19:16:59.45
下のコードをコンパイルするとdmdが落ちるんですが。
dmdのバージョンは2.057です。
template foo(T){
 enum foo = __traits(hasMember,T,"sizeof");
}
static assert(foo!(int)); //DMD Crash
0857デフォルトの名無しさん2012/02/10(金) 19:33:23.96
久々にGUIライブラリを見て回った
gtkD・wxD・DFL(fork)・DWT辺りは元気だけどQtDが死んでるなぁ
どこか別の所で元気にやってるのかな?
0858デフォルトの名無しさん2012/02/10(金) 19:45:03.62
>>856
trunk の最新ソースを落としてビルドしたら落ちなくなってた(WinXP 32)
0859デフォルトの名無しさん2012/02/10(金) 19:57:57.79
>>858
では、2.058では解決されているのですね
ありがとうございます
0860デフォルトの名無しさん2012/02/12(日) 10:01:51.83
明日は2.058リリースか
3.0とかどうなったんだろな
0861デフォルトの名無しさん2012/02/12(日) 13:11:08.52
D3はmoduleに代わってnamespaceを導入して
呼び出し側でもrefとかoutとかつけて属性を明示できるようになって
プロパティはset/getキーワードを用意して自然に表現できるし
Attributeクラスでメソッドの属性を自作できる上にラムダ式とかも余裕で使えるし
しかも.NETフレームワークで動く
0862デフォルトの名無しさん2012/02/12(日) 13:12:55.18
今更namespaceとかありえないんじゃないかな
0863デフォルトの名無しさん2012/02/12(日) 13:16:46.99
>>861
あとはVisualStudioで開発できれば完璧だな
0864デフォルトの名無しさん2012/02/12(日) 13:29:42.65
D3では多重ディスパッチがついて型推論が進化
0865デフォルトの名無しさん2012/02/12(日) 14:26:26.13
D3ではなんとヘッダーとソースをファイルレベルで分離して記述することができるようになります!
0866デフォルトの名無しさん2012/02/12(日) 14:27:41.37
ヤメテ!
0867デフォルトの名無しさん2012/02/12(日) 15:37:41.30
機能追加を国民投票で選びます
投票券はTDPLに付属
0868デフォルトの名無しさん2012/02/12(日) 17:04:21.14
呼び出し側にrefつけるのは普通に欲しい
必須じゃなくてもつけまくるわ
0869デフォルトの名無しさん2012/02/12(日) 17:49:28.42
>>868
C# とか VBのアレか
アレはすごくほしい

けどタプルとかうまく使ったらいらないぜ
ってものかも知れない
0870デフォルトの名無しさん2012/02/13(月) 00:20:34.12
なにそれ。
D3 と C# の違いを教えてくれ。
const ありの C# としても使えるならぜひ使おうかと思うんだが。
0871デフォルトの名無しさん2012/02/13(月) 00:23:01.61
D3.0はPerl6よりは現実的な開発が予定されてる言語
0872デフォルトの名無しさん2012/02/13(月) 01:02:54.60
Perl6ってそんな非現実的なの?w
0873デフォルトの名無しさん2012/02/13(月) 01:12:46.83
はたしてあれ実装できるんだろうか
WebProg板にスレあったはず
0874デフォルトの名無しさん2012/02/13(月) 01:23:54.85
ググってみたら吹いた。
設計開始から10年で初の処理系ってD言語超えてるな
0875デフォルトの名無しさん2012/02/13(月) 07:09:01.91
心配すんな、クリスマスには出る
0876デフォルトの名無しさん2012/02/13(月) 19:03:17.74
Dは登場と共に処理系もあったじゃないか
永遠に開発中だけど
0877デフォルトの名無しさん2012/02/13(月) 19:16:20.31
設計完了に先立つこと10年にして早くも処理系
0878デフォルトの名無しさん2012/02/13(月) 20:23:52.67
C言語だって・・・最終仕様より先に初期実装があったんだ!
0879デフォルトの名無しさん2012/02/13(月) 22:27:50.33
何気にD2.058待機してる
0880デフォルトの名無しさん2012/02/13(月) 23:50:47.57
とみせかけてD3.0くるー
0881デフォルトの名無しさん2012/02/14(火) 01:35:40.48
リリースは延期だと思うよw
0882デフォルトの名無しさん2012/02/14(火) 06:56:34.19
いつのまにか、AAA Cafeが終わってた。orz....
D言語研究が消えた。ショック
0883デフォルトの名無しさん2012/02/14(火) 21:35:54.05
D言語研究とこは色々とサンプルコードがあって気に入ってたのになあ
InternetArchiveには数年前のしか残ってないし
俺もショックだ
0884デフォルトの名無しさん2012/02/14(火) 22:34:02.00
徐々に消えていってるな
0885デフォルトの名無しさん2012/02/15(水) 01:46:51.54
破壊的変更, world.
0886デフォルトの名無しさん2012/02/15(水) 15:05:43.07
D2.058 キタ━(゚∀゚)━!
0887デフォルトの名無しさん2012/02/15(水) 15:43:25.10
change log が出揃うまではリリースとはみとめない(キリッ
0888デフォルトの名無しさん2012/02/15(水) 15:46:00.10
Version D 2.058 upcoming Feb 13, 2012
New/Changed Features

Add new => lambda syntax.
Allow 1.userproperty syntax
Convert to -shared dmd switch instead of -dylib
Better use of XMM registers in OS X 32 bit target.
0889デフォルトの名無しさん2012/02/15(水) 15:50:27.05
>>701 の件
と
Bugzilla 314: [module] Static, renamed, and selective imports are always public

この2つは Breaking Change に近い
0890デフォルトの名無しさん2012/02/15(水) 15:57:19.87
Bugzilla 4550: D2 Language Docs: http://www.digitalmars.com/d/2.0/statement.html
Bugzilla 4553: D2 Language Docs: http://www.digitalmars.com/d/2.0/struct.html

↑これって何かが変わったの?
0891デフォルトの名無しさん2012/02/15(水) 15:59:58.14
Identifier => AssignExpression
と
1.userproperty
がわからねぇ。どなたか教えてください。
0892デフォルトの名無しさん2012/02/15(水) 16:04:55.62
http://www.d-programming-language.org/arrays.html

これの最後に >>837 の件が反映されてない。まだリリース完了してない
もちつけ
0893デフォルトの名無しさん2012/02/15(水) 16:37:58.58
>>890
Bugzilla から pull request の中を見ればわかる
サンプルソースのほんのちょっとの間違いを修正しただけっぽい
0894デフォルトの名無しさん2012/02/15(水) 16:39:34.06
リリース正式アナウンスキタ
0895デフォルトの名無しさん2012/02/15(水) 17:02:55.93
ddemangle って何これ?
0896デフォルトの名無しさん2012/02/15(水) 17:08:44.79
なんで今回こんなに更新待ちの人多いのw
0897デフォルトの名無しさん2012/02/15(水) 17:43:03.14
更新がD言語を使う目的だからだけど?
他に理由があるの?
0898デフォルトの名無しさん2012/02/15(水) 17:44:02.53
Dの更新が無いなら
俺はD言語なんて使わないね
0899デフォルトの名無しさん2012/02/15(水) 17:47:13.60
>>898の王子様キター
0900デフォルトの名無しさん2012/02/15(水) 20:41:58.06
>>891
具体的な事は知りもせずに言うけど

1.userpropertyは今まで配列でできてたアレ。
 @property void hoge(int i) {writelen(i);}
っていう関数を用意しておくと
 hoge(42);
の代わりに
 42.hoge;
みたいに呼び出せる。

=>に関してはC#のラムダ式の記事でも見た方が早い
0901デフォルトの名無しさん2012/02/15(水) 21:01:28.48
>>895
dのマングルされたシンボルをデマングルするんじゃね?
0902デフォルトの名無しさん2012/02/15(水) 21:21:24.18
何の説明もなく実行ファイルが増えていることに対して不審をおぼえるのよ
俺の野生の勘が(ry
0903デフォルトの名無しさん2012/02/15(水) 21:27:13.70
>>900
Rubyキタ

生成したexeのサイズがD2.055のに比べても小さくなってるなあ
よし、VersionUp時
0904デフォルトの名無しさん2012/02/15(水) 22:00:44.56
2.057 (int x, int y) { return x+y; }
2.058 (x, y) => x+y
0905デフォルトの名無しさん2012/02/15(水) 22:11:14.60
>Use of base class protection is now deprecated.
ってなんぞ?
0906デフォルトの名無しさん2012/02/15(水) 22:42:50.10
public継承でも>>905のエラー出るんだが。
public class A : public B { }
とかでも。
0907デフォルトの名無しさん2012/02/15(水) 23:02:47.60
そこにpublicだのなんだの置くこと自体がdeprecatedってことじゃね?
0908デフォルトの名無しさん2012/02/15(水) 23:21:37.12
そか。一括置換で消すか
0909デフォルトの名無しさん2012/02/15(水) 23:43:33.84
クラスのprotectionが無くなってアクセス修飾子が不要になったってことだな
0910デフォルトの名無しさん2012/02/15(水) 23:44:09.93
えっマジで?
public継承のみになったの?
0911デフォルトの名無しさん2012/02/15(水) 23:51:23.29
>>910
「基底クラス保護の使用は廃止」だからな
0912デフォルトの名無しさん2012/02/16(木) 00:23:10.58
>>891
これは1.userpropertyがパーザーで
(1).userpropertyとして扱われるようになった、という変更。
あくまでパーザーの改善なので、>>900のようなことは「まだ」できない。

>>900 はUniform Function Call Syntax(UFCS)と呼ばれるやつだが、これは
まだ入ってない。
https://github.com/D-Programming-Language/dmd/pull/582
ここでPullRequestは出されている。Andreiのコメントを読む限り
配列に限らずあらゆる型でのUFCSは動作するべきらしい。
0913デフォルトの名無しさん2012/02/16(木) 00:26:09.37
>>895
ddemangleは標準入出力を通したテキストにDのmangled nameが含まれる場合
これをdemangleしてくれるツール
stack traceとかをパイプでddemangleに食わせると出力を読みやすい形式に
変換できる
0914デフォルトの名無しさん2012/02/16(木) 00:27:28.52
すごい詳しいな
0915デフォルトの名無しさん2012/02/16(木) 00:29:47.55
>>904
ちなみにTDLPに書かれていたfunction/delegate推論も追加された
関数リテラルでfucntion/delegateを明示せずに (x, y) { ... } とか書くと
... のコードが外側フレームを参照してない場合に自動的にfuncitonに
推論される(いままでは必ずdelegateになっていた)
0916デフォルトの名無しさん2012/02/16(木) 00:31:10.29
>>911
確かに滅多に使わないけど
完全廃止とはまた思い切ったな
09178912012/02/16(木) 00:33:06.77
レスサンクス
>>912
なんだ。まだむりなのか。でもなんか胸熱展開wktk


>>904 は
delegate ParameterAttributes { return AssignExpression; }
だよな。では
delegate ( Identifier ) { return AssignExpression; }
これって Function Literals のなかで説明されてるっけ?
0918デフォルトの名無しさん2012/02/16(木) 00:35:01.87
大昔にdelegateとfunctionは統合される予定とか聞いてたが推論で隠す方針になったのか?
0919デフォルトの名無しさん2012/02/16(木) 00:46:24.98
>>917
こっちのこと?
http://dlang.org/expression.html#Lambda
0920デフォルトの名無しさん2012/02/16(木) 01:22:00.59
>>919
すまん。自己解決したかもしれん。
ParameterAttributes と Idetifier の違いが分からなかったんだが
Identifier のほうでは括弧を省略できてるってことでおk?
( x ) => x * x; // ParameterAttributs => AssignExpression
x => x * x; // Identifier => AssignExpression
ってことか
0921デフォルトの名無しさん2012/02/16(木) 01:42:59.22
void foo(int delegate(int, int) dg) {}

void main()
{
foo( (int x, int y) => x * y ); // ParameterAttributs => AssignExpression
foo( (x, y) => x * y ); // Identifier => AssignExpression
}

ってことじゃない?
0922デフォルトの名無しさん2012/02/16(木) 02:04:18.90
typeof( (a) => 1 )
void

あれ?こんな仕様だっけ?
0923デフォルトの名無しさん2012/02/16(木) 02:15:52.29
>>915
すげ〜・・・でもDMD以外の実装が涙目
0924デフォルトの名無しさん2012/02/16(木) 02:17:45.04
最適化に分類されるものじゃね?涙目ってことはないんじゃないかな
0925デフォルトの名無しさん2012/02/16(木) 02:33:12.89
>>922
そこは a の型省略できないんじゃないか?推論できないから。
typeof( ( int a ) => 1 );
int function(int a) pure nothrow @safe
0926デフォルトの名無しさん2012/02/16(木) 02:50:13.90
>>925
おっと、パラメータの型を決める所でこけてるのか。戻り値しか見てなかった

voidじゃなくてコンパイルエラーになってほしいな
0927デフォルトの名無しさん2012/02/16(木) 03:44:14.54
手元だと、これと

class A : public B { }
↓
class A : B { }

これでいけた

float a = 255.f;
↓
float a = 255.0f;

平和だ・・
0928デフォルトの名無しさん2012/02/16(木) 05:28:50.59
基底クラスは何が何でもpublic属性という事でFA?
0929デフォルトの名無しさん2012/02/16(木) 07:45:38.84
相変わらずの破壊的変更だがそこに痺れる憧れる
0930デフォルトの名無しさん2012/02/16(木) 15:40:18.08
2.059では breaking change じゃなくて disruptive change がくるらしい

既存のライブラリのいくつかは息を引き取るであろう
0931デフォルトの名無しさん2012/02/16(木) 16:47:35.81
崩壊的変更とか凄いな
0932デフォルトの名無しさん2012/02/16(木) 17:03:16.86
D言語って楽しいですね
0933デフォルトの名無しさん2012/02/16(木) 19:21:48.92
>>930
今世紀最大にワクワクできることきたな
0934デフォルトの名無しさん2012/02/17(金) 00:06:38.91
stream系はいつ固まるの
0935デフォルトの名無しさん2012/02/17(金) 00:16:15.58
std.ioになるとかいう話もちらほら出てなかったり
0936デフォルトの名無しさん2012/02/17(金) 19:30:02.21
constを厳密にやるとGUIライブラリが軒並み死にそうでとても楽しみだ
0937デフォルトの名無しさん2012/02/17(金) 21:07:10.73
日本語訳を…日本語訳を…!
0938デフォルトの名無しさん2012/02/17(金) 21:10:13.69
しかし今回はそんなに訳いる変更はない
0939デフォルトの名無しさん2012/02/17(金) 21:17:06.36
中の人乙
http://dusers.dip.jp/modules/forum/index.php?topic_id=109
0940デフォルトの名無しさん2012/02/17(金) 22:27:29.76
個人的に今回のラムダ式とdelegateの型推論はうれしい
ここらへんは型がうっとおしく感じる率が高いところだったから
0941デフォルトの名無しさん2012/02/17(金) 22:58:22.17
ラムダ式楽すぎわろたwwww
0942デフォルトの名無しさん2012/02/17(金) 23:14:49.08
しかし相変わらずコンパイル早いな
0943デフォルトの名無しさん2012/02/17(金) 23:15:12.85
どういう時に使ってるの?
よかったらサンプルコード付きで教えてちょ

↓空白とか面倒だったら活用してちょ
ttp://ideone.com/
0944デフォルトの名無しさん2012/02/18(土) 00:03:36.06
>>943
例えばこういう時

/** Menuを作成する。Menuの有効・無効はenabledの結果によって随時切り替える。 */
Menu createMenu(bool delegate(Widget w, Status s) enabled) { ... }

これを以前はこういう風に使っていた
auto menu = createMenu((Widget w, Status s) {return w.isSelection;}); // wが選択状態の時だけメニュー有効

これがこう書ける
auto menu = createMenu((w, s) => w.isSelection); // listが選択状態の時だけメニュー有効

たったこれだけなんだけど、数が増えると手間がだいぶ減るし見た目もすっきりする
テンプレートとかと併用するともっと効果的なんじゃないかな
0945デフォルトの名無しさん2012/02/18(土) 00:34:48.69
視覚的にネストが浅くなるのも利点
0946デフォルトの名無しさん2012/02/18(土) 00:35:53.67
C#化するD
0947デフォルトの名無しさん2012/02/18(土) 00:42:03.88
正直今のDに不満があまり無い
ストイックすぎるか
0948デフォルトの名無しさん2012/02/18(土) 01:07:25.61
ライブラリ周りがなぁ
0949デフォルトの名無しさん2012/02/18(土) 02:08:31.06
>>944
もともとdelegateを引数にとるような所で有効だったのね。
引数にdelegateとか関数ポインタとか指定した記憶が無いから思いつかんかったよ。

そういえば、サンプルコード見てて思ったんだけど
おいらは未だに
ttp://www.dsource.org/projects/bindings/wiki/WindowsApi
こいつと CのHello Worldみたいなひな形を使って手打ちでやってるんだけど…
おまいらはどんなWindowのライブラリ使ってるの?

dflはあんまり好きじゃ無くて手放してしまったんだよね。
Dにもwtlみたいに比較的さっぱりめのライブラリがあったら是非使ってみたいとは思ってるんだけど…。
0950デフォルトの名無しさん2012/02/18(土) 03:37:43.41
両方ともjavaの影響を強く受けているが、片方はVMに、一方はネイティブに
IEnumerableとRangeも似てるが、しかし方向性が違う
ラムダ式にしても式木・動的言語環境を持ってList Processor寄りの発想で作られ
もう一方はpure関数など関数型言語としてのアプローチでラムダ式が必要になってきた

似ているようで違うのが両者
0951デフォルトの名無しさん2012/02/18(土) 11:31:08.30
>>949
無いんだな、これが

いや、大昔にはあるにはあったんだけど今ではみんな目が死んでる
0952デフォルトの名無しさん2012/02/18(土) 11:40:21.20
GUIライブラリ出来てもbreaking changeについていくメンテナが居ない
0953デフォルトの名無しさん2012/02/18(土) 11:54:08.31
DWT使ってる。理由は:
・元ネタはSWTだが実態はDネイティブ
・表面上マルチプラットフォーム
・破壊的変更にもすぐについていくことがある
・静的リンクしても問題ない(ライセンス的にも)
 DEBUG=1だとOPTLINKがエラーを吐くがDでは大した問題ではない
・膨大な機能が揃っている。一部まともに動かないが気にしない
・setXxxみたいな名前は意外と気にならない
・鬱陶しいイベント処理はラッパを作ればなんとかなる

なんといってもコンパイルできるどころかリンクまでできてしかも動くという時点で
そんじょそこらのDライブラリとは格が違うのだよ
0954デフォルトの名無しさん2012/02/18(土) 13:54:26.34
・ことがある
・大した問題ではない
・気にしない
・意外と気にならない
・なんとかなる

ひゅう……。
さすがにGUIに触ろうなんてD言語erは訓練されてやがるぜ……。
0955デフォルトの名無しさん2012/02/18(土) 14:06:55.20
他の言語だと当然のことがDだと曖昧だからな
0956デフォルトの名無しさん2012/02/18(土) 14:34:51.91
>コンパイルできるどころかリンクまでできてしかも動く

ここにまず突っ込めよw

Windows限定なら DFL がお手軽だと思うよ
0957デフォルトの名無しさん2012/02/18(土) 17:19:04.73
>>949
それまだ動くの?
0958デフォルトの名無しさん2012/02/18(土) 17:55:36.92
GUIは恥ずかしいライブラリを自作して使ってるよ
0959デフォルトの名無しさん2012/02/18(土) 20:13:38.15
>>958
むしろよかったらそれ下さい
この言語使ってると無性にライブラリが作りたくなるんだけど
作ってる最中に破壊的変更が来たりして更新する気が失せて
半年くらいしたらまたDのプログラム書きに戻って来ちゃうんだけどその頃には作ったライブラリのソースの場所を失念してたりして
車輪の再発明ばっかりでもう嫌になっちゃうw

そろそろ0からやり直し続ける程の気力が湧かなくなってきましあ><
0960デフォルトの名無しさん2012/02/18(土) 20:17:32.34
githubへどうぞ
0961デフォルトの名無しさん2012/02/18(土) 20:27:53.27
>>957
きれいな顔してるだろ、これ、5日前には更新されてるんだぜ?

Remove deprecated base class protection attributes from interface declarations
"interface Foo : public Bar" => "interface Foo : Bar"
0962デフォルトの名無しさん2012/02/19(日) 10:21:58.76
async/awaitって入る予定あんのかな
DでWinRTがバリバリに使えたら人口増えるんじゃないかな!な!
でもその前にyieldかなあ
0963デフォルトの名無しさん2012/02/19(日) 11:20:57.90
yieldってなかったっけ
えっと
op.... op... opApply
0964デフォルトの名無しさん2012/02/19(日) 11:22:26.16
関数の中断はcore.thread.Fiberでできる
0965デフォルトの名無しさん2012/02/19(日) 13:27:44.41
2.058から

interface A{}
interface B : A{}

void test( A a ){}

void hoge( A* a ){}

void main(){
B b;
test( b ); // OK
hoge( &b ); // cannot implicitly convert expression
}

とか、元々仕様なの?

どっかに詳しくあるなら、教えて
0966デフォルトの名無しさん2012/02/19(日) 13:38:55.21
ポインタェ…
D使ってるとポインタを忘れる
0967デフォルトの名無しさん2012/02/19(日) 13:56:58.22
hoge(cast(B*)b);
// 未確認
0968デフォルトの名無しさん2012/02/19(日) 14:03:06.34
Win32APIのIUnknown*とかcastが必要になったからだけど

interface A{}
interface B : A{}
interface C{}

void hoge( A* a ){}

void main(){
B b;
C c;
hoge( cast( A* )&b ); // 冗長なだけだけど
hoge( cast( A* )&c ); // OK でいいのかな?
}

とか思ったから
0969デフォルトの名無しさん2012/02/19(日) 15:06:18.47
いかん いかんぞぉぉ
0970デフォルトの名無しさん2012/02/19(日) 15:18:46.86
assert( !cast( A* )&c );
0971デフォルトの名無しさん2012/02/19(日) 15:41:17.17
CとのI/Fで必要的な意味があるはず
きっと、きっとあるはず
0972デフォルトの名無しさん2012/02/19(日) 15:43:23.05
&bは変数bへのポインタな。
オブジェクトへのポインタはキャストで取得するんだ。
0973デフォルトの名無しさん2012/02/19(日) 16:33:11.08
>>965
静的型言語としての型安全性が壊れるため。
is(B : A)のとき、暗黙変換としてB -> Aは許されるが
B* -> A*は許されない。B* -> const(A)*ならOK。
理由は

B b = new B();
B* pb = &b;
A* pa = pb; // もしこれが許されるなら
*pa = new A(); //これは合法なので
// 変数bにAのインスタンスが入ってしまう

ポインタ型について明示的に述べているところは無いが、動的配列型が同じ
問題を持っていて、それについては
http://www.d-programming-language.org/arrays.html#implicit-conversions
で書かれている。
T[] は const(U)[] に変換できる(がU[]には変換できない)というのがそれ。
0974デフォルトの名無しさん2012/02/19(日) 17:17:07.80
>>968
こうじゃないのか?
hoge( &(cast(A)b) );
0975デフォルトの名無しさん2012/02/19(日) 17:17:44.02
なる、了解です
castで簡単に回避できる方が問題なのかな

Win32API の IUnknown** とかは const( IUnknown )*
に置き換えればよさげ?
09768912012/02/20(月) 00:05:27.19
2.059 …だと!?
0977デフォルトの名無しさん2012/02/20(月) 03:56:38.48
うそつき!
0978デフォルトの名無しさん2012/02/20(月) 11:56:17.87
やっと自作ライブラリの2.058対応が終わった。
constの厳密化が地味に痛い。
0979デフォルトの名無しさん2012/02/20(月) 12:58:56.59
システムツール開発向けをうたわれても、言語が後方互換性を保証しないのでは採用できようはずもないな
0980デフォルトの名無しさん2012/02/20(月) 13:09:37.62
しかしPerl5やJavaScriptやPHPを使ってると
あり合わせで作ったツールに後方互換性を維持したせいで
軽く1万人年は無駄が発生してるんだろうなあと思うところはあるよ
0981デフォルトの名無しさん2012/02/20(月) 13:49:56.11
GC回りに関して、
ある特定の条件を満たすとデストラクタで直接廃棄リスト行きにできる条件ってあるだろうか。
pureみたいなコンパイラに与える属性として。
あとデストラクタで参照型とポインタはなるべくnullを代入しろってアドバイスが書かれてたけど
あれって自動化すると何か問題あるだろうか。
0982デフォルトの名無しさん2012/02/20(月) 14:11:11.78
D言語 Part29
http://toro.2ch.net/test/read.cgi/tech/1329714331/
0983デフォルトの名無しさん2012/02/20(月) 18:01:38.54
おつ!
0984デフォルトの名無しさん2012/02/20(月) 23:59:08.02
鬱!
0985デフォルトの名無しさん2012/02/21(火) 16:02:24.88
>>701
の変更で書き換えが大量に発生すると思っていたが、
思ったほどエラーは出なくて首をかしげていた。

> 2.057までは型名として、2.058以降は仮引数名として扱われるようになる
型名だと思った? 残念! 引数名でしたーーーwww
 というブービートラップか
0986デフォルトの名無しさん2012/02/21(火) 17:33:27.28
他の言語でよくやる、「適当な入力から別の言語のソースコードを作ってコンパイラに渡す」
みたいなことをDだけでできてこれは便利だと思うわー
0987デフォルトの名無しさん2012/02/21(火) 18:14:50.24
へ?
他の言語でも一応出来るでしょ?

'簡単に'実現できるとかいう意味なら同意できる…かな
0988デフォルトの名無しさん2012/02/22(水) 09:53:19.07
DはCTFE+文字列ミックスイン+高速コンパイルで回りがめちゃくちゃ早いのがいい
0989デフォルトの名無しさん2012/02/23(木) 01:25:40.34
>>982 乙。ちょっとどっちに書こうか迷ったんだけど聞いて。
1. dmd2.058 Windowsで
2. Dで書いたライブラリの中の クラス/構造体 テンプレート内の static this が実行されない、ただし
3. そのライブラリ内でインスタンス化されてない場合で、
4. そのライブラリを、自動生成された .di ファイルで import している時。
5. .di ファイルに static this の body を書き足せば実行される。

なんだけど、これバグなんじゃないか?
0990デフォルトの名無しさん2012/02/23(木) 01:28:36.33
むしろg++のコンパイルなんであんな遅いん…
0991デフォルトの名無しさん2012/02/23(木) 01:42:31.56
C++ Compilation Speed
http://drdobbs.com/blogs/cpp/228701711

コンパイラ開発者たちは頑張ってるけど、
C++仕様を満たすには最低でも3パス必要だとか、
プリプロセッサのせいで大量のソースを読み込む必要があるとか、
そういう話がつらつらと
0992デフォルトの名無しさん2012/02/23(木) 02:16:26.08
>>989
importだけして実体をリンクし忘れてるわけじゃなく?
0993デフォルトの名無しさん2012/02/23(木) 02:18:58.55
>>989
リンクエラーになるのが正しいと思う
使い方的には template mixin?

それどころかこんな問題もまだ残ってるけど
http://d.puremagic.com/issues/show_bug.cgi?id=5950
0994デフォルトの名無しさん2012/02/23(木) 03:19:45.43
>>989
di内に書き出されたテンプレートクラス/構造体には
問題のstatic thisが書き出されてないんだよね?
そのあとで「手書きでbodyを書きたせば」と言っているし。
dmdのバグだと思う。
0995デフォルトの名無しさん2012/02/23(木) 04:27:54.43
>>992
リンク忘れでは無い筈。ライブラリ内の他の関数は呼べてるし。

>>993
template mixin でも、明示的インスタンス化でも結果は同じだった。
クラス/構造体 じゃないテンプレート内に static this を置いても同じだった。
てか、get なんてあったんだな。なんか、以前似たような関数自作した記憶が…

>>994
書き出されていないといっても static this(); の宣言だけはされてる。
とりあえず body 書き足すので回避したけど、
テンプレート外の static this も .di ファイル内では同じく body のない宣言の状態で、
こっちは実行されてる。

レポートしようかと思うんだけど、 ttp://d.puremagic.com/issues/ になければ未発見ってことでいいんだよな?
0996デフォルトの名無しさん2012/02/23(木) 13:01:15.82
you レポートしちゃいなよ

かぶってて消されるのはよくある
0997デフォルトの名無しさん2012/02/24(金) 00:23:21.81
Dはowacon
0998デフォルトの名無しさん2012/02/24(金) 00:24:56.27
D先生の2.059にご期待ください!
0999デフォルトの名無しさん2012/02/24(金) 00:27:32.43
ほしゅしゅしゅしゅ
1000デフォルトの名無しさん2012/02/24(金) 00:28:20.04
問題なく使えてるけど
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。