Online Developer Meeting (2021-10-26): Difference between revisions

m
Line 33: Line 33:
* On Windows, <code>spawn</code> with <code>P_OVERLAY</code> also replaces the current process. But each process has a distinct id on Windows. I.e., the new process gets a different process id from the original one. Another process (like a terminal) waiting for the original process id will resume once the '''original''' process terminates. (The same happens with <code>exec</code>.) That leads to issues when trying to use the <code>octave.exe</code> wrapper on Windows.
* On Windows, <code>spawn</code> with <code>P_OVERLAY</code> also replaces the current process. But each process has a distinct id on Windows. I.e., the new process gets a different process id from the original one. Another process (like a terminal) waiting for the original process id will resume once the '''original''' process terminates. (The same happens with <code>exec</code>.) That leads to issues when trying to use the <code>octave.exe</code> wrapper on Windows.
* Could we use <code>spawn</code> with <code>P_WAIT</code> instead? IIUC, that would require passing the return code from the spawned process. What else?
* Could we use <code>spawn</code> with <code>P_WAIT</code> instead? IIUC, that would require passing the return code from the spawned process. What else?
* '''[jwe]''' We have too many different ways of starting and interacting with subprocesses (popen, popen2, system, spawn, procbuf, procstream, etc.).  Is it possible to use just one C++ function to provide all the public functions we need to support?
** '''[jwe]''' We have too many different ways of starting and interacting with subprocesses (popen, popen2, system, spawn, procbuf, procstream, etc.).  Is it possible to use just one C++ function to provide all the public functions we need to support?
** '''Long term:''' Get rid of the wrapper program on all platforms. That would require the new command line interface and the possibility to dynamically load the GUI (optionally). This will probably not happen before Octave 8.
** '''Long term:''' Get rid of the wrapper program on all platforms. That would require the new command line interface and the possibility to dynamically load the GUI (optionally). This will probably not happen before Octave 8.
** '''Short term:''' Test if the wrapper can be replaced with a link (or copy) of "octave-gui.exe" in MSYS2.
** '''Short term:''' Test if the wrapper can be replaced with a link (or copy) of "octave-gui.exe" in MSYS2.