help-octave
[Top][All Lists]
Advanced

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

RE: Building Octave on cygwin with gcc3.3.3


From: John W. Eaton
Subject: RE: Building Octave on cygwin with gcc3.3.3
Date: Wed, 19 Jan 2005 18:19:02 -0500

On 19-Jan-2005, Frank Palazzolo <address@hidden> 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
-------------------------------------------------------------



reply via email to

[Prev in Thread] Current Thread [Next in Thread]