# Sectr Fork This is a fork of the compiler intended for usage with [SectrPrototype](https://github.com/Ed94/SectrPrototype) There were additions made for quality of life reasons: * Added #region, #endregion directives support for editors (I may remove this...) * I added support for 'monlithic packages' or 'uniform-across-subdirectories packages'. It allows me to organize the main package with sub-directories. (Could be flag instead but making it a file flag works well) * Added the ability to debug using statements on structs (fields get dumped to the stack as ptr refs) * They show up as `struct_name::field_name` * Remove implicit assignments for container allocators in the Base and Core packages * I did not enjoy bug hunting a memory corruption because I mistakenly didn't properly initialize a core container with their designated initiatizer: new, make, or init. * Affects the following: * base:runtime/core_builtin.doin:`_reserve_dynamic_array`, `_resize_dynamic_array`, `_shrink_dynamic_array` * base:runtime/core_builtin_soa.odin:`make_soa_aligned`, `_reserve_soa` * base:runtime/default_temp_allocator_arena.odin:`arena_alloc` * base:runtime/dynamic_array_internal.odin:`__dynamic_array_reserve`, `__dynamic_array_shrink` * base:runtime/dynamic_map_internal.odin:`map_shrink_dynamic` * core:flags/internal_assignment.doin:`set_key_value` * core:mem/tracking_allocator.odin:`tracking_allocator_proc` * core:strings/intern.odin:`_intern_get_entry` ---
# The Odin Programming Language Odin is a general-purpose programming language with distinct typing, built for high performance, modern systems, and built-in data-oriented data types. The Odin Programming Language, the C alternative for the joy of programming. Website: [https://odin-lang.org/](https://odin-lang.org/) ```odin 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](https://odin-lang.org/docs/install) Instructions for downloading and installing the Odin compiler and libraries. #### [Nightly Builds](https://odin-lang.org/docs/nightly/) Get the latest nightly builds of Odin. ### Learning Odin #### [Overview of Odin](https://odin-lang.org/docs/overview) An overview of the Odin programming language. #### [Frequently Asked Questions (FAQ)](https://odin-lang.org/docs/faq) Answers to common questions about Odin. #### [Packages](https://pkg.odin-lang.org/) Documentation for all the official packages part of the [core](https://pkg.odin-lang.org/core/) and [vendor](https://pkg.odin-lang.org/vendor/) library collections. #### [Odin Documentation](https://odin-lang.org/docs/) Documentation for the Odin language itself. #### [Odin Discord](https://discord.gg/sVBPHEv) Get live support and talk with other Odin programmers on the Odin Discord. ### Articles #### [The Odin Blog](https://odin-lang.org/news/) The official blog of the Odin programming language, featuring announcements, news, and in-depth articles by the Odin team and guests. ## Warnings * The Odin compiler is still in development.