D言語 Part34©2ch.net
レス数が950を超えています。1000を超えると書き込みができなくなります。
D言語でCGI作る場合POSTデータってどうやったら取れますか? CGIならサーバーの設定次第で勝手にコマンドライン引数なり標準入力なりに入ってくるはずだろ
D側で考えることは特にない むしろPOSTは普通に取れてた
取れないのはGETの方だった
まぁ結局getenv("QUERY_STRING")で取れたけど
DってCみたいにポイントをそのまま配列としては使えないんですね >DってCみたいにポイントをそのまま配列としては使えないんですね
試してみたら普通に配列のように使えたけどどゆこと?
import std.stdio : writeln;
import core.stdc.stdio : putchar;
char[] text = "Hello World".dup;
char* pHello = text.ptr;
char* pWorld = &text[6];
// 添え字アクセス
for ( int i = 0; i < 5; i++ ) putchar( pHello[i] );
// 長さ付与
writeln( pWorld[0..5] );
出力結果:
HelloWorld ようやくDMD2.081.0のリリース版来たやんけ C言語みたいな化石言語使い続けないといけないの早くなんとかしてくれ 1年以上ほったらかしだったがフォーク版なら特に問題なかった https://github.com/JesseKPhillips/dfl
ここが最新メンテナだと思ってたが更新停止を明言されちまったな
DWT が標準GUIとして継続してくれればいいんだが 別にD言語に限った話でもないけど
DelphiやQt DesignerやXcodeのリソースファイルを読み込む部分だけ書けば
どんなGUIライブラリでもポトペタモドキはできると思うんだ
実例は見たことない 今日本で最もアツいD言語コミュニティって何処なん?
15年前はここだったけど 自分もコミケでD同人買って読むまで知らなかったけどDUBっていうD言語のパッケージマネージャあるんだよな
http://code.dlang.org/ vive.d は希望の星やで
DUB もそこが作ってるし ごく最近だよ
gccの公式リポジトリにgdc一式が入った 入るのはだいぶ前に決まってたけど実際に入ったの?
だとしたらめでたい gcjが外れたからgc付き言語が無くなってチャンスではあったのだけれども
goが先に入っちゃって時節を逃した感はどうしても ついに入ったのか
しかしGDCはバージョンアップが遅れに遅れてほとんど相手にされないレベルだったけどどうなったのかしら 風評被害甚だしい
【接客】クレーマーの餌食になる人は「この言葉」に注意 モンスタークレーマーだけでなく「ふつうのお客様」をも怒らせる“D言語”とは
https://rosie.5ch.net/test/read.cgi/editorialplus/1539062055/ でもその「D言語」はマナー屋の造語なんですよ
ですからこのスレとは関係ないんです。だってここのD言語はうぉるたん作ですもの CPUとメモリをたっぷり使うプログラムを書いたんですけど、実行中、下記のエラーが発生してしまうことがあります。
core.exception.OutOfMemoryError@src\core\exception.d(693): Memory allocation failed
タスクマネージャを見ながら実行してみると、多い時でメモリを1700MBぐらい使っていて、上記のエラーが出たときは1100MB程度でした。
PCのメモリは8GB積んでいて、プログラム実行中も2〜3GBぐらいは空いていました。
未使用のメモリがまだ残っているのにアロケーションに失敗するのはどうしてなんでしょうか?
そして、何か回避方法はありますか? 大きな領域を一度に確保しようとして
空き容量には余裕があるけどその領域を確保できる隙間がないから失敗したとか? たぶん 32bit やろ 64 bit でいいならそっちにしたほうが無難
GC も肝心なときにコケる印象
まさか無いとは思うけど仮想メモリ無効にしたりしてないよね D言語のGCってコンパクションやってないんだっけ? >>934
なるほど、そういう可能性もあるんですね。
>>935
32bitのdmdを使っていました。
4GBより大きいメモリを積んでる場合、32bitだと使えない場合があるということですね。
64bitを試してみます。 >>929のDLang Tourっての見たらVibe.dの事も普通に載ってるのな
興味はあったけど今まで拾い読みする程度の情報くらいしか知らなかったけど
これを機にやってみようかな >>937
32bitプロセスならプロセスが使える仮想メモリの上限は2GBだからね
これはOSの制限なので、しょうがない コンパイラを変えるんじゃなくてビルドモードを変えるんやで ( -m64 )
デフォルトの GC はゴミだが 64bit ならまぁまぁ使えると言ってるんやで インストール版でインストールしたdmd2.083で適当なコードをビルドすると"Access Violation"とだけエラーが出て、
ビルドが完了しないんですが、原因は何なんでしょうか?
上記のエラーはDebugモードの時のみで、Releaseモードの時は正常にビルドできます。
またこのコードはdmd2.071ではDebug、Releaseともに正常にビルドできました。 >>944
import std.stdio;
void main()
{
writeln("Hello World!");
}
これをビルドすると例のエラーになります。
>>945
win10です。
IDEはVS2013を使いました。 >>947
厳しいですね。
https://qiita.com/sfujita/items/55dfd9203dffe05598c6
一番下のsc.iniで上書きして、hello.dとBuild.batをコピペして、
Build.batを実行したら、正常に動作しました。
VSの方で何か問題があるのかもしれないです。 去年くらいから VS のインストール情報を検索してリンカやSDKを自動選択する機能がついた
VS2013 は古すぎてマズイ気がする VS2017のインストールとdmd2.083インストーラ版のインストールを行い、Hello World!をビルドしてみましたが、
hoge.pdb: cannot add symbols to module, probably msobj140.dll missing
というエラーが出ました。
$(VCINSTALLDIR)binと$(VSINSTALLDIR)Common7\IDEをエクスプローラで確認してみましたが、
どちらともmsobj140.dllはありました。
なぜエラーが出るのか全く分かりません。 私の環境では、Program Files (x86)\Microsoft Visual Studio 14.0にはありましたが、
Program Files\Microsoft Visual Studio 14.0にはありませんでした(全部で64KB程度しかない)。
sc.iniはProgram Files (x86)の方を参照するようになっていますが、32bit版のVSじゃ使えないんでしょうか? >>948のサイトの手順をやり直したら解決しました。
VSのインストール時に、VisualC++に関するオプションをいじった(5GBぐらい大きくなった)のが影響したのかなぁ。 つーか>>948の記事が古い
2.079以降は64bit版ビルドするのにVC++もWindowsSDKも不要になってる llvm のツールチェーンが使えるようになったんだっけ
でも本格的にやるにはデバッガがあったほうがいい 12月1日のQita Advent Calendarが何かしらの参考になるかもしれないね
まだ内容は当然わからないけど 無事1日が終わりました
本当にありがとうございました Linuxでvibe.dやるならコンパイラどれ使ったらいい? 2.085 で Precise GC の試験実装が始まったのにお前らときたら
>>958
公式でいいんじゃね
ldc の追随も凄まじいけど std.conv.toから投げられた例外をThrowableでcatchしてtoStringとwritelnでエラーメッセージを書き出すと、
関数呼び出しの経路とかソース上の行番号が表示されますよね。
それが、いろいろ改修してるうちに途中で途切れたようなエラーメッセージしかでなくなってしまいました。
原因わかる方いますか? ascii以外の字が混ざってないか
multibyteの不正な文字(1byte目だけあって2byte目が現れずに次のascii文字が並ぶとか) >>961
main関数の中でto!uint("a")とやってみましたが、同じように途切れたエラーメッセージになりました。
std.conv.ConvException@***\src\phobos\std\conv.d(2267): Unexpected 'a' when converting from type string to type uint
----------------
0x00007FF77B85E400 in std.string.representation!(immutable(char)).representation at ***\src\phobos\std\conv.d(2271)
0x00000207C32A3000 スタックトレースは結構雑で何年もバグが放置されてる感ありあり
そのへんを気にする人はデバッガを使うから
OSやコンパイラ実装でも違う処理してるからそのへん書かないとだめよ
Windows は新しめのバージョンで改善があったはずだけど Win + 64bit (MSVC) と思っていろいろやってみたけど再現しない
llvm 実装は動かしたことないからわからんちん
>Windows は新しめのバージョンで改善があったはず
これは関係なかったぽい windows は git bash を cmd の代わりに使ってる
快適すぎる >>963-964
Windows10、dmd2.083.0です。
VSにVisualDを入れて使ってます。 今年はロンドンでカンファレンスやるみたいね
5月8日〜5月10日までカンファレンス、11日にハッカソン
https://dconf.org/2019/index.html 2.086 では
import std;
一発で Phobos 全部入りができるらしいぞ gcc9.1リリースされgdcが含まれるようになったね。 >>971
今までモジュール処理がクソだったから何年もかけてバグ潰してきたんやで char[]をstd.algorithm.sorting.sortでソートしようするとコンパイルエラーになるんですけど、
辞書順にソートしたい場合、どうやればいいですか? 1文字の文字列の配列という扱いをしないといけないのかー なるほどその手があったか
全く使わないから存在そのものを忘れてた(一応 wchar までは試した 32bit 対応すらマトモにできてるとは言い難いのに C
C++
D
Go
それぞれのメリットデメリットを教えてください 俺は案外gccに入ったからDはそのうち人気出るんじゃないのかなと思ってる。使わないけど。他の言語より明かに素直でとっつきやすいと思うから。 知らんけど/メリット/デメリット
C/小さい・速い・枯れている・ライブラリ豊富/古い・手間掛かる
C++/betterthanC/カオス・遅い
D/小さい・速い・素直・ガベコレ/利用者少ない?
Go/ガベコレ/でかい・癖強い レス数が950を超えています。1000を超えると書き込みができなくなります。