D言語 Part34©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2015/01/25(日) 12:07:29.52ID:gAd5OZDm
プログラミング言語 D (D Programming Language) について語るスレッドです。

■本家
http://dlang.org/ - 公式(英語)
http://www.kmonos.net/alang/d/ - 公式の和訳 (やや古いので注意)
https://issues.dlang.org/ - D言語バグ報告
https://github.com/D-Programming-Language - D言語開発リポジトリ

■Wiki
http://wiki.dlang.org/ - 公式Wiki
http://dusers.dip.jp/ - D言語友の会(日本語フォーラムあり)

■プログラミング言語D (TDPL: The D Programming Language)
Andrei Alexandrescu 日本語版
http://www.shoeisha.co.jp/book/detail/9784798131108

ソース貼付サイト http://dpaste.dzfl.pl/
<$><$> https://www.bountysource.com/trackers/383571-d-programming-language

■前スレ
D言語 Part33
http://toro.2ch.net/test/read.cgi/tech/1396145538/

■過去スレ、関連スレ
http://makimo.to:8000/cgi-bin/search/search.cgi?q=D%8C%BE%8C%EA&;sf=2&all=on&view=table&shw=5000
2017/11/08(水) 03:06:14.25ID:aIBytdYn
ま、スタティックリンクで数kbからにならないとCの置き換えは不可能
794デフォルトの名無しさん
垢版 |
2017/11/08(水) 06:55:17.36ID:ZWKv78KM
>>792
C#をdisるなω
2017/11/08(水) 08:02:35.68ID:CpShZ3Gu
stripすればCくらいのサイズになるのでは
2017/12/08(金) 18:08:54.07ID:7lBDaG0K
C++を駆逐すると思っていた時期が私にも有りました
797デフォルトの名無しさん
垢版 |
2017/12/08(金) 21:55:28.01ID:TcYdv7Hd
.obj 互換オプションあればなー
798デフォルトの名無しさん
垢版 |
2017/12/08(金) 22:08:41.01ID:tFBuW21G
標準ライブラリの関数の名前の付け方がJavaっぽくて嫌なところ以外は好きだよDくん
799デフォルトの名無しさん
垢版 |
2017/12/09(土) 12:21:32.98ID:nuTX+Pqx
初期に仕様リセットし過ぎて愛想尽かされた
2017/12/09(土) 17:05:48.02ID:xKc3yV2X
ideのデファクトスタンダードて結局何?
2018/02/11(日) 10:30:07.64ID:KveISlUh
2.078.2
dwt もアップデートされたらしいぞいぞい

>>800
Win なら Visual D
2018/03/04(日) 12:54:42.39ID:DD94zM8O
2.079
新機能大爆発なのに人がおらんぞー

そういえば公式の D Tour に日本語訳ついててのけぞった
https://tour.dlang.org/tour/ja/welcome/welcome-to-d
2018/03/04(日) 13:12:32.36ID:8KjE9Kl8
おめ
2018/03/04(日) 17:14:17.99ID:DD94zM8O
>>802
Tour のインストールしましょー!のページで 2.074 にリンクされてるのを見てしまった
(ノ∀`)アチャー
2018/03/08(木) 00:37:26.91ID:fCcY28Fx
いやだってもうオワコンだろこれ
というか始まってもないというか
806デフォルトの名無しさん
垢版 |
2018/03/08(木) 04:35:22.50ID:0VTxSBk2
始まりかけのときに壮絶な自爆
2018/03/09(金) 20:24:59.19ID:209TEL93
verうpしたらすぐライブラリが使えなくなるわ
2018/03/10(土) 05:15:45.70ID:/6tM+FAO
個人的に00年代前半の頃はC/C++後継として期待してたんだけどな
なにやっとんねんと言いたい
勿体無い
809デフォルトの名無しさん
垢版 |
2018/03/10(土) 06:22:25.09ID:L0iyZELB
>>808
ほんそれ
2018/03/10(土) 11:56:39.74ID:qIcg9Ap2
聞こえるぞ
D3 を唱えようといううぉるたんの鼓動が…
811デフォルトの名無しさん
垢版 |
2018/03/10(土) 12:35:03.41ID:TTti/WSS
また増やすんか
2018/03/10(土) 13:38:23.67ID:kYhzAC0A
Rustやったことないけど
どうせ綺麗なメタプログラミングパズル解いてホルホルしてるだけで終わるだけの
実用的じゃない言語だと思う。
Caml書いてた俺だからわかる。
2018/03/10(土) 17:08:02.19ID:lYWN/FxA
↑妄想君は凄い
2018/03/10(土) 20:28:50.44ID:pNLClb7o
C/C++の後継は完全にGoにもってかれたね
うぉるたんはどう考えてるのか知らないけど
2018/03/11(日) 03:27:33.77ID:fQarczMf
goroutineが有効な用途ならともかく
それ以外はD言語のほうが遥かにいいと思うんだけどなあ。何が命運を分けたのか
2018/03/11(日) 07:17:06.70ID:1TPWJAVW
rubyの埋め込み文字列みたいなのできる?

"hoge=#{hoge}"
みたいなの
2018/03/11(日) 08:35:05.74ID:Vr9GQpPg
>>815
頻繁に変わる言語仕様も問題と言えば問題だけど
やっぱ一番はライブラリっつーか周辺やろ…
2018/03/11(日) 08:55:19.19ID:DS7F81oK
言語仕様が変わるからライブラリが根付かない定期
819デフォルトの名無しさん
垢版 |
2018/03/11(日) 10:09:42.46ID:zWe+i43K
>>815
同意
2018/03/11(日) 11:43:49.89ID:7Ky5zjn9
Dはクラス使えばいいのかと思いきや構造体推奨ってのが初見殺しすぎる
821デフォルトの名無しさん
垢版 |
2018/03/11(日) 12:13:49.32ID:8JC0BCod
Dは関数型マクロωでコンパイル時に全て決定推奨
822デフォルトの名無しさん
垢版 |
2018/03/11(日) 12:26:01.28ID:PDfY//r3
きんたま?
2018/03/12(月) 22:18:01.25ID:pqiyCWN9
>>820
推奨ってことはない
俺はほとんどクラスしか使わないしGC上等

まあクラスの派生とか皆無だし
vtable も邪魔に思えてきたけどw
2018/03/12(月) 23:35:00.91ID:Y8Me4ew/
GoがC/C++の後継?
Goで下周り書けるかよ
2018/03/13(火) 14:18:12.30ID:DeaEY/ek
それを言うならD言語だってC++の後継にはなんないわけで
そしてDとgoは割と被ってる。方向性は逆を向いててもターゲットとしている領域が
826デフォルトの名無しさん
垢版 |
2018/03/13(火) 15:20:28.05ID:MHQfuTqc
きんきホーム
たまホーム
2018/03/13(火) 15:46:47.07ID:uPfPL/GN
goって他のVM使わない静的言語と何が違うんだよ。
実行速度が早いと言われているOCamlと何が違う?
2018/03/17(土) 09:22:57.34ID:dunQcKnu
Cとの競合をはっきり掲げる Zig とかいう LLVM 言語が出てきてるな
https://ziglang.org/

Cのヘッダをそのまま読み込む?とかすげーこと書いてる…
まだ情報少ないし俺は調べないけど興味ある人よろ
829デフォルトの名無しさん
垢版 |
2018/03/17(土) 10:52:20.29ID:zK+A43YX
LLVMを吐くCで充分では?
830デフォルトの名無しさん
垢版 |
2018/03/18(日) 11:21:51.01ID:2szVz2pj
いい言語ですね!
前に進めてください!!
(感涙)
2018/03/18(日) 11:42:10.14ID:isv4aoit
zig zag でよければ
2018/04/20(金) 14:04:35.16ID:H1yQYpwW
いつの間にやら契約プログラミングのbody使う場面でdoを使えって話になってるな
833デフォルトの名無しさん
垢版 |
2018/04/21(土) 05:19:08.38ID:LqWa1ZEr
https://issues.dlang.org/show_bug.cgi?id=18770
2018/04/22(日) 08:17:40.54ID:kKNIjb5q
DがしっかりしてればGoだのRustだのでてくる余地はなかったのに
2018/04/22(日) 13:31:55.46ID:/2pIZVDm
所詮はコミュニティベースの開発だからな
GoogleやMozillaみたいな企業ベースに対抗するのはコアメンバーのモチベーションや運に依存する

そういう意味ではRubyやPythonってすげーな
836デフォルトの名無しさん
垢版 |
2018/04/22(日) 17:38:45.67ID:tG1AxaFx
うむ
2018/04/26(木) 09:05:31.10ID:JKdk44sF
Dで作ったWindowsコンソールアプリで標準出力に文字列が流れ続けてるところに
例:while ( true ) { writeln( "hoge" ); }
クリックで文字列選択したあと右クリックすると
Access Violationで落ちる現象どうにかならんもんか

writeだろうがlogger.logだろうがprintfだろうがputsだろうが落ちる
VCのCコンソールで作ったコンソールアプリだとこんな事起きないのに

これの対策がtry-catchでErrorクラスをトラップとか馬鹿げてる
838デフォルトの名無しさん
垢版 |
2018/04/26(木) 16:07:08.57ID:obVS20md
バッファの問題なんかね
2018/04/26(木) 18:27:38.60ID:JKdk44sF
落ちない場合もあったんで最小コードを探ってみたところ
これ↓だと>>837の操作をしても落ちなかった

import core.sys.windows.windows;
import std.stdio;

void main()
{
   SetConsoleOutputCP( CP_UTF8 );
   while ( true ) writeln( "ほげ" );
}

出力が"hoge"だとSetConsoleOutputCP呼び出しの有無に拘わらず落ちる
SetConsoleOutputCPを呼んでいない場合は出力の内容に拘わらず落ちる
SetConsoleOutputCPを呼んでいる場合は出力が"ほげ"だと落ちないが"ほげhoge"だと落ちる

どうしてそんな事になるのかワケワカメ
840デフォルトの名無しさん
垢版 |
2018/04/27(金) 15:42:00.69ID:ash3pEtl
カルノー図を描くんだ
2018/04/28(土) 21:58:58.46ID:4vnB69wL
[[[ ][ ]]]\[[]] [[[]]]],[[[ [][] ]
842デフォルトの名無しさん
垢版 |
2018/04/29(日) 01:54:00.18ID:q/RtCgaj
>>837>>839
再現しませんでした
Windows7(32bit)
DMD32 D Compiler v2.074.1
LDC - the LLVM D compiler (1.3.0): based on DMD v2.073.2 and LLVM 3.9.1

試したコンパイルコマンド
dmd -w -m32 main.d
dmd -w -m32 -debug main.d
dmd -w -m32 -O main.d
ldc2 -w -m32 main.d
ldc2 -w -m32 -O main.d

試したコード
import std.stdio;

void main() {
while (true) {
writeln("hoge");
}
}
2018/04/29(日) 02:45:31.13ID:GU4PXxiP
既に 2.080 beta が出ているというのに
2018/04/29(日) 03:37:46.18ID:I3o29iby
>>842
すまん、こっちの環境はWindows10(64bit) 、DMD32 D Compiler v2.079.1 だわ
でも俺の環境だと2.074.1でコンパイルしても落ちたわ

-g -debugオプション付けて>>842と同様のコードで例の手順やって出るエラーログが以下↓

object.Error@(0): Access Violation
----------------
0x00425935 in write
0x00421A6D in fflush
0x004028A0 in @safe void std.stdio.File.LockingTextWriter.put!(char).put(char) at D:\develop\dmd2\windows\bin\..\..\src\phobos\std\stdio.d(2788)
0x00402263 in @safe void std.stdio.writeln!(immutable(char)[]).writeln(immutable(char)[]) at D:\develop\dmd2\windows\bin\..\..\src\phobos\std\stdio.d(3582)
0x004021EC in _Dmain at D:\library\projects\d\d_error_test\main.d(6)
0x00402C5B in D2rt6dmain211_d_run_mainUiPPaPUAAaZiZ6runAllMFZ9__lambda1MFNlZv
0x00402C1F in scope void rt.dmain2._d_run_main(int, char**, extern (C) int function(char[][])*).runAll()
0x00402B20 in _d_run_main
0x00402908 in main at D:\library\projects\d\d_error_test\main.d(7)
0x00420775 in mainCRTStartup
0x75538654 in BaseThreadInitThunk
0x774E4B17 in RtlGetAppContainerNamedObjectPath
0x774E4AE7 in RtlGetAppContainerNamedObjectPath
2018/04/29(日) 09:46:06.44ID:GU4PXxiP
少々遅くなってもいいなら
writeln() のたびに stdout.flush() してやるのが簡単

以前から終了時のバッファ排出でバグがあったけど
去年くらいに Writer 系内部処理を何度も"改善"してたと思う
2018/04/29(日) 13:12:23.84ID:I3o29iby
stdout.flush();で問題は解決しなかったけど
-m64オプション付けてコンパイルしたら落ちないようになった
WOW64を過信し過ぎてたわ
2018/04/30(月) 13:23:54.69ID:9wPwzi/d
[[[ [ "[]" ]]] [] [][[[ [] ]][]
2018/05/03(木) 00:28:46.61ID:W9rxAk6I
Dカンファレンス2018 in ミュンヘンのライブ配信
https://www.youtube.com/watch?v=HvqsUO77FGI

日本電子専門学校で非公式Dカンファレンスやったのがもう10年前か…
849デフォルトの名無しさん
垢版 |
2018/05/03(木) 00:32:00.58ID:W9rxAk6I
ついでにDMD2.080.0リリース
https://dlang.org/changelog/2.080.0.html
2018/05/05(土) 07:51:54.64ID:Hux5ZwPL
DでGUIってポトペタできるの?
851デフォルトの名無しさん
垢版 |
2018/05/05(土) 09:38:05.15ID:fc3S9c8B
wxD
2018/05/06(日) 08:25:54.57ID:HIB9nax/
ポトペタどころか
バージョンアップにしっかり追随して安心して使えるGUIライブラリないよ
2018/05/08(火) 03:20:35.99ID:ypr7siab
インスタンス作るまでオーバーライドしてない抽象メソッドがあってもエラーにならないってわけわからん
さっさと教えろよ
854デフォルトの名無しさん
垢版 |
2018/05/08(火) 16:24:19.12ID:75TKeVia
使うまではエラー出ない方がいいやん
2018/05/09(水) 00:52:11.39ID:urtq8In6
-betterC が使えるようになってから出来ることが格段に増えたな
組み込み周りはもちろんのこと、DのコードからWebAssembly吐ける日が来るとは思ってなかった
856デフォルトの名無しさん
垢版 |
2018/05/09(水) 08:31:17.51ID:DadRmw9B
最初からやっとけばよかった
方向性を間違えていた
2018/05/10(木) 20:31:51.52ID:pG/0Qta8
D言語も大分落ち着いてきた頃合いだしそろそろ見直される時代が来てもいいのよ?
(なんか最近deleteが非推奨になったような気もするが)
858デフォルトの名無しさん
垢版 |
2018/05/13(日) 23:12:24.94ID:l20zYg8v
競プロでD言語を使いまくってD言語を宣伝だ!
2018/05/13(日) 23:40:01.38ID:zmXs6vK1
競プロとD言語は相性いいと思うんだけどな
俺も競プロでD言語使ってるし
2018/05/17(木) 00:25:08.63ID:AoIdJqgi
変数への再代入禁止を意味するfinalがいつの間にか使えなくなっとるやん
コンパイラに促された通りconst付けてもnot callable using a `const` objectって怒られるし
ちゃうねん、Javascriptのconstみたいに事故防止に再代入のみを禁止したいねん

廃止要素に関してはどうも知識のアップデートが追いつかん
861デフォルトの名無しさん
垢版 |
2018/05/17(木) 12:42:43.82ID:HY+Xmele
umu
2018/05/17(木) 21:48:23.32ID:aSY3G8ai
D言語はもう終わりなんだよ
というか始まってもないというか
2018/05/17(木) 22:15:29.42ID:sUJws5+j
そういう煽りは要らないっすね、このスレには
864860
垢版 |
2018/05/17(木) 22:42:36.00ID:AoIdJqgi
final変数がいつの間にか廃止してた問題は
scope変数への再代入がいつの間にかコンパイルエラー出るようになってたことで解決したわ
スコープ内限定で再代入禁止でスコープを抜ければ変数の寿命が来る、ってことでscope変数で要件を満たせる
865デフォルトの名無しさん
垢版 |
2018/05/18(金) 17:47:42.29ID:0IKxFX6d
>>862
流産というか仕様変えすぎて育つ前に首切ってる感じ
2018/05/20(日) 15:02:22.61ID:q06gwnuv
産みっぱなしの児童労働やで
2018/05/20(日) 23:02:17.61ID:qH56GQyK
aliasがいつの間にか構文変わってたのは知ってたけど
typedefもいつの間にか消えて使えなくなってるのかよ
しかも従来のやり方と比べて代替手段がクソ面倒
2018/05/20(日) 23:08:04.29ID:qH56GQyK
MDN並みに日本語ドキュメントが最新に追いついていて
現行仕様、廃止仕様がきちんと整理されていないとツライな
ちょっと離れてるだけで記憶に残ってるD言語とはまるで別言語になってる
869デフォルトの名無しさん
垢版 |
2018/05/21(月) 10:14:37.88ID:6DKDYwaD
うむ
870デフォルトの名無しさん
垢版 |
2018/05/23(水) 19:08:02.45ID:Au5e7VGg
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

KUKID
2018/05/23(水) 21:20:31.33ID:HAh7S+Yv
change log は見やすくなってるよ
時々重要な変更がすっぽり抜けてるけどな

言語レベルの廃止も一応リスト化されてるよ
https://dlang.org/deprecate.html

今気づいたが2ヶ月毎のリリースって明言されてるな
minor release とかふざけたこと書いてるけど
2018/05/24(木) 01:24:55.66ID:cbZMWmWW
>>871
そのページ初めて見るんだけどどっから飛べるんや…
2018/05/24(木) 01:51:49.54ID:cbZMWmWW
>>871
そして昔確かにあったはずのfinal/const/invariantの
( https://digitalmars.com/d/final-const-invariant.html )
再代入禁止を意味するfinal記憶クラスの仕様は何処へ消えたんや…
874デフォルトの名無しさん
垢版 |
2018/05/24(木) 09:58:50.53ID:fftgGS82
色々と残念になっていくな
875デフォルトの名無しさん
垢版 |
2018/05/24(木) 19:20:19.04ID:19Fz0o1F
文句あるならチミたちがD言語開発に直接関わりなさいな
2018/05/25(金) 12:29:53.89ID:llbJVLc1
いつの間にか使えなくなってて
しかも廃止仕様リストにも載ってなきゃ
どこに消えたんだってのは普通に抱く感想だよ
877デフォルトの名無しさん
垢版 |
2018/05/25(金) 16:14:50.43ID:XO9fqtgP
そういうの大事だよね
2018/05/25(金) 21:13:52.67ID:Kp5EEe8w
少なくとも俺がいじり出した10年くらい前には既にそんな機能なかった
2018/05/25(金) 21:45:50.20ID:llbJVLc1
当時穴が開くほど読んだもんだなぁ

https://web.archive.org/web/20071011061638/http://www.kmonos.net/alang/d/final-const-invariant.html
880デフォルトの名無しさん
垢版 |
2018/05/26(土) 17:33:25.22ID:VmZ0B+DV
終わっていくってこういうことなんだな
2018/05/26(土) 21:43:43.26ID:Yg2bLXCl
次バージョンから来る契約構文の追加は楽しみだ

int fun(ref int a, int b)
   in(a > 0)
   in(b >= 0, "b cannot be negative")
   out(r; r > 0, "return must be positive")
   out(; a != 0)
{
// ...
}
2018/05/27(日) 10:51:50.80ID:K2zIueyC
Dってnull安全性の機能は今のところ標準では用意されてないカンジ?
template使って実現すること自体は簡単そうだけど
2018/06/10(日) 18:04:56.72ID:arddwNhh
std.conv.to!intでstringからintに変換しようと思ったんですけど、
stringで表現される数字が全角でした。
こういう場合、どうすればいいですか?
2018/06/10(日) 22:54:43.49ID:LYbFojL+
要素に対し'0'引くだけでint値を得られるし
'0'引いて'0'足せば半角数字の文字コード得られるし
あとは煮るなり焼くなり
2018/06/11(月) 00:12:59.63ID:VBB2bpQs
>>884
なるほど。
文字コードが連続してるからそういう方法あるんですね。
886デフォルトの名無しさん
垢版 |
2018/06/11(月) 10:45:31.47ID:tK3aH3wF
漢数字はテーブル用意するのかそれともi18nされてるのか
887デフォルトの名無しさん
垢版 |
2018/06/11(月) 20:26:30.57ID:xf3num2h
意味的に連続する文字の文字コードが連続してる保証ってないって話ではなかったっけ
888デフォルトの名無しさん
垢版 |
2018/06/12(火) 16:49:06.21ID:bLF3+6cr
二支とか十干だな
889デフォルトの名無しさん
垢版 |
2018/06/12(火) 16:49:34.78ID:bLF3+6cr
変なとこで切れた
十二支と十干で干支
2018/06/12(火) 17:10:31.20ID:eeJGE1xP
tr関数でASCIIに変換すればいいんじゃね。
と思ったらハイフン'-'が厄介だった。tr(s, "0123456789+−", "0123456789+-");
2018/06/18(月) 19:23:44.09ID:MmynirXE
RustスレでD言語は死に絶えたって言われて何も言い返せなかったわ…
892デフォルトの名無しさん
垢版 |
2018/06/18(月) 19:48:03.22ID:UtQrM811
おかえり
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況