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)

Reply via email to