Remix.run Logo
chaz72 an hour ago

Are you saying that you think that Zig does not produce identical outcomes for comptime code regardless of when the code runs? What do you mean?

weinzierl 10 minutes ago | parent | next [-]

Yes. For example in Rust it took a long time for floating point operations to be available at compile time and even now only a subset is. The reason is that a lot of energy and thought went into the issue of producing identical output (and what identical precisely means ) even when compilation is on a different processor than where the target runs.

As far as I know this is not a concern for Zig comptime.

bruckie an hour ago | parent | prev [-]

I assumed that it meant that if you ran code at compile time or at runtime, the results should be exactly the same given the same inputs.

chaz72 42 minutes ago | parent [-]

And they believe Zig comptime wouldn’t do that? For the same inputs? I’d love an example.

vlovich123 a minute ago | parent | next [-]

Traditional stuff in this space are:

* floating point differences between the build machine and the target. By far the most common

* endiannes - code assumes little median runs on big endian

There’s other more subtle issues that can crop up but those are the big two.

5 minutes ago | parent | prev | next [-]
[deleted]
weinzierl 5 minutes ago | parent | prev [-]

sin(x) can produce different results at comptime and runtime. In Rust there is no sin(x) at comptime for precisely this reason.