Raptorjit Versions Save

RaptorJIT: A dynamic language for system programming (LuaJIT fork)

v1.0.3

5 years ago

Added missing pkgconfig file (#220).

v1.0.2

5 years ago

Fixed dynamic linking error that made libraptorjit.so unusable (#217).

v1.0.1

5 years ago

Minor bugfix release.

  • Fix #207 problem with linking shared object files that are compiled against the Lua C-API.

v1.0.0

5 years ago

RaptorJIT 1.0 is released!

Woohoo! You little ripper! Whacko the diddleo!

This has been a long and gradual development process. Much of the activity played out downstream in various Snabb application repos and forums. Thanks for staying tuned :).

Credit for this release must go to:

  • The LuaJIT upstream community for developing such a fantastic JIT compiler and and keeping a steady stream of fixes flowing.
  • The people who have contributed ideas, suggestions, testing, or code including @agladysh @alexandergall @capsadmin @corsix @darius @dpino @eugeneia @fsfod @igelhaus @javierguerragiraldez @justincormack @mejedi @pygy @raj2569 @szbnwer @takikawa @wingo. Thanks folks! (Sorry for all the names I missed!)
  • The NLnet Foundation for supporting RaptorJIT development with a significant grant towards development of the release 1.0. NLnet have also indirectly supported RaptorJIT with grants to several Snabb projects that have been early RaptorJIT adopters and testers. Thank you NLnet!
  • Everybody who decides to build a new application using RaptorJIT. Especially when the alternative is C/C++. Thank you and welcome to the community in advance :).

I am especially happy that I can now start working on the post-1.0 features with a clear conscience ;-)

Release notes

The major changes in RaptorJIT 1.0 compared with LuaJIT 2.1 are:

New features

  • Studio interactive diagnostics support (#179).
  • Add comprehensive binary auditlog (#63 #64 #81).
  • Add VMProfile sampling profiler (#66 #124 #140 #146 #147 #175 #176).
  • Add debug information to map mcode back to IR code (#98).
  • Add debug information for the declared name of each function prototype (#168).
  • Add jit.tracebarrier() primitive (#116).
  • Add log of recorded bytecodes to jit_State (#132).
  • Make jit.flush() clear bytecode blacklistings (#134).

New optimizations

  • Optimize instruction selection to avoid "slow LEA" (#55)
  • Support JIT compilation of non-power-of-2 FFI pointer-difference arithmetic (#86)
  • Reduce the incidence of "blacklisting" with revised JIT heuristics (#101)
  • Support JIT of inline calls to blacklisted functions (IFUNC/IFUNCV) (#120)
  • Optimize string-interning by removing a harmfully obsolete optimization (#150)

Changes to ease maintenance

  • Continuous Integration testing (#6 #14 #47 #52 #192).
  • Performance tests (#7 #59).
  • Remove many build options, platforms, architectures (#5 #10 #19 #33 #34 #43 #44 #45 #69).
  • Remove introspecton APIs (#9 #35 #36).
  • Replace minilua with LuaJIT bootstrap (#28 #90).
  • Make GCproto.lineinfo representation more uniform (#127 #144).
  • Statically allocate bounded-size JIT structures (#131).

Administative changes

  • Adopt Apache license (#3 #16).
  • Adopt Code of Conduct (#4).

v1.0.0beta1

5 years ago

First beta release of RaptorJIT 1.0.0.

v1.0.0alpha1

5 years ago

This is the first alpha release of RaptorJIT.