Tools to enable StaticCompiler.jl-based static compilation of Julia code (or more accurately, a subset of Julia which we might call "unsafe Julia") to standalone native binaries by avoiding GC allocations and llvmcall-ing all the things. This package currently requires Julia 1.8 or greater for best results (if in doubt, check which versions are passing CI). Integration tests against StaticCompiler.jl and LoopVectorization.jl are currently run with Julia 1.8 and 1.9 on x86-64 Linux and mac; other platforms and versions may or may not work but will depend on StaticCompiler.jl support. While we'll do our best to keep things working, this package should still be considered experimental at present and necessarily involves a lot of juggling of pointers and such (i.e., "unsafe Julia"). If there are errors in any of the llvmcalls (which we have to use instead of simpler ccalls for things to statically compile smoothly), there could be serious bugs or even undefined behavior.

Features

  • GC allocations
  • Non-constant global variable
  • Type instability
  • Multithreading
  • Functions that don't want to inline
  • Examples available

Project Samples

Project Activity

See All Activity >

License

MIT License

Follow StaticTools.jl

StaticTools.jl Web Site

Other Useful Business Software
MongoDB Atlas runs apps anywhere Icon
MongoDB Atlas runs apps anywhere

Deploy in 115+ regions with the modern database for every enterprise.

MongoDB Atlas gives you the freedom to build and run modern applications anywhere—across AWS, Azure, and Google Cloud. With global availability in over 115 regions, Atlas lets you deploy close to your users, meet compliance needs, and scale with confidence across any geography.
Start Free
Rate This Project
Login To Rate This Project

User Reviews

Be the first to post a review of StaticTools.jl!

Additional Project Details

Operating Systems

Linux

Programming Language

Julia

Related Categories

Julia Data Visualization Software

Registered

2023-11-27