問題タブ [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.

0 投票する
3 に答える
742 参照

d - Fedora 16 での D プログラミング

最近、Fedora 16 をインストールしました (これは素晴らしいです)。主な理由は、LDC2 を試してみたかったからですが、Gnome Shell が Ubuntu 11.10 よりも Fedora でよりスムーズに動作するためです (少なくとも私のハードウェアでは)。

LDC2 はうまく機能しますが、LLVM .ll/.bc コードを出力することで、Windows/Mac/Android でアプリケーションをコンパイルして実行できるかどうか疑問に思っています。LLVM を使用している Windows マシンで、.ll/.bc ファイルを ASM .s にコンパイルできます。しかし、最初に ASM をコンパイルしようとすると、「'main' functions not found.」というエラーが表示されます。ASM を調べると、_Dmain 関数が表示されます。私は ASM をコンパイルした経験がないので、少し迷っています。

ここで DRuntime が機能することは理解していますが、LDC2 の DRuntime プラットフォーム サポートの状態に関する最新情報はほとんどありません。だから私は私のオプションがここにあるのだろうかと思っています。この時点で、LDC2 は Windows 用のコードをコンパイルできますか? 現時点でサポートされている他のプラットフォーム/アーキテクチャのクロスコンパイルはありますか?

GDCはどうですか?GDC を試してみたいのですが、Fedora Software Center で見つけることができません。また、Linux に少し慣れていないため、ソースからビルドするのに苦労しています。


D (バージョン 2) は私のお気に入りの言語 (2 番目に C#) であり、ハードウェアやプラットフォームのサポートを気にせずに D でゲーム/アプリを作成できる日を楽しみにしています。私はこの言語を応援しています。将来、オープン ソース コミュニティが D を強く受け入れることを願っています。これは、私が今まで見た中で、パワー、パフォーマンス、生産性の最高のバランスです。

0 投票する
2 に答える
348 参照

d - D の拡張関数

少し前に「The D Programming Language」を購入しました。素晴らしい本、非常に教育的です。ただし、本にリストされている言語機能をコンパイルしようとすると問題が発生します:拡張機能。

この本の中で、Andrei は次のように任意の function(a, b) を呼び出すことができると書いています。だから私はこれを行うことができるはずです:

正しい?この機能はまだ実装されていませんか、それとも何か不足していますか? std.range をインポートすると配列にメソッドが追加されるため、あるレベルで実装されているように見えます。

0 投票する
4 に答える
1801 参照

c - D プログラミング言語による ncurses api

ニューラルネットワークを使ってAIを独学しようとしています。簡単に言うと、ncurses を使用してプログラムで何が起こっているかを表示する単純なグラフィックを作成したかったのです。私が使用しているチュートリアルはこちらにあります

D は C と互換性があり、理論的には C の関数を比較的簡単に呼び出すことができるという印象を受けました。

そうではないと思います。私は比較的初心者のプログラマーなので、単純化した説明でさえ私の頭の上に少しあります。私はこれをここで見つけました。

D は、ターゲット システムの C コンパイラに快適に適合するように設計されています。D は、ターゲット環境の C ランタイム ライブラリに依存することで、独自の VM を持たないことを補っています。D への移植や、利用可能な膨大な数の C API 用の D ラッパーの作成を試みることは無意味です。それらを直接呼び出す方がはるかに簡単です。

これは、C コンパイラのデータ型、レイアウト、および関数呼び出し/戻りシーケンスを一致させることによって行われます。

それは素晴らしいと思う。私の頭の上に少し。私は簡単なCプログラムをテストして動作させました:

SOに関する別の質問から恥知らずにコピーして貼り付けました。少なくとも私は宿題をしました。

簡単なDプログラムから基本的に同じことを試しました。このエラーが発生しました:

私は本当にばかげたことをしようとしていることを絶対に確信しています。

D プログラムで ncurses を使用する簡単な方法はありますか?

睡眠ゼロ、カフェインゼロで頑張ってますのでお手柔らかにお願いします!ウェブサイトへのリンクでも大歓迎です!

私が持っているべきものをすべて含めていなかったので、AMA.

そして、私の知性を侮辱してください。

0 投票する
2 に答える
2428 参照

operator-overloading - Dでのエレガントな演算子のオーバーロード

しばらくの間、Dの演算子のオーバーロードの方向について混乱していましたが、今ではそれが美しいシステムであることに気付きました...コアタイプ(int、floatなど)でのみ機能する場合。次のコードを検討してください。

これは、1つのメソッドですべての+ =、-=、*=などの演算子をオーバーロードするので機能する場合は美しいコードになります。ただし、ご覧のとおり、そのままでは機能しません。テンプレートを使用してソリューションを作成しました(Dが大好きです):

これは問題ありません。すべてを「社内」に保管したいのは私だけです。テンプレートを使用せずにこれを機能させる方法はありますか?パフォーマンスの低下はなく、これを行う必要がある状況でモジュールをインポートするのは難しくないので、私はここで気難しいことを知っています。内蔵されているのかと思っていて、何かを見落としています。

0 投票する
3 に答える
472 参照

winapi - エレガントなクラスメンバーウィンドウ関数を作成する方法はありますか?

Win32 API の Window-Procedure は、クラス オブジェクト ( this) パラメータを受け取ることができないため、静的 \ グローバル関数でなければなりません。もちろん、hWnd->object ディクショナリなどの回避策を使用できます。

Dには、オブジェクトごとに小さなメンバー関数のコピーを作成する(オブジェクトの実際のハンドラーを呼び出す)、または割り当てることができる無名関数WNDCLASS.lpfnWndProc(無名関数があることは知っていますが、使用できません)など、エレガントに解決する方法があるのだろうかそれらのextern(Windows)プロパティ)?

私はこのようなことをすることができます:



(registration\creation\msg-loopは省略…)

Events() が起動していないようです...何か不足していますか?

0 投票する
1 に答える
224 参照

benchmarking - D performance: union vs @property

I'm in the process of porting, enhancing, and D-atizing our reign SDK from C# to D. Currently working on the Vector2 math module.

Will there be any performance difference between the two structs below? My benchmarks show identical performance, but I'd like to gain a bit of expert insight :)

Obviously I'd like to use the unions for syntactical simplicity. But is there any unforeseen pitfalls with using them? I'm unfamiliar with their low-level details.

On a side note, I'm adding in vector property syntax similar to HLSL/GLSL, e.g., vec1.yxz += vec2.xyz; There's... no.. possible way to do that with unions instead of @property is there?

0 投票する
1 に答える
460 参照

d - D2 を使用するための G-WAN の構成に関する問題

bitbucket リポジトリから gdc をダウンロード、コンパイル、インストールしました。次に、サイト
から G-WAN をダウンロード、抽出、実行しました。 gdc を使用して D2 コードをコンパイルし、問題なく動作するようになりました。また、G-WAN を使用して C スクリプトをブラウザーにロードできます。 D2 スクリプトをソース フォルダーに追加しようとすると、G-WAN から提供できません。


sudo ./gwan

  • 「hello.d」: D2 (*.d) スクリプトを使用するには、「gdc」をインストールします (sudo apt-get install gdc)`

プログラムは引き続き実行され、他のページや C スクリプトで動作します。

./gwan

  • hello.d のリンク: 未定義のシンボル: __data_start

G-WAN が起動しない

sudo apt-get install gdcそれは非常に古い D1 バージョンなので、し たくありません。


私は自分の linux-foo にあまり詳しくないので、助けを求めています。これは私が修正できるものではない可能性があり、サーバーの開発者に連絡する必要があります。

余談ですが、dmdを使用して新しいubuntu vmで同じことを試してみたalias gdc="dmd"ところ、まったく同じ結果が得られたため、G-WANは古いバージョンのgdcとD1専用に構成されているという考えに傾いています。


これら 2 つのアプリケーションが連携するようにシステムを構成するにはどうすればよいですか?

0 投票する
1 に答える
273 参照

iphone - Quartz を使用して CALayer のコンテンツを描画するとハード クラッシュする

iOS がアプリケーションを過酷な方法でクラッシュさせる理由を突き止めようとしています (クラッシュ ログがなく、スピナーがしばらく表示された状態で黒い画面が表示されてすぐにシャットダウンします)。Quartz を使用して CALayer のコンテンツをレンダリングすると発生します。メモリの問題が疑われましたが (デバイスでのテスト時にのみ発生します)、メモリ ログと計測器の割り当てログは問題ないようです。致命的な機能を通過させてください:

ログは次のとおりです。

アプリケーションがランダムな場所でクラッシュします。関数の en に到達するときもあれば、ランダムなステップに到達するときもあります。

どの方向に解決策を探すべきですか? GDC が問題を引き起こしている可能性はありますか? それとも、コンテキスト サイズまたは一部のコア アニメーションの基になる参照でしょうか?

0 投票する
1 に答える
190 参照

ios - Instruments からのメモリ割り当て結果の読み取り

iOS アプリのメモリ割り当てでプロファイラーを実行していますが、現在 8 MB のメモリが作成されており、まだアプリに存在していることを検出しています。明らかに何か問題があります。そこでドリルダウンして、お見せできる画像を以下に示します。

ここに画像の説明を入力

なぜこれが原因なのか分かりますか?これは自動解放されたオブジェクトのようですが、メモリに住んでいるのではなく、解放するべきではありませんか?

関数parseTagsInCommentを呼び出す方法は次のとおりです。

0 投票する
1 に答える
190 参照

iphone - 複数の非同期呼び出しをキューに入れる

1 つの呼び出しに結合するいくつかの非同期呼び出しがあります。

上記の呼び出しを使用する結合メソッド:

補完ブロックには、 という 3 つの配列を持つオブジェクトが含まれていますarray[A-C]。子呼び出しのいずれかが失敗した場合、オブジェクト内のそれぞれの配列は単純に nil に設定されます。

これらの 3 つのブロックをネストして、失敗または前のブロックの完了時に次のブロックを呼び出す代わりに (これは非常に面倒です)、GCD を使用して次のようなことをしたいと考えています。

  1. すべての通話をキューに追加
  2. すべての呼び出しが終了するまで待ちます (成功ブロックまたは失敗ブロックのいずれかが呼び出されました)。
  3. loadAll完了ブロックからのすべての結果を結合し、メソッドの完了ブロックを呼び出します。

同期呼び出しを使用して GCD でこれが可能であることはわかっていますが、3 つの非同期の「子呼び出し」でこれを実現する方法がわかりません。