タグ付けされた質問 「bytecode」

2
Emacsバージョン間のバイトコードの移植性
同じホームディレクトリからEmacsの複数のバージョンを実行することがあります。バイトコンパイルされたファイルがたくさんあります。バイトコードはEmacsのすべてのバージョン間で互換性があるわけではない.elcため、バージョン範囲ごとにファイル用に個別のディレクトリを保持しています。 バイトコードが互換性のあるバージョン範囲は何ですか?私は現在持っています gnu-19.29 gnu-20 gnu-21 gnu-22 gnu-23 gnu-24 source x-19 x-20 x-21 つまり、19.29でさらに分離された各メジャーリリース用のディレクトリ(このマシンでは古いバージョンを使用したことがないため、そうでない場合はありますgnu-19)と、GNU EmacsとXEmacs用の個別のディレクトリです。しかし、私はおそらく過度に用心深いです。 Emacsのバージョン間のバイトコードの互換性に関する公式のポリシーは何ですか?自信を持ってメジャーバージョンを使い続けることはできますか?一部のバージョンをマージできますか?Emacsのバージョンに依存するのではなく、コンパイルしてディレクトリ名を作成するときにクエリできるバイトコードバージョンの表示またはチェックサムはありますか? 私は、下位互換性だけでなく、主に完全な互換性に関心があることに注意してください。Emacs 27.3を実行していくつかのファイルをバイトコンパイルし、その後同じホームディレクトリでEmacs 27.2を実行する可能性があります。

2
Emacs 24のバイトコード関数のArgspecまたはArity
関数のアリティをテストするコードがあります。これを使用して、パッケージの最新バージョンで追加されたオプションの引数が存在するかどうかを判断します。subr-arity組み込み関数を呼び出し、バイトコードオブジェクトとラムダのarglistを解析します。 (defun function-argspec (func) (if (symbolp func) (setq func (indirect-function func))) (cond ((byte-code-function-p func) (aref func 0)) ((and (consp func) (eq (car func) 'lambda) (consp (cdr func))) (car (cdr func))) )) これはEmacs 23までうまく機能しました。Ubuntu14.04上のEmacs 24.3では、一部の機能ではうまく機能しますが、他の機能では機能しません。 (function-argspec 'revert-buffer) (&optional ignore-auto noconfirm preserve-modes) (require 'vc) vc (function-argspec 'vc-print-log-internal) 1283 どうやら、バイトコード形式がマニュアルに反映されていない方法で変更されました。 (symbol-function 'vc-print-log-internal) #[1283 …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.