|
Boost : |
From: Chris Lattner (clattner_at_[hidden])
Date: 2007-09-02 13:43:03
>>> 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" and "highest efficiency" are non-goals of LLVM and the
clang front-end in general. 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.
Again, this does not mean that we avoid templates, and it doesn't
mean we have no templated interfaces :). 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.
-Chris
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk