Re:Zig, Skia, Clojure, Geometry and the Japanese TV Show: IC...
by flohofwoe on Thursday July 15, 2021 @06:55PM
(#27851066)
IMHO better than operator overloading (which opens the gates to hell) would be builtin vector and matrix types like in shading languages. Currently Zig has a vector type builtin (search for @Vector and/or std.meta.Vector), which supports the "simple" operations (addition, subtraction etc...), so it's halfway there, but no swizzle, and no matrix types.
[ Parent
| on HN ]
Re:Zig, Skia, Clojure, Geometry and the Japanese TV Show: IC...
by Hoppetosse on Thursday July 15, 2021 @07:22PM
(#27851244)
The @Vector provided is actually a reference to SIMD vectors and there has been discussion to rename it to something that reflects this more clearly.
Re:Zig, Skia, Clojure, Geometry and the Japanese TV Show: IC...
by flohofwoe on Friday July 16, 2021 @06:10AM
(#27854672)
I would love to see Clang's ext_vector_type extension features in Zig, it lets you write code like GLSL, including easy swizzling. Add the same thing for matrix types, and the the feature would be complete, no need for operator overloading:
https://www.godbolt.org/z/zWGfcY5a4
Whether this code translates to SIMD or scalar operations under the hood should depend on the target platform and compiler options.