Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

GNU lightning

From Wikipedia, the free encyclopedia
This articlerelies excessively onreferences toprimary sources. Please improve this article by addingsecondary or tertiary sources.
Find sources: "GNU lightning" – news ·newspapers ·books ·scholar ·JSTOR
(August 2011) (Learn how and when to remove this message)
GNU lightning
Developer(s)GNU Project
Initial releaseJanuary 19, 2001; 24 years ago (2001-01-19)[1]
Stable release
2.2.3[2] Edit this on Wikidata / 8 February 2024
Repository
Operating systemCross-platform
PlatformGNU
TypeJust-in-time compilation
License2007:LGPL-3.0-or-later[a]
2002:LGPL-2.1-or-later[b]
WebsiteOfficial website

GNU lightning is a free-software library for generatingassembly language code at run-time. Version 2.1.3, released in September 2019, supports backends forSPARC (32-bit),x86 (32- and 64-bit),MIPS,ARM (32- and 64-bit),ia64,HPPA,PowerPC (32-bit),Alpha,S390 andRISC-V (64-bit).[5][6]

Advantages over other libraries

[edit]

The features GNU lightning provides make it useful forJust-in-Time Compilation. In comparison to libraries such asLLVM orlibJIT, GNU lightning provides only a low-level interface for assembling from a standardized RISC assembly language—loosely based on theSPARC andMIPS architectures[7]—into the target architecture's machine language.

Disadvantages

[edit]

It does not provideregister allocation,data-flow orcontrol-flow analysis, oroptimization.[citation needed]Starting from 2.x, it generates code via intermediate graph, rather than one by one from each of its standardized instructions. This change allows inter-instruction optimization such as register allocation and dead code elimination.[8]

Instruction set

[edit]

GNU lightning's instruction set is based loosely on existingRISC architectures.

Types

[edit]

When required instructions handle data with these 9 types:

TypeC equivalent
csigned char
ucunsigned char
sshort
usunsigned short
iint
uiunsigned int
llong
ffloat
ddouble

Projects that use GNU lightning

[edit]

GNU Smalltalk,[9]GNU Guile,[10] andCLISP[11] make use of GNU lightning forjust-in-time compilation. GNU lightning was first developed as a tool to be used in GNU Smalltalk's dynamic translator from bytecodes to native code.[12] GNU Guile 2.9.2 and later stop using GNU lightning 2.x instead their own fork based on GNU lightning 1.4 for native code generation, because GNU lightning 2.x devotes more complexity to inter-instruction optimization.[13]

Notes

[edit]
  1. ^LGPL-3.0-or-later since 2007-07-01.[3]
  2. ^LGPL-2.1-or-later from 2002-06-25 until 2007-07-01.[4]

References

[edit]
  1. ^"ChangeLog". GNU Project. Retrieved2009-02-22.
  2. ^Paulo César Pereira de Andrade (8 February 2024)."GNU lightning 2.2.3 released!". Retrieved8 March 2024.
  3. ^"README-hacking".
  4. ^"lightning-1.1.1.tar.gz".
  5. ^"GNU lightning". Retrieved2020-01-15.
  6. ^"GNU lightning 2.1.3 released!". 2019-09-18.
  7. ^"Using and porting GNU lightning". Retrieved2009-02-22.
  8. ^"lightening run-time code generation — wingolog".
  9. ^"GNU Smalltalk project page". Retrieved2014-05-17.
  10. ^"Just-In-Time Native Code". Archived fromthe original on 2020-05-13. Retrieved2019-03-11.
  11. ^"Implementation notes for GNU CLISP". Retrieved2009-02-23.
  12. ^"GNU lightning user manual, acknowledgements". Retrieved2014-05-17.
  13. ^"lightening run-time code generation -- wingolog". Retrieved2021-12-10.

External links

[edit]
History
Licenses
Software
Contributors
Other topics


Stub icon

Thisfree and open-source software article is astub. You can help Wikipedia byexpanding it.

Retrieved from "https://en.wikipedia.org/w/index.php?title=GNU_lightning&oldid=1275506695"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp