Skip to content

Conversation

xymus
Copy link

@xymus xymus commented Sep 24, 2025

Avoid using AllowDeserializingImplementationOnly in LLDB as it's known to cause issues. It forces loading previously ignored dependencies in the middle of active deserialization when they are referenced by other deserialized entities, that is after the upfront loading of dependencies. Loading a dependency during deserialization changes states expected to be immutable at that time. Here it fails at iterating over the list of loaded modules to collect extensions as the list of loaded module changes from discovered extensions triggering loading more modules.

This mode is also incompatible with explicit builds as it loads and builds dependencies on demand.

Hidden dependencies should be loaded upfront when desired. This used to be controlled by DebuggerSupport, it has now moved to ImportNonPublicDependencies but it seems to be disabled. We should address this feature at that level.

The only use of AllowDeserializingImplementationOnly in the compiler was disabled recently swiftlang/swift#82499, LLDB is the last remaining client.

rdar://161130319

Avoid using `AllowDeserializingImplementationOnly` in LLDB as it's known
to cause issues. It forces loading previously ignored dependencies in
the middle of active deserialization when they are referenced by other
deserialized entities, that is after the upfront loading of
dependencies. Loading a dependency during deserialization changes states
expected to be immutable at that time. Here it fails at iterating over
the list of loaded modules to collect extensions as the list of loaded
module changes from discovered extensions triggering loading more
modules.

This mode is also incompatible with explicit builds as it loads and
builds dependencies on demand.

Hidden dependencies should be loaded upfront when desired. This used to
be controlled by `DebuggerSupport`, it has now moved to
`ImportNonPublicDependencies` but it seems to be disabled. We should
address this feature at that level.

The only use of `AllowDeserializingImplementationOnly` in the compiler
was disabled recently swiftlang/swift#82499,
LLDB is the last remaining client.

rdar://161130319
@xymus
Copy link
Author

xymus commented Sep 24, 2025

@swift-ci test

1 similar comment
@xymus
Copy link
Author

xymus commented Sep 29, 2025

@swift-ci test

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.

1 participant