wxMaxima-developers / wxmaxima

A gui for the computer algebra system Maxima built with wxWidgets
https://wxMaxima-developers.github.io/wxmaxima/
Other
478 stars 99 forks source link

wxMaxima no longer works on OpenBSD. #339

Open vext01 opened 10 years ago

vext01 commented 10 years ago

Not sure if this is a wxWidgets bug or a wxMaxima bug, but here it is. I'm pasting this in from a mailing list post (openbsd ports): http://marc.info/?l=openbsd-ports&m=140587945502296&w=2

> > Hi
> > 
> > I was trying to use wxMaxima (-current, amd64) and it fails to start
> > (and connect to) maxima. Actually it fails to start it, as no 'maxima'
> > process is created. I also tried starting xmaxima (the only way I could
> > find to start maxima as a server) and then running wxMaxima listening on
> > the same port, but it also won't connect. maxima and xmaxima work
> > perfectly.
> > 
> > Is this a known problem? How can I help further (caveat: all I know
> > about lisp is that apparently it involves a lot of parenthesis)?
> 
> Thanks for the report.I see the same here.
> 
> Investigating...

So it works the opposite way around to what you might expect. wxMaxima
is the server and maxima is the client.

Looks like wxMaxima uses a wx routine to start a server but encounters
an exception:

Breakpoint 1, wxMaxima::InitSession (this=0x87f082e1800) at wxMaxima.cpp:244
244       int defaultPort = 4010;
(gdb) r
The program being debugged has been started already.
Start it from the beginning? (y or n) n
Program not restarted.
(gdb) n
246       wxConfig::Get()->Read(wxT("defaultPort"), &defaultPort);
(gdb) 
247       m_port = defaultPort;
(gdb) 
249       while (!(server = StartServer()))
(gdb) s
wxMaxima::StartServer (this=0x87f082e1800) at wxMaxima.cpp:644
644     bool wxMaxima::StartServer()
(gdb) n
646       SetStatusText(wxString::Format(_("Starting server on port %d"), m_port), 1);
(gdb) 
648       wxIPV4address addr;
(gdb) n
651       addr.LocalHost();
(gdb) 
656       addr.Service(m_port);
(gdb) 
658       m_server = new wxSocketServer(addr);
(gdb) s
operator new (sz=200)
    at /usr/src/gnu/lib/libstdc++-v3/../../gcc/libstdc++-v3/libsupc++/new_op.cc:50
50      operator new (std::size_t sz) throw (std::bad_alloc)

That is with a wxwidgets built with symbols. That is all you get...

Any ideas?

andrejv commented 9 years ago

wxWidgets come with test samples. Can you check that the socket sample from wxWidgets works correctly on your OS.