[Swift REPL] Inherit the environment for the Swift REPL #9859
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The Swift REPL was had rolling the ProcessLaunchInfo instead of using the one already setup by the target. While populating the launch info, it used
Target::GetTargetEnvironment()
which only looks at the corresponding setting, and ignoring theinherit-environment
setting. The alternative of callingTarget::GetInheritedEnvironment
is also wrong, because that has the inverse problem: it only inherits the environment and doesn't merge it with the target's environment variables. The solution is to useTarget::GetProcessLaunchInfo
which populates the launch info correctly.Propagating the environment correctly is particularly important on Windows where
Path
needs to be passed to the inferior to allowLoadLibraryW(L"swiftCore.dll")
to succeed. Without this patch, the library is not found and the inferior exits terminating the REPL instance.inherit-environment
when invoking the REPL.rdar://137522456
(cherry picked from commit 79d7505)