Let them fail: towards VM built-in behavior that falls back to the program

An important purpose of managed runtime environments like virtual machines is to provide built-in behavior to their programs, that is, behavior that cannot or may not be expressed in the program's language and is implemented inside the VM. For performance, stability, and security, such built-in behavior is typically rigorous, and if it deems its invocation to be erroneous, ill-suited, or just not quite right, it communicates this failure via exceptions at best. This implies that a vm's sphere of influence extends rather far into the realm of the program executed: at best, exceptions can be reacted to when built-in behavior fails, even though a program might be able to provide alternatives, improvements, or other ways of handling a failure. By reflecting on how built-in behavior works in a Smalltalk system, we argue that the sphere of influence of programs on VMS is extensible with regard to built-in behavior. For that, we suggest to let built-in behavior fail and let programs decide whether to raise exceptions, try again, or simply do nothing at all.