Compiling again for P17, with 0.18.0 and 0.17.2, the error messages point to `gcd` function in both cases: # 0.18.0 error message generating parameters for P17 stack trace: (most recent call last) twinprimes_ssozp17par5d3.nim(87) twinprimes_ssozp17par5d3.nim(65) genPGparameters lib/pure/math.nim(452) gcd lib/pure/math.nim(452, 15) Error: interpretation requires too many iteratio # 0.17.2 error message generating parameters for P17 stack trace: (most recent call last) twinprimes_ssozp17par5d3.nim(87) twinprimes_ssozp17par5d3.nim(65) genPGparameters lib/pure/math.nim(439) gcd lib/pure/math.nim(439, 15) Error: interpretation requires too many iterations
In both cases it points to the same line in `lib/pure/math.nim` (line 452 in 0.18.0 or 439 in 0.17.2): proc gcd*[T](x, y: T): T = ## Computes the greatest common divisor of ``x`` and ``y``. ## Note that for floats, the result cannot always be interpreted as ## "greatest decimal `z` such that ``z*N == x and z*M == y`` ## where N and M are positive integers." var (x,y) = (x,y) # <---------------- this line is pointed to in both cases while y != 0: x = x mod y swap x, y abs x Changing `var (x,y) = (x,y)` to `var x = x; var y = y` or changing variable names, in both cases, creates same results. **Why does this line cause this compiler iteration problem?**