This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Time schedule?


peter@gerwinski.de writes:

>   >   * Sets.  I introduced new variables `set_word_size' and
>   >     `set_words_big_endian' and made `expr.c' and `store-layout.c'
>   >     use them.  With their default values, Chill sets are
>   >     constructed; the Pascal frontend overrides them to obtain
>   >     Pascal sets.

> Let's hold off this one and go after the size_volatile stuff (which I
> understand a little better since we've already discussed it in the past.

Chill and Pascal are the only set users, right?  It would be great if
the front-end maintainers could agree on a common implementation.
While your design doesn't seem *that* bad, it seems to mean that
Chill and Pascal can't interoperate (which in this particular case
isn't so bad: how many people will use Chill and Pascal and try to
pass a set from one to the other?).  Ideally, you and Per (or whoever
takes over for him) could agree on endianness and word size of sets.
Then this patch would go away.

>   > This has never been a problem.  All GPC-specific patches have
>   > always been surrounded by `#ifdef GPC ... #endif'.  This is done
>   > even now where the patches only affect frontends that explicitly
>   > override the default values of some global variables.

> But this is something we absolutely do not want to do.  This kind of stuff
> is absolutely wrong.  

Jeff, while of course I agree with you 100%, such statements, I think,
tend to intimidate new developers who don't have your experience, because
they look arbitrary.  I think it would be helpful to explain a bit
why something is wrong, especially for mistakes people tend to make
repeatedly.  Otherwise, for people who don't get it, you just look
stubborn and hard to work with.

>From my point of view, the reason that it's wrong is that it's a
fundamental violation of the architecture of gcc, which consists of
a language-independent back end and language-dependent front ends.
Also, #ifdefs are the enemy of maintainable code, you want to minimize
the number of them.

This kind of thing (#ifdef GPC) may be OK at an early stage of
development, but once we're ready to integrate the new front end we need
to get rid of it.  In some cases, the back end needs something for the new
language that wasn't there before.  Then there needs to be agreement.

Please don't give up.  I think that once Pascal is integrated into the
tree, development to fix the remaining problems will accelerate, because
it will be much easier for more people to get and work on the code.



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]