X



D言語 Part34©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん 転載ダメ©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
0745デフォルトの名無しさん
垢版 |
2017/09/10(日) 01:30:18.91ID:W8hQWR/l
いやDに興味ないのが冷やかしてるだけ
0746デフォルトの名無しさん
垢版 |
2017/09/10(日) 02:08:35.60ID:mLTl9fJv
ちょっとしたexeで.NETとかないわーと思ったけど、GUIならまあしょうがないのか
人によってちょっとしたexeの範囲も違うんだな
0748デフォルトの名無しさん
垢版 |
2017/09/10(日) 19:24:57.70ID:mFLa2LdI
VisualD残念過ぎるな
エクスプローラからのフォルダやファイルの管理がゴミすぎる
見た目通りにフォルダが出来てないし、どこにファイルが作られるのかもわからんのがやばい。
まずはこういう基本的なことからまともに作ってけよ。
0749733
垢版 |
2017/09/11(月) 09:24:09.55ID:8q7HHnzx
ちょっとしたってのは
メモ帳やviで書けるレベルの100行にも満たないって
レベルだったんだけど・・・

IDEを使うレベルは
ちょっとしたじゃないイメージ
0751デフォルトの名無しさん
垢版 |
2017/09/11(月) 14:36:04.39ID:1yyZGwgJ
基本的にWindowsユーザーは作業用VisualStudioを常時開いてるからな。
ちょっとした作業は適当にC#で書いてそのままVisualStudioから実行してる。
実際にはexeを作ってすらいない。スクリプトを書いてるような感覚で使てる。
0752デフォルトの名無しさん
垢版 |
2017/09/11(月) 14:37:29.12ID:TGeCtRBC
>>751
前提がおかしいw
0753デフォルトの名無しさん
垢版 |
2017/09/12(火) 06:45:11.40ID:LkwWIzb9
いや結構そういう感じだわ俺
実行するとたまに結果が微妙に違うなと思ったら、普段VS上からデバッグバージョン実行してて、リリース版上書きするの忘れてるだけだったり
0756デフォルトの名無しさん
垢版 |
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 です。
0758756
垢版 |
2017/09/16(土) 15:35:04.87ID:d6C/wUJg
defなしでも同じ結果になりました:

LINK : fatal error LNK1561: エントリー ポイントを定義しなければなりません。
0759デフォルトの名無しさん
垢版 |
2017/09/16(土) 16:45:47.46ID:Gd+302E1
-shared
0760756
垢版 |
2017/09/16(土) 18:38:55.20ID:d6C/wUJg
-shared で 32bit、64bit とも作成できました。
ありがとうございました。
0762デフォルトの名無しさん
垢版 |
2017/09/18(月) 11:04:32.91ID:ej1qDtIX
馬鹿には無理
0763デフォルトの名無しさん
垢版 |
2017/09/18(月) 12:13:58.30ID:XoyPNJhq
dmd2\samples\d\mydll\build.bat
には入ってなかった(戦慄)

-shared って割と最近の変更だしな
0764デフォルトの名無しさん
垢版 |
2017/09/18(月) 20:04:52.92ID:O+NhZEIY
これでGUIアプリ作るならウィジェットはナニを使えば良いんだー
0768デフォルトの名無しさん
垢版 |
2017/09/19(火) 12:37:25.75ID:NEmvstRb
ファイル、フォルダの命名規則がクソすぎる
別に無視してもかまわんだろうけど
0771デフォルトの名無しさん
垢版 |
2017/09/29(金) 03:59:12.25ID:4agIphwV
private this()
だけでコンパイル通るのが糞だわ。
{}が無いのに。

ライブラリ作った時点では何もないのに
リンク時にエラーとして出てくるとかやめれ。
0772デフォルトの名無しさん
垢版 |
2017/09/29(金) 21:47:52.84ID:sJSvcHfp
単体テスト書いてそれを通すまでがライブラリ作成ですよ
0774デフォルトの名無しさん
垢版 |
2017/10/01(日) 13:05:24.17ID:Uy9r/fJ2
連想配列に環境依存のバグがありそう
使ってるクソライブラリが端末によってエラーになるし糞かよ
0775デフォルトの名無しさん
垢版 |
2017/10/01(日) 15:25:00.88ID:dZZybuoZ
おま環境ω
0777デフォルトの名無しさん
垢版 |
2017/10/03(火) 09:12:29.54ID:nH2BZkoP
gjgj
0778デフォルトの名無しさん
垢版 |
2017/11/05(日) 23:15:29.42ID:Of1Ymqlf
2.077.0

テンプレート使うと修飾名がありえないほど長くなるという昔からの問題が改善された
ライブラリとか一通り注意すべし
0780デフォルトの名無しさん
垢版 |
2017/11/06(月) 15:47:25.08ID:TxT/hKw1
あれはGC使いたくない&ランタイムのデカさが気にならない巨大アプリ特化みたいなところある
Dの対抗はgoとかnim
0781デフォルトの名無しさん
垢版 |
2017/11/06(月) 21:26:53.62ID:PRkrHOts
システムプログラミング言語なのでアプリ特化ってことは無いよ
下層も上層も両方いける
0782デフォルトの名無しさん
垢版 |
2017/11/06(月) 22:26:18.14ID:FBpfr6Qh
スレ違いかも知れないが、D言語初心者だけど質問しても良い?
0785デフォルトの名無しさん
垢版 |
2017/11/06(月) 22:57:58.79ID:FBpfr6Qh
いきなり質問して荒れたらやだし....
0787デフォルトの名無しさん
垢版 |
2017/11/07(火) 03:59:26.23ID:zRpLERto
D言語の質問はここでしるな
0788デフォルトの名無しさん
垢版 |
2017/11/07(火) 04:59:58.50ID:uzn/nrN5
>>781
rustは巨大なランタイムとツールチェインがネックになって
ガチのシステムプログラミングには使えないと踏んでる
あと小物にも向かない。lsやechoみたいなコマンドが何MBもあったら嫌だろう
0792デフォルトの名無しさん
垢版 |
2017/11/07(火) 22:01:57.06ID:ige9lhQ8
実際のとこは知らんがしばらくRust追っててランタイムが巨大とか初めて聞いたわ
試しにいくつかreleaseでビルドしてみたが大量のcrate使ってるやつは10MB超えてて
少なめの奴は300KBくらいだった
まあそりゃライブラリコミコミなら大きくなるわな
0794デフォルトの名無しさん
垢版 |
2017/11/08(水) 06:55:17.36ID:ZWKv78KM
>>792
C#をdisるなω
0797デフォルトの名無しさん
垢版 |
2017/12/08(金) 21:55:28.01ID:TcYdv7Hd
.obj 互換オプションあればなー
0798デフォルトの名無しさん
垢版 |
2017/12/08(金) 22:08:41.01ID:tFBuW21G
標準ライブラリの関数の名前の付け方がJavaっぽくて嫌なところ以外は好きだよDくん
0799デフォルトの名無しさん
垢版 |
2017/12/09(土) 12:21:32.98ID:nuTX+Pqx
初期に仕様リセットし過ぎて愛想尽かされた
0804デフォルトの名無しさん
垢版 |
2018/03/04(日) 17:14:17.99ID:DD94zM8O
>>802
Tour のインストールしましょー!のページで 2.074 にリンクされてるのを見てしまった
(ノ∀`)アチャー
0806デフォルトの名無しさん
垢版 |
2018/03/08(木) 04:35:22.50ID:0VTxSBk2
始まりかけのときに壮絶な自爆
0808デフォルトの名無しさん
垢版 |
2018/03/10(土) 05:15:45.70ID:/6tM+FAO
個人的に00年代前半の頃はC/C++後継として期待してたんだけどな
なにやっとんねんと言いたい
勿体無い
0809デフォルトの名無しさん
垢版 |
2018/03/10(土) 06:22:25.09ID:L0iyZELB
>>808
ほんそれ
0811デフォルトの名無しさん
垢版 |
2018/03/10(土) 12:35:03.41ID:TTti/WSS
また増やすんか
0812デフォルトの名無しさん
垢版 |
2018/03/10(土) 13:38:23.67ID:kYhzAC0A
Rustやったことないけど
どうせ綺麗なメタプログラミングパズル解いてホルホルしてるだけで終わるだけの
実用的じゃない言語だと思う。
Caml書いてた俺だからわかる。
0814デフォルトの名無しさん
垢版 |
2018/03/10(土) 20:28:50.44ID:pNLClb7o
C/C++の後継は完全にGoにもってかれたね
うぉるたんはどう考えてるのか知らないけど
0815デフォルトの名無しさん
垢版 |
2018/03/11(日) 03:27:33.77ID:fQarczMf
goroutineが有効な用途ならともかく
それ以外はD言語のほうが遥かにいいと思うんだけどなあ。何が命運を分けたのか
0817デフォルトの名無しさん
垢版 |
2018/03/11(日) 08:35:05.74ID:Vr9GQpPg
>>815
頻繁に変わる言語仕様も問題と言えば問題だけど
やっぱ一番はライブラリっつーか周辺やろ…
0819デフォルトの名無しさん
垢版 |
2018/03/11(日) 10:09:42.46ID:zWe+i43K
>>815
同意
0821デフォルトの名無しさん
垢版 |
2018/03/11(日) 12:13:49.32ID:8JC0BCod
Dは関数型マクロωでコンパイル時に全て決定推奨
0822デフォルトの名無しさん
垢版 |
2018/03/11(日) 12:26:01.28ID:PDfY//r3
きんたま?
0823デフォルトの名無しさん
垢版 |
2018/03/12(月) 22:18:01.25ID:pqiyCWN9
>>820
推奨ってことはない
俺はほとんどクラスしか使わないしGC上等

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

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

そういう意味ではRubyやPythonってすげーな
0836デフォルトの名無しさん
垢版 |
2018/04/22(日) 17:38:45.67ID:tG1AxaFx
うむ
0837デフォルトの名無しさん
垢版 |
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クラスをトラップとか馬鹿げてる
0838デフォルトの名無しさん
垢版 |
2018/04/26(木) 16:07:08.57ID:obVS20md
バッファの問題なんかね
0839デフォルトの名無しさん
垢版 |
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"だと落ちる

どうしてそんな事になるのかワケワカメ
0840デフォルトの名無しさん
垢版 |
2018/04/27(金) 15:42:00.69ID:ash3pEtl
カルノー図を描くんだ
0842デフォルトの名無しさん
垢版 |
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");
}
}
0844デフォルトの名無しさん
垢版 |
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
■ このスレッドは過去ログ倉庫に格納されています

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