aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2019-04-28consistent invalid escape sequence behaviourJon Turney3-6/+23
* docs: document unrecognized escape sequence behaviour [skip ci] Document that unrecognized escape sequence behaviour is like python, not C. * Don't try to decode invalid hex escape sequences Don't try to decode escape sequences which should contain a sequence of hex digits, but don't, throwing a python exception. These will treated literally instead. * Extend test case to cover invalid escape sequences
2019-04-28Merge pull request #5309 from jon-turney/ninja-backend-refactoringJussi Pakkanen1-383/+380
Ninja backend refactoring
2019-04-28RPM Macros: Use `meson test` for %meson_testStephen Gallagher1-1/+11
Previously, this called out to the %ninja_test macro to run the tests, but that limits us to only the arguments that ninja can understand. In particular, it is not possible to add a test timeout multiplier (such as is sometimes needed when building for slow architectures such as armv7hl). With this patch, it will be possible to specify `%meson_test -t 5` in the RPM spec file without needing to patch the sources to extend the timeouts, making life easier for packagers. Related: https://github.com/mesonbuild/meson/issues/2037 Signed-off-by: Stephen Gallagher <sgallagh@redhat.com>
2019-04-28Merge pull request #5323 from scivision/pgiflangJussi Pakkanen6-26/+82
Windows compiler fixes: PGI, Intel
2019-04-28Merge pull request #5265 from dcbaker/more-annotationsJussi Pakkanen3-126/+150
Fully annotate the envconfig and mlog modules
2019-04-28cmake: Use CMAKE_ROOT instead of _INCLUDE_FILE (closes #5218)Daniel Mensinger1-10/+2
2019-04-27enable Windows Intel compilerMichael Hirsch, Ph.D1-5/+12
2019-04-27detect Intel ICL on windowsMichael Hirsch, Ph.D4-6/+33
ICL CPP working
2019-04-27better default order for fotran compiler searchMichael Hirsch, Ph.D5-13/+35
correct PGI windows detection doc cleanup PGI detect
2019-04-27cleanup C/CXX compiler names, adding Intel like for FortranMichael Hirsch, Ph.D1-4/+5
2019-04-27cleanup unused imports PEP8Michael Hirsch, Ph.D1-4/+2
2019-04-27order fortran compiler search order more sanely, remove unsupported compiler ↵Michael Hirsch, Ph.D1-3/+4
names
2019-04-27ninja: Suppress unused rules in outputJon Turney1-1/+14
Don't bother outputting any rules which aren't referenced by any build statement.
2019-04-27ninja: Expand comment on shell-unquoted ninja variablesJon Turney1-1/+4
2019-04-27ninja: Push concatenation of command down into NinjaRuleJon Turney1-79/+47
Pass the command line to NinjaRule() as a list of strings, not already concatenated as a string.
2019-04-27ninja: Remove unneeded outfile args (build statements)Jon Turney1-88/+88
After the previous commit, outfile is now passed down to lots of things which don't use it, as they only create built statements, rather than writing them out. Remove these unnecessary args.
2019-04-27ninja: Store build statementsJon Turney1-47/+59
Store the build statements and then write them all out, rather than writing them out as we go. Construct a NinjaBuildElement for the 'PHONY' target, rather than writing it literally to the build.ninja file.
2019-04-27ninja: Remove unneeded outfile args (rules)Jon Turney1-33/+32
After the previous commit, outfile is now passed down to lots of things which don't use it, as they only create rules, rather than writing them out. Remove these unnecessary args.
2019-04-27ninja: Store rulesJon Turney1-180/+181
Store the rules and then write them all out, rather than writing them out as we go. Store the rule broken down into parts which do and don't go into rspfile, so we can construct either a rsp or non-rsp version of the rule.
2019-04-25mesonlib: Reimplement version comparison for speedDylan Baker1-14/+25
2019-04-25mesonlib: Remove useless repetition of the same checkDylan Baker1-10/+1
due to refactoring this is now useless.
2019-04-25mesonlib: specialize the implementation of == and !=Dylan Baker1-1/+8
Instead of using the ___cmp__ method just straight up compare the two values, since we've already converted numbers to ints and split non-numeric seperators this is sufficient, and 4x faster
2019-04-25mesonlib: use ints instead of strings for numbersDylan Baker1-6/+7
makes version comparisons even faster
2019-04-25mesonlib: use zip() in VersionDylan Baker1-6/+6
Instead of range. This makes version comparison 25-50% faster depending on the operator and how different the values are.
2019-04-25run_unittets: extend version tests to cover other casesDylan Baker1-12/+10
Before this we only covered >, <, and ==, but we an apply some basic logic to know that a > b == !(a <= b), or that if a > b then a != b. This uncovered some bugs I wrote while working on this code.
2019-04-25run_unittests: rewrite version test to not call private methodsDylan Baker1-95/+109
We really should be testing using the operators themselves, not the internal implementations, ie we should use a > b not a.__cmp__(b) == 1 in our tests, because __cmp__ is just an implementation detail.
2019-04-25Don't use len() to test for container emptinessDylan Baker16-33/+33
I ran the numbers once before (it's in the meson history) but it's *much* faster to *not* use len for testing if a container is empty or not.
2019-04-25rewriter: optimize the list_to_dict functionDylan Baker1-4/+9
This uses an iterator instead of walking a list, which is roughly twice as fast. This also does away with the pre-check on whether the list is valid for converting to a dict, and instead handles the case of an uneven number by catching another exception. This is preferable since it's a fatal error anyway, so avoiding it in the non-fatal case is preferable.
2019-04-25ast/printer: remove useless ternaryDylan Baker1-1/+1
The ternary returns True or False from an expression that returns True or False: i.e. True if bool(value) else False.
2019-04-25environment.py: Fix architecture detection on older MSVCChun-wei Fan1-1/+1
The cl.exe from Visual Studio 2010 and earlier report '80x86', not 'x86', for the architecture that the compiler supports. So, we ought to check for that as well to see whether we are building for 32-bit x86.
2019-04-24Rewrap text. [skip ci]Jussi Pakkanen1-4/+19
2019-04-24Merge pull request #5319 from kjerstadius/gcovr-4.2Jussi Pakkanen4-21/+18
Gcovr 4.2
2019-04-24Merge pull request #5292 from mensinda/introInterpFixJussi Pakkanen5-47/+123
ast: Add basic string operation support for AstInterpreter (fixes #5286)
2019-04-24hotdoc: Handle werrorThibault Saunier1-0/+3
2019-04-24hotdoc: Take into account boolean value to pass flag like argumentsThibault Saunier1-1/+2
2019-04-24doc: Update coverage related documentationRichard Kjerstadius2-2/+2
2019-04-24Add gcovr 4.2 supportRichard Kjerstadius2-19/+16
The out-of-source build syntax for gcovr 4.2 is different compared to previous versions and therefore an update was needed. In researching the most appropriate solution it was found that any gcovr version older than 3.3 always resulted in 0% coverage. Because of this, rather than adding an additional layer of logic, some already existing logic was modified to ensure correct syntax for the new version, while versions older than 3.3 are flagged as not supported. Closes mesonbuild#5089.
2019-04-23ninja: Move things which aren't rules or build statements up to generate()Jon Turney1-9/+10
2019-04-23ninja: Remove use of unset ninja variable 'aliasing'Jon Turney1-2/+2
Setting this variable to contain additional commands to symlink shlib aliases was removed in commit c0bf3e8d, so it's always unset now, and thus does nothing.
2019-04-23ast: Address code reviewDaniel Mensinger1-3/+7
2019-04-23ast: Improved test caseDaniel Mensinger1-12/+4
2019-04-23make flake8 happyDaniel Mensinger1-1/+0
2019-04-23ast: Make sure to avoid infinite recursionsDaniel Mensinger2-9/+23
2019-04-23ast: support elementary object methodsDaniel Mensinger4-27/+60
2019-04-23ast: resolve simple arithmetic nodesDaniel Mensinger2-5/+33
2019-04-23ast: resolve ID nodes in flatten_argsDaniel Mensinger3-24/+30
2019-04-23Don't use mutable types as default argumentsDylan Baker7-19/+28
This isn't safe given the way python implements default arguments. Basically python store a reference to the instance it was passed, and then if that argument is not provided it uses the default. That means that two calls to the same function get the same instance, if one of them mutates that instance every subsequent call that gets the default will receive the mutated instance. The idiom to this in python is to use None and replace the None, def in(value: str, container: Optional[List[str]]) -> boolean: return src in (container or []) if there is no chance of mutation it's less code to use or and take advantage of None being falsy. If you may want to mutate the value passed in you need a ternary (this example is stupid): def add(value: str, container: Optional[List[str]]) -> None: container = container if container is not None else [] container.append(value) I've used or everywhere I'm sure that the value will not be mutated by the function and erred toward caution by using ternaries for the rest.
2019-04-22fortran: fix compile.links() when passing dependenciesTamer Fahmy1-1/+1
With dependencies specifed, mode='compile' causes it to ignore the link arguments and thereby always fails.
2019-04-22mlog: add type annotationsDylan Baker1-54/+70
2019-04-22envconfig: Add type annotationsDylan Baker1-54/+54