gnudatalanguage / gdl

GDL - GNU Data Language
GNU General Public License v2.0
274 stars 61 forks source link

macOS: AppBundle GDL 1.0.6 does not plot #1858

Closed haniibrahim closed 1 month ago

haniibrahim commented 1 month ago

Hallo,

I installed

As long as I don't try to plot anything, it works well so far.

With the following example code ...

x = findgen(1000) / 999 * 2 * !pi
y = 10. - 2. * sin(x)
z = exp((y-10)^2)

plot, x, y, /xstyle, yrange=[0,60], xtitle='Time', ytitle='Ability to Think'
oplot, x, z, linestyle=1

I get the following error after the first plot command:

*** PLPLOT WARNING ***
Unable to open cmap0 file cmap0_default.pal

*** PLPLOT WARNING ***
Unable to open cmap0 file cmap0_default.pal

*** PLPLOT WARNING ***
Unable to open cmap1 .pal file cmap1_default.pal

Unable to load driver: wxwidgets.

*** PLPLOT ERROR, IMMEDIATE EXIT ***
Unable to load driver
Program aborted

I tried a lot of other code with the same result. It makes no difference if I run the code as a script (.pro file) with .RUN example.pro or typing the commands in GDL's prompt one by one or as a batch file (gdl -example.pro, I add GDL binary to the PATH enviroment Variable).

It make no difference if I run the code by starting GDL via AppBundle or via Terminal-command.

I tried also serval other versions of GDL AppBundles. Some do not run anyway.

All my sample codes run well on my Linux machine.

GillesDuvert commented 1 month ago

@haniibrahim I'm afraid the gdl bundle does not contain all needed files, this has been reported several times. It lacks the *.pal files from plplot (available by installing plplot). Another worrying problem is that it is "Unable to load driver: wxwidgets" although it is present in the bundle. I see no other solution as installing GDL from scratch following instructions . Making workable bundles are not an easy task and cannot be tested thoroughly by lack of proper development platform.

alaingdl commented 1 month ago

OK, I am regularly testing GDL remotely on two OSX machines, one with x86 proc. and the other one with M2, without troubles. And yes I can open plotting windows remotely.

On current 14.4.1 (Sonoma ?!) Steps : 1/ configuring sshd and restart service 2/ install Brew and add basic code (cmake, xauth, readline) brew install cmake 3/ install X11 through Brew : brew install --cask xquartz 4/ clone git git clone https://github.com/gnudatalanguage/gdl 5/ go in the dir. then start to run the script to finish collecting all need packages (./scripts/build_gdl.sh prep) 6/ then I switch in custom mode due to the wxwidgets limitation (see below)

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install cmake
((brew install emacs ))
brew install --cask xquartz
brew install readline
git clone https://github.com/gnudatalanguage/gdl
cd gdl
./scripts/build_gdl.sh prep  (in fact will add many mandatory dependances (fftw, plplot, ...))
git submodule update --init
mkdir mybuildX11
cd mybuildX11
cmake .. -DWXWIDGETS=off -DREADLINEDIR=/opt/homebrew/opt/readline -DOPENMP=OFF -DHDF=OFF -DX11=on -DCMAKE_INSTALL_PREFIX=$PWD
make -j 8
make install

Total time on my Mac mini M2 ? Less than 5 minutes

HTH

GillesDuvert commented 1 month ago

Just a sidenote, there are no "limitations" to wxwidgets on mac. It's just that @alaingdl insists on using X11 remotely via ssh, something only available with X11, and which forbids using widgets. For any other use, it is recommended to make a normal install, i.e., do "./scripts/build_gdl.sh build" and "./scripts/build_gdl.sh install" instead of mkdir mybuildX11 etc.

For remote use, if any, either use a remote desktop viewer like KRDC or, if really needed, build GDL with X11 AND wxwidgets: cmake .. -DWXWIDGETS=ON -DX11=ON -DREADLINEDIR=/opt/homebrew/opt/readline -DOPENMP=OFF -DHDF=OFF -DCMAKE_INSTALL_PREFIX=$PWD and in the rare case you need X11 via SSH start gdl as "gdl -X"

alaingdl commented 1 month ago

It is perfectly exact that compilation with the script goes to the end, but, through ssh -X both calls fail :

gdl --no-use-wx
GDL> plot, findgen(10)
zsh: bus error  /Users/admlerma/GDL/gdl-1.0.6git240716wx/install/bin/gdl --no-use-wx

gdl
GDL> plot, findgen(10)
zsh: bus error  /Users/admlerma/GDL/gdl-1.0.6git240716wx/install/bin/gdl

(yes, this is after ./scripts/build_gdl.sh install with plplot modules at the right location :)

Since I access to these machines only remotely, disabling WxWidgets is mandatory in my case.

(in the past I had success with WxWidgets remotely on OSX, but long time ago)

GillesDuvert commented 1 month ago

@alaingdl this looks to me as a subject for a separate issue special for M2 and not even clear in this case. The culprit for "zsh: bus error" is openMP, that is made impossible by Apple (Mac owners, protest!). On a mac mini M1 Sonoma at my disposal, one needs only to build gdl without openMP by stating: WITH_OPENMP=OFF gdl/scripts/build_gdl.sh configure and gdl/scripts/build_gdl.sh build ... install etc.

haniibrahim commented 1 month ago

First thank you all for your reply. I will try your suggestions.