| ▲ | cryptonector 3 days ago | |||||||
Is each branch-free run of instructions an object (which in general will be smaller than "function" or "method" objects) that can be abstracted? How does one manage locality ("these objects are the text of this function")? Maybe one compromises and treats the text of a function as linear address space with small relative offsets. Of course, other issues will crop up. You can't treat code as an array, unless it's an array of the smallest word (bytes, say) even if the instructions are variable length. How do you construct all the pointer+capability values for the program's text statically? The linker would have to be able to do that... | ||||||||
| ▲ | suspended_state 2 days ago | parent [-] | |||||||
The linking stage could perhaps be performed at process launch by a privileged task? See this comment thread: https://news.ycombinator.com/item?id=46494183 Isn't a virtual ISA like an intermediate representation? It doesn't have to include static addresses, only symbolic references, which could be resolved at launch time. | ||||||||
| ||||||||