Pascal front-end integration
Joseph S. Myers
joseph@codesourcery.com
Sat Mar 5 12:45:00 GMT 2005
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/
jsm@polyomino.org.uk (personal mail)
joseph@codesourcery.com (CodeSourcery mail)
jsm28@gcc.gnu.org (Bugzilla assignments and CCs)
More information about the Gcc
mailing list