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
752デフォルトの名無しさん
垢版 |
2017/09/11(月) 14:37:29.12ID:TGeCtRBC
>>751
前提がおかしいw
2017/09/12(火) 06:45:11.40ID:LkwWIzb9
いや結構そういう感じだわ俺
実行するとたまに結果が微妙に違うなと思ったら、普段VS上からデバッグバージョン実行してて、リリース版上書きするの忘れてるだけだったり
2017/09/14(木) 09:40:14.95ID:LhtzuhrL
× VSが常時
〇 2chビューワーが常時
2017/09/15(金) 10:47:15.00ID:DsFP17U9
だいたいあってる
2017/09/16(土) 11:49:32.20ID:d6C/wUJg
質問はここでいいですか?

Windows で DLL を作ろうとしています。
https://wiki.dlang.org/Win32_DLLs_in_D
を見てやってみましたが、コンパイルできず、LNK1561 になります。

dmd -m32mscoff -ofx86\test.dll dllmain.d test.def
dmd -m64 -ofx64\test.dll dllmain.d test.def

リンカが MS のものを使っているためこのエラーが出ると思うのですが、
エントリーポイントをどのように指定すればよいのかわかりません。
わかる方ご教示いただけませんでしょうか。

DMD のバージョンは 2.076.0、VS のバージョンは 15.3.4 です。
2017/09/16(土) 12:48:55.75ID:ZCzFTInQ
defなしで
758756
垢版 |
2017/09/16(土) 15:35:04.87ID:d6C/wUJg
defなしでも同じ結果になりました:

LINK : fatal error LNK1561: エントリー ポイントを定義しなければなりません。
759デフォルトの名無しさん
垢版 |
2017/09/16(土) 16:45:47.46ID:Gd+302E1
-shared
760756
垢版 |
2017/09/16(土) 18:38:55.20ID:d6C/wUJg
-shared で 32bit、64bit とも作成できました。
ありがとうございました。
2017/09/17(日) 12:46:46.42ID:5uCVCcKi
https://wiki.dlang.org/Win32_DLLs_in_D
ここの一番上に書いてあるじゃん
762デフォルトの名無しさん
垢版 |
2017/09/18(月) 11:04:32.91ID:ej1qDtIX
馬鹿には無理
763デフォルトの名無しさん
垢版 |
2017/09/18(月) 12:13:58.30ID:XoyPNJhq
dmd2\samples\d\mydll\build.bat
には入ってなかった(戦慄)

-shared って割と最近の変更だしな
764デフォルトの名無しさん
垢版 |
2017/09/18(月) 20:04:52.92ID:O+NhZEIY
これでGUIアプリ作るならウィジェットはナニを使えば良いんだー
2017/09/18(月) 20:25:16.79ID:/S27bRBH
wx
2017/09/18(月) 20:52:19.83ID:XoyPNJhq
やめとけ



と一蹴したいところだが、あえて勇者に DlangUI を勧めてみよう
2017/09/18(月) 21:53:06.19ID:X3R7dE7e
LazarusくらいのとこがてぎるIDEでた?
2017/09/19(火) 12:37:25.75ID:NEmvstRb
ファイル、フォルダの命名規則がクソすぎる
別に無視してもかまわんだろうけど
2017/09/19(火) 13:59:10.86ID:NEmvstRb
https://github.com/Dgame/Dgame

クソ命名規則を無視している優良プロジェクト
みんなもクソ命名規則は無視しよう
2017/09/19(火) 17:18:15.85ID:xxOzXrDl
>>764
Tcl/Tk
2017/09/29(金) 03:59:12.25ID:4agIphwV
private this()
だけでコンパイル通るのが糞だわ。
{}が無いのに。

ライブラリ作った時点では何もないのに
リンク時にエラーとして出てくるとかやめれ。
772デフォルトの名無しさん
垢版 |
2017/09/29(金) 21:47:52.84ID:sJSvcHfp
単体テスト書いてそれを通すまでがライブラリ作成ですよ
2017/09/30(土) 16:02:54.64ID:4rbkY8QZ
馬鹿ほどコンパイラのせいにしたがる
2017/10/01(日) 13:05:24.17ID:Uy9r/fJ2
連想配列に環境依存のバグがありそう
使ってるクソライブラリが端末によってエラーになるし糞かよ
775デフォルトの名無しさん
垢版 |
2017/10/01(日) 15:25:00.88ID:dZZybuoZ
おま環境ω
2017/10/02(月) 17:59:12.33ID:oE42sBRL
tcltkってそんなに良いか?
777デフォルトの名無しさん
垢版 |
2017/10/03(火) 09:12:29.54ID:nH2BZkoP
gjgj
2017/11/05(日) 23:15:29.42ID:Of1Ymqlf
2.077.0

テンプレート使うと修飾名がありえないほど長くなるという昔からの問題が改善された
ライブラリとか一通り注意すべし
2017/11/05(日) 23:59:22.07ID:pQFnUEQW
Rustでええやろ
2017/11/06(月) 15:47:25.08ID:TxT/hKw1
あれはGC使いたくない&ランタイムのデカさが気にならない巨大アプリ特化みたいなところある
Dの対抗はgoとかnim
2017/11/06(月) 21:26:53.62ID:PRkrHOts
システムプログラミング言語なのでアプリ特化ってことは無いよ
下層も上層も両方いける
782デフォルトの名無しさん
垢版 |
2017/11/06(月) 22:26:18.14ID:FBpfr6Qh
スレ違いかも知れないが、D言語初心者だけど質問しても良い?
2017/11/06(月) 22:48:55.76ID:7P3Nk5ci
ダメです

と言えば質問しないのか
784デフォルトの名無しさん
垢版 |
2017/11/06(月) 22:54:11.04ID:njCgvqVz
D言語に関する質問はどこのコミュニティがオススメですか?

stackoverflowもteratailもあまり活発ではなさそうなので

D言語のエラー・バグ・問題の解決方法|teratail
https://teratail.com/tags/D%E8%A8%80%E8%AA%9E

新着の 'd' 質問 - スタック・オーバーフロー
https://ja.stackoverflow.com/questions/tagged/d
785デフォルトの名無しさん
垢版 |
2017/11/06(月) 22:57:58.79ID:FBpfr6Qh
いきなり質問して荒れたらやだし....
2017/11/07(火) 02:02:18.03ID:O5O/1Ksn
前置きしたらもっと荒れるぞ
787デフォルトの名無しさん
垢版 |
2017/11/07(火) 03:59:26.23ID:zRpLERto
D言語の質問はここでしるな
2017/11/07(火) 04:59:58.50ID:uzn/nrN5
>>781
rustは巨大なランタイムとツールチェインがネックになって
ガチのシステムプログラミングには使えないと踏んでる
あと小物にも向かない。lsやechoみたいなコマンドが何MBもあったら嫌だろう
2017/11/07(火) 07:18:59.93ID:/xdVk9AW
それってコンパイラが進化してもどうにもならんことなの?
2017/11/07(火) 16:07:34.16ID:3f9DZLc4
>>788
lsやechoをrust,d,c++,go,swiftで書いて比較でもしたの?
2017/11/07(火) 16:17:46.02ID:pha33qDk
rust はダイナミックリンクすれば小さくなるよ。
2017/11/07(火) 22:01:57.06ID:ige9lhQ8
実際のとこは知らんがしばらくRust追っててランタイムが巨大とか初めて聞いたわ
試しにいくつかreleaseでビルドしてみたが大量のcrate使ってるやつは10MB超えてて
少なめの奴は300KBくらいだった
まあそりゃライブラリコミコミなら大きくなるわな
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
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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