From help-request at octave dot org Wed Jan 19 17:15:49 2005 Subject: RE: Building Octave on cygwin with gcc3.3.3 From: "John W. Eaton" To: "Frank Palazzolo" Cc: help at octave dot org Date: Wed, 19 Jan 2005 18:19:02 -0500 On 19-Jan-2005, Frank Palazzolo wrote: | >No, I think it is because of the switch back to using setjump/longjump | to implement C++ exception handling. | > | >jwe | | I just read through the gcc bug report again here: | | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=14563 | | I admit I'm still confused. There is plenty of talk about | setjump/longjump, but also about new/delete handling. So, I figured I'd | dig in and try some stuff myself. I'm learning about octave's build | system anyways. I'm pretty sure the problem is with SJLJ exception handling being much slower than the method used with Dwarf2. The reason the problem shows up with new/delete is because new throws an exception if it fails. So if you use SJLJ for exception handling, you are calling setjmp every time an allocation occurs, and apparently this is very slow with Cygwin. One of the proposed workarounds was to replace the default implementation of new with one that did not use exception handling. This improves performance, but it also causes Octave to crash if someone does something silly like ones (100000); so I don't think it is reasonable to make a change like that. If SJLJ exception handling is used by MinGW, then I don't think you'll see an improvement. jwe ------------------------------------------------------------- Octave is freely available under the terms of the GNU GPL. Octave's home on the web: http://www.octave.org How to fund new projects: http://www.octave.org/funding.html Subscription information: http://www.octave.org/archive.html -------------------------------------------------------------