-
Notifications
You must be signed in to change notification settings - Fork 22
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
GAP command Process hangs after IO_Popen3 is used on macOS #902
Comments
I have not analyzed this in detail yet, but in a nutshell, on the long term, all uses of low-level IO functions like Thing is, handling child processes on POSIX is quite delicate. The central program must be aware of them and mange them. That caused issues in pure GAP in the past, when IO did not do that and instead just managed "rogue" child processes of its own. It took quite some effort to resolve that, by inventing a way for the GAP kernel and the IO kernel extension to communicate and coordinate the child processes started by either one. Now we are running GAP and IO from Julia, so they ought to coordinate with Julia.... For GAP, this is already implemented for As a workaround, you can do this:
Maybe we should make this the default again for the time being, as I suspect this will also resolve #905 (CC @ThomasBreuer). But on the long term, it would be best if any use of |
Thank you very much for the feedback. |
I heavily rely on the IO package as one of the possible ways to communicate with external programs. Switching to GAP's built-in IO capabilities will be quite some work, I guess. |
AFAIK the existing facilities in GAP are too limited in their capabilities and also too slow for you, isn't that right? So I am not at all suggesting you should use those, but rather we should have a higher level abstraction for what you actually need with multiple implementations (one of them would still use the IO package, and another could use Julia code) |
The higher abstraction is indeed provided by the package HomalgToCAS, where either IO_ForHomalg, SinglularForHomalg, MapleForHomalg, OscarForHomalg, ... could be used as the "physical" connection. |
Correct. |
On macOS
On Ubuntu
The text was updated successfully, but these errors were encountered: