The segment keeper pattern in Keykos allows a program to produce a rather complete illusion of a pre-existing segment, while the segment is indeed created only as some other program comes to the point of accessing the segment. This supports copy-on-write, lazy evaluation and various other tricks.

Alas it was found necessary to add a feature to the segment key called the NoCall bit. The holder of a segment key can set this bit, and if it is set the illusion is ruined for the holder is then trapped upon touching an undefined address. The segment keeper gets no signal.

It was necessary to add this bit for sometimes one must arrange that load instructions of domain programs have no effect on anything but the state of the domain. This occurs when a segment key is submitted to a factory via the builder’s key, to serve as a factory component. It the factory yield were to have access to a segment key from the builder without the NoCall bit being set, the factory yield could signal the builder by means of referencing that segment, contrary to confinement rules. Another use of the NoCall bit is for code that must remain prompt as it accesses the segment.

Ideas of relative promptness might alleviate this conflict, but that is getting much too far ahead of requirements.