Dear Jens, On Tue, 2005-06-28 at 12:43 +0200, Jens Vollinga wrote:
I really like to have this initialization order problem solved! I read the the discussion mails between you and Richy again and had a look at your patch from Jan 8. But still, I have to ask some stupid questions:
That is the wrong patch. The right one was sent on Jan 20. It was not sent to the entire mailing list because it was rather big. However, Richy's reply to it is in the archives. It is http://thep.physik.uni- mainz.de/pipermail/ginac-devel/2005-January/000759.html . I have put the mail together with its attachment on my homepage: http://www.theorphys.science.ru.nl/people/dams/20jan.txt .
- your patch does COMPLETELY solve the problem? (just to be sure I got it right ;-))
Yes. I checked this by reintroducing the .evalf() in the definition of integral::relative_integration_error and observing that if my patch is applied this no longer leads to a segmentation fault when using the *.a version of the library. The *.so library never segfaulted at my place anyway.
- but it has to go in 1.4.0 (says Richy)? (from a first glance I don't see why this is necessary)
I also thought that this should go into 1.4.0 because it changes the interface. I.e., it removes the references to flyweights. E.g. it removes _num_120. However, no *.h file uses the refs to flyweights. Users could be using the flyweights in their code and then it would break. However, the comments in utils.h say that users should not do this. So, having looked at it again, I think that it is safe to put it in 1.3.2. I tested this by compiling a program under 1.3.1 and after that running it again with the patched version of the library installed. This works correctly. Best wishes, Chris