mirror of
https://github.com/odin-lang/Odin.git
synced 2025-12-28 17:04:34 +00:00
5957d7f7bee7e5fac4035d47ecaaaad022adbfb8
context system (replacing Thread Local Storage (TLS) approach)
The Odin 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
- metaprogramming
- designed for good programmers
Website: https://odin.handmade.network/
Demonstrations:
- First Talk & Demo
- Composition & Refactorability
- Introspection, Modules, and Record Layout
- push_allocator & Minimal Dependency Building
- when, for, & procedure overloading
- when, for, & procedure overloading
- Context Types, Unexported Entities, Labelled Branches
- Bit Fields, i128 & u128, Syntax Changes
Requirements to build and run
-
Windows
- x86-64
- MSVC 2015 installed (C++11 support)
- LLVM binaries for
opt.exeandllc.exe - Requires MSVC's link.exe as the linker
- run
vcvarsall.batto 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)
Warnings
- This is still highly in development and the language's design is quite volatile.
- Syntax is not fixed.
Roadmap
Not in any particular order and not be implemented
- Compile Time Execution (CTE)
- More metaprogramming madness
- Compiler as a library
- AST inspection and modification
- CTE-based build system
- Replace LLVM backend with my own custom backend
- Improve SSA design to accommodate for lowering to a "bytecode"
- SSA optimizations
- Documentation Generator for "Entities"
- Multiple Architecture support
- Debug Information
- pdb format too
- Command Line Tooling
- Compiler Internals:
- Big numbers library
- Multithreading for performance increase
Languages
Odin
75.4%
C++
15.7%
C
8.3%
Python
0.3%
JavaScript
0.2%