Keine Beschreibung

gingerBill 976415ff9d Fix key lookup of pointer to map vor 7 Jahren
core 976415ff9d Fix key lookup of pointer to map vor 7 Jahren
examples eb4b3f5976 Change push allocator system; update core libraries vor 7 Jahren
misc 4262c125c5 Fix struct #packed alignment calculation vor 8 Jahren
shared 8e3b77aba8 Library collections vor 8 Jahren
src 976415ff9d Fix key lookup of pointer to map vor 7 Jahren
.gitignore 9e0b69312b Fixed foreign import for linux. Modified .gitignore to ignore temp files and files in shared/. Added a Makefile for linux vor 7 Jahren
LICENSE 9a8759efef Polymorphic type specialization for procedures vor 8 Jahren
Makefile 9e0b69312b Fixed foreign import for linux. Modified .gitignore to ignore temp files and files in shared/. Added a Makefile for linux vor 7 Jahren
README.md c949ca2a5c Allow for named arguments for polymorphic procedures vor 8 Jahren
build.bat c6096f9205 Revert to demo.odin vor 8 Jahren
build.sh 6d880bc3bb Added static linking for macOS. Also fixed the build.sh. Thanks, vass :/ vor 7 Jahren

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

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