GNU lightning

From Wikipedia, the free encyclopedia
Jump to: navigation, search
GNU lightning
Developer(s) GNU Project
Initial release January 19, 2001 (2001-01-19)[1]
Stable release 2.0.5 (August 16, 2014; 19 days ago (2014-08-16)[2]) [±]
Operating system Cross-platform
Platform GNU
Type Just-in-time compilation
License GNU General Public License, GNU Lesser General Public License
Website Official website

GNU lightning is a free software library for generating assembly language code at run-time. Newly released version 2.0[3] supports backends for SPARC (32-bit), x86 (32- and 64-bit), MIPS, ARM, ia64, HPPA and PowerPC (32-bit).

Advantages over other libraries[edit]

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[4]—into the target architecture's machine language.

Disadvantages[edit]

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

Instruction set[edit]

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

Types[edit]

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[edit]

Racket,[5] GNU Smalltalk,[6] and CLISP[7] 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.[8]

References[edit]

  1. ^ "ChangeLog". GNU Project. Retrieved 2009-02-22. 
  2. ^ Andrade, Paulo César Pereira de (2014-04-05). "ANNOUNCE: GNU lightning 2.0.5 released!". lightning. https://lists.gnu.org/archive/html/lightning/2014-08/msg00001.html. Retrieved 2014-08-21.
  3. ^ Release announcement. 2013-08-23
  4. ^ "Using and porting GNU lightning". Retrieved 2009-02-22. 
  5. ^ "Racket source code repository". Retrieved 2014-05-17. 
  6. ^ "GNU Smalltalk project page". Retrieved 2014-05-17. 
  7. ^ "Implementation notes for GNU CLISP". Retrieved 2009-02-23. 
  8. ^ "GNU lightning user manual, acknowledgements". Retrieved 2014-05-17. 

External links[edit]