treelang fix for rs6000 / treelang not proper front end
Tim Josling
tej@melbpc.org.au
Sun Jun 8 22:16:00 GMT 2003
Zack Weinberg wrote:
> Tim Josling <tej@melbpc.org.au> writes:
>
>
>>Treelang now works on RS6000 with this patch; the previous version had
>>a missing symbol in the link. Tested also on i686-pc-linux-gnu. I will
>>apply it shortly.
>>
>>Thanks to Matthias Klose for help testing this.
>
>
> Why are you linking rs6000-c.c into treelang in the first place?
>
> zw
>
>
The treelang front end reuses some of the c front end code. That is,
code which is theoretically part of the c front end but actually is used
across a number of languages.
During configuration, there is front end specific code which works out
which back ends have code that is specific to certain front ends. This
ends up in the makefile as variables. I found this hard to believe but
it is true - the fact that there is front end specific code in the
config file, and that there is no orderly way to specify front end to
back end dependencies other than hacking the configuration file.
Due to use of the 'c front end' code, treelang therefore needs certain
files from back ends. The change required was minor but took a while
because I don't have an rs6000.
Some have expressed a view that reusing code from the c front end is bad
and that treelang should duplicate this code. Having actually tried this
theory early on, I disagree. The amount of effort required to sustain
this is an order of magnitude greater than the current regime.
As discussed on the gcc mailing list recently the interface between
front end and back end is not very clean, to put it mildly. This is the
real problem. Code that is not front end specific should be factored out
so that it can readily be reused. Front end specific code should be in
the directory for that front end, etc.
I am not sure that this is going to happen any time soon though. Even a
simple proposal to move the c front end into its own directories and to
move all front ends under /fe seems to be waist deep in quicksand at
present.
I am not going to volunteer to fix this, as it is quite easy to do a lot
of work for nothing. Even with agreement in advance about an approach to
be taken, people change their minds later.
Treelang has already proven useful. Keisuke Nishida used is as a basis
for his cobol front end. We should not throw all that work away because
of abtract considerations such as it not being a 'proper' front end.
I already offered to people, make it a 'proper' front end i.e. duplicate
all the c code. See how easy it is. Maintain it for a while. Volunteer
to take over treelang maintenance.
It would be better to fix the front end back end interface IMHO rather
than looking at symptoms.
Tim Josling
More information about the Gcc
mailing list