問題タブ [xs]
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.
perl - XS で Perl ハッシュを返す (エラー: typemap に 'void' がありません)
Augeas (Config::Augeas) の Perl バインディングへの呼び出しを追加しようとしています。この新しい呼び出しで Perl ハッシュを返すようにしたいと思います。私はこれを書きました:
しかし、ビルドすると、次のようになります。
私は何を間違っていますか?
perl - 他のモジュールからのcソースを使用したperlビルドモジュール
Module(::PerlArray)
2つのバックエンドaとModule::PDL
(に依存する可能性があります)が必要なモジュールに取り組んでいますModule
。どちらもfunctions.c/.h
ビルドのためにファイルにアクセスする必要があります。このファイルには、モジュールに必要なかなり複雑なロジックが含まれています。モジュールごとに個別に配布するのではなく、システム上でそれを保持してから、または(ここでの複雑さを考えるとおそらく後者)Module::PP
の適切なビルドフラグに追加する方法はありますか?EU::MM
M::B
より視覚的に置くために
コンパイルにより、functions.oとリンクが作成されます。フラグを適切に設定する方法は理解できると思いますが、インストール中にModuleにfunctions.c
ファイルを保持させる方法と、インストール時にファイルを見つける方法を教えてModule::PDL
ください。配置できる場所はありfunctions.c/.h
ますか?
perl - CPAN から手動で XS モジュールをコンパイルするにはどうすればよいですか?
XS モジュールを CPAN からダウンロードしたばかりですが、 を使用せずに手動でコンパイルしたいと考えていますcpan
。、、およびファイルを実行perl Makefile.PL
してmake
作成しますが、パスに入れるものがありません。私は何が欠けていますか?.c
.o
.xs
.bs
.pm
make install
私はすべてのユーザーにそれをしたくありません。
c++ - PerlXSPP-std::stringの複数の定義
GoogleのURLライブラリ機能の一部をperlモジュールとして公開しようとしています。ここや他の場所でのいくつかの投稿に基づくと、XSPPから始めるのが良いと思われます。これまでに作成したものは次のとおりです(googleurl libのコンパイル済みバージョンから開始):
私はこのxsppファイルを作成しました(簡潔にするためにいくつかのメソッドは省略されています):
そして、私はこのMakefile.PLファイルを作成しました:
それから私は実行します:
..そして次のエラーが発生します:
xsppの経験がある人は、このエラーの原因が何であるかを知っていますか?上記のGURL.xspファイルでxsppを正常に実行でき、妥当な出力が生成されます。
c++ - C++内からのperlファイルの行番号とファイル名の決定
私はアプリケーションに埋め込まれたPerlを使用しています。Perl内から呼び出されるかなりの数のC++関数をインストールしました。その1つがロギング機能です。この関数を呼び出したPerlファイルのファイル名と行番号をログメッセージに追加したいと思います。
Perl側では、「caller()」関数を使用してこの情報を取得できることはわかっていますが、この関数はすでに数百の場所で使用されているため、C++側を変更したいと思います。この情報はC++XSUBに渡されます。関数ともしそうなら、私はそれをどのように取得しますか?
ありがとう。
perl - XSコードでthreads-> tid()値を取得するには?
perl モジュールの *.XS 部分内の C 関数で、現在の perl スレッド ID を取得する必要があります。
純粋な perl (*.pm 部分) では、単純に次のようにします。
しかし、XS でこの値を取得するための推奨される方法は何ですか?
残念ながら、http://perldoc.perl.org/perlthrtut.htmlとhttp://perldoc.perl.org/threads.htmlでは、XS でのスレッドの扱いについては触れられていません。
前もって感謝します
-- kmx
character-encoding - 組み込み Vaadin アプリケーションの文字エンコードの変更
Vaadin アプリをサード パーティの Web ページに埋め込む必要があります。Web サーバーとアプリケーション サーバーは異なるドメインにあります。アプリケーションの性質上、iframe を使用することはできません。そこで、VaadinXS アドオンと組み込みアプリケーションを div 内に使用しました。
今私の問題は:
Web ページには非 utf エンコーディングがあります (実際には windows-1251 です)。また、Vaadin サーブレットのデフォルトのエンコーディングは utf-8 のようです。
質問:
Vaadin 組み込み XS サーブレットの文字エンコーディングをオーバーライドする方法はありますか。
perl - MakeMakerにサブディレクトリにXSファイルを作成するように指示するにはどうすればよいですか?
XSコードを追加したばかりの大きなプロジェクトがあり、トップレベルのディレクトリをできるだけクリーンに保ちたいと思います。XSファイルとtypemapなどを入れたいです。サブディレクトリに入れますが、そうすると、MakeMakerはそれらを見つけることができません。そのため、現在、彼らはプロジェクトのルートに座っているだけです。
MakeMakerにXSのもののサブディレクトリを検索するように指示して、そこからビルドできるようにするにはどうすればよいですか?
perl - XS モジュールを手動でインストールするには?
私が間違っている場合は訂正してください。ただし、XS および Dynaloader ベースのモジュールは、C/C++ 共有オブジェクト (.so) を使用するモジュールであり、PP (Pure Perl) ではありませんか?
ここで、Web 接続がまったくないマシン (Solaris 10) を持っていて、たとえばCrypt::OpenSSL::AES
(XS ベースのモジュール)をインストールしたい場合、 AES.pm
@INC の関連するパスにファイルをコピーしても何の役にも立ちません。システムがlibssl
インストールされていません。
私の 2 番目の最も重要な質問は、CPAN を持っていない場合にそのようなモジュールをどのようにインストールすればよいかということです。私のアプローチは次のとおりです。
- 最初
libssl
に自分のプラットフォーム用に入手してコンパイルしますが、perl が見つけられるように、そのシャード オブジェクト ファイルをどこに配置すればよいでしょうか? - libsslをインストールしてコンパイルし、あるべき場所に配置したら
AES.pm
、@INCの関連するパスにコピーするだけで十分ですか、それとも構成/作成する必要がありますか?
perl - Perl XS および C++ でポインタをバッファに渡す
私は C++ をほとんど知らないので、それは役に立たず、私の XS はあまり良くありません。C++ ライブラリ用の XS インターフェイスを作成していますが、1 つを除いてほとんどすべてのメソッドが機能しています。
Perl のメソッドは次のようになります。
メソッドは、次の .h ファイルとして定義されます。
「バッファ」は、NULL で渡された場合に割り当てられます。
署名が異なる readPath の 2 つの追加バージョンがありますが、それらは私が必要とするものではありません。(興味深いことに、コンパイルしようとすると、「候補」が不要な2つであることがわかります。)それは、「char * &」を理解していないためですか?
私が書く必要がある xsub を手伝ってくれる人はいますか?
Perl 5.14.2 を使用しています。
ところで -- T_IV には typemap "long long int" も使用しました。long long を正しく typemap する方法に関するドキュメントが見つかりません。long long をタイプマップする方法について何か提案はありますか?
ありがとう、