Нет описания

gingerBill ebe7fc23a5 Merge pull request #400 from asmoaesl/patch-1 6 лет назад
.github 9f039c323e Update FUNDING.yml 6 лет назад
bin cc14180e9d Update README.md 6 лет назад
core b38a8cfb12 Move internal 128-bit stuff to a windows specific file 6 лет назад
examples c40acd008e Add i128/u128 support for bit sets 6 лет назад
misc f96fbc94c8 v0.9.0 Release 6 лет назад
shared cc14180e9d Update README.md 6 лет назад
src fd62959bf4 Fix procedure constant declaration value type assignment checking 6 лет назад
.gitignore 12c810f85d Add a file-, console- and multi-logger 6 лет назад
.travis.yml 24c43d33bb Export LLVM path on macOS (CI) 6 лет назад
LICENSE 9a8759efef Polymorphic type specialization for procedures 8 лет назад
Makefile 7343f0c7ff Fix recursive variable in makefile on macOS 6 лет назад
PROPOSAL-PROCESS.md 133f88406f The Proposal Process 6 лет назад
README.md 4d40f564ef Correct two typos 6 лет назад
appveyor.yml 0185b43c2f Create CI files 6 лет назад
build.bat dd9113786c Remove -keep-temp-files from the build.bat 6 лет назад
build.sh efe4b71bae Fix build.sh 7 лет назад
build_ci.bat c9602953aa last fixes to bats and README 6 лет назад

README.md

Odin logo
A fast, concise, readable, pragmatic and open sourced programming language.


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

Website: https://odin-lang.org/

package main

import "core:fmt"

main :: proc() {
	program := "+ + * 😃 - /";
	accumulator := 0;

	for token in program {
		switch token {
		case '+': accumulator += 1;
		case '-': accumulator -= 1;
		case '*': accumulator *= 2;
		case '/': accumulator /= 2;
		case '😃': accumulator *= accumulator;
		case: // Ignore everything else
		}
	}

	fmt.printf("The program \"%s\" calculates the value %d\n",
	           program, accumulator);
}

Documentation

Getting Started

Instructions for downloading and install the Odin compiler and libraries.

Learning Odin

Overview of Odin

An overview of the Odin programming language.

Frequently Asked Questions (FAQ)

Answers to common questions about Odin.

The Odin Wiki

A wiki maintained by the Odin community.

Odin Discord

Get live support and talk with other odiners on the Odin Discord.

References

Language Specification

The official Odin Language specification.

Articles

The Odin Blog

The official blog of the Odin programming language, featuring announcements, news, and in-depth articles by the Odin team and guests.

Setup

Odin only supports x86-64 at the moment (64-bit), relies on LLVM for code generation and an external linker.

In addition, the following platform-specific steps are necessary:

  • Windows

    • Have Visual Studio installed (MSVC 2010 or later, for the linker)
    • Have a copy of opt.exe and llc.exe in Odin/bin. Pre-built Windows binaries can be found here and must be explicitly copied
    • Open a valid command prompt:
      • Basic: run the x64 Native Tools Command Prompt for VS2017 shortcut bundled with VS 2017, or
      • Advanced: run vcvarsall.bat x64 from a blank cmd session
  • MacOS

    • Have LLVM explicitly installed (brew install llvm)
    • Have XCode installed (version X.X or later, for linking)
    • Make sure the LLVM binaries and the linker are added to your $PATH environmental variable
  • GNU/Linux

    • Have LLVM installed (opt/llc)
    • Have Clang installed (version X.X or later, for linking)
    • Make sure the LLVM binaries and the linker are added to your $PATH environmental variable

Then build the compiler by calling build.bat (Windows) or make (Linux/MacOS). This will automatically run the demo program if successful.

Notes for Linux:: The compiler currently relies on the core and shared library collection being relative to the compiler executable. Installing the compiler in the usual sense (to /usr/local/bin or similar) is therefore not as straight forward as you need to make sure the mentioned libraries are available. As a result, it is recommended to simply explicitly invoke the compiler with /path/to/odin in your preferred build system, or add /path/to/odin to $PATH.

Please read the Getting Started Guide for more information.

Requirements to build and run

Please read the Getting Started Guide.

  • Windows

    • x86-64
    • MSVC 2010 installed (C++11 support)
    • LLVM binaries for opt.exe, llc.exe, and lld-link.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.

Demonstrations: