Jitterは正式にGNUプロジェクトの一部になりました

数日前、プロジェクトのニュースが発表されました Jitterは正式にGNUプロジェクトの翼の下でプロジェクトになりました 現在、GNUインフラストラクチャを使用し、プロジェクトの要件に従って、GNUJitterという名前で開発されています。

ジッターに慣れていない人は、それがaは、ポータブルで非常に高速な仮想マシンを生成できるようにする実装です。 プログラミング言語の任意の設計の場合、そのコード実行パフォーマンスはインタープリターよりも大幅に優れており、ネイティブのコンパイル済みコードに近いです。

Jitterは移植性が高く、正しいVMは、コンパイラと標準Cライブラリのみを備えたプラットフォームでまったく同じ動作を示します。 ただし、GCCを備えたELFシステムでサポートされているアーキテクチャの68つ(現在:M86k、MIPS、PowerPC、RISC-V、SPARC、x64_64、第390レベル:AarchXNUMX、Alpha、ARM、SXNUMXx)を使用すると、パフォーマンスが向上します。 もちろん、JitterはGNUプロジェクトの一部であり、主にGNUシステムで使用するために設計されています。

十手rは、サポートされている命令の高レベルの仕様を入力として受け取ります 仮想マシンによって、 出力では、仮想マシンのすぐに使用できる実装を形成します 与えられた命令を実行します。

仕様の各命令のロジック Cコードを使用して指定されます。 追加機能には、タグ値チェックやオーバーフローチェックなど、Cで実装するのが難しく、動的プログラミング言語に固有の条件分岐操作のサポートが含まれます。

Jitterランタイムは、動的型付け言語で必要とされる値タグチェックやオーバーフローチェックを使用した算術演算など、Cのみを使用して実装が困難な条件分岐操作を効率的にサポートします。 VMコードは、プロシージャの呼び出しおよび戻り操作にアクセスします。ほとんどの場合、効率的なハードウェアメカニズムに依存しています。

結果の仮想マシンは、少数のインサートを使用してCでフォーマットされます。 アセンブラ。 さまざまな最適化を可能にし、配信メカニズムを選択できるように構成が提供されているため、仮想マシンをさまざまなプラットフォームに簡単に移行できます。

レジスタ、スタック、および結合実行アーキテクチャの使用、およびCPUハードウェアレジスタ内の仮想マシンデータ構造をミラーリングしてガベージコレクタを接続する機能をサポートします。

生成されたコードには、仮想マシンでコードを動的に置き換えて実行するための単純なC APIと、仮想マシンでテキストファイルからコードを個別に実行するためのコントローラープログラムが含まれています。

生成されたCコードは高度に調整されており、さまざまな洗練度のさまざまな配布手法を使用して実行するように構成できます。 最も効率的なディスパッチ手法は、Jitterが提供するアーキテクチャ固有のアセンブリサポートに依存していますが、VM固有ではありません。 すべてのディスパッチモデルですが、XNUMXつはGNUC拡張機能にも基づいています。

最後に、それについてもっと知りたい人は、元のJitterコードがCで書かれており、GPLv3ライセンスの下で利用可能であることを知っておく必要があります。 あなたはでもっと学ぶことができます 次のリンク。

ジッターを取得する方法は?

Jitterをテストできるようにすることに興味がある場合は、ターミナルを開いて次のコマンドを入力することでソースコードを取得できます。

git clone http://git.ageinghacker.net/jitter

これが完了したら、コードが含まれているフォルダーに移動します。次に、構成スクリプトを含む、Jitterの構成とビルドに必要なファイルを生成するために使用される起動スクリプトを実行します。 これを行うには:

cd jitter && ./bootstrap

Jitterは、構成と構築に関するGNUの規則に従い、ソースディレクトリからの構築をサポートしていることを言及する価値があります。 実際、クロスコンパイルをサポートし、エミュレーターを介したクロスコンパイルでのテストスイートの実行もサポートしています。

./configure && make

最後に、実行するには、次のように入力します。

make check


Googleで優先ソースとして追加する