More graceful split of compiler options between sessions, modules, targets etc..
From https://github.com/shader-slang/slang/pull/2649#issuecomment-1431666807
Ideally we will change the way compilation options are stored so that each relevant object in the user/API mental model (targets, sessions, etc.) has a key/value collection of compilation options (easily allowing us to detect options that haven't been set). When evaluating the effective value of a compilation option, we would then have a notion of "inheritance" of options where, e.g., the target inherits options from the linkage/session (but options set on the target override those in the linkage).
This is part of the compiler api cleanup --- when you compile you have to specifiy a bunch of different options. The options are fairly disjoint. There's a desire to unify those (per above).
This is usability but for the subset of people who use it. Putting low with the other language cleanups in Q3. Could arguably be Q4
We have revamped our compiler options in PR #3598