No Description

Ginger Bill 6b464e3558 Update README.md 8 years ago
code 76b0c7b765 "Revert" to older demo 8 years ago
core ccda456c0a `foreign` blocks for procedures 8 years ago
misc 3a3202fbc6 Change code to match original MSVC 8 years ago
src 91857e8f16 Remove redundant paths in parsing 8 years ago
.gitignore 3a3202fbc6 Change code to match original MSVC 8 years ago
LICENSE fb45287e9e Fix import/export rules for #import as . 8 years ago
README.md 6b464e3558 Update README.md 8 years ago
build.bat 9b61adb97d Build as C++ 8 years ago
build.sh 98d493504b Fix segfault with heap allocation 8 years ago

README.md

Odin logo

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:

Requirements to build and run

  • Windows

    • x86-64
    • MSVC 2015 installed (C++11 support)
    • LLVM binaries for opt.exe and llc.exe
    • Requires MSVC's link.exe as the linker
      • run vcvarsall.bat to setup the path
  • 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