問題タブ [dmd]
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.
module - D 開発プロセス
github からクローンされ、個別にビルドされたパッケージを使用する D プログラムの推奨される開発プロセスは何ですか?
通常、make、autotools、cmake などを使用して C/C++ プロジェクトをビルドする方法に関連しています。
他のほとんどのビルド仕様には、インストール ターゲットがあります。ビルドにインストール ターゲットが必要ですか、それとも、ビルド時に配置された場所から直接ライブラリをリンクし、そのインクルードを追加登録してD_INCLUDE_PATH
から、DFLAGS=-I<D_INCLUDE_PATH>
.
generics - 文字列 (配列) での回文アルゴリズムのテンプレート競合
Andrei Alexandrescu による Dの優れた 3 つの可能性が低い機能を参照した後、次のように、そこで与えられた回文アルゴリズムをテストしました。
配列バージョンは文字列に対して正常に機能しますが、範囲バージョンを同じコンパイル ユニットに追加すると、DMD (2.062) が文句を言います:
私の推測では、配列のケースを含まないように範囲の使用を制限することです。それ、どうやったら出来るの?
アレイバージョンを削除することもテストしましたが、エラーが発生しました
奇妙だと思う配列では、範囲バージョンが機能しないようです。
何をすべきか?
macos - コンパイルとリンクの分離-inD
OK、私は現在Dで遊んでいるので(初めて)、おそらく私はいくつかの超基本的な質問をするでしょう...そしてここに私は... :-)
私がコンパイルすると-それとリンクするdmd
とうまくコンパイルされます:
-v
(verbose)フラグを設定すると、プロセスは基本的にコンパイルステップ(-c
フラグ付き)とリンク(with gcc
)であることに気付きました。
ただし、次の方法でコンパイルしようとすると、エラーが発生し続けます。
どうしたの?何か案は?
d - DMD からアセンブリを行番号付きで表示
ソース コードの特定の行のアセンブリ コードを確認するにはどうすればよいですか?
ソースを DMD および-g
and -gc
(Windows 上) でコンパイルして、 andobjconv
のアセンブリを出力していましたが、行番号などに関するヒントはないようです。組み立てはこのように.obj
.exe
Code::Blocks
そのため、どこかに行に関する何らかの情報があるはずです...
d - Dの純粋関数に対する非変異呼び出しステートメントの検出
Dには、コンパイラのスイートにさらに別の優れた機能、つまり純粋関数への副作用のない呼び出しを禁止する機能を追加する可能性があると思います。
例えば
次のようにエラーが発生するはずです
現在DMDでエラーが発生している
このような機能は、プログラマーがインプレース(変異)セマンティクスを期待しているときに、誤って非変異アルゴリズムを呼び出すことを防ぎます。これにより、関数にGCCなどの属性を明示的にタグ付けする必要がなくなり__attribute((warn_unused_result))
ます__attribute((const))
。
DMDのtodoリストにそのような機能はありますか?
linker - Linux の dmd と Derelict に関するリンカーの問題: Ld が .a ファイルを見つけられない
Derelict2 バインディングを使用して D でテスト プログラムを作成しようとしています。これが私のコードです:
derelict の .di ファイルはすべて dmd のデフォルトのインポート ディレクトリにあるため、次のコマンドでプログラムをコンパイルおよびリンクする必要があるという印象を受けました。
ただし、次のエラーが発生します。
私は正確に何を間違っていますか?
少し話題から外れますが、懸念事項もあります。
-ldl フラグは何をしますか? リンクを成功させるために必要であることは知っていますが、方法がわかりませんし、ld マニュアルにもありません。
multithreading - Dすべてを__gsharedとマークする方法は?
すべてのオブジェクト__gshared
をDMDでマークする方法はありますか?私はほとんどすべてがスレッド間で共有される必要があるゲームエンジンに取り組んでおり、スパム__gshared
やshared
どこでもそれをカットしません。
これを行わないようにしたいすべての人のために:クリティカルセクションは最小限に抑えられ、列挙型がLoadedに設定されているかどうかをチェックするようになります(もちろんmutexed)。したがって、並行性は私に何も得られません。
d - この関数で末尾呼び出しの最適化を実行する D コンパイラはどれですか?
私の知る限り、このコードはテールコール最適化の対象となるはずですが、DMD が実行しているかどうかはわかりません。末尾呼び出しの最適化をサポートしている D コンパイラはどれですか?また、この関数でそれを実行しますか?
templates - D 型の推論は、テンプレート引数の順序に依存します
へのテンプレート引数maybe
が、エイリアスが最初になるように配置されている場合、コンパイラは引数の型を正しく推測できます。ただし、T が最初に来るようにテンプレート引数が切り替えられると、それらを推論できず、コンパイルされません。どうしてこれなの?
arduino - Arduino GSM/GPRS シールドを使用して、Web サービスから arduino にデータを送信し、ドット マトリックス ディスプレイに表示します。
GPRSシールドv2.0とArduino Uno R3を使って作成したWebサービス経由でドットマトリックスディスプレイ(DMD)を制御する方法をお聞きしたいのですが、、、
例: ドメイン (mydomain.com/set?string = hello word) に関する情報を入力すると、DMD に表示されます
ツイッターからのデータもあればそれは可能ですか?? そのため、mydomain.com と twitter.com の 2 つのソースからデータを受信できます。
私は持っている:
- Seeedstudio.com から購入した GPRS シールド v2.0
- Arduino Uno R3 を使う
- freetronicsから購入したDMD 16X32