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
Ship Agents Faster Icon
Ship Agents Faster

Transform your applications and workflows into powerful agentic systems at global scale.

Gemini Enterprise Agent Platform lets you rapidly build, scale, govern and optimize production-ready agents grounded in your organization's data. The platform enables developers to build custom or pre-built agents for virtually any use case. New customers get $300 in free credits.
Get Started 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