Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Runner produces misleading '<library> does not run on this architecture' error messages #780

Closed
processing-bot opened this issue Sep 11, 2023 · 3 comments

Comments

@processing-bot
Copy link
Collaborator

Created by: kevinstadler

Description

Processing 4.3 produces bogus/misleading console error messages of the format library.getName() + " does not run on this architecture: " + variant when running sketches that load a library which bundles native libraries for at least one architecture, but none for the architecture/OS on which the sketch is run. The error message is triggered by the following heuristic:

public boolean isUnsupported(String variant) {
if (exportList.isEmpty()) {
// if no per-platform exports, then nothing to worry about
return false;
}
return getApplicationExportList(variant) == null;
}

which is a bit too aggressive: the upcoming release of the Processing Sound library will bundle native dlls for Windows to improve audio device support, but not for other platforms (linux, mac, arm, android) which it nevertheless supports out of the box. Based on the current behaviour, users of any platform other than Windows will be shown a disconcerting (and wrong) error message any time they run a sketch.

Expected behaviour

There should be a way for libraries to selectively suppress Processing's 'does not run on this architecture' error message, for example by providing an optional mechanism that allows libraries to specify explicitly which OSs/platforms they support (maybe something for library.properties?).

I suppose the error message could already be suppressed by creating native library sub-folders for every platform/architecture and adding an empty dummy file into each. If this is deemed a sufficient solution, then it should probably be documented somewhere.

Steps to Reproduce

On any platform/OS other than Windows, run any of the example sketches from this current dev build of the Sound library.

@processing-bot
Copy link
Collaborator Author

Created by: benfry

Does it work if you just create a dummy empty folder for other architectures? (Without even placing a file inside?)

@processing-bot
Copy link
Collaborator Author

Created by: kevinstadler

Ah yes, the mere existence of the architecture folder (at the time of Processing startup, not at the time of running the sketch) seems to be enough to suppress the message, at least on MacOS!

@processing-bot
Copy link
Collaborator Author

Created by: benfry

Ok good; let's go with that. I've updated the wiki notes to that effect, since the solutions to handle this on the PDE are far too complicated for a situation this rare.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Sep 17, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant