Good job, I have some questions that maybe someone can/want to answer:

> The -d:release switch now does not disable runtime checks anymore

why? Is this to avoid the criticism of undefined behavior? does -d:danger do 
the same that previously release did?

> Implicit imports via --import: module in a config file are now restricted to 
> the main package.

What does that mean? Does something like 
    
    
    path = "$projectDir/../../OtherProject"
    import = OtherProject/Blah
    
    
    Run

still work?

> With the exception of uint and uint64, conversion to unsigned types are now 
> range checked during runtime.

Do you mean conversion between different sizes like in int32 -> uint8, or int8 
-> uint8 ?

> const x = uint32(-1) now gives a compile time error instead of being 
> equivalent to const x = 0xFFFFFFFF'u32.

This was really useful, shall we rely now on cast[uint32](-1) ?

> procs string.add(int) and string.add(float) which implicitly convert ints and 
> floats to string have been deprecated. Use string.addInt(int) and 
> string.addFloat(float) instead.

What's the reason behind this decision? This looks redundant to me, sure there 
must be an explanation on why is needed. Can't the compiler figure out when a 
variable/literal is of type int/float?

I think that's all.

Reply via email to