Pure-capability ABI definition
ruben-arm opened this issue · 5 comments
It might be useful to define/describe ABI (Pure-capability in particular) aspects in more details in the programming guide or a separate document.
Could you clarify what you mean by ABI in this context? We already have https://github.com/CTSRD-CHERI/cheri-elf-psabi, and Arm has their aa{dwarf,elf,pcs}64-morello specs, which are generally what people regard as ABI, yet are implementation-specific details that you don't necessarily have to stick to so long as you provide the same software-visible model and guarantees.
Could you clarify what you mean by ABI in this context?
That's exactly the definition/description I'm suggesting would be useful to have :)
The document defines "CHERI C/C++" and "Pure-capability machine code", however I believe it doesn't tell much about ABI aspects. I'd like to better understand how these 2 concepts and Pure-capability ABI (in particular) are connected in terms of this document (if there is a direct connection)
The C/C++ guide is a description of the model, programmer-visible interface and a high-level overview of what aspects of ABI-like things need to be considered (a paragraph of two at the start of chapter 3). The psABI etc are technical descriptions of concrete implementations of the model.
I think my thoughts on this suggestion are a bit different: I don't think we want to define what the ABI is specifically in the CHERI C/C++ document, but that in our high-level list of explained concepts, we should include specific mention of compilation to pure-capability ABIs.