RX0503

Domain: Parsing

Error message

a retired builtin: %s (%s)

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

The story

You called grab, and rush told you that this builtin is not for programs anymore. Let's see why. Grab belonged to the central reader, the part of the engine that goes into heaps and fetches data on behalf of others. The ruling says only the fedex may use hands like that. A program should never reach into another thread's memory to take something. Instead, a program asks politely: it sends a message to the other thread, with two way if it wants an answer, and then it reads its own mailbox, where the answer arrives. That keeps every heap written and read by its owner, and everything that crosses goes through the delivery service. So grab retired, and rush says it by name, rather than saying not found. The fix is to replace the grab with a message to the thread that owns the data, and then read your own mailbox for the answer. If you had defined your own function called grab, yours would still win. Ask, don't take.

Text from the Rush engine's error catalogue.