-
プログラム
-
D言語 Part34©2ch.net
-
UPLIFTで広告なしで体験しましょう!快適な閲覧ライフをお約束します!
プログラミング言語 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....detail/9784798131108
ソース貼付サイト http://dpaste.dzfl.pl/
<$><$> https://www.bountyso...programming-language
■前スレ
D言語 Part33
http://toro.2ch.net/...cgi/tech/1396145538/
■過去スレ、関連スレ
http://makimo.to:800...w=table&shw=5000 - コメントを投稿する
-
■DUB パッケージマネージャ
http://code.dlang.org/
■IDE
http://rainers.githu...suald/StartPage.html - Visual D(Visual Studioプラグイン)
https://code.google.com/p/ddt/ - DDT(Eclipseプラグイン)
http://wiki.dlang.org/Mono-D - Mono-D (MonoDevelop プラグイン)
■ライブラリ
https://github.com/d-widget-toolkit/dwt - DWT(GUIライブラリ)
https://github.com/gtkd-developers/GtkD - GtkD(GUIライブラリ)
https://github.com/Rayerd/dfl - DFL(GUIライブラリ・非公式最新版)
https://github.com/DerelictOrg - Derelict(SDL/OpenGLなどのポーティング)
http://www.vector.co...5/prog/se491774.html - DXライブラリ バインディング(作者サイトメンテナンスのため Vector)
http://www.ku6.jp/keyword6/1.html - 傾き指向プログラミング(SDLなどのポーティング)
■OMF<->COFF変換ツール
http://www.agner.org/optimize/#objconv
■D言語で作られたゲーム
http://www.nicovideo.jp/mylist/4453698 - D言語で作られた芝ゲー niconico動画
http://www.asahi-net.or.jp/~cs8k-cyu/ - ABA Games -
ノ ゚.ノヽ , /} ...
,,イ`" 、-' `;_' ' ..::::::::::::::...
,-、 _.._ ( (,(~ヽ'~ ..:::::::::::::::::::::::
)'~ レー' 〉 ヽ i`'} .:::::::::::::::::::::::
~つ '-ー、 i | i' ...:::::::::::::::::::::::
/ < / 。/ ! ......::::::::::::::::::::::::: これは>>1乙じゃなくて
/ ~^´ /},-'' ,●::::::::::::::::::::::::::::::::::::
i、 ,i' _,,...,-‐-、/ i :::::::: .:::::::::::::
..ゝ <,,-==、 ,,-,/ .::::::::::: 放射能がうんたら
) {~''~>`v-''`ー゙`'~ ..::::::::: ........::.
{ レ_ノ ..::::::::. ......:::::::::
ノ '' ..::::::: ...::.:...:::::::::
.::::::::: ...:......:::::::::::: .
.:::::::::::. ..... .. ..:::::::::::::::::::::::: :::.
::::::::::::::::.::::::....:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.. :: ::..
.:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ::: ::.
::::::::::::::::: :::::::::::::::::::::::::::::: :::::
.:: ::. ::: -
最新verにしたらgl3nってライブラリがコンパイル通らなくなった
破壊的変更入れる方も糞だが
製作者もカッコつけて変な機能使わずに、betterC程度で実装すべき -
破壊的変更は一般的に前方互換性を壊すことであって……
-
いや、この場合は実際に前方互換性が壊れてるんだな
-
betterC程度で実装すべき って正気か?!
-
だって直してやろうにもわけわかんないもん
-
直そうかと思ったけどgl3nってGNU make使えないのかまじかよ
makeコマンドまで専用に置き換えることないだろJK・・・ -
それは言えてる
-
何かDの公式サイトがちょっとモダンになってるなw
…で、日本語版はいつまで放置状態なんですかね -
君がプルリクエストを送れば放置じゃなくなるよ!
https://github.com/kinaba/dlang-ref-jp -
言語の方はPRでなんとかなるけどライブラリの方はどうにも手が出せんな
翻訳元がどのバージョンかもわからん ソース一本一本バラバラで頭痛くなった -
順調に行ったとして3月頭だよ もっと遅れると思う
-
ベータテストをサボってない?
2.067.0-b1とか、changelogにある変更点は一つも入ってない時のバージョンじゃないか
こりゃregression地獄だろうな -
まだβテスト始まってない
2.067.0-b1はアルファ版だけど担当者不在の状態でベータとして公開された
手違いか確信犯かは知らない -
異常な早さで出てたもんなb1
2.066と同じくらいの時期に出たんじゃなかった? -
まだ高速リリースとか言ってるのか
-
D言語初心者なんですが教えて下さい
<プログラミング言語D 日本語版>の12Pに出てくる、テキストに含まれる
単語ごとに出現回数を数えるプログラムを打ち込んでみてるのですが、
ソース上どこにもテキストファイルを読み込むような箇所が無いような気が
するのですが、その部分は自分で実装しろって事なんですかね?
http://ideone.com/nqOOCq -
標準入力からテキストをもらうコードになってるよ。
a.exe < text.txt -
stdinが標準入力
byLineが一行ずつ取り出し -
実行できました!!
有り難うございます。 -
derelict3使ってらっしゃる方いますか・・?
ソースをダウンロードしてコンパイルまでは問題なくいったんですけど、
実行すると以下のようなエラーがでてしまいます。。
Building all packages.
Building DerelictPQ
../import/derelict/pq/functions.d
../import/derelict/pq/pq.d
../import/derelict/pq/types.d
dmd -lib -O -release -inline -property -w -wi -I"../import" -of"../lib/dmd/libDerelictPQ.a" "../import/derelict/pq/functions.d" "../import/derelict/pq/pq.d" "../import/derelict/pq/types.d"
/usr/src/phobos/std/stdio.d(975): Error: not a property fileno
/usr/src/phobos/std/bitmanip.d(1650): Error: not a property iota(this.dim()).filter!((i) => ptr[i])
/usr/src/phobos/std/bitmanip.d(1651): Error: not a property filter(iota(this.dim())).map!((i) => BitsSet!size_t(ptr[i], i * bitsPerSizeT))
対処法分かる方いらっしゃいますか??
バージョンはDMD64 D Compiler v2.066.1です。。
一応ぐぐってこういうページ(https://github.com/r...ly/xxhash-d/issues/1)
とかは見つけてみて、
posix.makとかいうテキストファイルをあさって中みてみたけど、
サイトの人が答えてる箇所と同じ部分は見つからないし、
何がなんだかサッパリ! -
詳しい説明を省略するとコンパイルオプションに-propertyがついてるのが悪い
dmd -Isrc -m64 -w -d -property -O -release …
から -property を削って
dmd -Isrc -m64 -w -d -O -release …
にすればコンパイル通るはず。-propertyで検索するといい -
あとposix.makはlinuxとかで使うメイクファイルだろうから
もしWindows使ってるなら直すべきはwin32.makとかかも -
>>28
先輩さすがっす!!
もう自分一人じゃ万策尽きてました!!
linux使いなんですがposix.makはいじらなくても平気でした。
Direlict3を落とした時についてたbuild.dの中の-propertyを全2箇所、
仰せの通り削除したら普通に通りました。
もっと勉強が必要ですね。
今日はこれでやっと寝れます。どうも有難う御座いました。 -
デレリクトIII世あやまれ
-
Pythonに代わってDの時代、来ちゃったかー
http://postd.cc/d-for-the-win/
枕詞はいいとして、srcgenのD版でのopIndexとopDollarの使い方が秀逸だわ
名前付き引数も実現できるんだな -
凄い、と感動するけどハックっぽいのが…
言語機能として欲しいよね、名前付き引数
あと多返値 -
タプルまだ返せないんだった?
-
http://qiita.com/yas...ae23b681a47d9a16f4c6
↑ここに書かれてる方法に従って進め、ソースコードのビルドを試みたのですが、
以下のようなエラーが出ました。
libDerelictSDL2.a(sdl.o):(.rodata+0x20): `_D8derelict4util6loader12__ModuleInfoZ' に対する定義されていない参照です
libDerelictSDL2.a(sdl_71_698.o):(.data+0x40): `_D8derelict4util9exception17DerelictException7__ClassZ' に対する定義されていない参照です
libDerelictSDL2.a(sdl_71_698.o):(.data+0xb0): `_D8derelict4util6loader15SharedLibLoader7__ClassZ' に対する定義されていない参照です
libDerelictSDL2.a(sdl_71_698.o):(.rodata+0x4568): `_D8derelict4util6loader15SharedLibLoader4loadMFZv' に対する定義されていない参照です
libDerelictSDL2.a(sdl_71_698.o):(.rodata+0x4570): `_D8derelict4util6loader15SharedLibLoader4loadMFAyaZv' に対する定義されていない参照です
libDerelictSDL2.a(sdl_71_698.o):(.rodata+0x4578): `_D8derelict4util6loader15SharedLibLoader4loadMFAAyaZv' に対する定義されていない参照です
libDerelictSDL2.a(sdl_71_698.o):(.rodata+0x4580): `_D8derelict4util6loader15SharedLibLoader6unloadMFZv' に対する定義されていない参照です
libDerelictSDL2.a(sdl_71_698.o):(.rodata+0x4588): `_D8derelict4util6loader15SharedLibLoader8isLoadedMFNdZb' に対する定義されていない参照です
libDerelictSDL2.a(sdl_71_698.o):(.rodata+0x4598): `_D8derelict4util6loader15SharedLibLoader10loadSymbolMFAyaZPv' に対する定義されていない参照です
libDerelictSDL2.a(sdl_71_698.o):(.rodata+0x45a0): `_D8derelict4util6loader15SharedLibLoader3libMFNdZS8derelict4util9sharedlib9SharedLib' に対する定義されていない参照です
libDerelictSDL2.a(sdl_71_698.o):(.rodata+0x45a8): `_D8derelict4util6loader15SharedLibLoader8bindFuncMFPPvAyabZv' に対する定義されていない参照です
collect2: error: ld returned 1 exit status
--- errorlevel 1
ライブラリの配置等は書かれてる通りにやったと思うのですが・・・
どういう原因が考えられますか? -
>>34
組み込みのタプルが欲しいってことでしょ
DIPがあったけど、どうなったんだろう
>>35
本当にそのページ通りにやってる? libDerelictUtil.aをコンパイラの引数に指定してないのでは
もしGNU/Linuxの利用者なら、さらに -L-ldl も必要
ところで、Derelict3はもうメンテナンスされてないのでDerelictOrgを使った方が良いかもしれない(dub必須だけど) https://github.com/DerelictOrg
DerelictOrgをラップしたゲーム製作用ライブラリもあって、用途によってはこちらを使うのが便利かも https://github.com/d-gamedev-team/gfm -
http://wiki.dlang.org/DIP32
これのワクワク感はんぱないんだけど、あんま進展はしてないっぽいね。 -
>>36
私には誤りが2つありました。
サイトの通りにやったつもりでしたが、私はlinuxユーザ
としての仕様を理解していなかったようです。
ご指摘の通り-L-ldlをつけていませんでした。
しかしそれだけではできませんでした。
最初はページの順番で最後にdlをリンクして
dmd test.d -LlibDerelictUtil.a -LlibDerelictSDL2.a -L-ldl
このように記述しましたが、これでは先ほどのようなエラーがまた出てしまい、
dmd test.d -LlibDerelictSDL2.a -LlibDerelictUtil.a -L-ldl
このように順番を変えたらうまくいきました。
しかしderelict3にしてもそうですが、当然とはいえD言語+SDLでは
日本語ドキュメントがかなり少ないですね。
貼って頂いたサイトのライブラリもとても興味がわきますが、
英語頑張らないとダメですかね・・。
にしてもやっと最初の一歩が踏み出せました!
有難う御座いました! -
なんで翻訳文口調?w
-
struct Hoge
{
Hoge _hoge;
}
構造体ってこんなこともできねーのか -
たかし、休みだからって昼間からお酒なんか飲んで
-
>>32
めちゃくちゃやな -
D言語人気あるなw
-
>>40にその説明で分かるか疑問だ
-
struct Hoge
{
Hoge* _hoge;
}
なら可能なのかな -
>>36さんが貼ってくれたgfmを使おうとしたんですが、
その中に書いてあったサンプルプロジェクトhttps://github.com/p0nce/aliasthis
をdubでビルドを試みたんですが、
Error executing command build: Root package aliasthis contains reference to invalid package gfm:math
って言われて、
あれ?dubって足りないパッケージ自動でダウンロードしてくれるんじゃなかったっけ?って
思いつつも、仕方ないからdub.jsonから"dependencies"の項目全部消してimportファイルを手動で配置して
実行したら、今度はsource/aliasthis/colors.d(11): Error: module hsv is in file 'gfm/image/hsv.d' which cannot be read
と怒られた。
gfmの最新リポジトリ内のimageにはhsv.dがないが、ソースにはインポートされている。
こうなったらもうこのプログラムの実行は無理かな。 -
>>48
バージョン1.1.4が古すぎて、dubリポジトリから消えたのが原因
(最新30バージョンしかダウンロードできない)
dependenciesに書いてるバージョンのgfmを持ってくればいいよ
git clone (gfmのgitレポジトリ); git checkout v1.1.4してdub add-localするなり、手動でコンパイルするなり -
wxDでポトペタで開発できる環境はまだ無かったり?
そういう環境があればあっさり普及しそうなんだが -
あっさり動かなくなるのが先
-
なるほど
-
QMLバインディングがあるから、QtCreatorとやらでGUIを作れるんじゃないか
試したことないから知らないけど -
ポトペタは実はあった
DFLとDWTのコードが書けていた
遠い遠い昔の話だ -
そもそもwxDが今や死んでるという…
お願いですからwxDかQtDかのどっちかでいいから生き返ってください
C++からのポーティングはやっぱ難しいのかな -
QtDは最初よかったけどなんか根が深そうなエラーが散発的に出てきて辛くなったな
開発者の人もくじけてしまったんだろうか -
DFLのポトペタは今もできる
-
ポトペタという単語、自分とは別の文化圏の香りがする……
-
QtD サポートのために traits 増やしたお というのを数年前に見て度肝を抜かれた
だがそれでも時既に遅しだったのかもしれない -
>>49
なるほど、確かに古いパッケージ見てみたら該当のソースがあった!
しかし今度はね。それだけじゃなくてね。std.loggerってのもないんだって・・w
Wikiでちょっと見た所、過去にあったimportファイルみたいなのだが、
今はstd.experimentalとやらに分類されてるようで、
それは標準添付ではなくて、リポジトリから持ってこないといけないみたい。
で、loggerというディレクトリに5つのソースファイルに分割されていた・・w
たった1年か2年前のソースをビルドするのがこんなにも大変とは、
D言語の破壊的成長力に、め・・目を見張るばかりだ! -
互換性維持しない方向で成長するのは別に構わんけど
過去のリポジトリ消される(ライブラリ含めて)のはめっちゃ困る罠 -
こういうことがあるからあんまり流行らないんだろうなぁと思う
-
うーん・・
dub buildで急にエラーが出て何もできなくなった。
ソースとかまるで関係なく、どんなプロジェクトでも同じ文言を吐き出す
ようになったのだが、、
dub build
Error executing command build: Failed to invoke the compiler dmd to determine the build platform: {
"compiler": "dmd",
"frontendVersion": 2066,
"compilerVendor": "Digital Mars D",
"platform": [
"linux",
"posix"
],
"architecture": [
"x86_64"
],
}
Error: Error writing file '/tmp/dub_platform_probe.o'
dub_platform_probe.d見ても原因がさっぱり分からない助けてくれ。 -
Dの破壊的変更はもっとマシになるべきだが対策することが出来る
だが半生ライブラリはダメだ 滅ぶべき
パッケージシステムは道を誤りし背教者どもの墓標 -
>>61
dubレポジトリは個人がボランティアで運営してるっぽいから仕方ない
あそこはGithubからミラーしてるだけだから、どうしても古いバージョンが入手できないということはないしね
2015年前半に、D言語の宣伝・普及のための団体を作るとかいう計画を立ててるらしいけど
それ以前にこういうボランティア任せの部分をちゃんとしたサービスとして運営できる組織を作って欲しいなぁ -
人を動かすにはお金が必要なのです…
-
永遠の17歳でいればずっと輝いていられる
そんなD言語 -
Swiftのポジジョンに収まっていれば安泰(?)だったかもなぁ
-
必要なのは D言語の入門・解説ではなく D言語とのつきあい方のガイドである
-
オオカミ言語
-
1番目に学ぶべきはCかJavaかC#
2番目に学ぶべきはCかJavaかC#のまだやってないの
3番目に学ぶべきはJavaScriptかPythonかRuby -
実際の状況を考えると、CとJavaとC#が選択肢に並ぶ場面ってそうそう無いよな
-
D言語はまだ英語無しで学べる言語じゃない
まあレファレンス読むよりソース読んだ方が手っ取り早いかもしれないけど
(でもソースがレファレンスの代わりになるってunittestのおかげだよね) -
お前らが「最近のD言語は安定しててつまらない」って言い始めたら本気出す
-
本当に安定しててつまらないよ、細々とした調整ばかり
今年はDIP69含めて大幅な変更に期待 -
RoRみたいなキラーフレームワークの登場が最優先だろ
変更ばっかじゃいつまでたっても出てこねえんだよお -
まさにRubyも仕様変更の多い言語なわけだし、あまり関係なさそう
キラーなんたらが出る以前に、それなりに人気が無いと始まらん -
RubyやPythonと違ってネイティブ吐けるところがメリットだけど
Pythonで間に合ってます -
PythonとDの両方が、同時に選択肢に入ってくる状況なんてあまり無さそうだがな
-
バージョンが変わって動かないなら自分で直せばいいじゃない
-
他の言語に比べて、D言語でしかできない or ものすごくやりやすい ことってなによ?
-
自分がそうだけど継ぎはぎだらけのC++の汚さに絶望した人がやってるんだと思う
スマートなコーディングができるのにアセンブリコードが出力されるから
Javaやスクリプト系のように速度で妥協することもない -
C++で同じことできるって言われても意味ないんだよねえ。
単なる見せかけの機能だけに釣られてる奴はC++やってた方がいい。 -
ちょっと理解できてないのかな
C++よりスマートなコーディングができることに魅力を感じてるって話なんだけど -
とりあえずバカはレスしない方がいいと思うんだ
-
>>88はお前に同意してるだろ
-
>ライブラリが充実して実用的に使えるバージョンがない
? -
テンプレート絡みだけでかなり差別化できてるんじゃね
あと今更イテレータとか触りたくないよね -
C++の偉い人もタイムマシン手に入れたら何したいって聞かれて
C++のテンプレート周りの構文をD言語風にしたいって言ってたな -
D言語は気持ちよくプログラミングできるんだ
俺にとってのD使う理由はそれで十分 -
C++は気持ち悪いからな
関数ポインタとデリゲードが別物であった時点で俺の中では終わった。 -
AOっても誰も教えてくれませんよ?
-
>DのデリゲートはCの関数ポインタに変換できるのか?
Dにも普通の関数ポインタがあるので、そちらを使う
まあデリゲートでも(cast(void function())dg.funcptr)とか出来る、もちろんキャプチャした変数は使えなくなるけど
↑今すぐ読める無料コミック大量配信中!↑