Share to: share facebook share twitter share wa share telegram print page

GNU lightning

GNU lightning
開発元 GNU Project
初版 2001年1月19日 (24年前) (2001-01-19)[1]
最新版
2.2.3[2] ウィキデータを編集 / 2024年2月8日 (18か月前)
リポジトリ ウィキデータを編集
対応OS クロスプラットフォーム
プラットフォーム GNU
種別 実行時コンパイラ
ライセンス 2007年: LGPL-3.0-or-later[注釈 1]
2002年: LGPL-2.1-or-later[注釈 2]
公式サイト 公式ウェブサイト
テンプレートを表示

GNU lightningは実行時にアセンブリ言語コードを生成する自由ソフトウェアライブラリである。2019年9月にリリースされたバージョン2.1.3は、SPARC(32bit)、x86(32bit, 64bit)、MIPSARM(32bit, 64bit)、ia64HPPAPowerPC(32bit)、AlphaS390RISC-V(64bit)のバックエンドをサポートしている[5][6]

利点

GNU lightningが提供する機能は実行時コンパイルに役立つ。LLVMlibJITなどのライブラリと比較すると、GNU lightningはSPARCおよびMIPSアーキテクチャに緩く基づいた標準化されたRISCアセンブリ言語からターゲットアーキテクチャの機械語にアセンブルするための低水準インターフェースのみを提供する。

欠点

レジスタ割り付けデータフロー制御フロー解析英語版最適化は提供されない[要出典]。2.xからは、標準化された命令ごとに1つずつコードを生成するのではなく、中間グラフを介してコードを生成する。この変更により、レジスタ割り付けやデッドコード削除などの命令間の最適化が可能になる[7]

命令セット

GNU lightningの命令セットは、主に既存のRISCアーキテクチャに基づいている。

データ型

以下のような9種類のデータ型が存在する。

Cでの相当する型
c signed char
uc unsigned char
s short
us unsigned short
i int
ui unsigned int
l long
f float
d double

GNU lightningを使用するプロジェクト

GNU Smalltalk[8]GNU Guile[9]CLISP[10]実行時コンパイルにGNU lightningを使用している。GNU lightningは当初、バイトコードからネイティブコードへのGNU Smalltalkの動的トランスレータとして開発された[11]。GNU Guile 2.9.2以降では、ネイティブコード生成にGNU lightning 2.xの使用をやめ、代わりにGNU lightning 1.4に基づく独自のフォークを使用している。これは、GNU lightning 2.xが命令間の最適化に多くの複雑さを費やしているためである[12]

注釈

  1. ^ 2007-07-01から[3]
  2. ^ 2002-06-25から2007-07-01まで[4]

脚注

  1. ^ ChangeLog”. GNU Project. 2009年2月22日閲覧。
  2. ^ "GNU lightning 2.2.3 released!"; 著者名 (文字列): Paulo César Pereira de Andrade; 作品または名前の言語: 英語; 出版日: 2024年2月8日; 閲覧日: 2024年3月8日.
  3. ^ README-hacking”. 2025年2月13日閲覧。
  4. ^ lightning-1.1.1.tar.gz”. 2025年2月13日閲覧。
  5. ^ GNU lightning”. 2020年1月15日閲覧。
  6. ^ GNU lightning 2.1.3 released!” (2019年9月18日). 2025年2月13日閲覧。
  7. ^ lightening run-time code generation — wingolog”. 2025年2月13日閲覧。
  8. ^ GNU Smalltalk project page”. 2014年5月17日閲覧。
  9. ^ Just-In-Time Native Code”. 2020年5月13日時点のオリジナルよりアーカイブ。2019年3月11日閲覧。
  10. ^ Implementation notes for GNU CLISP”. 2009年2月23日閲覧。
  11. ^ GNU lightning user manual, acknowledgements”. 2014年5月17日閲覧。
  12. ^ lightening run-time code generation -- wingolog”. 2021年12月10日閲覧。

外部リンク

Prefix: a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9

Portal di Ensiklopedia Dunia

Kembali kehalaman sebelumnya