Dylan Baker
a8173630ea
Don't use len() to test emptiness vs not emptiness
...
Meson has a common pattern of using 'if len(foo) == 0:' or
'if len(foo) != 0:', however, this is a common anti-pattern in python.
Instead tests for emptiness/non-emptiness should be done with a simple
'if foo:' or 'if not foo:'
Consider the following:
>>> import timeit
>>> timeit.timeit('if len([]) == 0: pass')
0.10730923599840025
>>> timeit.timeit('if not []: pass')
0.030033907998586074
>>> timeit.timeit('if len(['a', 'b', 'c', 'd']) == 0: pass')
0.1154778649979562
>>> timeit.timeit("if not ['a', 'b', 'c', 'd']: pass")
0.08259823200205574
>>> timeit.timeit('if len("") == 0: pass')
0.089759664999292
>>> timeit.timeit('if not "": pass')
0.02340641999762738
>>> timeit.timeit('if len("foo") == 0: pass')
0.08848102600313723
>>> timeit.timeit('if not "foo": pass')
0.04032287199879647
And for the one additional case of 'if len(foo.strip()) == 0', which can
be replaced with 'if not foo.isspace()'
>>> timeit.timeit('if len(" ".strip()) == 0: pass')
0.15294511600222904
>>> timeit.timeit('if " ".isspace(): pass')
0.09413968399894657
>>> timeit.timeit('if len(" abc".strip()) == 0: pass')
0.2023209120015963
>>> timeit.timeit('if " abc".isspace(): pass')
0.09571301700270851
In other words, it's always a win to not use len(), when you don't
actually want to check the length.
2017-05-02 21:57:26 +03:00
Jussi Pakkanen
fa0382f1f9
Add option to mesonconf to wipe cached data.
2017-01-23 21:01:34 +02:00
Mike Sinkovsky
969be1f679
cleanup: Remove redundant parentheses
2017-01-18 21:22:47 +02:00
Mike Sinkovsky
77515ee541
style: [E303] too many blank lines (2)
2017-01-11 12:33:27 -05:00
Igor Gnatenko
dd36847c4b
style: fix E202 violations
...
E202: whitespace before ']'
Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
2017-01-02 19:09:47 +01:00
Igor Gnatenko
c13160034f
style: fix E201 violations
...
E201: whitespace after '['
Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
2017-01-02 19:08:16 +01:00
Igor Gnatenko
f0bc5568a7
style: fix E703 violations
...
E703: statement ends with a semicolon
Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
2017-01-01 12:02:05 -05:00
Igor Gnatenko
969dc7e995
style: fix E124 violations
...
E124: closing bracket does not match visual indentation
Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
2017-01-01 12:02:05 -05:00
Igor Gnatenko
116da33cdd
style: fix E128 violations
...
E128: continuation line under-indented for visual indent
Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
2017-01-01 12:02:05 -05:00
Igor Gnatenko
2017d8578a
style: fix E226 violations
...
E226: missing whitespace around arithmetic operator
Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
2017-01-01 12:02:05 -05:00
Igor Gnatenko
139e020ede
tree-wide: use proper 'not in' notation
...
Let's be more pythonic and 'not is' seems really weird.
Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
2016-12-19 21:48:35 +01:00
Igor Gnatenko
5bf22c5678
add support for $sharedstatedir
...
Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
2016-12-18 00:08:45 +01:00
Igor Gnatenko
2962d3a66b
add support for $infodir
...
Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
2016-12-18 00:01:27 +01:00
Igor Gnatenko
380b362fa4
add support for $sbindir
...
Signed-off-by: Igor Gnatenko <i.gnatenko.brain@gmail.com>
2016-12-18 00:01:23 +01:00
Igor Gnatenko
c9818c02ec
add builtin support for localstatedir
...
Reported-by: Richard Hughes <richard@hughsie.com>
Closes: https://github.com/mesonbuild/meson/issues/1142
Signed-off-by: Igor Gnatenko <ignatenko@redhat.com>
2016-12-06 20:27:02 +02:00
Jussi Pakkanen
e0034fd6a5
A few sysconf fixes.
2016-11-02 12:11:47 -07:00
Jussi Pakkanen
1f4cce86ad
Remove shebangs on files that are not runnable and add execute bits to those that are.
2016-10-07 21:10:33 +03:00
Elliott Sales de Andrade
4c71695e41
Use context manager for file I/O.
...
There are a few cases where a context manager cannot be used, such as
the logger.
2016-08-27 18:29:55 -04:00
Jussi Pakkanen
7694321276
Renamed compile&link args and made them accessible from get_option.
2016-05-28 21:56:41 +03:00
Hemmo Nieminen
3f3fcace3d
mconf: Include testing related options when printing build configuration.
2016-04-04 02:52:30 +03:00
Hemmo Nieminen
af6f4c9b9c
coredata: Centralize builtin option descriptions and definitions.
2016-04-04 02:52:30 +03:00
Hemmo Nieminen
336904b553
Move MesonException from coredata to mesonlib.
2016-04-01 00:52:45 +03:00
Jussi Pakkanen
d87eb7d290
Merge branch 'base_options'.
2016-03-20 22:04:24 +02:00
Jussi Pakkanen
a405f7a499
Grab base options from the command line.
2016-03-20 20:43:32 +02:00
Jussi Pakkanen
0c63f75aaf
Converted coverage into a base option.
2016-03-20 19:16:49 +02:00
Nirbheek Chauhan
11f63105d0
New builtin option: libexecdir for installation of helper executables
2016-03-17 16:17:06 +05:30
Jussi Pakkanen
19046fd854
Added new base options and some sample opts for gcc.
2016-03-16 21:55:03 +02:00
Martin Ejdestig
6a90d5d587
Print value of werror in mesonconf
2016-02-22 19:45:34 +01:00
Jussi Pakkanen
3abd5305c2
Default to cwd in mesonconf. Closes #400 .
2016-02-20 00:02:44 +02:00
Jussi Pakkanen
23b98cd6e6
Renamed meson package to mesonbuild so that we can have a script named meson in the same toplevel dir.
2016-01-16 17:35:29 +02:00