
On Sep 30, 2004, at 7:44 AM, Stefan Seefeld wrote:
From: David Abrahams [mailto:dave@boost-consulting.com] Sent: September 30, 2004 08:21
Stefan has recently been trying to get compile-time constants from sizeof() into the parser. As he knows, this is going to mean handling such things as template instantiation and overload resolution. This is a great opportunity to learn more about how C++ works and to create a compiler platform that's actually usable by C++ programmers for prototyping new features -- one of the major obstacles in C++ standardization is that the source for the only open-source C++ compiler has a steep learning curve.
I should mention that the design of the C++ parser allows to manipulate the generated parse tree in-memory and write it out into a file again in a non-lossy way, i.e. it could indeed be used as a source-to-source compiler.
That's an excellent goal, and you have me interested. It's a huge task, requiring a great deal of expertise (collectively, we have that) and will require a lot of time. I think it would be wise to attempt to isolate some of the interesting-but-disjoint problems early, so we can put out a "request for libraries" of some sort. Things that come to mind quickly: a unification algorithm (for template instantiation/partial ordering), a tree manipulation/rewriting library (for AST transformations), and a flexible symbol table library. Doug