
on Sun Sep 02 2007, Chris Lattner <clattner-AT-apple.com> wrote:
You're serious? It's meaningless to lex UTF-32?
It's not meaningless, but templatizing the entire lexer (which includes the preprocessor) is not necessarily the best way to achieve this.
Granted. It was just the first example that popped into my head. My point was simply that, if you're interested in creating a flexible toolkit out of which people can build systems with the highest efficiency, static polymorphism in its interfaces is a virtual (no pun intended) necessity.
I actually completely agree with you. :)
The only (potentially unpopular on this list) issue is that "highest flexibility"
I only said "flexible."
and "highest efficiency" are non-goals of LLVM and the clang front-end in general.
Oh, I got a different impression from watching the video.
Instead, we aim for "high flexibility" and "high efficiency", which sometimes means that we make tradeoffs that benefit other pragmatic goals like "reasonable compilation time", "reasonable code size", etc.
Of course.
Again, this does not mean that we avoid templates, and it doesn't mean we have no templated interfaces :).
Oh, I got a different impression from earlier messages in this thread.
It just means that we will not templatize large amounts of code to get a 0.0001% speedup or to gain flexibility in a theoretical case that no one envisions happening.
I wouldn't do that either. -- Dave Abrahams Boost Consulting http://www.boost-consulting.com The Astoria Seminar ==> http://www.astoriaseminar.com