GNU lightning

GNU lightning is a free-software library for generating assembly language code at run-time. Version 2.1.3, released in September 2019, supports backends for SPARC (32-bit), x86 (32- and 64-bit), MIPS, ARM (32- and 64-bit), ia64, HPPA, PowerPC (32-bit), Alpha, S390 and RISC-V (64-bit).[3][4]

GNU lightning
Developer(s)GNU Project
Initial releaseJanuary 19, 2001 (2001-01-19)[1]
Stable release2.1.3 (September 18, 2019 (2019-09-18)[2]) [±]
Operating systemCross-platform
PlatformGNU
TypeJust-in-time compilation
LicenseGNU General Public License, GNU Lesser General Public License
WebsiteOfficial website

Advantages over other libraries

The features GNU lightning provides make it useful for Just-in-Time Compilation. In comparison to libraries such as LLVM or libJIT, GNU lightning provides only a low-level interface for assembling from a standardized RISC assembly language—loosely based on the SPARC and MIPS architectures[5]—into the target architecture's machine language.

Disadvantages

It does not provide register allocation, data-flow or control-flow analysis, or optimization.

Instruction set

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

Types

When required instructions handle data with these 9 types:

Type C equivalent
c signed char
uc unsigned char
s short
us unsigned short
i int
ui unsigned int
l long
f float
d double

Projects that use GNU lightning

Racket,[6] GNU Smalltalk,[7] GNU Guile,[8] and CLISP[9] make use of GNU lightning for just-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.[10]

gollark: What if I want one IP per Earth-consuming nanobot?
gollark: Technically that does exist, it's just a weird unrelated thing.
gollark: It works for me. Blame your ISP.
gollark: My stuff all supportsi t.
gollark: No, it's pretty widely used now.

References

  1. "ChangeLog". GNU Project. Retrieved 2009-02-22.
  2. de Andrade, Paulo César Pereira (2019-09-18). "GNU lightning 2.1.3 released!" (Mailing list). lightning. Retrieved 2020-01-15.
  3. "GNU lightning". Retrieved 2020-01-15.
  4. "GNU lightning 2.1.3 released!". 2019-09-18.
  5. "Using and porting GNU lightning". Retrieved 2009-02-22.
  6. "Racket source code repository". Retrieved 2014-05-17.
  7. "GNU Smalltalk project page". Retrieved 2014-05-17.
  8. "Just-In-Time Native Code". Retrieved 2019-03-11.
  9. "Implementation notes for GNU CLISP". Retrieved 2009-02-23.
  10. "GNU lightning user manual, acknowledgements". Retrieved 2014-05-17.


This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.