Thanks, Druck. As I said I don’t have the wherewithal to quantify this sort of thing. I’m not sure it needs to be a bodge, though. The API Layer as I describe it, or something very close to it, already exists; it’s just that there is only one instance of it, and it’s not defined as such. Creating a new instance of it for each application would resolve many compatibility issues, such as the CSD problem, but I couldn’t quantify the issues it would not resolve (those that would need pre or post filtering; ie bodging).
I accept your view that we should not be writing software which doesn’t do things properly. But I think creating a new instance of the environment that supports an application for each application is doing it properly.
In my view, the real issue, the reason for contemplating this, is that multi-core hardware is going to be available in the foreseeable future, and if RO is to progress, it will have to be developed to take advantage of that new hardware. In doing so, it will have to maintain backwards compatibility for old software for some time. This is, I think, one way of doing it, but if this solution is too complex, a different solution should be sought.
Like the one just proposed by bhtooefr. Would that allow RO to run on more than one core?