octave-maintainers
[Top][All Lists]
Advanced

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

Re: Qt/gui on MacOSX (was: 4.0 release goals)


From: Ben Abbott
Subject: Re: Qt/gui on MacOSX (was: 4.0 release goals)
Date: Mon, 05 Nov 2012 15:45:50 -0500

On Nov 5, 2012, at 8:06 AM, Michael Goffioul wrote:

> On Mon, Nov 5, 2012 at 7:40 AM, Ben Abbott <address@hidden> wrote:
> On Nov 4, 2012, at 8:58 PM, Michael Goffioul wrote:
> 
> > On Sun, Nov 4, 2012 at 6:40 PM, Ben Abbott <address@hidden> wrote:
> > > Since the gui build process was integrated into the CLI build process, 
> > > the gui has not run under MacOS X.  I'm not certain, but I think gnuplot 
> > > had a similar problem.
> > >
> > >         http://www.digipedia.pl/usenet/thread/12789/10528/#post10548
> > >
> > > When I try to run the gui, I get the error below (repeated 16 times).  
> > > Which is the same error encountered by the gnuplot developers.
> > >
> > > The process has forked and you cannot use this CoreFoundation 
> > > functionality safely. You MUST exec().
> > > Break on 
> > > __THE_PROCESS_HAS_FORKED_AND_YOU_CANNOT_USE_THIS_COREFOUNDATION_FUNCTIONALITY___YOU_MUST_EXEC__()
> > >  to debug.
> > >
> > > Fixing this is beyond my abilities. but I can test patches.
> > >
> > >
> > > I've had a quick look and my understanding is that somewhere we use a 
> > > CoreFoundation API before forking, which is not allowed by Mac OS X (God 
> > > knows why...), if you also want to use CF API after forking.
> > >
> > > AFAIK there aren't many places in octave where there's a direct access to 
> > > the underlying graphics system, one of them is display_info class. 
> > > Indeed, this class is used before forking, in octave_starting_gui 
> > > (libinterp/octave.cc). So as  first try, you could edit src/main.cc and 
> > > replace the call to octave_start_gui() with true to see whether it makes 
> > > any difference.
> > >
> > > Michael.
> >
> > Definitely made a difference, but I can't tell if it is an improvement or 
> > not.
> >
> > The error no longer shows up, but neither Octave nor the gui starts either. 
> >  There is just a short delay and the shell prompt returns.
> >
> > Sigh.... Mac OS X is definitely "different". Try to run in gdb, maybe 
> > you'll get some useful backtrace or information.
> >
> > Michael.
> 
> Hmmm ... looks like something is broken.  The line below exists with no error 
> or warning.
> 
> I suppose you mean "...exits with no error..." ?
>  
> 
>         ./run-octave --force-gui --debug
> 
> You'll probably have to set breakpoints and run step-by-step to see where it 
> exits.
> 
> Michael.

Octave exists during the call "QApplication application (argc, argv);"  at line 
87 in libgui/src/octave-gui.cc

 80 int
 81 octave_start_gui (int argc, char *argv[])
 82 {
 83   dissociate_terminal ();
 84 
 85   setenv ("GNUTERM", "qt", 1);
 86 
 87   QApplication application (argc, argv);

With lack of experience with c++, I don't know how to go further.

Ben






reply via email to

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