問題タブ [gnat]

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 投票する
1 に答える
470 参照

json - OS/X で gnat を使用して ada ライブラリ gnatcoll-json.adb をコンパイルする

からソースを入手したAdacoreので、動作するはずです。Adacore にも「問題」を残しましたが、解決に時間がかかる場合があります。私は何か間違ったことをしているかもしれないと思うのですが、何か提案はありますか?

問題は次のとおりです。

ファイル内の欠落している本文が最初の問題のようです。gnatcoll.adsたとえば、Prependgnatcoll.adbの本文がそのファイルにないことは確かに真実ですが、いずれにせよ、本文はファイルではなく、ファイルにあるはずだと思いましgnatcoll.adsた。

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

ada - Ada (GNAT) では、プラグマ Overflow_Mod / 無限精度中間計算を使用

(小さな) 分子と分母を、ほとんどの小さな数で割り切れ、2**63 のすぐ下になるように選択された、大きな定数分母の観点から分子に変換しようとしています。オーバーフローする可能性があるため、プラグマ Overflow_Mode (Eliminated) を使用します (GNAT 4.8 マニュアルhttp://gcc.gnu.org/onlinedocs/gcc-4.8.0/gnat_ugn_unw/Specifying-the-Desired-Mode. html#目的のモードの指定)。

残念ながら、"~/bin/gcc-4.8.0/bin/gnatmake -gnat12 -gnata -Wall example.adb" (および -gnato3、ただし、プラグマには冗長である必要があります)、コンパイラは次のように述べています。

ハンプ。Overflow_Mode の機能を理解していませんか? これを再配置して機能させる簡単な方法はありますか?(プラン A、より高速である場合もそうでない場合もあるより通常の分数クラス、またはプラン B に行くことができます。浮動小数点数を使用して 1/3 が丸められることを受け入れるだけですが、これを機能させたいと思います。適切な無限長ここでは整数のサポートはやり過ぎです。)

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

sockets - gnat.sockets.Receive_Socket でソケットの読み取り時にタイムアウトを検出する方法は?

Gnat Socketsパッケージを使用しています。次のように作成および初期化されたサーバー側ソケットがあります。

...

...

すべて順調ですが、使用するときは:

ソケットがタイムアウトしたかどうかを検出する方法、またはソケットが戻ったときにデータを読み取る方法がわかりません。メソッドを使用する必要がありますかCheck_Selector(この使用には少し重いようです。その場合、これは呼び出しで設定されたタイムアウトと相互作用しSet_Socket_Optionます)?

ありがとう、

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

ada - Ada 2012 マルチウェイ ツリー、ルート ノードの作成

マルチウェイ ツリーの制限付きバージョンを使用しています。要素タイプを作成し、タイプのツリーをインスタンス化できますが、ルートを作成するにはどうすればよいですか? Insert_Child にはいくつかの形式があります。Parent または Before 引数に No_Element を使用しているため、Insert_Child を使用しようとするとすべて失敗します。

彼らが私に指摘できるマルチウェイツリーパッケージの使用例はありますか?

問題があれば、無料の Gnat バージョンの Ada を使用しています。

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

debugging - GNAT GPS デバッガー - デバッガーを初期化できませんでした

GNAT の GPS IDE でプロジェクトをデバッグしようとしています。Debug->Initialize->"program name" を選択するたびに、GPS の GUI がデバッグ GUI の GUI に切り替わり、"could not initialize the debugger" というエラーが表示されます。

私が見つけた2つの可能な解決策は、gdb.exeが古くなっている可能性があり、GPSの外部で実行することを提案していることです。これは正常に動作します. 他に考えられる解決策は、プロジェクトのビルド時に -g タグが適用されていることを確認することです。これは、gnatlink と gcc のデバッグに必要なためです。また、明示的に削除しない限り、デフォルトで -g タグが新しいプロジェクトに適用されることも述べています。持っているとは思えませんが、それがまだ含まれていることを確認するためにどこをチェックすればよいかわかりません。

もう 1 つの奇妙な点は、コードのビルドとデバッグの方法を実行する GPS に付属のチュートリアルが、デバッグを初期化すると問題なく動作することです。私が参照しているチュートリアルには、[ヘルプ] -> [GPS] -> [GNAT Programming Studio チュートリアル] からアクセスできます。GNAT/2012/share/examples/gps/tutorial ディレクトリにあるプログラム「sdc」を参照します。

エラーはあまり役に立たないので、私が間違っていることについてのアイデアはありますか?

ありがとう!

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

autocomplete - GNAT GPS での GtkAda のオートコンプリート

GNAT GPS (Gnat Programming Studio) を使用して Ada と GtkAda の開発を始めたばかりで、イライラすることがあります。 GtkAda ライブラリ用ではありません。GtkAda ドキュメントのすべての API 呼び出しを毎回チェックしなければならないので、これは物事を非常に遅く退屈なものにします。

私の質問は簡単です: GPS で GtkAda のオートコンプリートを有効にする方法はありますか?

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

ada - 前提条件は GNAT では機能しませんか?

私はまだAdaに慣れていないので、前提条件の使用を誤解していると思います.GNAT RMを見ると、実行時にチェックが実行されていないようです。また、ここでの前提条件の GNAT RM は、前提条件が満たされない場合にスローされる例外を指定しません。

ここに私が試しているコードがあります:

私の理解が正しければ、このプログラムは、Put_Line プロシージャを呼び出す前に、特定されていない例外を発生させるはずです。しかし、プログラムを実行すると、 Precondition に違反する無効な Size 引数でプロシージャが呼び出されることがわかりますDestination'Size ≥ Size ≤ Source'Size。代わりに、if実際にエラーをキャッチするステートメントを配置し、例外 Constraint_Error を発生させて正常に保つ必要があります。

追加などのバリエーションを試しましpragma Precondition ( ... )たが、それもうまくいきません。

with Pre =>奇妙なことの 1 つは、ジェネリック プロシージャ本体/定義で句を繰り返すと、プログラムが実際にコンパイルされることです。これは通常、プロシージャに対してこれを許可せず、エラーを発生させます (つまり、事前条件は、定義ではなく正式な宣言にのみ含める必要があります)。この場合、一般的な手順は例外ですか?

また、ジェネリック手続き宣言に use 句を追加できることにも驚きました。これにより、正式なパラメーター名 (非常に長いもの) の定義が容易になりますが、これは通常/通常のプロシージャー宣言では実行できないため、バグのように見えます。

PS 私は、学習目的で Ada 言語で、C からの memcpy() の可能な限り最も近い模倣を実装したいと考えていました。

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

enums - 重複する値を持つ Ada 列挙

デバイスを列挙として登録しようとしています。レジスタからの読み取りには 2 つの値があります -> 0 は完了を意味し、1 は保留中を意味します。同様に、レジスタへの書き込みには 2 つの値があります -> 0 はアクションがなく、1 はリセットを行います。だから、私は次のコードを書いた

しかし、これはエラーをスローします

列挙型の値が重複する可能性はありますか?

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

windows - Adacore GPS 「パスに実行可能ファイルが見つかりませんでした: gnatmake」

最近、Windows 7 マシンに Lego Mindstorms 用の Adacore GPS 2012 をインストールしました。サンプル プロジェクトをビルドしようとすると、次のエラー メッセージが表示されます。

「パスに実行可能ファイルが見つかりませんでした: gnatmake」

この問題を抱えている他の人を探してみましたが、これらのケースの大部分は Linux 上にあります。誰かが私が問題を理解するのを手伝ってくれたり、正しい方向に向けてくれるなら、それは大歓迎です.