To quote myself from above:
Having lang items is precisely the point I've been making. We already have an informal and unstable interface between these constituent parts because these are separate pieces of code that need to interact with each other in well defined ways.
As an aside, the lang items related to memory allocation would hopefully go away once the global/system allocator APIs are flashed out. I'd consider them mostly part of the runtime whereas abstractions such as Box
that rely on them are part of the std
component. If I develop a new OS and want to support Rust, I would need to implement the runtime
component for my new OS but the std
component providing the Box
abstraction should work out of the box (excuse the pun..)