Skip to content

Conversation

@alt-romes
Copy link
Collaborator

Fixes #169

@alt-romes alt-romes force-pushed the wip/romes/external-interp branch 5 times, most recently from 66bdfb6 to cd87dbf Compare January 26, 2026 18:48
Launch the custom-for-the-debugger external interpreter for running the
debuggee process.

Using an external interpreter will guarantee the debugger and debuggee run
on separate processes. This comes with many benefits:
 * Debugger vs debuggee threads naturally separated
 * Debugger vs debuggee stdin/stdout/stderr naturally separated
 * No *** Ignoring breakpoint when debugging the debugger against another program

A custom server is necessary for the custom commands (starting with GHC
9.16) and because the external interpreter in GHC 9.14 is not compiled
with -threaded, which is a requirement for using thread/stack cloning
messages in the external process.

See also Note [Custom external interpreter]

Fixes #169
Ultimately, we want to connect the debuggee handles directly to the DAP
output streams, however, that will be done in a followup MR. Using
inherited handles here lets us finish this patch independently of that.
@alt-romes alt-romes force-pushed the wip/romes/external-interp branch 2 times, most recently from 618a9f8 to 2d3fb59 Compare January 27, 2026 12:51
…om external interpreter

Revert "external-interp: Inherit the debugger's handles"

This reverts commit 7b96e498ee431b9067131a96566a9823f89cc9d0.

Wrong way about

Revert "Wrong way about"

This reverts commit cc4b510e5426102b89a37c76051b6138fa210bb7.

Killing Recorder, cleaning logs

Killing...

WIP use iserv handles

WIP 90%

Cleaning service

Clean clean..2

Compiles
@alt-romes alt-romes force-pushed the wip/romes/external-interp branch from 2d3fb59 to 7c0a797 Compare January 27, 2026 17:56
@alt-romes alt-romes force-pushed the wip/romes/external-interp branch from d474243 to caedd61 Compare January 28, 2026 15:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Use a custom external interpreter by default

3 participants