Programming Language for Games, part 3

Walter Bright via Digitalmars-d digitalmars-d at puremagic.com
Sat Nov 1 13:12:00 PDT 2014


On 11/1/2014 4:31 AM, bearophile wrote:
> His language seems to disallow comparisons of different types:
>
> void main() {
>      int x = 10;
>      assert(x == 10.0); // Refused.
> }

More than that, he disallows mixing different integer types, even if no 
truncation would occur.


> I like the part about compile-time tests for printf:
> http://youtu.be/UTqZNujQOlA?t=38m6s

Unnecessary with D because writeln checks it all. Even so, if printf were a 
template function, D can also check these things at compile time.


> The same strategy is used to validate game data statically:
> http://youtu.be/UTqZNujQOlA?t=55m12s

D allows extensive use of compile time validation.


> He writes a function that is called to verify at compile-time the arguments of
> another function. This does the same I am asking for a "static precondition",
> but it has some disadvantages and advantages. One advantage is that the testing
> function doesn't need to be in the same module as the function, unlike static
> enums. So you can have the function compiled (separated compilation). Perhaps
> it's time for DIP.

D can run arbitrary functions at compile time even if they are in different files.



More information about the Digitalmars-d mailing list