A fast, concise, readable, pragmatic and open sourced programming language.
The Odin programming language is fast, concise, readable, pragmatic and open sourced. It is designed with the intent of replacing C with the following goals:
- simplicity
- high performance
- built for modern systems
- joy of programming
Website: https://odin.handmade.network/
package main
import "core:fmt"
main :: proc() {
program := "+ + * π - /";
accumulator := 0;
for token in program {
switch token {
case '+': accumulator += 1;
case '-': accumulator -= 1;
case '*': accumulator *= 2;
case '/': accumulator /= 2;
case 'π': accumulator *= accumulator;
case: // Ignore everything else
}
}
fmt.printf("The program \"%s\" calculates the value %d\n",
program, accumulator);
}
Odin only supports x86-64 at the moment (64-bit), relies on LLVM for code generation and an external linker.
In addition, the following platform-specific steps are necessary:
-
Windows
- Have Visual Studio installed (MSVC 2010 or later, for the linker)
- Have a copy of
opt.exe
andllc.exe
inOdin/bin
. Pre-built Windows binaries can be found here and must be explicitly copied - Open a valid command prompt:
- Basic: run the
x64 Native Tools Command Prompt for VS2017
shortcut bundled with VS 2017, or - Advanced: run
vcvarsall.bat x64
from a blankcmd
session
- Basic: run the
-
MacOS
- Have LLVM explicitly installed (
brew install llvm
) - Have XCode installed (version X.X or later, for linking)
- Make sure the LLVM binaries and the linker are added to your
$PATH
environmental variable
- Have LLVM explicitly installed (
-
GNU/Linux
- Have LLVM installed (opt/llc)
- Have Clang installed (version X.X or later, for linking)
- Make sure the LLVM binaries and the linker are added to your
$PATH
environmental variable
Then build the compiler by calling build.bat
(Windows) or make
(Linux/MacOS). This will automatically run the demo program if successful.
Notes for Linux:: The compiler currently relies on the core
and shared
library collection being relative to the compiler executable. Installing the compiler in the usual sense (to /usr/local/bin
or similar) is therefore not as straight forward as you need to make sure the mentioned libraries are available. As a result, it is recommended to simply explicitly invoke the compiler with /path/to/odin
in your preferred build system, or add /path/to/odin
to $PATH
.
Please read the Getting Started Guide for more information.
Please read the Getting Started Guide.
-
Windows
- x86-64
- MSVC 2010 installed (C++11 support)
- LLVM binaries for
opt.exe
,llc.exe
, andlld-link.exe
- Requires MSVC's link.exe as the linker
- run
vcvarsall.bat
to setup the path
- run
-
MacOS
- x86-64
- LLVM explicitly installed (
brew install llvm
) - XCode installed (for the linker)
-
GNU/Linux
- x86-64
- Build tools (ld)
- LLVM installed
- Clang installed (temporary - this is Calling the linker for now)
- This is still highly in development and the language's design is quite volatile.
- Syntax is not fixed.
- 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
- Default and Named Arguments; Explicit Parametric Polymorphism
- Loadsachanges
- Packages, Bit Sets, cstring