Odin Wishlist
Updated as I actively want for something.
language
::for aliasing?field :: reallyLongName[i].fieldusingfor local aliasing?for _, i in stuff { using stuff[i]; field = 2 }- fix for
Cannot assign to an anonymous field 'color' in a structure literal (at the moment) - there shouldn't be an error in this code:
package main import "core:fmt" main :: proc() { labels := [2]string{"False", "True"} n := 1 m :: 1 fmt.println(labels[int(5 > n)]) //fmt.println(labels[int(5 > m)]) // error: Cannot cast '5 > m' as 'int' from 'untyped bool' } f :: proc{proc1, procgroup}should work- limited closures over stack variables:
package main import "core:fmt" main :: proc() { n := 1 f :: proc() { fmt.println(n) } f() }
compiler
- better support for compiling to separate object files and then linking them together. Right now a flag is needed to suppress the addition of a
mainlabel, and even with that flag various other runtime symbols get injected, so conflicts prevent the linking of two Odin object files. (A single Odin .o and C .o files can link.)
ecosystem
- highlightjs-style highlighting so that I can add it to this site (borrowed from odin-lang.org)
- a package directory (Odin-Libs wiki is a start)
- zig-style importing of C headers
- centos6 compiler releases for maximum binary portability
- RedHat OpenShift source-to-image support for odin microservices
- more horizontal alignment from odinfmt (and better treatment of >1 var to a type in parameters)
packages
documentation
- string handling cheatsheet ala this rust SO answer (added)
- custom allocators guide
- thorough examples for all core/vendor packages
- offline documentation in the style of godoc, perldoc
- books
- a
more comprehensive Overviewreference manual