[Lldb-commits] [lldb] DynamicLoaderDarwin load images in parallel (PR #110439)

via lldb-commits lldb-commits at lists.llvm.org
Thu Oct 10 10:17:30 PDT 2024


jimingham wrote:

> > it should definitely be enabled by default when we're at the point to merge it, and the setting should only be a safety mechanism if this turns out to cause a problem for a configuration we weren't able to test.
> 
> That's fine with me either.
> 
> > I would even put it explicitly under an experimental node (e.g. see target.experimental.inject-local-vars we have currently) so if someone does disable it in their ~/.lldbinit file, and we remove the setting in a year or two, they won't get errors starting lldb, it will be silently ignored.
> 
> Sure, but can you clarify please should it be named `plugin.dynamic-loader.darwin.experimental.enable-parallel-image-load` or `plugin.experimental.dynamic-loader.darwin.enable-parallel-image-load` as you wrote previously? Seems like the first option reads as "'enable-parallel-image-load' is an experimental property of 'plugin.experimental.dynamic-loader.darwin'" and the second one as "'dynamic-loader.darwin.enable-parallel-image-load' is an experimental property of 'plugin'".

The `experimental` node does two things.  

One is that the command interpreter treats:

a.b.experimental.c

and

a.b.c

as aliases for one another.  That's to support an experimental setting going from experimental to non-experimental without producing errors if people have used the experimental in scripts.

The other is that if the user issues the command:

settings set a.b.experimental.c whatever

and neither a.b.experimental nor a.b.c exist, that is not reported as an error.  That's to support commands that we use to guard experimental features, like in this case, so we can remove them later without causing errors in scripts.

So if you did:

plugin.experimental.dynamic-loader.darwin.enable-parallel-image-load 

That would mean you would never get errors for misspelling anything under plugin, which doesn't seem like a great idea.

So best practice is to have the experimental node control only the settings that actually are experimental:

plugin.dynamic-loader.darwin.experimental.enable-parallel-image-load 


https://github.com/llvm/llvm-project/pull/110439


More information about the lldb-commits mailing list