GNU lightning

From Infogalactic: the planetary knowledge core
Jump to: navigation, search

Lua error in package.lua at line 80: module 'strict' not found.

GNU lightning
Developer(s) GNU Project
Initial release January 19, 2001 (2001-01-19)[1]
Stable release Template:Latest stable software release/GNU lightning
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. Version 2.0, released in August 2013, supports backends for SPARC (32-bit), x86 (32- and 64-bit), MIPS, ARM, ia64, HPPA and PowerPC (32-bit).[2]

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[3]—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,[4] GNU Smalltalk,[5] and CLISP[6] 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.[7]

References

  1. Lua error in package.lua at line 80: module 'strict' not found.
  2. Release announcement. 2013-08-23
  3. Lua error in package.lua at line 80: module 'strict' not found.
  4. Lua error in package.lua at line 80: module 'strict' not found.
  5. Lua error in package.lua at line 80: module 'strict' not found.
  6. Lua error in package.lua at line 80: module 'strict' not found.
  7. Lua error in package.lua at line 80: module 'strict' not found.

External links


<templatestyles src="Asbox/styles.css"></templatestyles>