[L2Ork-dev] Won’t finish starting up
Albert Graef
aggraef at gmail.com
Mon Oct 21 03:56:47 EDT 2024
Hi Jeff,
On Sun, Oct 20, 2024 at 7:15 PM Jeff Morris <jeff at morrismusic.org> wrote:
> I was able to get Purr-Data working finally using sudo spctl
> --master-disable and it mostly works okay, except that it crashed upon
> quitting. The macOS console crash log shows the following. Looks like a
> memory segmentation fault experienced by nwjs.
>
Completely disabling Gatekeeper shouldn't be necessary. At least with the
latest 2.20.0 version, just removing the com.apple.quarantine attribute
after installation should be enough (cf.
https://github.com/agraef/purr-data/wiki/Installation):
sudo xattr -r -d com.apple.quarantine /Applications/Purr-Data.app
The nw.js crash-on-exit is a known bug:
https://github.com/agraef/purr-data/issues/44. You can work around the
annoying popup message from the OS as described in the ticket. Other than
that, this bug is mostly harmless since the nw.js crash happens after
purr-data already went through its entire finalization sequence. And you
can also avoid the bug by closing all patch windows before exiting the
program. At least that works for me on Big Sur (old Intel MB) and Sonoma
(MB M1), your mileage may vary.
As Ico already pointed out, there are various issues with the nw.js
versions that we use. Probably the most serious regression is that NW2, the
new browser window implementation being used as default in nw.js 0.42.4 and
later, has some severe performance problems with dynamic code execution in
the JavaScript interpreter. This makes rendering dynamic svg graphics on
the canvas (such as array displays and pd-lua graphics) horribly slow,
which is why both pd-l2ork and purr-data switch nw.js to the old NW1
implementation. (Ico first discovered this and reported it upstream some
two years ago, but we still need to produce a minimal example for the issue
before it will be considered.)
This in turn limits the nw.js versions that we can use, because anything
past nw.js 0.67.1 has broken window management in NW1 mode. The
crash-on-exit bug on macOS is also related to the use of NW1 AFAICT.
Moreover, on Linux, nw.js 0.56.0 and later have another serious bug
(nwworkingdir not working, which means that file dialogs will open in the
wrong places) which AFAICT has never been fixed. Which is why I decided to
go with nw.js 0.55.0 in purr-data 2.20.0, which is pretty much the last
nw.js version that works without any serious regressions on all major
platforms.
But note that purr-data also includes a little shell script which lets you
experiment with different nw.js versions and switch between NW1 and NW2, to
find out what works best for you. See
https://github.com/agraef/purr-data/wiki/Installation#patching-purr-datas-nwjs.
(I doubt that the script will work with pd-l2ork as-is, but you can
probably adjust it if needed, if you know a little shell programming.)
HTH,
Albert
--
Dr. Albert Gr"af
Computer Music Research Group, JGU Mainz, Germany
Email: aggraef at gmail.com, web: https://agraef.github.io/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://disis.music.vt.edu/pipermail/l2ork-dev/attachments/20241021/76d36b6b/attachment.htm>
More information about the L2Ork-dev
mailing list