diff options
| author | Ginger Bill <bill@gingerbill.org> | 2016-11-23 14:33:32 +0000 |
|---|---|---|
| committer | Ginger Bill <bill@gingerbill.org> | 2016-11-23 14:33:32 +0000 |
| commit | 4110324588bc68b6f10435c462b041cf9c34336d (patch) | |
| tree | 32d0095b9dcd678b8b2c86cd0910e7e0b299e02f | |
| parent | 34ee89cfab0e32573d525aed62693a32084e1c40 (diff) | |
Update README.md
| -rw-r--r-- | README.md | 66 |
1 files changed, 47 insertions, 19 deletions
@@ -1,30 +1,58 @@ # The Odin Programming Language -Odin in an open source programming language that is simple to read, comprehend and reason with. +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 + - [Talk](https://youtu.be/TMCkT-uASaE?t=338) + - [Demo](https://youtu.be/TMCkT-uASaE?t=1800) + - [Q&A](https://youtu.be/TMCkT-uASaE?t=5749) +* [Composition & Refactorability](https://www.youtube.com/watch?v=n1wemZfcbXM) +* [Introspection, Modules, and Record Layout](https://www.youtube.com/watch?v=UFq8rhWhx4s) +* [push_allocator & Minimal Dependency Building](https://www.youtube.com/watch?v=f_LGVOAMb78) + +## Requirements to build and run -## Requirements - -* x86-64 * Windows +* x86-64 * MSVC 2015 installed (C99 support) -* call `vcvarsall.bat` to setup the path +* Requires MSVC's link.exe as the linker + - run `vcvarsall.bat` to setup the path ## Warnings * This is still highly in development and the language's design is quite volatile. * Syntax is not fixed. -## Goals - -* Simple to read and write -* Easy to comprehend and reason with -* Fast -* Low-level -* Compiled, strongly-typed, static language -* Metaprogramming: - - Ability to run any code at compile time - - Unified syntax between main language and metaprogramming language - - Built-in introspection for all types -* Higher control of data layout and data access -* No need for external tools such as Make/IDE - +## 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 |