On Monday, 31 March 2014 at 14:46:32 UTC, Andrei Alexandrescu
wrote:
It's quite obvious. The D codebase is smaller and simpler than
clang pp's and can be taken many places; the next thing I'll
work on is multithreaded preprocessing that shares already
opened files. One thing that is self-evident but the article
could have stressed is that open-sourcing warp is the
beginning, not the end of its lifecycle. There's a lot of
improvements that are within easy reach for warp, and are
easier to realize than for clang.
Andrei
We also have the ability to present it in a different use-case,
pre-processing every header in one invocation, allowing warp to
do some optimizations that Clang and GCC won't do, such as
unconditional pre-processing (stripping comments and things such
as #if 0 / #if 1, or conditions that are unconditionally met by
things defined within the header, typically used to
disable/enable certain code) because they would be of very
limited use to GCC and Clang, which are typically invoked once
for every source file. Warp could also offer the ability to pass
certain #define's that are known to never be #undef'd by the
source code (such as compiler capabilities / version
identifications), allowing for more extensive unconditional
pre-processing.