Error message
In the message, %s marks a value that the engine fills in when it raises the error.
The story
A builtin showed up with no statement about what it does to the heap, and the engine refused to start. Here is the background. In the old days, a builtin just took values and returned a value. It could not touch the heap, so silence was honest. Now builtins can use the fedex's doors, which means they can write. And the moment writing is possible, saying nothing becomes a gap, because nobody knows whether this builtin may write or not. The engine will not guess. It could default the row to writes none, but a defaulted effect is an effect nobody declared, and in this design the declared reach is part of what a builtin is. Think of a contractor who starts work without a list of rooms he may enter: you would rather ask first. The message names the builtin. The fix is one line: add builtin.effect to its row, with the four words in order: what it reads, what it writes, which partition, and what it touches. The allowed words for each position are in effect.feml. Declare it, and the engine will start.
Text from the Rush engine's error catalogue.
