Odin Changes in Detail #
Dynamic Literals are now disallowed #
Hidden allocations in Odin are [dynamic]
arrays and map
literal declarations. These allocate memory without the user potentially knowing.
An example would be:
main :: proc() {
test: map[int]string = {
0 = "zero",
1 = "one",
2 = "two",
3 = "three",
}
}
Now this is not supported anymore and can only be turned on explicitly through the flag #+feature dynamic-literals
to have backwards compatibility when necessary.
map_entry
builtin #
A new builtin to help in cases where you want to lookup if something exists in a map, return a pointer to the value or insert something new + return the final pointer in the map
Here is an example of it being used in the core:strings
intern library. This is a call which has to be efficient as it may get called many times.
SDL3 Support #
If you didn’t catch it yet, SDL3 has been released.
Odin Vendor packages strive to support the most commonly used libraries, so of course we support SDL3 just like we did SDl2!
Here is the vendor package vendor:SDL3
Further Changes #
Catch up on all changes on the releases page
Odin 7 Day Jam #
Karl Zylinski has held a Game Jame in which the community had to create games with odin in 7 days!
Here are all the entries and the final winners listed on the itch.io page: https://itch.io/jam/odin-7-day-jam/results
Community Projects #
Odin C Bindings Generator #
Look there is a new C Bindings generator! This one does the popular approach which uses clang to output an ASST and then turns it into odin code.
https://github.com/karl-zylinski/odin-c-bindgen
Sokol Hot Reload Template #
Github: https://github.com/karl-zylinski/odin-sokol-hot-reload-template
QRCode Generator #
https://github.com/jon-lipstate/qrcode
Socials #
Nadako - Sokol Tutorials #
Nadako - SDL3 Tutorials #
Handle Based Arrays Blog #
https://zylinski.se/posts/handle-based-arrays/