RX0031

Domain: Engine

Error message

a reference was offered a coordinate the %s does not own

In the message, %s marks a value that the engine fills in when it raises the error.

The story

Someone handed the engine an address and claimed it points to something. The engine checked, and nobody lives there. Let's talk about references. When a verb needs a container, it does not carry the container, it carries a coordinate into the DataHeap. But a coordinate is only a reference if it names a real resident. A number that looks like an address, but belongs to nobody, is just a pointer-shaped field with a word written on it. So the engine does not trust it. It hands the coordinate back to the population that would own it and searches. If that population never placed anything there, the reference is refused instead of stored. Why search rather than do arithmetic? Because arithmetic would accept any address in range and call it a tenant. There is one more case: a reference inside the ExecHeap must point to an earlier entry. Entries are claimed in order and never removed, so pointing backward only means no cycles, and no self-reference. It is like footnotes that may only cite earlier pages. The message names the population that does not own the coordinate. Use a coordinate that was actually handed out.

Text from the Rush engine's error catalogue.