I am following your RFC.
In my opinion, let variables are already "readonly" once they got assigned.
{.readonly.} pragma seems a little bit redundant. The problem here is that,
from the perspective of nim compiler, when to initialize let variables? While
some can be initialized in compile time in C, there are also some that must be
initialized in run time. Based on this, {.compileTime.} seems to be a solution,
but its effects is that variables are initialized in _each_ function they are
used.
Treatment of {.compileTime.} is problematic. A let variable marked as
{.compileTime.} means its content can be determined at compile time. So, they
are fully possible to be compiled into const data in C.
So, my suggestion is to polish the handling of {.compileTime.}.
Correct me if I am wrong.