aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2020-11-21envconfig: use debug for "using * from environment variables messagesDylan Baker1-1/+1
These are spammy, and being in the debug log is probably better anyway.
2020-11-20setup.cfg: fix python requires to be 3.6.0Dylan Baker1-1/+1
2020-11-20setup.py: fix check fro 3.5.2 which should be 3.6Dylan Baker1-2/+2
2020-11-20Delete now dead < python 3.6 checkDylan Baker1-1/+1
2020-11-20use real pathlib moduleDylan Baker44-92/+42
We added the _pathlib module to work around defeciencies in python 3.5's implementation, since we now rely on 3.6 lets drop this
2020-11-20optinterpreter: organize the validation of arguments to be more readableDylan Baker1-10/+13
2020-11-20optinterpreter: use PEP8 compliant namesDylan Baker1-10/+10
2020-11-20optinterpreter: fix value being set in loopDylan Baker1-1/+1
This value shouldn't be set in the loop, it's probably been making things slow, but also creates the potential that if choices is an empty list that value would be unbound. While that's exteremly unlikly to happen in practice, it is showing up as a warning from pylance.
2020-11-20Add type annotations to optinterpreterDylan Baker2-19/+34
2020-11-20Allow setting attributes in MesonException intializerDylan Baker1-3/+7
Instead of forcing them to be set afterwards
2020-11-20run_unittests: delete test for external syntax highlightingDylan Baker1-46/+0
It's a bit odd we have a test for an external project that's not even in the meson organization. Regardless, the json file was recently replaced by a cson file. There is an coffee-script-notation parser in pypi, but I couldn't get it to work. Just delete the test
2020-11-18unittests: ignore nix rpathsDylan Baker1-5/+12
As a necessity nix adds a bunch of rpaths to files, this is unavoidable do to the way nix package management works. Meson doesn't expect this however, and fails all rpath tests. To correct this we just ignore any rpath entries that start with `/nix`.
2020-11-18Merge pull request #7894 from obilaniu/cudaupdatesJussi Pakkanen3-58/+169
Update unstable CUDA Module to support newest toolkits and drivers.
2020-11-18Merge pull request #7836 from bonzini/mtest-asyncioJussi Pakkanen1-137/+212
[RFC] mtest: use asyncio instead of concurrency.futures
2020-11-18Update Tutorial.md [skip ci]Michael Brockus1-12/+38
2020-11-18Merge pull request #7900 from bonzini/stabilize-hashJussi Pakkanen5-8/+8
Avoid build.ninja changes due to order of hash table iteration
2020-11-18mtest: cleanup and fix print_statsPaolo Bonzini2-14/+12
Avoid calling self.collected_failures.append twice, and avoid inflated indentation by adding a "plain" decorator to mlog. Fixes: ba71fde18 ("mtest: collect failures regardless of colorized console", 2020-10-12)
2020-11-17Revert "Add thinlto support. Closes #7493."Jussi Pakkanen7-53/+15
This reverts commit 3e6fbde94c1cb8d4e01b7daf0282c315ff0e6c7d.
2020-11-17Collect and return clang-format's return codeFlorian Schmaus1-3/+4
There is no reason why meson should swallow any non-zero exit(/return) code of clang-format.
2020-11-17Fix clang-tidy return value reporting (Part â…¡)Florian Schmaus1-1/+1
It turns out my first attempt to fix this in 00d5ef3191e5 ("Fix clang-tidy return value reporting (#7949)") is not sufficient: The local variable returncode is never updated and stays at 0. This fixes the returncode calculation. Fixes: cce172432be3 ("Use run-clang-tidy when available.")
2020-11-17doc: add much-needed accuracy to pip installation instructions [skip ci]Eli Schwartz1-2/+7
- mention installing from local sources, not PyPI - warn against --user installs, which too often screw up users that then cannot install projects because ~/.local won't be in sudo's PYTHONPATH - advise installing with sudo -- current versions of pip assume --user for you rather than failing with permission errors, which is great unless, like meson, there are compelling reasons to need to install as root
2020-11-17gnome: Drop use of volatile in GLib type functionsPhilip Withnall5-17/+17
See https://gitlab.gnome.org/GNOME/glib/-/issues/600 `volatile` was previously mistakenly used in GLib to indicate that a variable was accessed atomically or otherwise multi-threaded. It’s not meant for that, and up to date compilers (like gcc-11) will rightly warn about it. Drop the `volatile` qualifiers. Based on a patch by Jeff Law. See also http://isvolatileusefulwiththreads.in/c/. Signed-off-by: Philip Withnall <pwithnall@endlessos.org>
2020-11-17add warning for projects with manually specified -WerrorEli Schwartz1-0/+3
Point people to the "werror" builtin option.
2020-11-16unittests: Simplify and make test_templates more reliableDylan Baker1-46/+8
env.detect_<lang>_compiler only checks that there is a binary called whatever that returns a version. There are several cases where the found binary doesn't work: 1) gcc for ojbc[pp], when support isn't compiled in. 2) the compiler is broken (rust in appveyor somtimes) Because of that we need to call compiler.sanity_check() as well, and if we get an EnvironmentException from that skip the language Also, instead of having a long line of try: ... except: pass, roll all of the checking up into a loop using getattr(), which is less code and makes adding a new language easier
2020-11-16run_unittests: correctly handle users setting init.defaultBranchDylan Baker1-2/+18
2020-11-16run_unittests: Don't assume things are in /usr/binDylan Baker1-21/+17
This is generally a safe assumption, except for some of the more exotic OSes/distros like nixos, where env is the only thing in /usr/bin
2020-11-15ninjabackend: stabilize order of dependencies and order-only dependenciesPaolo Bonzini1-2/+2
These do not go into the command line, and therefore do not matter for the purpose of avoiding unnecessary rebuilds after meson is rerun. However, they complicate the task of finding differences between build lines across meson reruns. So take the easy way out and sort everything after | and ||. With this change, there is absolutely no change in QEMU's 40000-line build.ninja file after meson is rerun.
2020-11-15stabilize iteration order for dictionariesPaolo Bonzini1-2/+2
The order of keys in dictionaries cannot be relied upon, because the hash values are randomized by Python. Whenever we iterate on dictionaries and meson.build generates a list during the iteration, the different iteration orders may cause random changes in the command line and cause ninja to rebuild a lot of files unnecessarily.
2020-11-15stabilize sets that are converted to listsPaolo Bonzini3-4/+4
The order of elements in sets cannot be relied upon, because the hash values are randomized by Python. Whenever sets are converted to lists we need to keep their order stable, or random changes in the command line cause ninja to rebuild a lot of files unnecessarily. To stabilize them, use either sort or OrderedSet. Sorting is not always applicable, but it can be faster because it's done in C and it can produce slightly nicer output.
2020-11-15mtest: switch to asyncio subprocessesPaolo Bonzini1-35/+19
No functional change except that the extra thread goes away.
2020-11-15mtest: use ProactorEventLoopPaolo Bonzini1-0/+4
This is needed to use asyncio with pipes and processes.
2020-11-15mtest: improve handling of SIGINT and SIGTERMPaolo Bonzini1-8/+36
Handle SIGINT and SIGTERM by respectively cancelling the longest running and all the running tests.
2020-11-15mtest: remove usage of executorsPaolo Bonzini1-50/+76
Rewrite the SingleTestRunner to use asyncio to manage subprocesses, while still using subprocess.Popen to run them. Concurrency is managed with an asyncio Semaphore; for simplicity (since this is a temporary state) we create a new thread for each test that is run instead of having a pool. This already provides the main advantage of asyncio, which is better control on cancellation; with the current code, KeyboardInterrupt was never handled by the thread executor so the code that tried to handle it in SingleTestRunner only worked for non-parallel tests. And because executor futures cannot be cancelled, there was no way for the user to kill a test that got stuck. Instead, without executors ^C exits "meson test" immediately. The next patch will improve things even further, allowing a single test to be interrupted with ^C.
2020-11-15mtest: add INTERRUPT to TestResultPaolo Bonzini1-21/+24
Distinguish a failure due to user interrupt from a presumable ERROR result due to the SIGTERM. The test should fail after CTRL+C even if the test traps SIGTERM and exits with a return code of 0.
2020-11-15mtest: always ignore ProcessLookupErrorPaolo Bonzini1-33/+26
ProcessLookupError can also happen from p.kill(). There is also nothing we can do in that case, so move the "try" for that exception to the entire kill_process function. The ValueError case seems like dead code, so get rid of it.
2020-11-15mtest: refactor _run_cmdPaolo Bonzini1-85/+101
A large part of _run_cmd is devoted to setting up and killing the test subprocess. Move that to a separate function to make the test runner logic easier to understand.
2020-11-15mtest: add back SIGINT handlingPaolo Bonzini1-6/+27
2020-11-15mtest: use asyncio for run loopPaolo Bonzini1-26/+39
Use asyncio futures for the run loop, while still handling I/O in a thread pool using run_on_executor. The handling of the test result is not duplicated anymore between run_tests and drain_futures. Instead, the test result is always processed and printed by run_test after single_test.run() completes and (in verbose mode) it cannot interleave with the test output. Therefore the special case for self.options.num_processes == 1 can be removed.
2020-11-15mtest: remove run_specialPaolo Bonzini1-13/+1
run_special and doit are the same except that run_special forgot to set self.is_run. There is no need for the duplication. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-11-15mtest: fix flake8 issuesPaolo Bonzini1-4/+3
2020-11-14Add doc on how to add the [provide] entry to wrapdb entries. [skip ci]Jussi Pakkanen1-41/+69
2020-11-14Merge pull request #7843 from dcbaker/submit/rustc-fixesJussi Pakkanen6-52/+89
A few fixups for rust
2020-11-13Merge pull request #7967 from jpark37/msvc-c17Dylan Baker2-9/+20
msvc: enable /std:c17 flag
2020-11-13msvc: enable /std:c17 flagjpark371-8/+19
Increase allowed c_std options, and check compiler version. Also update mlog pattern to not crash.
2020-11-13Use c99 instead of c11 for buildoptions testjpark371-1/+1
Older verisons of MSVC do not support C11 properly.
2020-11-13environment: Fix detection of rust compilers, moreDylan Baker2-12/+29
2020-11-13compilers/rust: warn about setting -C linker in your compiler argsDylan Baker1-0/+7
2020-11-13compilers/rust: add and use an implementation of use_linker_argsDylan Baker2-7/+11
2020-11-13run_unittests: use textwrap.dedentDylan Baker3-28/+34
So that editors that can fold code (vim, vscode, etc) can correctly fold functions, instead of getting confused by code that doesn't follow the current indention. Also, it makes the code easier to read.
2020-11-13ninjabackend: Fix a couple of rust bugsDylan Baker1-2/+3
There are two bugs here, first is that we open coded the output args, instead of using the compiler method. The second is that rust args are not passed down to the backend invocation.