Violating Rules to Enforce Rules
I have heard that the law does not actually permit the police officer to exceed the speed limit in order to enforce the speed limit.
An officer told me that many years ago and it may not be so now.
One who builds and repairs walls must generally go out side the walls to do the job.
Capability platforms built on conventional CPUs must manipulate the bits which are inviolable to the programs that ‘own’ the capabilities.
Capability hardware claims to do all of this so the no software need do so.
That division of labor may be counter to the dictum of reserving hardware functions for those tasks that require performance.
Also as hard as it is to review code, it is even harder to review hardware.
Garbage collected languages generally require a runtime that violates rules that are imposed on the compiled code.
Currently such runtimes are written in C and may be somewhat portable.
There is a surprising variety of GC strategies and the rules that they violate are diverse.
I think that there is today a set of unwritten rules, variously understood, for what programs such as GCs, follow and get away with.
They are certainly not conformant C.
They are routines that know that a pointer has 64 bits, for instance, and probably compare pointers against memory barriers.
This is a general bottom turtle issue.