Без опису

gingerBill ae4a378294 Merge pull request #1094 from graphitemaster/master 4 роки тому
.github 4812006eb8 Update ci.yml 4 роки тому
bin 20f7e61363 Revert LLVM-C.lib 4 роки тому
ci e6adfd8054 Update create_nightly_json.py 4 роки тому
core 791d7f764b cleanup 4 роки тому
examples 01a888fced Update import path 4 роки тому
misc efdee0dafb Remove `bit_field` type from Odin (keyword and dead runtime code still exists) 4 роки тому
shared cc14180e9d Update README.md 6 роки тому
src 36a6805b7c Update doc format for multi-pointers 4 роки тому
tools 286cb60c45 Minor changes to `tools/odinfmt` 4 роки тому
vendor c8378fce95 Add library collection `vendor` 4 роки тому
.gitattributes 3a30f9fd71 Create .gitattributes 5 роки тому
.gitignore 4f1fb73f32 Added vs code to git ignore 4 роки тому
LICENSE 1cd3b693ae Update LICENSE 4 роки тому
LLVM-C.dll 2180f4a475 Basic work on obj generation 5 роки тому
Makefile 33239324b8 Improve the C++ to be more correct for clang on Windows, still requiring the same disabled warnings as on *nix 4 роки тому
PROPOSAL-PROCESS.md 44cfa3484f Fix typo 4 роки тому
README.md 6fa5eb9e1f Update README.md 4 роки тому
build.bat e722af7f61 Remove unneeded disabled warnings from build.bat 4 роки тому
default.nix 5923470e35 Add Nix derivation 4 роки тому

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 creating an alternative to 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 installing 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/amd64 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)
    • 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/amd64
    • MSVC 2010 installed (C++11 support)
    • Requires MSVC's link.exe as the linker
      • run vcvarsall.bat to setup the path
  • MacOS

    • x86-64/amd64
    • LLVM explicitly installed (brew install llvm)
    • XCode installed (for the linker)
  • GNU/Linux

    • x86-64/amd64
    • Build tools (ld)
    • LLVM installed
    • Clang installed (temporary - this is Calling the linker for now)
  • FreeBSD

    • x86-64/amd64
    • Build tools (ld)
    • LLVM installed
    • Clang installed (temporary - this is Calling the linker for now)

Other platforms may be supported but are experimental for the time being.

Warnings

  • The Odin compiler is still in development.

Demonstrations: