mirror of
https://github.com/odin-lang/Odin.git
synced 2025-12-29 17:34:34 +00:00
b232b9d5ea23fdd4d53f8e93cdfeb1f962811331
when statement - Compile time if statement
This is similar to an #if in C but handled during the semantic checking stage.
The Odin Programming Language
Odin 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
Demonstrations:
- First Talk & Demo
- Composition & Refactorability
- Introspection, Modules, and Record Layout
- push_allocator & Minimal Dependency Building
Requirements to build and run
- Windows
- x86-64
- MSVC 2015 installed (C99 support)
- Requires MSVC's link.exe as the linker
- run
vcvarsall.batto setup the path
- run
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
- 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
- Parametric Polymorphism ("Generics")
- Documentation Generator for "Entities"
- Multiple Architecture support
- Language level atomics and concurrency support
- Linking Options
- Executable
- Static/Dynamic Library
- Debug Information
- pdb format too
- Command Line Tooling
- Compiler Internals:
- Big numbers library
- Cyclic Type Checking (at the moment will cause compiler to go into an infinite loop)
- Multithreading for performance increase
Languages
Odin
75.4%
C++
15.7%
C
8.3%
Python
0.3%
JavaScript
0.2%