GNU lightning
Developer(s) | GNU Project |
---|---|
Initial release | January 19, 2001[1] |
Stable release | 2.0.5 (August 16, 2014[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. 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).[3]
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[4]—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,[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
- ↑ "ChangeLog". GNU Project. Retrieved 2009-02-22.
- ↑ Andrade, Paulo César Pereira de (2014-04-05). "ANNOUNCE: GNU lightning 2.0.5 released!" (Mailing list). lightning. Retrieved 2014-08-21.
- ↑ Release announcement. 2013-08-23
- ↑ "Using and porting GNU lightning". Retrieved 2009-02-22.
- ↑ "Racket source code repository". Retrieved 2014-05-17.
- ↑ "GNU Smalltalk project page". Retrieved 2014-05-17.
- ↑ "Implementation notes for GNU CLISP". Retrieved 2009-02-23.
- ↑ "GNU lightning user manual, acknowledgements". Retrieved 2014-05-17.