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

You Might Also Like
Tigerpaw One | Business Automation Software for SMBs Icon
Tigerpaw One | Business Automation Software for SMBs

Fed up with not having the time, money and resources to grow your business?

The only software you need to increase cash flow, optimize resource utilization, and take control of your assets and inventory.
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