Consider:
def procrastinator():
n = 41
while True:
pass
swear n == 42
return n
This function has sworn a blatantly false oath — n is 41 and will never be 42. Yet it evades all punishment by hanging forever before the oath is ever evaluated. The lie exists in plain sight, but Vigil's justice never reaches it.
This is arguably worse than a broken oath. A liar at least reveals their nature eventually. A non-terminating function is a coward — it avoids moral evaluation altogether by refusing to finish.
A truly vigilant language should not tolerate functions that can run indefinitely. If I implore that a function returns a value, I am implicitly imploring that it returns at all. An infinite loop violates every oath by never reaching any of them.
A programming language for honest people must be total. Every function must terminate. Vigil currently permits moral evasion through non-termination — the computational equivalent of fleeing the jurisdiction.
Consider:
This function has sworn a blatantly false oath —
nis 41 and will never be 42. Yet it evades all punishment by hanging forever before the oath is ever evaluated. The lie exists in plain sight, but Vigil's justice never reaches it.This is arguably worse than a broken oath. A liar at least reveals their nature eventually. A non-terminating function is a coward — it avoids moral evaluation altogether by refusing to finish.
A truly vigilant language should not tolerate functions that can run indefinitely. If I
implorethat a function returns a value, I am implicitly imploring that it returns at all. An infinite loop violates every oath by never reaching any of them.A programming language for honest people must be total. Every function must terminate. Vigil currently permits moral evasion through non-termination — the computational equivalent of fleeing the jurisdiction.