On 7/18/2010 5:56 PM, OvermindDL1 wrote: > Haskall is also something good to model, it is kind of like the above, > and like the above you can think of both as like a meta-programming > language that is mostly executed at compile-time to generate very > efficient runtime code. I do that with the toy language I created > (list-like syntax and power, but no shared state and some other > changes), it is not executed procedurally, but is rather executed at > compile-time, which then generates LLVM code based on what it > generated, which is then optimized by LLVM and JIT'ed.
Sounds intriguing. I'd have to get my hands in it to really grok that, though. > Lisp style > macro's make that so easy to do as well. So I'm told. ;-) > You might also look at D, its template support is vastly more powerful > then C++'s while retaining the same feel <snip> Ha, yes I know quite a bit about D. Little known fact: I regularly attended the weekly BS sessions with Walter Bright, Andrei Alexandrescu and others to design D2 (although I mostly just sat and listened). > I always kind of thought of playing around with that, using Clang to > create a C++D language Dear god, why? If you prefer D, then by all means use it! :-) > And the one feature that > would be nice to bring to C++ that I have not mentioned yet, are > mixins[1]. <snip> Grumble. Mixins are about as horrible as the C preprocessor. No, more so because they're more powerful, and equally dangerous. If it's your goal to manipulate /code/, why manipulate /strings/? Isn't the Lisp way better? I'd rather manipulate syntax trees than hack together some Frankenstein monster by building a string at compile time (!!!) and barfing it into some arbitrary context. Sorry, did that make me sound opinionated? I get the impression that even Walter and Andrei have misgivings about mixins. > That would be such a fascinating idea to carry out, C++ needs to be > extended with such new constructs, it needs full compile-time > reflection Ah, here I agree. But without the ability to traverse and manipulate the AST at compile time, reflection can only get you so far. -- Eric Niebler BoostPro Computing http://www.boostpro.com _______________________________________________ proto mailing list [email protected] http://lists.boost.org/mailman/listinfo.cgi/proto
