問題タブ [ffi]

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

haskell - Compiled Haskell libraries with FFI imports are invalid when imported into GHCI

I am using GHC 6.12.1, in Ubuntu 10.04

When I try to use the FFI syntax for static storage, only modules running in interpreted mode (ie GHCI) work properly. Compiled modules have invalid pointers, and do not work. I'd like to know whether anybody can reproduce the problem, whether this an error in my code or GHC, and (if the latter) whether it's a known issue.

I'm using sys_siglist because it's present in a standard library on my system, but I don't believe the actual storage used matters (I discovered this while writing a binding to libidn). If it helps, sys_siglist is defined in <signal.h> as:

I thought this type might be the problem, so I also tried wrapping it in a plain C procedure:

However, importing that doesn't change the result, and the printf() call prints the same pointer value as show siglist_a.

My suspicion is that it's something to do with static and dynamic library loading.

Update: somebody in #haskell suggested this might be 64-bit specific; if anybody tries to reproduce it, can you mention your architecture and whether it worked in a comment?

Code as follows:

--

--

I would expect something like this output, where all pointer values identical and valid:

However, if I compile A.hs (with ghc -c A.hs), then the output changes to:

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

ocaml - それを使用してClibとOCamlexeをコンパイルし、すべてocamlfindを使用します

私はocamlfind、CライブラリとそのCライブラリを使用してOCaml実行可能ファイルをコンパイルするために使用する方法を理解しようとしています。

かなりばかげたサンプルファイルのセットをまとめました。

ライブラリをコンパイルする方法は次のとおりです。

作成したライブラリを使用できないようですが、次のようになります。

OCamlツールは私にはやや不思議なので、どんなポインタでも大歓迎です。

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

c - Racket では、別の関数が呼び出された後に関数をエクスポートできますか?

スキームの FFI を使用して libpython へのバインディングを作成しようとしています。これを行うには、python の場所を取得して を作成しffi-lib、そこから関数を作成する必要があります。たとえば、私はこれを行うことができます:

これで問題ありませんが、関数をエクスポートする方法が思い浮かびません。たとえば、次のようなことができます。

...しかし、どうにかして libpython (link-python によって作成された) への参照をグローバルに保存する必要があります。link-python が呼び出されたら、これらの関数をエクスポートする方法はありますか? 言い換えれば、モジュールを使用している誰かがこれを行うことができるようにしたいと思います:

...またはこれ:

...しかし、これでエラーが発生します:

これどうやってするの?

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

jruby - Jruby と ffi: 関数 'xmlFirstElementChild' が [libexslt.so] に見つかりません

すべてがインストールされたubuntuサーバー上で(これが正常に動作する別のPCに対してチェックされます)、jrubyプロジェクトの1つでwarbleを実行しようとすると、次のエラーが発生します。

すべてのライブラリと必要な宝石がそこにあるようです。Google は役に立ちませんでした。奇妙なことに、他の PC ではこれが正常に機能します...

ダニロ

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

perl - Haskell を使用して Perl を拡張しますか?

Perl の Haskell 拡張機能を書いた人はいますか? fibを計算する関数のような単純なものかもしれません。順序?私は Haskell を使用することに興味があり、Haskell と Perl コミュニティの間にいくつかの重複があるように見えます。Haskell / Perl プロジェクトへのポインタ、またはこれらの両方を使用するためのクールなものはありますか? 私はLanguage::Haskellを見てきました - これはただのインタプリタですが、文書化が不十分で、6 年も前のもので、多くの失敗が見られます。

XS を使用するのと同等の ghci を使用して Perl へのエクステンションを構築することは可能ですか (私は何も知らないと主張しています)? この質問はおそらくあらゆる種類の間違いであり、言葉遣いも悪いと思います。Haskell と Perl の拡張 (どちらにも常に興味を持っていました) という、ほとんど知らない 2 つのことを試みています。これを自由に編集してください。

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

haskell - HaskellでのFFI呼び出しのタイプの自動変換

FFI関数のエクスポートに役立つ次のモジュールを定義しました。

関数のインスタンスで苦労しています。誰かが私を助けることができますか?

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

c++ - Haskell と C++ の混合

Haskell と C++ の両方を使用するアプリケーションを作成する可能性がある場合。どのレイヤーを Haskell に管理させ、どのレイヤーを C++ に管理させますか?

そのような関連付けを行った人はいますか (確かに) ?

(Haskell のサイトによると、Haskell には gcc によって C でコンパイルできるモードがあるため、非常に簡単です)

最初は、すべての I/O 操作を C++ レイヤーに保持すると思います。GUI管理も同様です。

かなり漠然とした質問ですが、Haskell を学ぶつもりなので、Haskell コードに一部の作業を委任することを考えていました (実際にコーディングする中で学びます)。Haskell の利点が見られる部分を選択したいと考えています。

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

ruby - ルビーのffi拡張とmric拡張の間のトレードオフは何ですか?

ルビーのffi拡張とmric拡張の間のトレードオフは何ですか?

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

java - 最速の双方向Javaプロローグ実装

現在のエージェントベースのシミュレーションの上にjava-prologレイヤーを使用しようとしています。Mac OS X SnowLeopardとNetbeans6.9を実行していて、swi-prologからJPLを使用しようとしましたが、ライブラリとそのパスに問題があるため、テストを正常に実行できませんでした。私は非常に高速な実装が必要であり、双方向のjava-prologインターフェースに関するベンチマークや個人的な経験を持っている人はいないかと思いました。

0 投票する
5 に答える
15543 参照

c++ - C++ コードから Haskell を呼び出す

私は現在 C++ でアプリを作成していますが、その機能の一部は Haskell で作成したほうがよいことがわかりました。C コードから Haskell を呼び出す手順を見たことがありますが、C++ で同じことを行うことは可能ですか?

編集:明確にするために、私が探しているのは、Haskell コードを g++ が C++ のオブジェクト コードとリンクできる外部ライブラリにコンパイルする方法です。

更新:興味のある人のために、以下に実際の例を示しました(これも忘れないように)。