
Jonathan Turkanis wrote:
Instead of replying point by point, let me summarize your message and reply in general.
1. My one sentence summary of your rationale was unfair
I think so, yes. To me, the undertone of that summary and other sentences suggested arrogance on my part. You wrote: "The requirements are X; I tried hard to satisfy X without compromising performance, but I couldn't; therefore, it can't be done." To me, especially the last 8 words imply that I think I have tried *every* technique imagineable. This implies that I know pretty much everything there is to know about C++ and associated techniques. I'm very far from claiming that.
2. If I object to part of your library I should offer a concrete proposal to fix it
Either that or prototypes of techniques of which I said I can't see how they will work. I said that because I have invested considerable time in discussing things that might come to mind when one wants to improve performance. I can't think of much else I can say in support of the current design performance-wise. So I thought it would be more productive if you or anyone else could make concrete proposals. Such a proposal would either send me back to the drawing board or I would need to argue convincingly why it doesn't work.
3. If I want to understand where the performance bottlenecks are, I should examine the code.
No, I didn't mean that in the generality your summary suggests. In *one* *specific* case I thought it is better if *you* (Jonathan) look at the code before I explain all the details in text. I did that because I *assumed* (maybe wrongly) that you want a very detailed description for which I really don't have the time at the moment.
I'm still not sure what part of my summary was wrong,
See above.
but I'm sorry I offended you.
Apology accepted.
What I would like to see in the rationale is a comparison of a small handful (2-5) of alternate implementation technique, either approaches taken by other libraries or approaches you tried yourself early in development, together with an explanation of why they fail to satisfy the requirements.
That's interesting. I was under the impression that exactly such a list of alternate implementation techniques would not satisfy you, because it would in no way show that the design I chose is the best performance-wise. And performance was your biggest concern, wasn't it?
I realize you do mention some other frameworks, but you don't sketch their design/implementation or show how they fail to satisfy the requirements. Furthermore, readers wishing to understand the performance limitations of your library should not have to be told to examine the code.
That was never my intention, see above.
You should provide a section giving a fairly detailed presentation of the implementation, explaining where the performance problems arise.
Ok, noted. Regards, -- Andreas Huber When replying by private email, please remove the words spam and trap from the address shown in the header.