問題タブ [gdc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
d - DMD と GDC の memcmp AND std.parallelism: parallel
手動で管理されたメモリへのポインタを持つ構造体を実装しています。DMD ではすべて問題なく動作しますが、GDC でテストすると、opEquals
オペレーターの過負荷で失敗します。memcmpに絞り込みました。ではopEquals
、指定されたメモリを memcmp と比較します。memcmp は、DMD では期待どおりに動作しますが、GDC では失敗します。
戻って、組み込み型opEquals
を使用して、手動で管理されたメモリに格納されている各値を一度に 1 つずつ比較してメソッドを作成すると==
、両方のコンパイラで機能します。私は memcmp ルートを好みます。なぜなら、書くのに時間がかからず、より高速であるように思われるからです (インダイレクションや反復が少ないなど)。
なんで?これはバグですか?
(C での私の経験は 10 年前で、それ以来 python/java を使用していました。C でこの種の問題は一度もありませんでしたが、あまり使用していませんでした。)
編集:
比較しているメモリは、「実際の」値の 2 次元配列を表しています。これを 1 つのチャンクに割り当てたいだけだったので、ギザギザの配列を扱う必要はありませんでした。タイトなループで構造体を多用します。基本的に、頻繁に使用される値 (トレース、行列式) を (最終的に) キャッシュし、コピーを必要としない代替の読み取り専用ビューを転置に提供する独自のマトリックス構造体を展開しています。約 10x10 から約 1000x1000 の行列を扱う予定です (常に正方形であるとは限りません)。
また、a を介して GC でメモリを割り当てるバージョンを実装しubyte[]
、2 つの実装をプロファイリングする予定です。
編集2:
わかりました、私はいくつかのことを試しました。parallel
ループもいくつかあり、それが問題になる可能性があるという予感がしました。そこで、いくつかのバージョン ステートメントを追加して、並列バージョンと非並列バージョンを作成しました。GDC で動作させるには、非並列バージョンを使用してから に変更real
する必要がありましたdouble
。
GDC でコンパイルされたすべてのケース。しかし、単体テストは常に同じ回線で一貫して失敗したわけではなく、またはopEquals
を使用したときの呼び出しで一貫して失敗しました。DMD では、すべてのケースがコンパイルされ、問題なく実行されました。real
parallel
ありがとう、
d - gdc を使用して D プログラムをコンパイルするときに「認識されないオプション '-plugin`」を修正するには?
のGDCをダウンロードしLinux
、簡単なD
プログラムを作成してみます。" " を実行するとgdc hello.d -o hello
、次のように出力されます。
次に、「gdc -v hello.d -o hello
」コマンドを使用して、根本原因を見つけようとします。以下が表示されます。
" " オプションcollect2
を認識していないようです。-plugin
私はそれを試みgoogle
ますが、価値のある情報を見つけることができません。誰か提案をしてもらえますか?よろしくお願いします!
d - D大文字と小文字を区別しない連想配列?
出来ますか?私はvibe.dでREST Apiを構築し、トークン認証を実装しています。ユーザーが Authorization ヘッダー パラメータをどの大文字で送信するかわからないため、大文字と小文字を区別しない方法でクエリを実行する必要があります。例えば:
出来ますか..?
ありがとう
assembly - GDC を使用して D プログラムをコンパイルできない
GDC を使用して D プログラムをコンパイルしようとしています。私は現在 Windows XP SP3 を使用しており、http: //gdcproject.org/downloads (一番下のリンク) からダウンロードした「Windows X86 32bit (i686-w64-mingw32)」パッケージを使用しています。したがって、バイナリを解凍して gdc を呼び出して、次のような単純なプログラムをコンパイルすると:
たくさんのアセンブラー エラーが発生します。
へのリンクに「サポートされていないアルファ ビルド」と書かれていることは知っていますが、このメッセージの意味がよくわかりません (おそらく教えていただけますか)。それにもかかわらず、アーカイブから以前のバージョンをダウンロードしようとしましたが、すべて同様のエラーで失敗しました。
これを解決する方法はありますか?それとも、ここで重要な点が欠けていますか。
編集: コンパイラによって生成されたアセンブリ コードは次のとおりです: http://pastebin.com/w5q0rNNd
d - GDC の std lib が DMD の phobos と同じではない理由
たとえば、GDC 5.2.0 (2016-02-05T11:17:49.3234388) を使用して std.meta をインポートするプログラムをコンパイルできません。そのファイルが見つからないためです。
GDC と DMD の間でインクルード フォルダーを比較していたところ、バージョンの大きな不一致が見つかりました。
これにより、GDC を安心して使用できなくなります。
GDC のインクルードが同じ Phobos ライブラリではない理由を知っている人はいますか?
d - D - GDC (Dlang) 用のより使いやすい asm シンタックス シュガー
GDC の拡張 asm 構文を使用して、D と asm コードを作成するプロセスを簡単にするアイデアがありました。\n\t マーカーをあちこちに挿入する必要をなくしたいと思います。たとえば、個別の文字列を用意し、D コンパイラでそれらを連結するようにします。しかし、私は他の提案を受け入れます。残念ながら、D 文字列の連結はコンパイル時に GDC で機能せず、CTFE が必要なため、私の試みは失敗しました。ご想像のとおり、この砂糖片のコストがゼロであることが要件です。
mixinで何かをする必要があると思います。どこに行くべきか、CTFE 内にとどまる方法についてのヒントはありますか?
linux - メソッド呼び出しの順序が混同されている
私は d を学ぼうとしているので、hello world から始めて、少し拡張しようとしました。
だから私は私の出力が次のようになることを期待しています
しかし、代わりに私はこれを得る
スリープ機能もスキップされます。何が起こっている?