Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Welcome to the Odin wiki! Here you will be able to find a collection of information about the Odin Programming Language.
This wiki is open to editing by anyone with a GitHub account. Please open an issue in the Odin issue tracker with the prefix
wiki if you would like to add, remove or rename any wiki page.
Table of Contents
- Getting started with Odin
- Odin Features and Examples
- Compiler Demos
- Community Libraries
- Platform Specific Information
- Version History
Getting started with Odin
Odin is dead-simple to get started with!
Clone the repository (recommended,
git clone https://github.com/gingerBill/Odin) or download the latest release
There's a couple prerequisites here. First, make sure you have Visual Studio installed; you have to compile Odin from source, and Odin also requires
link.exe from VS anyway. Also, you'll need to download a couple LLVM binaries and move the
bin folder in that zip file into your Odin directory. These are used internally by the compiler.
Now, it's time to build Odin and get started! Open the X64 Visual Studio command prompt (if you don't typically use it, here's how to find it) and navigate to the directory where you downloaded Odin. Run the
build.bat file, and you should have a successfully built Odin compiler!
To use Odin
link.exe is required to be in the PATH of the callee as mentioned, this can either be achieved but calling Odin from the X64 Visual Studio command prompt or by calling the vcvarsall.bat (with x64 as an argument) script either in your shell or in your build script.
For Mac and *Nix...
For Linux, make sure you have
clang installed through your package managers.
For macOS, make sure you've installed the Xcode command-line tools (
xcode-select --install), then install LLVM. If you use Homebrew, you can run
brew install llvm to do this.
Homebrew will not add LLVM to the PATH, run
echo 'export PATH="/usr/local/opt/llvm/bin:$PATH"' >> ~/.bash_profile to add LLVM to your PATH. Then run
source ~/.bash_profile to update your PATH variable in the current terminal session.
Now navigate to the Odin directory in your terminal, use
./build.sh, and you should have a newly-built, fresh Odin compiler!
Updating the compiler
For a compiler that's in-development like Odin, things move fast. Make sure you keep your compiler up-to-date by running
git pull and then rebuilding every now and then. (or, if you use releases, redownload and rebuild)
Odin Features and Examples
All of this is subject to change at any time.
This is the overall theme or one of the biggest changing in the version, it most likely isn't the only change/new feature in the version
- v0.10 - Intrinsics and Assembly
- v0.11 - Custom Backend
- v0.12 - Core Library Improvements
- v0.13 - ???
- First Talk & Demo
- Composition & Refactorability
- Introspection, Modules, and Record Layout
- push_allocator & Minimal Dependency Building
- when, for & procedure overloading
- Context Types, Unexported Entities, Labelled Branches
- Bit Fields, i128 & u128, Syntax Changes