問題タブ [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 - Perl XS コードから、再帰的に自分自身を呼び出すにはどうすればよいですか?
Pure Perl には複雑なエンコーディング関数があり、パフォーマンスを向上させるために XS に変換しています。
XS に変換している関数は、再帰的に自分自身を呼び出す必要があります。["man perlcall" のおかげで] call_sv を使用して Pure Perl 関数を呼び出す方法を確認できます。
しかし、XS 内から自分自身 (またはその他の XS 関数) を呼び出すにはどうすればよいのでしょうか?
(PS効率は非常に望ましいです...)
誰かヒントをくれませんか?それとも例?Ppp-お願いします!
更新: 最初の答えは完全に正しかったです。再帰的な純粋な C 関数の呼び出しは問題なく機能します。
perl - Dist::Zilla を使用する XS モジュールのテスト
私は、多くの XS コードを持ち、Dist::Zilla
パッケージの管理にも使用する Perl モジュールに取り組んでいます。物事を効率的にテストするための最良の方法は何ですか? については知ってdzil test
いますが、呼び出されるたびにビルド/コンパイル/テストの完全なサイクルを実行するため、かなり遅いです。
前回のテスト以降に更新が必要な部分のみを更新し、t/*.t
すべてではなく特定のテスト スクリプトのみを実行できると便利です。誰もが好きな解決策を持っていますか?
perl - RMAGICALとは?
私が継承したいくつかの XS コードを理解しようとしています。Perl マジックを呼び出すセクションにコメントを追加しようとしていますが、この行を理解するのに役立つドキュメントが見つかりません。
何RMAGICAL
のためですか?Perl マジック変数を操作するとき、いつオンまたはオフにする必要がありますか?
アップデート
Perlguts Illustrated は非常に興味深いもので、RMAGICAL (「R」は「ランダム」を表す) に関する情報が少しありますが、それをいじるタイミングについては言及されていません: http://cpansearch.perl.org/src/ RURBAN/illguts-0.42/index.html
perl - 古いライブラリを Perl XS と PerlIO で動作させる
私はむしろ XS の初心者であり、15 年以上前の基になる C ライブラリを大量に使用する既存の XS モジュールを変更することを検討しています (実際、モジュールは基本的にこのライブラリに接着されています)。問題は、次のような PerlIO 文字列トリックを使用できるようにしたいということです。
$fh
次に、ライブラリが予期している XS グルーに渡しFILE
ます。問題は、XS には次のようなものがあることです。
そして、私はそれが必要であると仮定します:
それ以上のことが必要なので、これはもちろん機能しません。_parse
ライブラリのコードを見ると、次のようになります。
FILE
再び型で。今私が始めなければならない基本的な質問は - これはライブラリを変更しなくても可能ですか?つまり、XS を変更するだけで、文字列 PerlIO の動作から疑似ファイルハンドルを取得できますか?
c - XS このコードでメモリリーク?
このコードでメモリ リークが発生している場所を見つけることができません。
基本的に、2 次元配列を返す C 関数の XS ラッパーを作成したいと考えています。
C 関数:
XS ラッパー:
XSからは「配列の配列」が返ってきます。
Perl スクリプトでのテスト:
関数が呼び出されるたびにreturnArray()
、Perl プロセスのコミット サイズが増加します。しかし、$arrayref
変数は毎回ガベージコレクションされ、メモリ使用量は増加しないはずです。
XSで割り当てられたすべてのメモリを解放していることを願っています。しかし、まだメモリリークがあります。この XS コードのメモリ リークの何が問題なのですか?
csv - 改行を含む CSV を解析するための Text::CSV_XS perl モジュールの使用
Text::CSV_XS module
次のオプションで CSV を解析するために使用しています。
CSV は、mysql LOAD DATA infile を使用して作成されます。NULL
値がある場合は、フィールドにMYSQL
追加します\N
データを解析する前に:
を使用するescape_char => "\\"
場合、\N
は に置き換えられますN
解析後のデータ:
また、 double のデータ'\'
は削除されます
例:D\\'Mello
に変更D'Mello
削除するescape_char => "\\"
と、データは次のように変更されます
解析前:
解析後:
この問題を解決する最善の方法は何ですか?