Không có mô tả

Ginger Bill 333924cce1 v0.3 Release 8 năm trước cách đây
code 333924cce1 v0.3 Release 8 năm trước cách đây
core 333924cce1 v0.3 Release 8 năm trước cách đây
misc 3a3202fbc6 Change code to match original MSVC 8 năm trước cách đây
src 333924cce1 v0.3 Release 8 năm trước cách đây
.gitignore 3a3202fbc6 Change code to match original MSVC 8 năm trước cách đây
LICENSE fb45287e9e Fix import/export rules for #import as . 8 năm trước cách đây
README.md f952c7c747 Merge https://github.com/gingerBill/Odin 8 năm trước cách đây
build.bat 574b82c0c7 v0.3.0 8 năm trước cách đây
build.sh 98d493504b Fix segfault with heap allocation 8 năm trước cách đây

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 (C99 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