[dmd-internals] Unterminated loops in ctfe

Daniel Murphy via dmd-internals dmd-internals at puremagic.com
Sat Feb 27 17:12:38 PST 2016


Your OS should be protecting you from this.  You could try manually
setting a memory limit on dmd:

http://unix.stackexchange.com/questions/44985/limit-memory-usage-for-a-single-linux-process

On Sun, Feb 28, 2016 at 6:08 AM, Lass Safin via dmd-internals
<dmd-internals at puremagic.com> wrote:
> Currently, when a function which has an infinite loop gets run at
> compile-time, dmd keeps acquiring more and more resources, eventually
> leading to X11 (I uss Linux) freezing and me having to force-close it and
> then restart it.
>
> A solution to this problem is needed. It's simply ridiculous that I have to
> restart X11 anytime I make such a mistake. Perhaps something like a limit to
> the number of iterations needs to be implemented?
>
> Example of unterminated loop in ctfe:
> int func() {
>     while(true) {}
>     return 2;
> }
>
> template t() {
>     enum int i = func;
> }
>
> Thoughts?
> _______________________________________________
> dmd-internals mailing list
> dmd-internals at puremagic.com
> http://lists.puremagic.com/mailman/listinfo/dmd-internals


More information about the dmd-internals mailing list