問題タブ [c2hs]
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.
haskell - c2hs で Haddock を使用するにはどうすればよいですか?
私は c2hs を使用していくつかの haskell バインディングを作成しています。Haddock を使用して、自動生成されたコンストラクターと関数パラメーターを文書化したいと考えています。ただし、c2hs はコメントを無視します。
FFI コードをあまり書かずに、これらのフィールドの Haddock ドキュメントを取得するにはどうすればよいですか?
haskell - c2hs と cabal で構築する
.chs
cabal がファイルの依存関係の解決を行わないという問題があります。つまり、依存している場合(または実際A.chs
に依存している場合)、cabal はそれを理解せず、正しい順序でファイルに対して c2hs を呼び出します。gtk2hs がカスタム ビルド スクリプトを使用していることは知っていますが、かなり複雑で gtk2hs に特化しています。依存関係の解決を手動/自動で行う簡単な方法はありますか (たとえば、ファイルを正しい順序でリストすることによって)?B.chs
B.chi
.chs
haskell - OS X 10.9.5 で nvcc + c2hs
コンパイルが必要なソフトウェアを構築しています。nvcc
私は CUDA 対応の GPU を持っていませんが、実際には必要ありません。友人がまったく同じソフトウェアを Linux で構築しています。彼は CUDA GPU を持っていませんが、すべて問題ありません。
https://developer.nvidia.com/cuda-downloads ( )から最新の CUDA ツールキットをcuda_6.5.14_mac_64.pkg
問題なくインストールしました。しかし、ソフトウェアを構築していると、問題が発生しました。
小規模で問題を再現できました。
痕跡を手にして、うさぎの穴の奥深くまで行くことができました。
それを修正する方法がわかりません。ちなみに、clang
とgcc
はどちらも 経由で引数付きのマクロを渡しても問題ありません-D
。
おそらく関連:
Intel Iris Pro 5100 (mbp retina 15" late 2013) を使用しています。
haskell - Haskell ランドへのコールバックを宣言する方法
C ライブラリに接続していますが、 type のコールバック引数を持つ関数があります(int (*fun) (void *))
。
これをどのように処理しc2hs
ますか? https://github.com/haskell/c2hs/wiki/Implementation-of-Haskell-Binding-Modulesまたはhttp://www.cse.unsw.edu.au/~chak/papersで言及されているコールバックが表示されません
/Cha99b.html .
私の実際のアプリケーションでは、コールバックは計算を行いません。その間に何らかのフラグが設定されているかどうかを確認する必要があるだけで、Haskell スレッドから設定したいと考えています。(したがって、明らかな回避策は、コールバックとフラグを C ランドで宣言し、Haskell 関数でフラグを設定するだけです。)
(編集) https://wiki.haskell.org/Calling_Haskell_from_Cもチェックしましたが、「ghc -c ... は Safe_stub.c ... を作成します」という理由で拒否しました。しかし実際には、stub.h (必要ですか?) とオブジェクト ファイルを取得します。
c - C2HS で生成された C バインディングのリンカー エラー
次の最小限の例 (外部依存関係なし) をビルドして実行し
C->Haskell Compiler, version 0.25.2 Snowboundest, 31 Oct 2014
build platform is "x86_64-darwin" <1, True, True, 1>
ます。ビルド コマンド:
しかし、リンカは
Q : これはなぜですか?どうすれば修正できますか? 事前にThx
A : tl;dr : .c を .o オブジェクト コードにコンパイルしていませんでした。DUH!
コードは次のとおりです。
構造体.chs
構造体.h
構造体.c
構造体.hs
EDIT :ghc --make Structs.hs
同じリンカー エラーが発生します。
haskell - c2hs in- および out- タイプのマーシャリング
haskell-mpi bindingを見ていると、たとえば次のような署名がありmpi.h
ます:
これInternal.chs
は次のように表されます。
Q: 入力パラメータの周りで何が起こっているのか理解できません:
-
モディファイヤは何をしているの?c2hs wiki には、「Hs 関数の引数の型は、in マーシャラーの後にマイナス記号が続かないすべてのマーシャリング仕様のセットによって決定される」と書かれていますが、まだわかりません。C 関数は へのポインタを取ります
int
。出力マーシャラーは何をしていますか? AFAICT、ポインターを逆参照し、結果をブール値に変換します。これは正しいです?
注意:MPI_
プレフィックスは、関数名で a によって導入されます{# context prefix="MPI"#}
。
注意2:
NB3: discard _ = return ()
、*-
修飾子はモナド アクションを実行するのに役立ちますが、その結果は破棄されます