aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGinger Bill <bill@gingerbill.org>2016-11-23 14:33:32 +0000
committerGinger Bill <bill@gingerbill.org>2016-11-23 14:33:32 +0000
commit4110324588bc68b6f10435c462b041cf9c34336d (patch)
tree32d0095b9dcd678b8b2c86cd0910e7e0b299e02f
parent34ee89cfab0e32573d525aed62693a32084e1c40 (diff)
Update README.md
-rw-r--r--README.md66
1 files changed, 47 insertions, 19 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
+
+## 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