wxMaxima-developers / wxmaxima

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

plot2d under MacOS Big Sur #1461

Open lvwarren opened 3 years ago

lvwarren commented 3 years ago

When issuing a standard plot command to Maxima: (%i1) plot2d(sin(x),[x,-%pi,%pi]);

the system replies: WARNING: Couldn't write to #<SB-SYS:FD-STREAM for "descriptor 9" {1002FC5EF3}>: Broken pipe Trying new stream. (%o1) ["/var/folders/70/h4bm83853hz6_v3lcd7zbrj00000gp/T/maxout77476.gnuplot_pipes"]

gunterkoenigsmann commented 3 years ago

That is a lisp error => here we need a bit of luck if we hope that I am of any help...

Normally on linux-like systems file descriptor 0,1 and 2 are by default stdin, stdout and stderr - which means the connection to the keyboard and screen or whatever replaces them. Any higher numbers are for files that have been opened.

Might it be that maxima tried to place the file maxout77476.gnuplot_pipes into a folder that didn't exist?

If that isn't the case the only chance we have might be the lisp wizards of the maxima-discuss mailing list.

gunterkoenigsmann commented 3 years ago

Robert Dodier, one of the maxima-devs has answered:

From what I know that's a typical autogenerated temp path for macOS.

Dunno what's up with the stream error. A workaround to try is to add [plot_format, gnuplot] to the plot2d call. That just means all the plotting commands are written to a file and then gnuplot is executed. Dunno if that's going to change anything but anyway it's worth a try.

gunterkoenigsmann commented 3 years ago

If that changes anything that might mean that the gnuplot process maxima is communicating by default with using a pipe might have unexpectedly died without telling us why.

lvwarren commented 3 years ago

I was wondering if it had to do with the past dependency of having to have an XQuartz process running.

It turned out that XQuartz was not the issue. There were two related side issues:

1) Gnuplot had a hidden Apple quarantine on the file that can be revealed using:

xattr -l Gnuplot.app

com.apple.quarantine: 0181;5a063d32;Google\x20Chrome.app;AC782141-F216-4F0E-A039-5FA1F1BF2496

This quarantine can be cleared if the file is confirmed to be free of problems using:

sudo xattr -r -d com.apple.quarantine Gnuplot.app/

and you will have to type your root password.

2) Finally you have to go to Apple --> System Preferences --> Security and Privacy --> General

where it will say:

"Gnuplot.app" was blocked from use because it is not from an identified developer.

in which case you can solve the problem by clicking the, "Open Anyway" button.

So this is officially the first bug I have solved in the twenty years I've been reporting them.

Hope this helps,


From: Gunter Königsman notifications@github.com Sent: Friday, December 18, 2020 2:06 PM To: wxMaxima-developers/wxmaxima wxmaxima@noreply.github.com Cc: L Van Warren lvwarren@gmail.com; Author author@noreply.github.com Subject: Re: [wxMaxima-developers/wxmaxima] plot2d under MacOS Big Sur (#1461)

That is a lisp error => here we need a bit of luck if we hope that I am of any help...

Normally on linux-like systems file descriptor 0,1 and 2 are by default stdin, stdout and stderr - which means the connection to the keyboard and screen or whatever replaces them. Any higher numbers are for files that have been opened.

Might it be that maxima tried to place the file maxout77476.gnuplot_pipes into a folder that didn't exist?

If that isn't the case the only chance we have might be the lisp wizards of the maxima-discuss mailing list.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHubhttps://github.com/wxMaxima-developers/wxmaxima/issues/1461#issuecomment-748294475, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AAEP4LRIV5J6CKJ3HEDKHNTSVOY33ANCNFSM4VBSRHLA.

gunterkoenigsmann commented 3 years ago

That was a valuable discovery => Have instantly forwarded it to the maxima-discuss mailing list.