#515: Silently overrides DEBUG and OPTIMISE options ----------------------------+----------------------------------------------- Reporter: barry.wardell | Owner: eschnett Type: defect | Status: new Priority: major | Milestone: Component: SimFactory | Version: Resolution: | Keywords: ----------------------------+-----------------------------------------------
Comment (by barry.wardell):
In principal, I agree that having --debug, --optimise and --profile is a nice feature. However, I think the current implementation is worse than not having those options at all. The problems I have with it are:
1. It '''silently''' overwrites the options inside the build command. 2. Because the default for --debug is False, if I don't give any --debug or --optimise options it silently changes my optionlist to DEBUG="no" and OPTIMISE="yes". 3. OPTIMISE is set based on the --debug option being False, so --optimise is essentially useless. 4. The only way to find out about the --debug, etc. options is to read the source code for sim-build. 5. It unconditionally overrides the CACHELINE_BYTES and CACHE_SIZE options, making it impossible to use any values other than those in the mdb for the machine. 6. As Roland mentioned, it is not possible to enable debug by default on a machine (correct me if I'm wrong on this).
I think 1, 2 and 5 would be OK if the OptionLists were considered an internal implementation detail in SimFactory. In that case, it setting any of these overridden options in a SimFactory OptionList would be an error. This is not the case because, as you say, it is desirable to use a SimFactory OptionList without SimFactory (Why? Shouldn't you use the final optionlist after being processed by SimFactory?). Having these options in the OptionLists indicates that it is possible to change them. I think we should choose between these two, unless someone has a better suggestion?
I think 3 is just wrong, but necessary because optimise and debug probably use conflicting settings. The attached patch is my suggested fix. It first checks the --optimize setting and then only if debug is enabled does it disable optimisation (with a warning).
4 is a common annoyance with an obvious (but time consuming) solution.