Sounds good, looks good then.

> On Dec 8, 2015, at 11:09 AM, Zachary Turner <ztur...@google.com> wrote:
> 
> One advantage of this approach is that it makes the options available to the 
> entire test suite.  Even if we have no transferring going on, and we get 
> argparse to return us a perfectly organized structure with everything in the 
> right format, in order to make all the options accessible to the rest of the 
> test suite, we still need to stick it in a global module somewhere.  And then 
> you would write `configuration.options.test_categories`, whereas with this 
> approach we just write `configuration.test_categories`.  It's a minor point, 
> but I like the shorter member access personally.
> 
> On Tue, Dec 8, 2015 at 11:07 AM Zachary Turner <ztur...@google.com> wrote:
> There's no way to avoid doing a transfer out of the options dictionary at 
> some level, because it's not a straight transfer.  There's a ton of 
> post-processing that gets done on the options dictionary in order to convert 
> the raw options into a useful format.
> 
> That might be solvable with more advanced use of argparse.  This approach 
> does get rid of one level of option transfer though.  Because we would 
> transfer
> 1. From the class returned by argparse into the global
> 2. From the global into the lldb module
> 
> Now we only transfer from the argparse class into the `configuration` module, 
> and everything else just uses that.
> 
> 
> On Tue, Dec 8, 2015 at 10:52 AM Greg Clayton <gclay...@apple.com> wrote:
> Do we not want to have an "options" global variable in this module that 
> contains everything instead of having separate global variables in this file? 
> The idea would be that you could assign directly when parsing arguments:
> 
> (configuration.options, args) = parser.parse_args(sys.argv[1:])
> 
> Its OK if we don't do this, but this is what I was originally thinking. Then 
> we don't need to do any transfer out of the options dictionary that is 
> returned by the option parser. The drawback with this approach is the 
> "configuration.options" would probably need to be initialized in case someone 
> tries to access the "configuration.options" without first parsing arguments. 
> So in that respect the global approach is nicer.
> 
> Greg
> 
> > On Dec 8, 2015, at 10:45 AM, Zachary Turner <ztur...@google.com> wrote:
> >
> > Hi Greg,
> >
> > Take a look at dotest.py next time you get some free time and let me know 
> > what you think.  There should be no more globals.  Everything that used to 
> > be a global is now stored in its own module `configuration.py`, and 
> > everything in `configuration.py` can be referenced from everywhere in the 
> > entire test suite.
> >
> > On Fri, Nov 20, 2015 at 10:34 AM Greg Clayton <gclay...@apple.com> wrote:
> > Zach, I would also like to get rid of all global variables in the process 
> > of this change. The history goes like this: a long time ago someone wrote 
> > the initial dotest.py and parsed the options manually and stored results in 
> > global variables. Later, someone converted the options over to use a python 
> > library to parse the options, but we mostly copied the options from the 
> > options dictionary over into the globals and still use the globals all over 
> > the code. It would be great if we had at most one global variable that is 
> > something like "g_options" and anyone that was using any global variables 
> > will switch over to use the "g_options.XXXX" instead. Then we don't have to 
> > make copies and we can let the g_options contain all settings that are 
> > required.
> >
> > > On Nov 18, 2015, at 2:32 PM, Zachary Turner via lldb-dev 
> > > <lldb-dev@lists.llvm.org> wrote:
> > >
> > > I would like to do a complete audit of dotest's command line options, 
> > > find out who's using what, and then potentially delete anything that 
> > > isn't being used.  There's a mess of command line options in use, to the 
> > > point that it's often hard to find free letters to use for new options.
> > >
> > > I created this spreadsheet with a complete list of command line options, 
> > > their descriptions, and a place for people to enter what options they're 
> > > using or do not want to be deleted.
> > >
> > > https://docs.google.com/spreadsheets/d/1wkxAY7l0_cJOHhhsSlh3aKKlQShlX1D7X1Dn8kpqxy4/edit?usp=sharing
> > >
> > > If someone has already written YES in the box that indicates they need 
> > > the option, please don't overwrite it.  If you write YES in a box, please 
> > > provide at least a small rationale for why this option is useful to you.  
> > > Feel free to add additional rationale if someone has already added some 
> > > rationale.
> > >
> > > I'm going to have a couple days in mid-December and do this cleanup, so 
> > > I'd like to get a solid picture of what options are not needed before 
> > > then.  After people have had some time to look over this, I'll go through 
> > > the results and decide what to do with each one, and then send out 
> > > another email with a proposed action column for each command line option.
> > >
> > > Please do take the time to have a look at this, because any option that 
> > > doesn't have a YES in it after a couple of weeks I'm going to assume is a 
> > > candidate for deletion.
> > >
> > >
> > > _______________________________________________
> > > lldb-dev mailing list
> > > lldb-dev@lists.llvm.org
> > > http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev
> >
> 

_______________________________________________
lldb-dev mailing list
lldb-dev@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev

Reply via email to