Compile time function execution...
Joe
Joe_member at pathlink.com
Sat Feb 17 13:23:06 PST 2007
Walter Bright wrote:
> janderson wrote:
>> Walter Bright wrote:
>>> Right now, the compiler will fail if the compile time execution
>>> results in infinite recursion or an infinite loop. I'll have to
>>> figure out some way to eventually deal with this.
>>
>> Maybe you could allow the user to specify stack size and maximum
>> iteration per loop/recursion function to the compiler as flags (with
>> some defaults). This way the user can up the size if they really
>> need it. This would make it a platform thing. That way a D compiler
>> could still be made for less powerful systems.
>
> Whether you tell it to fail at a smaller limit, or it fails by itself at
> a smaller limit, doesn't make any difference as to whether it runs on a
> less powerful system or not <g>.
>
> The C standard has these "minimum translation limits" for all kinds of
> things - number of lines, chars in a string, expression nesting level,
> etc. It's all kind of bogus, hearkening back to primitive compilers that
> actually used fixed array sizes internally (Brand X,
> who-shall-not-be-named, was notorious for exceeding internal table
> limits, much to the delight of Zortech's sales staff). The right way to
> build a compiler is it either runs out of stack or memory, and that's
> the only limit.
>
> If your system is too primitive to run the compiler, you use a cross
> compiler running on a more powerful machine.
>
> I have thought of just putting a timer in the interpreter - if it runs
> for more than a minute, assume things have gone terribly awry and quit
> with a message.
This is exactly pertaining to compiler specific issues, but paralleling
the above, why have "The total size of a static array cannot exceed
16Mb. A dynamic array should be used instead for such large arrays." in
the Array spec. Isn't that kind of similar? 16Mb of static array data
is a lot no doubt, but why put an arbitrary limit on it. Unless it's a
DMD specific thing.
Joe
More information about the Digitalmars-d
mailing list