D言語 Part34©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
C++を駆逐すると思っていた時期が私にも有りました 標準ライブラリの関数の名前の付け方がJavaっぽくて嫌なところ以外は好きだよDくん 2.078.2 dwt もアップデートされたらしいぞいぞい >>800 Win なら Visual D 2.079 新機能大爆発なのに人がおらんぞー そういえば公式の D Tour に日本語訳ついててのけぞった https://tour.dlang.org/tour/ja/welcome/welcome-to-d >>802 Tour のインストールしましょー!のページで 2.074 にリンクされてるのを見てしまった (ノ∀`)アチャー いやだってもうオワコンだろこれ というか始まってもないというか 個人的に00年代前半の頃はC/C++後継として期待してたんだけどな なにやっとんねんと言いたい 勿体無い 聞こえるぞ D3 を唱えようといううぉるたんの鼓動が… Rustやったことないけど どうせ綺麗なメタプログラミングパズル解いてホルホルしてるだけで終わるだけの 実用的じゃない言語だと思う。 Caml書いてた俺だからわかる。 C/C++の後継は完全にGoにもってかれたね うぉるたんはどう考えてるのか知らないけど goroutineが有効な用途ならともかく それ以外はD言語のほうが遥かにいいと思うんだけどなあ。何が命運を分けたのか rubyの埋め込み文字列みたいなのできる? "hoge=#{hoge}" みたいなの >>815 頻繁に変わる言語仕様も問題と言えば問題だけど やっぱ一番はライブラリっつーか周辺やろ… Dはクラス使えばいいのかと思いきや構造体推奨ってのが初見殺しすぎる >>820 推奨ってことはない 俺はほとんどクラスしか使わないしGC上等 まあクラスの派生とか皆無だし vtable も邪魔に思えてきたけどw それを言うならD言語だってC++の後継にはなんないわけで そしてDとgoは割と被ってる。方向性は逆を向いててもターゲットとしている領域が goって他のVM使わない静的言語と何が違うんだよ。 実行速度が早いと言われているOCamlと何が違う? Cとの競合をはっきり掲げる Zig とかいう LLVM 言語が出てきてるな https://ziglang.org/ Cのヘッダをそのまま読み込む?とかすげーこと書いてる… まだ情報少ないし俺は調べないけど興味ある人よろ いい言語ですね! 前に進めてください!! (感涙) いつの間にやら契約プログラミングのbody使う場面でdoを使えって話になってるな DがしっかりしてればGoだのRustだのでてくる余地はなかったのに 所詮はコミュニティベースの開発だからな GoogleやMozillaみたいな企業ベースに対抗するのはコアメンバーのモチベーションや運に依存する そういう意味ではRubyやPythonってすげーな Dで作ったWindowsコンソールアプリで標準出力に文字列が流れ続けてるところに 例:while ( true ) { writeln( "hoge" ); } クリックで文字列選択したあと右クリックすると Access Violationで落ちる現象どうにかならんもんか writeだろうがlogger.logだろうがprintfだろうがputsだろうが落ちる VCのCコンソールで作ったコンソールアプリだとこんな事起きないのに これの対策がtry-catchでErrorクラスをトラップとか馬鹿げてる 落ちない場合もあったんで最小コードを探ってみたところ これ↓だと>>837 の操作をしても落ちなかった import core.sys.windows.windows; import std.stdio; void main() { SetConsoleOutputCP( CP_UTF8 ); while ( true ) writeln( "ほげ" ); } 出力が"hoge"だとSetConsoleOutputCP呼び出しの有無に拘わらず落ちる SetConsoleOutputCPを呼んでいない場合は出力の内容に拘わらず落ちる SetConsoleOutputCPを呼んでいる場合は出力が"ほげ"だと落ちないが"ほげhoge"だと落ちる どうしてそんな事になるのかワケワカメ [[[ ][ ]]]\[[]] [[[]]]],[[[ [][] ] >>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"); } } >>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 少々遅くなってもいいなら writeln() のたびに stdout.flush() してやるのが簡単 以前から終了時のバッファ排出でバグがあったけど 去年くらいに Writer 系内部処理を何度も"改善"してたと思う stdout.flush();で問題は解決しなかったけど -m64オプション付けてコンパイルしたら落ちないようになった WOW64を過信し過ぎてたわ [[[ [ "[]" ]]] [] [][[[ [] ]][] Dカンファレンス2018 in ミュンヘンのライブ配信 https://www.youtube.com/watch?v=HvqsUO77FGI 日本電子専門学校で非公式Dカンファレンスやったのがもう10年前か… ポトペタどころか バージョンアップにしっかり追随して安心して使えるGUIライブラリないよ インスタンス作るまでオーバーライドしてない抽象メソッドがあってもエラーにならないってわけわからん さっさと教えろよ -betterC が使えるようになってから出来ることが格段に増えたな 組み込み周りはもちろんのこと、DのコードからWebAssembly吐ける日が来るとは思ってなかった D言語も大分落ち着いてきた頃合いだしそろそろ見直される時代が来てもいいのよ? (なんか最近deleteが非推奨になったような気もするが) 競プロとD言語は相性いいと思うんだけどな 俺も競プロでD言語使ってるし 変数への再代入禁止を意味するfinalがいつの間にか使えなくなっとるやん コンパイラに促された通りconst付けてもnot callable using a `const` objectって怒られるし ちゃうねん、Javascriptのconstみたいに事故防止に再代入のみを禁止したいねん 廃止要素に関してはどうも知識のアップデートが追いつかん D言語はもう終わりなんだよ というか始まってもないというか final変数がいつの間にか廃止してた問題は scope変数への再代入がいつの間にかコンパイルエラー出るようになってたことで解決したわ スコープ内限定で再代入禁止でスコープを抜ければ変数の寿命が来る、ってことでscope変数で要件を満たせる >>862 流産というか仕様変えすぎて育つ前に首切ってる感じ aliasがいつの間にか構文変わってたのは知ってたけど typedefもいつの間にか消えて使えなくなってるのかよ しかも従来のやり方と比べて代替手段がクソ面倒 MDN並みに日本語ドキュメントが最新に追いついていて 現行仕様、廃止仕様がきちんと整理されていないとツライな ちょっと離れてるだけで記憶に残ってるD言語とはまるで別言語になってる 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方 役に立つかもしれません グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』 KUKID change log は見やすくなってるよ 時々重要な変更がすっぽり抜けてるけどな 言語レベルの廃止も一応リスト化されてるよ https://dlang.org/deprecate.html 今気づいたが2ヶ月毎のリリースって明言されてるな minor release とかふざけたこと書いてるけど >>871 そのページ初めて見るんだけどどっから飛べるんや… >>871 そして昔確かにあったはずのfinal/const/invariantの ( https://digitalmars.com/d/final-const-invariant.html ) 再代入禁止を意味するfinal記憶クラスの仕様は何処へ消えたんや… 文句あるならチミたちがD言語開発に直接関わりなさいな いつの間にか使えなくなってて しかも廃止仕様リストにも載ってなきゃ どこに消えたんだってのは普通に抱く感想だよ 少なくとも俺がいじり出した10年くらい前には既にそんな機能なかった 当時穴が開くほど読んだもんだなぁ https://web.archive.org/web/20071011061638/http ://www.kmonos.net/alang/d/final-const-invariant.html 次バージョンから来る契約構文の追加は楽しみだ 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) { // ... } Dってnull安全性の機能は今のところ標準では用意されてないカンジ? template使って実現すること自体は簡単そうだけど std.conv.to!intでstringからintに変換しようと思ったんですけど、 stringで表現される数字が全角でした。 こういう場合、どうすればいいですか? 要素に対し'0'引くだけでint値を得られるし '0'引いて'0'足せば半角数字の文字コード得られるし あとは煮るなり焼くなり >>884 なるほど。 文字コードが連続してるからそういう方法あるんですね。 漢数字はテーブル用意するのかそれともi18nされてるのか 意味的に連続する文字の文字コードが連続してる保証ってないって話ではなかったっけ tr関数でASCIIに変換すればいいんじゃね。 と思ったらハイフン'-'が厄介だった。tr(s, "0123456789+−", "0123456789+-"); RustスレでD言語は死に絶えたって言われて何も言い返せなかったわ… むしろ更新が落ち着いた今こそ復権のタイミングじゃないか というか他の言語だって追加に廃止に非推奨と仕様コロコロ変わってて Dのこと言えないじゃないか D->LLVM->ネイティブとかさ アプリのフレームワークで共通の鰌で Windows,Android,OSX,iOSとかで動くようにならないかな ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.1 2024/04/28 Walang Kapalit ★ | Donguri System Team 5ちゃんねる