[PATCH] D37944: [lit] Move some of LLD and Clang's configuration code into LLVM shared configuration
David L. Jones via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Sep 18 22:20:48 PDT 2017
dlj added inline comments.
================
Comment at: llvm/test/lit.cfg.py:153
+ ToolFilter('llvm-symbolizer', pre=JUNKCHARS),
+ ToolFilter('opt', JUNKCHARS),
+ ToolFilter('sancov', pre=JUNKCHARS),
----------------
pre=JUNKCHARS for consistency?
================
Comment at: llvm/utils/lit/lit/llvm/__init__.py:27
+
+ literal: If True, `name` is an exact regex that is passed to the
+ underlying substitution
----------------
(Minor nit) I really hate to bikeshed ... but I would expect this to do something like check for 'name' literally, without any regex matching. So I won't suggest changing the name to "is_regex" ;-) , but are there any other names that might make it more clear that the first argument will be interpreted as a well-formed regex?
================
Comment at: llvm/utils/lit/lit/llvm/__init__.py:30
+ """
+ def any_char_in(chars):
+ def escape_one(c):
----------------
I think re.escape will do what you need:
https://docs.python.org/2/library/re.html#re.escape
================
Comment at: llvm/utils/lit/lit/llvm/__init__.py:44
+ pre = any_char_in(pre)
+ regex = '(?<!(%s))' % pre
+ name = regex + name
----------------
It might make more sense to factor out the regex construction, then you can assign self.regex all at once:
```
def not_in(patterns, where=''):
if not patterns:
return ''
pattern_str = '|'.join(re.escape(x) for x in patterns)
return r'(?{where}!({pattern_str}))'.format(
where=where, pattern_str=pattern_str)
self.regex = not_in(pre, where='<') + '\b' + name + '\b' + not_in(post)
```
(Not sure if that's actually clearer, but there might be some useful tidbits...)
================
Comment at: llvm/utils/lit/lit/llvm/config.py:174
+ # out its resource dir here in an easy to scrape form.
+ dir, _ = self.get_process_output([clang, '-print-file-name=include'], encoding='ascii')
+
----------------
Nit: 'dir' is a Python builtin, this shadows it.
https://reviews.llvm.org/D37944
More information about the llvm-commits
mailing list