[PURRS-devel] Re: One last time: annoying warning

Richard B. Kreckel kreckel at ginac.de
Thu Sep 26 20:23:14 CEST 2002


Ciao again,

On Thu, 26 Sep 2002, Roberto Bagnara wrote:
[...]
>            The headers should not impose any requirement apart from
> the use of a standard conforming compiler; for the rest they should be
> 100% bullet proof.  I am sure you understand that.  (And if you don't
> it means only we have too different views on how a truly professional
> library should be written.)

I understand that and we do agree.

>                              BTW: do you know that all your header
> files are not standard conforming?

Hmm, which are the non-conforming parts in our header files?

>  > Since in the case of
>  > virtual functions a compiler would have to have knowledge of all derived
>  > classes in order to suppress such a warning we are very unlikely to see
>  > this ever fixed at the compiler side.
>
> At least you realize that.  Your friend, instead, prefers insulting
> the GCC developers because of their "stupid compiler".

Oh, we appreciate GCC and the work of the developers very much over here
-- a point that has frequently been made clear on this list.

I would bet that the GCC developers would agree with him on this
particular unused parameter issue -- but this is speculative.  If you
insist, I may contact some of the developers who I happen to know
quite well personally.

>  >>Strictly speaking, the line is not wrong but only significantly less useful
>  >>than it could be.  It only serves well the portion of your user base not using
>  >>g++ or its extra-warnings options.  It does not serve well others.
>  >
>  >
>  > Remember that this code merely estabilishes a vtbl entry so inlining
>  > cannot take place anyways.  Why not suggest another patch?  Wouldn't it be
>  > totally equivalent to remove the empty default code and put it in
>  > basic.cpp?  I'm sure you can come up with an acceptable solution for your
>  > problem!
>
> Hem, Richard, it is not up to us to suggest the very right patches to
> GiNaC.  We have raised a number of issues concerning GiNaC: that is
> our duty as collaborative users.  It is up to GiNaC's developers to
> understand the issues and find the right solutions.

Sorry, I just realized [*] that recent versions of GCC do a pretty good
job at optimizing even this inlined code when possible.  So my previous
suggestion about moving the body is not a good one.  At the moment I don't
have another one.  If one occurs to me I will reconsider the issue---until
then my time is too costly.

>                                                      We are also
> writing our share of free software so let us make a deal: you provide
> the world with the best computer algebra library ever,

Sorry, we cannot fulfill such a deal.   ;-)

[...]
>  >>Because omitting the argument name is the ISO standard compliant way of
>  >>specifying that the argument is _intentionally_ unused.
>  >
>  >
>  > Hmm, can you provide evidence in support of what you are implying?
>
> I am not sure to understand you.  However, here is the proof: the ISO
> C++ standard says that unused parameters need not be named (see
> [8.4p5]).  Moreover, there is no way you can directly refer (i.e., not
> resorting to an alias) to an unnamed parameter in the body of the
> function.  Thus, if the programmer has omitted the name of a
> parameter, he/she has expressed quite clearly his/her intention not to
> use it in the body of the function.

I was actually hoping for an authoritative suggestion rather than a vague
option...

> For our project we need clear interfaces, unambiguous documentation,
> very formal specifications of just anything, and an easy way of
> continuing with the development style we have chosen (which, in
> particular, includes running with lots of warnings switched on).  All
> of us have been unsatisfied concerning one or more of these things, so
> we have decided not to tie our project with GiNaC too much.  Yesterday
> we did not receive satisfactory answers about the _exact_
> specification of some GiNaC functions.

Please do read that thread ("Documentation of prem()" on the list
ginac-list at ginac.de) again.  The answer seemed perfectly clear to me: `q'
is not the quotient, but the polynomial pseudo-quotient of `a' and `b'
which can be thought of as a generalization of the former for GCD
purposes.  That thread ended with a question wich was not answered from
your side, by the way.

>                                         Today the great programmer
> refuses to _mutilate_ his code and we do not know what will happen
> tomorrow.

Rest assured, you won't see any real mutilation of the code.  We are not
Micro$oft, after all!

>            If you understand that, then please start treating us like
> the evolute users and fine developers we are and not like people that
> has time to waste and has chosen to waste it by annoying you.  Our
> projects are significantly younger than yours, but we treat our users
> very differently, especially those that show the good will and
> dedication necessary to come up with patches and proposals (whether or
> not they turn out to be the best possible ones).

Come on, please.  Almost any suggestion/patch/addition you've made has
been added to the sources.  And those were more important issues.  And we
will certainly continue to consider all suggestions/patches/additions in
the future.

Can we stop this childish academic flame war now, please?  Please!

Regards
     -richy.

[*] Through timing and looking at code sizes and comparing the generated
    assembler -- though not fully understanding it.  That would require
    much more time which I don't have.
-- 
Richard B. Kreckel
<Richard.Kreckel at GiNaC.DE>
<http://www.ginac.de/~kreckel/>




More information about the PURRS-devel mailing list