Sin descripción

Ginger Bill 348bcc3f9a Update version string hace 8 años
bin 33bd3f635f Remove the need for clang hace 9 años
code 492490f7f6 Update demo.odin hace 8 años
core 4dd8552c32 Fix slicing and add clamp hace 8 años
misc 3517f96668 Remove: string overloads; defer hace 8 años
src 348bcc3f9a Update version string hace 8 años
.gitignore 50301557b2 Untyped `nil` hace 9 años
LICENSE fb45287e9e Fix import/export rules for #import as . hace 8 años
README.md 5aa0ef54c8 Add logo to README.md hace 8 años
build.bat 4dd8552c32 Fix slicing and add clamp hace 8 años
compile_time_execution_problems.md 3ce044f84f Add general timings for sections of the compiler hace 8 años
libs.txt 7430008fd7 Initial Commit hace 9 años
logo-slim.png 7792f009b8 Numpty forgot to add .c files hace 8 años
roadmap.md 34ee89cfab Update README.md and roadmap.md hace 8 años
run.bat 5da6b74567 Compile with odin.exe and no run.bat hace 9 años
todo.md 24ca106521 v0.0.3 Build hace 8 años

README.md

Odin logo

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:

Requirements to build and run

  • Windows
  • x86-64
  • MSVC 2015 installed (C99 support)
  • 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.

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