On Sat, 5 Mar 2005, Waldek Hebisch wrote: > GPC uses backend data structure when possible. I see no reason to > duplicate backend functionality (Ada front is written in Ada, so they > _had to_ duplicate a lot of infrastructure). We can hide (and are doing > that now) most differences in macros.
Front end structures - as used by Ada, gfortran and gcjx - can be tailored to representing accurately the semantics of the source program as required by the language specification. Whereas trees are now tailored to code generation with semantics for GENERIC/GIMPLE which are in the process of being documented and should not depend on the source language. The tree semantics do not necessarily correspond to exactly what the Pascal standards require or to the particular information which a Pascal front end should maintain. > But there are few tricky questions: I old backends want us to call a > function is it OK to always call a wrapper (empty for new backend)? I don't suppose such cleanly encapsulated compatibility with old back ends would need to block inclusion of GPC in GCC as long as when built with the current back end GPC builds just like the rest of GCC does (in terms of both relevant documented coding standards and e.g. the way in which Make-lang.in rules are written) and in general the code follows the GNU Coding Standards and the GCC Coding Conventions apart from such compatibility hooks. I think it would however need to be understood that the rules for testing patches remain as now, testing with mainline, and it's up to the GPC maintainers to fix things up after changes breaking compatibility with old back ends to make the old back ends work again. This is especially the case for global changes affecting the front-end interface. I also don't recommend trying to keep compatibility before 4.0; working with 4.0 would suffice to keep the new GPC developments usable with a GCC release and the differences between 4.0 and earlier compilers are sufficiently large that the saving from not trying to be compatible with earlier versions would be substantial. In general, compatibility with the most recent release series should suffice; if the 4.0 series is insufficiently stable, effort would better be devoted to improving it than to keeping compatibility with older and less-maintained series. -- Joseph S. Myers http://www.srcf.ucam.org/~jsm28/gcc/ [EMAIL PROTECTED] (personal mail) [EMAIL PROTECTED] (CodeSourcery mail) [EMAIL PROTECTED] (Bugzilla assignments and CCs)