From maintainers-request at octave dot org Thu Mar 16 11:40:54 2006 Subject: Re: 2.9.5 and 2.1.73 From: David Bateman To: "John W. Eaton" CC: David Bateman , maintainers@octave.org Date: Thu, 16 Mar 2006 18:36:20 +0100 John W. Eaton wrote: > On 16-Mar-2006, David Bateman wrote: > > | Please find attached the patch of all of the code I have for 2.9.5. It > | includes a number of changes a fixes for the sparse matrix type, but also an > | attempt at a fix for a valgrind identified problem for strncmp, where I > | introduce a means of detecting the size of the string in the OSSTREAM and > | ensure it is longer than the length argument to strncmp. This didn't appear > | to fix the issue for me and so I suspect the problem is due to my gcc > | 4.0.1libc strncmp function and similar issues are identified in > | readline. > | However, the patch for this seems useful in any case and so I supply it. Now > | that the test code is stabilizing its probably worthwhile taking the many > | hours time necessary to run > | > | % cd test > | % LD_LIBRARY_PATH="`pwd`/../src:`pwd`/../liboctave:`pwd`/../libcruft" > | valgrind --tool=memcheck ../src/octave -f -q -H -p > | .//:../src//:.:./../scripts// ./fntests.m . > | > | to get a complete list of all of the problems that valgrind can identify > | with the current test code. However, give the above problem I have, I'm not > | sure I'm the best to do this. I did this for the sparse test code, and only > | identified the strncmp problem above in ls-oct-ascii.{cc,h}. > | > | Other major things in this patch include > | > | * Make the calculation of the condition number optional and disable it for > | the diagonal, triangular and banded solvers as the calculation of the > | condition number takes longer that the solution of the linear equation in > | this case (often by orders of magnitude). The underlying code shouldn't > | allow singular matrices to be treated in this case, so I see this as a major > | improvement > | * Special case sparse permutations for Sparse::index function, and gain > | several orders of > | magnitude of speed in this case. > | * Dulmange-Mendelsohn sparse QR solver. This should give significantly > | better solutions for over-determined problems. > | * Many bug fixes for rectangular solvers. > | > | Please find attached the patch and a complete changelog file.. > > I can't comment on the Sparse stuff since I don't know much about it. > You are the expert there, so go ahead and check in those changes. > > I don't really want the strncmp change because it seems to be a bug in > strncmp since that function is supposed to compare at most N > characters. We should not have to include checks for that ourselves. > In any case, how about this change? Does it also avoid the problem? > I also see one other call to strncmp in util.cc that could be > converted to use the std::string compare method. > > Ok, will do.. > BTW, do you think it is time that we removed the *SSTREAM macros and > just assume that the C++ compiler has sstream? I would expect that > any compiler that can build Octave will have that by now. > > Your call. Though I'd suggest to leave it till after 2.9.5. D.