A more generous interpretation is that he meant they need to *move* more electrons...which is more or less true. AI is limited by electrical power generation at this point.
November 19, 2025 at 3:56 PM
A more generous interpretation is that he meant they need to *move* more electrons...which is more or less true. AI is limited by electrical power generation at this point.
Indexing an array and the array length are two slightly different cases IMO. In the first, obviously there is a dynamic check (and Virgil allows any-sized or any-signed integers as an index). In the later, the length being unsigned encodes an invariant useful to other code.
November 13, 2025 at 6:52 PM
Indexing an array and the array length are two slightly different cases IMO. In the first, obviously there is a dynamic check (and Virgil allows any-sized or any-signed integers as an index). In the later, the length being unsigned encodes an invariant useful to other code.
The Virgil compiler interprets its SSA representation directly, as compile-time initialization allows the full language--a simplification after two generations of customized interpreters. It does basically what Mike wrote, except gotos assign the values of phis instead of looking them up.
November 13, 2025 at 1:32 PM
The Virgil compiler interprets its SSA representation directly, as compile-time initialization allows the full language--a simplification after two generations of customized interpreters. It does basically what Mike wrote, except gotos assign the values of phis instead of looking them up.
Numeric types are actually pretty tricky to get right in language design. FWIW, Virgil defines array lengths to be 32-bit signed integers, like Java. Yet array and range indexing is overloaded to allow any integer type as an index. github.com/titzer/virgi...
Numeric types are actually pretty tricky to get right in language design. FWIW, Virgil defines array lengths to be 32-bit signed integers, like Java. Yet array and range indexing is overloaded to allow any integer type as an index. github.com/titzer/virgi...
Not sure I buy this. One nice principle is "make invalid states unrepresentable" and unsigned types are one mechanism for that.
The irony is that up until C23, overflow of signed integers was UB, and now it's defined to wrap. So this stuff about "compiler will catch errors" is tripe.
November 12, 2025 at 3:24 PM
Not sure I buy this. One nice principle is "make invalid states unrepresentable" and unsigned types are one mechanism for that.
The irony is that up until C23, overflow of signed integers was UB, and now it's defined to wrap. So this stuff about "compiler will catch errors" is tripe.