Strict provenance APIs are already useful even without considering CHERI. I don't understand how using them to establish CHERI support makes things any worse for your targets. They are committing to less than what the existing ptr-to-usize casts are committing to.
Are you suggesting that the strict provenance functions should not use usize
but some uaddr
type? That is the only way I can see to support targets like yours. But then we are again in the realm of deeply invasive changes to the ecosystem. Or if some approach pops up where uaddr
can be added in a future-compatible way then that approach can also be used to migrate the strict provenance APIs to uaddr
later.
I don't think it is reasonable to expect the entire Rust ecosystem to make a distinction between uaddr
and usize
-- the cost is too high and the benefit too small. So given that, using usize
in these APIs for now does not make it any harder to come up with a way to have these two types but only differentiate them on some targets.