Adriaan van Os wrote:
Frank Heckenbach wrote:
- producing LLVM assembly http://llvm.org/docs/LangRef.html
That might be an option. However, the problems I see are (a) I'm not familiar with LLVM assembly (in contrast to C++), and I'm not sure anyone else here is, so it would take additional learning before one could get productive, and (b) it's, of course, low-level, so we'd have to reimplement things like the object-model, templates, exceptions etc., that C++ already has.
LLVM assembly is easy to learn (easier than C++). With regard to implementing object models, GPC has several object-modes and most of them are, as far I know, not compatible with C++. We don't want to implement for example the TP object model with C++ objects, do we ?
I would want to (if we go the converter to C++ route). GPC objects are not (and have never been) binary compatible with BP, and feature-wise, AFAICS, the C++ model is a strict superset of the BP model (and all other relevant models), with the probably necessary mapping of BP con-/destructors to plain methods, as I wrote.
I find LLVM assembly quite attractive, generic and well designed, distant from a moving API. I see a great future for LLVM. GCC looks more like an unstructured pile of macros. If a software project has a large bug database and successive releases only fix "serious regressions for primary targets", then something with that software project is fundamentally wrong (especially if the developers are hostile and aggressive on the subject on their mailing list).
I won't defend the GCC development model (I've been annoyed myself often enough), but I have to say that GCC is quite more than a pile of macros. The interface could be described as such (to a large extent), but internally there's quite a bit more going on, e.g. the various optimizers.
Frank