On Monday, 23 September 2019 at 19:14:15 UTC, Brett wrote:
I imagine I could potentially create a separate process that has a communication layer between it and the D program but I'm hoping it would be less work.

You're pretty much describing a client-server design. A lot of software does work in this way, e.g.:

- MS toolchain spawns mspdbsrv to write PDB files
- Gradle (Java build tool) spawns a daemon which caches information in memory - Git on Windows also creates long-lived processes to cache filesystem information

The simplest design would be for the server to listen on a named pipe (perhaps named after the current directory), and the client to do nothing but forward the command-line arguments and input to the daemon through the pipe, then read back the result and present it to the user.

Reply via email to