What accepted proposal is everyone most excited about?

One wish thread was fun but theres a lot of stuff in the pipeline especially if u browse the GitHub pile.

Look interesting to me making use of r32 , r64 when you don’t need deterministic behavior but speed .

6 Likes

in no specific order :
Proposal: add .len field to vector values #17886
add builtins: @rotl and @rotr #7183
Fixed-point number support of some kind in the language #1974
Builtin Matrix type #4960
Proposal: add @memCast for a class of safe pointer casts #23935
allow ranges when switching on enums #15556
Proposal: restricted function types #23367
add vec2, vec3, vec4 types to the language #32032

15 Likes

Proposal: restricted function types · Issue #23367 · ziglang/zig
Proposal: Change extern modifier for structs to mean “guaranteed layout”, not “for use with C”. · Issue #6700 · ziglang/zig
Proposal: testing @compileError · Issue #513 · ziglang/zig
add @backingInt and @fromBackingInt for converting between packed structs, packed unions, enums and their integer representations · Issue #18882 · ziglang/zig
#32029 - rename @field to @member for clarity - ziglang/zig - Codeberg.org
exempt known-finite operations (for loops) from eval branch quota · Issue #16983 · ziglang/zig
require parentheses sometimes to disambiguate confusing operator precedence · Issue #114 · ziglang/zig

8 Likes

As a hobbyist whose development is often centered around game development, most of my “wish-list” for the language is likewise related to better support and ergonomics for that.

5 Likes

support torrenting for fetching and serving packages · Issue #23236 · ziglang/zig · GitHub
Proposal: restricted function types · Issue #23367 · ziglang/zig · GitHub
safe recursion · Issue #1006 · ziglang/zig · GitHub
enhance the fuzzing algorithm to be competitive with other mainstream fuzzers · Issue #20804 · ziglang/zig · GitHub
remove @TypeOf and anytype; introduce |T| syntax #32099

Edit: I couldn’t find the proposal for it, but compiler state serialization is also something I’m excited about. It would enable incremental rebuilds without the need for --watch by caching the entire state of the compiler after a build.

4 Likes

If had to pick only one, it would probably be debug safety feature: runtime undefined value detection · Issue #211 · ziglang/zig · GitHub, kind of an odd one, but I think this would make debugging a lot easier in the scenarios where it does apply. It is always quite confusing to debug undefined value errors, since they often result in odd behavior instead of straight up crashing.

8 Likes

Ghost’s post is God Tier and Andrew’s title change gave me a chuckle

Anyway, as for an answer to the thread, I personally haven’t perused the proposals as I’m really just a beginner and so I don’t know what to want that Zig doesn’t have, but I have been enjoying reading the answers from others

3 Likes

Those are mainly motivated by my embedded work:

The fixed-point numbers would be helpful for making fast DSP algorithms.

I would also like to see the new stackless coroutine IO implementations as I believe it could be the foundation upon to build a 100% zig-base RTOS (This also might be related to Builtin function to tell you the maximum stack size of a given function · Issue #157 · ziglang/zig · GitHub).

With the linker rework that @mlugg is doing, I wonder if there’s some consideration for supporting a .zon based linker configuration, as mentioned in this 2019 issue: Linker scripts must die. It feels like this might be related to those issue: Proposal: semantics for address spaces · Issue #15232 · ziglang/zig · GitHub and enum-backed address spaces · Issue #21870 · ziglang/zig · GitHub.

For tooling, I’m pretty excited about the fuzzer.
I can’t find the issue, but having out-of-the-box IO fuzzing would be game changing for making program reliable.

4 Likes

Probably this one Extend @Vector for SPIR-V

Or really any work done around SPIR-V.

Restricted function pointers, too, if it can remove the performance penalty of V-table interfaces then that will be a massive improvement to me using the language.

An honorable mention for a proposal that’s already implemented is the removal of using namespace.

7 Likes

anytype replacement |T| !

6 Likes

It wasn’t the top of the list, but PR #30160 landed yesterday on master which closes #114, so progress is being made!

1 Like

https://codeberg.org/ziglang/zig/issues/37373 for sure, this has been annoying me so much the last couple of months, that I might as well just implement it myself