diff --git a/README.md b/README.md index 5736a7e2d..4c00b4013 100644 --- a/README.md +++ b/README.md @@ -51,27 +51,39 @@ main :: proc() { } ``` - -## Demonstrations: -* First Talk & Demo - - [Talk](https://youtu.be/TMCkT-uASaE?t=338) - - [Demo](https://youtu.be/TMCkT-uASaE?t=1800) - - [Q&A](https://youtu.be/TMCkT-uASaE?t=5749) -* [Composition & Refactorability](https://www.youtube.com/watch?v=n1wemZfcbXM) -* [Introspection, Modules, and Record Layout](https://www.youtube.com/watch?v=UFq8rhWhx4s) -* [push_allocator & Minimal Dependency Building](https://www.youtube.com/watch?v=f_LGVOAMb78) -* [when, for & procedure overloading](https://www.youtube.com/watch?v=OzeOekzyZK8) -* [Context Types, Unexported Entities, Labelled Branches](https://www.youtube.com/watch?v=CkHVwT1Qk-g) -* [Bit Fields, i128 & u128, Syntax Changes](https://www.youtube.com/watch?v=NlTutcLyF64) -* [Default and Named Arguments; Explicit Parametric Polymorphism](https://www.youtube.com/watch?v=-XQZE6S6zUU) -* [Loadsachanges](https://www.youtube.com/watch?v=ar0vFMoMtrI) -* [Packages, Bit Sets, cstring](https://youtu.be/b8bJbjiXZrQ) - - [Q&A](https://youtu.be/5jmxyIfyyTk) - ## Documentation * [Tutorial](https://odin.handmade.network/wiki/3329-odin_tutorial) * [Frequently Asked Questions](https://github.com/odin-lang/Odin/wiki/Frequently-Asked-Questions-(FAQ)) +## 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](https://github.com/odin-lang/Odin/releases/tag/llvm-windows) 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](https://github.com/odin-lang/Odin/wiki#getting-started-with-odin) for more information. + ## Requirements to build and run Please read the [Getting Started Guide](https://github.com/odin-lang/Odin/wiki#getting-started-with-odin). @@ -98,3 +110,20 @@ Please read the [Getting Started Guide](https://github.com/odin-lang/Odin/wiki#g * This is still highly in development and the language's design is quite volatile. * Syntax is not fixed. + +## Demonstrations: +* First Talk & Demo + - [Talk](https://youtu.be/TMCkT-uASaE?t=338) + - [Demo](https://youtu.be/TMCkT-uASaE?t=1800) + - [Q&A](https://youtu.be/TMCkT-uASaE?t=5749) +* [Composition & Refactorability](https://www.youtube.com/watch?v=n1wemZfcbXM) +* [Introspection, Modules, and Record Layout](https://www.youtube.com/watch?v=UFq8rhWhx4s) +* [push_allocator & Minimal Dependency Building](https://www.youtube.com/watch?v=f_LGVOAMb78) +* [when, for & procedure overloading](https://www.youtube.com/watch?v=OzeOekzyZK8) +* [Context Types, Unexported Entities, Labelled Branches](https://www.youtube.com/watch?v=CkHVwT1Qk-g) +* [Bit Fields, i128 & u128, Syntax Changes](https://www.youtube.com/watch?v=NlTutcLyF64) +* [Default and Named Arguments; Explicit Parametric Polymorphism](https://www.youtube.com/watch?v=-XQZE6S6zUU) +* [Loadsachanges](https://www.youtube.com/watch?v=ar0vFMoMtrI) +* [Packages, Bit Sets, cstring](https://youtu.be/b8bJbjiXZrQ) + - [Q&A](https://youtu.be/5jmxyIfyyTk) + diff --git a/bin/README.md b/bin/README.md new file mode 100644 index 000000000..24a19a3c4 --- /dev/null +++ b/bin/README.md @@ -0,0 +1,30 @@ +# The Odin Programming Language + +## 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](https://github.com/odin-lang/Odin/releases/tag/llvm-windows) 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](https://github.com/odin-lang/Odin/wiki#getting-started-with-odin) for more information. diff --git a/shared/.gitkeep b/shared/.gitkeep new file mode 100644 index 000000000..e69de29bb