Decided to make this subspace for the Odin Programming Language, in case anybody wants to discuss it. Odin is a systems programming language influenced by C, Pascal, and Golang, with an emphasis on manual memory management via allocators, and zero automatic-allocation by the language features (with only exception being map literals, which must be toggled on).

Some of my personal favorite features are the following:

Downsides:

Special mention:

Visit the website below for an overview of the language:

Odin Programming Language Website

A language server for Odin can be found at the link below, and is automatically downloaded by the VS Code and Zed Odin extensions:

Odin Language Server (OLS)

Please note that OLS is very buggy, so it kinda sucks. But there's nothing better. If you can contribute to OLS or make a fork of it, that would help everyone that uses Odin.

๐Ÿ“Œ

Posted in: s/Odin

๐Ÿš€ clseibold [mod, ๐Ÿ›‚ Code of Conduct rule 1 violations]

2025-05-20 ยท 1 year ago ยท ๐Ÿ‘ lucas, LucasMW, robert, aks

3 Comments โ†“

๐ŸฆŽ aks ยท 2025-05-24 at 16:56:

Awesome, love Odin.

๐Ÿง the_mantelman ยท 2025-05-27 at 08:06:

Him. What is your experience with regards to binary size or static linking?

๐Ÿš€ clseibold [OP/mod, ๐Ÿ›‚] ยท 2025-05-27 at 14:09:

@the_mantelman Odin has a very small "runtime" that has no GC or other fancy stuff (no builtin coroutines or closures), and it uses llvm in the backend, so the binary size should, afaik, be comparable to something like clang, and also comparable to zig.

The "runtime" is really just a set of builtin functions and types that are integral to both the compiler and language. It's all included in the "base:runtime" package.

The only other major runtime thing is the context, which is this struct that gets passed to all Odin functions by default, and it stores some info like the default allocator to use, etc. It's explained better in the Odin Overview.

The more parametric polymorph functions you use, though, the bigger your binary size (since the compiler duplicates the function for each distinct parameter typings that are used), so be aware of that. It shouldn't increase it *that* much more though unless you're using a crazy amount of them, afaik.

I have no experience in static linking with Odin. I'm sure there's a way to do it, though, I just wouldn't know what that is. Sorry I can't be more help on that.