From 4110324588bc68b6f10435c462b041cf9c34336d Mon Sep 17 00:00:00 2001 From: Ginger Bill Date: Wed, 23 Nov 2016 14:33:32 +0000 Subject: [PATCH] Update README.md --- README.md | 60 ++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 44 insertions(+), 16 deletions(-) diff --git a/README.md b/README.md index 858ab9ade..0a5496ba6 100644 --- a/README.md +++ b/README.md @@ -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 -## Requirements +## 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 -* 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 +## Roadmap -* 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 +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