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

Add CommunicationHandle, an API for inter-process communication via Handles #308

Merged
merged 3 commits into from
Apr 25, 2024

Commits on Apr 10, 2024

  1. Move tests to separate process-tests package

    This commit moves the process testsuite to a separate package.
    The rationale is that later commits require the test-suite to use a
    Custom setup in order to work around Cabal bug #9854. This introduces a
    setup-depends dependency on the Cabal library, and we would very much
    like to avoid the dependency cycle:
    
      Cabal depends on process
      process depends on Cabal
    
    Instead, splitting up the test-suite, we have:
    
      Cabal depends on process
      process-tests depends on process and on Cabal
    
    To run the test-suite, you can use either of the following commands:
    
    > cabal run process-tests:test
    > stack test process-tests
    
    There are a few other auxiliary changes, such as:
    
      - Using Cabal version >= 2.4 in the .cabal files,
        and fixing the associated warnings,
      - Using the CPP mingw32_HOST_OS define to check for Windows;
        this avoids having to define the same variable twice in two
        different packages.
    sheaf committed Apr 10, 2024
    Configuration menu
    Copy the full SHA
    59eb3e4 View commit details
    Browse the repository at this point in the history
  2. Update CI to use GitHub Actions

    sheaf committed Apr 10, 2024
    Configuration menu
    Copy the full SHA
    13ede6d View commit details
    Browse the repository at this point in the history

Commits on Apr 22, 2024

  1. An API for inter-process communication via Handles

    This commit adds the System.Process.CommunicationHandle module, which
    provides the cross-platform CommunicationHandle abstraction which allows
    Handles to be passed to child processes for inter-process communication.
    
    A high-level API is provided by the function
    `readCreateProcessWithExitCodeCommunicationHandle`, which can be
    consulted for further details about how the functionality is meant to be
    used.
    
    To test this functionality, we created a new "cli-child" executable
    component to the process-tests package. To work around Cabal bug #9854,
    it was necessary to change the build-type of the package to `Custom`, in
    order to make the "cli-child" executable visible when running the test-suite.
    The custom Setup.hs script contains more details about the problem.
    sheaf committed Apr 22, 2024
    Configuration menu
    Copy the full SHA
    a6af24e View commit details
    Browse the repository at this point in the history