Comment
Comment by kristoff_it
Point 2 is not really true for Zig, functions don't need to be specially marked to be callable at compile time. The comptime keyword is sometimes required to force compile time resolution (Zig currently doesn't eagerly try to resolve function calls at compile time), but in any compile-time-only context not even that is necessary, like so:
Similarly, point 3 is not really true either, what matters in Zig as well is the path that the function took during evaluation.
You are right about allocation not working during comptime evaluation at the moment, but this is not a final design decision, just the current status quo.