Skip to content

A language of moral conviction must be total #41

@CommanderTvis

Description

@CommanderTvis

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions