Bill Allombert on Tue, 7 Jan 2003 22:35:07 +0100

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: gp: gcd(0) error message unhelpful

On Tue, Jan 07, 2003 at 03:14:54PM -0500, Michael Somos wrote:
> pari-dev,
> Perhaps I was not explicit enough, so I will explain further.

I think the problem is what you ask is harder to do that what you expect.
For example gcd(0) call gasso_proto which find the problem but has
no idea about the name of the GP function involved (gcd).

> When I first encountered the error message "incorrect type in association."
> I had no idea which of the functions that my program had called was
> the source of the error. The word "association" has no connection to
> to any name of a GP function. I am sure that others will encounter
> the same problem when they see this error message. That was also
> the problem with the tan() error message. The information that there
> was a division by zero was distinctly unhelpful since I had not done
> any explicit division by zero (I checked for that in my code). I had
> to guess which gp function that I called had done the division by zero.
> It seems to me a very important consideration that an error message
> give a clear indication of which function triggered the error.

Unfortunately this is difficult to implement without a full backtrace
capability. In fact it would be less work to implement a full
backtrace capability, and more useful and maintainable is the long
term that trying to propagate sufficient informations in the C code
to be able to know what GP function is responsible. Also we have plan
to implement a full backtrace capability, using the GP2C parser and
a simple call stack.

> Of
> course, if there was a backtrace capability, that would be even more
> helpful by giving the stack of function calls. In an ideal world, no
> program will have any errors, but this is not an ideal world. All I
> ask is some more or less explicit indication of where the error came
> from. Adding a few more words to an error message seems like a very
> minor thing to ask in order to save a lot of frustration in debugging
> erroneous code. I suppose I could just use "gdb" and get a backtrace
> that way if all else fails. Shalom, Michael

There is a tool in gp2c called gp2c-dbg that is helpful if you 
are adventurous.