aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2023-01-04mtest: delay creation of asyncio lock until event loop existsEli Schwartz1-1/+4
In https://bugs.python.org/issue42392 this stopped implicitly creating an event loop if none exists. We created it before running _run_tests(), so it would auto-create an event loop and set the default, which means we cannot create one explicitly on our own schedule or we end up with two of them. Delay this until we actually start the logger. This happens inside the actual testsuite loop, so it finds the running loop and doesn't create a new one, even on python <3.10.
2023-01-04add a hidden environment variable to make Meson complain hard on deprecationsEli Schwartz1-0/+7
Useful for running the testsuite with this environment variable and catching obscure issues. Just like with the encoding warning later down, we have to do this inside meson itself, not externally injected.
2023-01-04clang-cl: supports /std:c++20 now.Luke Elliott2-1/+4
See https://github.com/llvm/llvm-project/commit/a8f75d49
2023-01-04document declare_dependency(object: ...)Paolo Bonzini3-2/+14
2023-01-04forbid using declare_dependency(objects: ...) with pkg-config modulePaolo Bonzini1-0/+2
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2023-01-04add testcase for declare_dependency(objects: ...)Paolo Bonzini4-0/+30
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2023-01-04add objects keyword argument to declare_dependenciesPaolo Bonzini5-8/+13
2023-01-04allow passing generated objects in the "objects" keyword argumentPaolo Bonzini4-8/+22
Generated objects can already be passed in the "objects" keyword argument as long as you go through an extract_objects() indirection. Allow the same even directly, since that is more intuitive than having to add them to "sources". Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2023-01-03modules/gnome: use `mlog.log(once=True)` in a few more placesDylan Baker1-2/+2
It's probably not useful to spam the user with warnings that old versions of software may not behave correctly when the first warning was perfectly valid.
2023-01-03Add fatal=False to many mlog.warnings()Dylan Baker5-11/+16
There are lots of warnings that become fatal, that are simply unfixable by the end user. Things like using old versions of software (because they're using some kind of LTS release), warnings about compilers not supporting certain kinds of checks, or standards being upgraded due to skipped implementations (MSVC has c++98 and c++14, but not c++11). None of these should be fatal, they're informative, and too important to reduce to notices, but not important enough to stop meson if they're printed.
2023-01-03wrap: use log once instead of hand rollingDylan Baker1-5/+1
2023-01-03mparser: Don't create an exception to pass to mlog.warningDylan Baker1-5/+4
Just call `mlog.code_line` directly, since the exception is never raised.
2023-01-03mlog: move code for printing code with a caret to the mlog moduleDylan Baker2-1/+12
We need this outside the constructor for the ParseException class, so let's pull it out. mlog seemed like a good place since it's a text formatting function, and has no dependencies.
2023-01-03reformat some warnings for better code readabilityDylan Baker2-5/+7
2023-01-03backends/backends: Add helpful message for getting rid of warningDylan Baker1-1/+1
2023-01-03mlog: use an enum instead of stringsDylan Baker1-11/+19
enum comparisons are ultimately ints, so they're faster, plus they're exhaustive, so mypy can statically determine that we've passed a valid value rather than via an assertion at runtime.
2023-01-03mlog: Remove using of `**kwargs: T.Any`Dylan Baker1-29/+59
This is annoying because we can't get proper auto-completion of mlog, and because ultimately it was allowing keyword arguments to be silently dropped on the floor. This does make the code a little more verbose, but I think the trade-offs of completion + better safety are worth it. PEP692, which will be part of python 3.12, provides a more elegant solution using `TypedDicts` to annotate `**kwargs`, which we should consider in the future.
2023-01-03msetup: do some stupid casting to make mypy happyDylan Baker1-4/+5
mypy is pretty dumb when it comes to unions of callables (pylance is also dumb in this regard), and can't figure out that our use of `mlog.debug | mlog.log` is perfectly safe. We also can't annotate them properly to cast them to a valid subset of arguments because you can't have splats in `typing.Callable`, so I've done enough to make it work.
2023-01-03dependencies/dev: refactor some code to make mypy happyDylan Baker1-4/+10
There should be a way to make mypy happy without casting, but I can't figure it out, since the mlog.error and mlog.debug actually have different signatures.
2023-01-03mparser: don't pass a SimpleNamespace where a BaseNode is expectedDylan Baker1-2/+1
mypy spotted this as well. And it turns out that we're not setting the column either for the warning, so improvements!
2023-01-03mesonlib: remove filename parameter to mlog.warningDylan Baker1-1/+1
After tracing all the way down to the bottom of this (or really, adding annotations so mypy can) it turns out that passing file would just be ignored at the end of the mlog call stack, so it should be removed
2023-01-01CI: bypass the cache and install codeql latestEli Schwartz1-0/+2
fixes instability in precise version of tools resulting in some runners getting a downgraded version and producing spuriously fixed/reintroduced codeql alerts.
2022-12-27add builtin option to install licensesEli Schwartz6-6/+27
Unless `meson.install_dependency_manifest()` is explicitly used, this will cause a default implied one to be installed.
2022-12-27add license_files kwarg to projectEli Schwartz12-8/+60
Hook this up to installed dependency manifests. This is often needed above and beyond just an SPDX string -- e.g. many licenses have custom copyright lines.
2022-12-27tests: fix test that has source code incompatible with modern CEli Schwartz2-1/+12
Delayed until clang 16, -Werror=incompatible-function-pointer-types is the default. GCC 14 is "likely to do the same". See https://wiki.gentoo.org/wiki/Modern_C_porting
2022-12-27docs: update IDE-integrations [skip-ci]Stephan Lachnit1-4/+2
- change asabil.meson to vscode-meson - remove unmaintained Meson-UI and Meson Cmake Wrapper - remove note that Ecplise CDT support is experimental
2022-12-27docs: add mmeson to IDE integrations [skip-ci]Stephan Lachnit1-0/+1
2022-12-27emscripten: remove no longer relevant commentKleis Auke Wolthuizen1-2/+1
This was fixed in Emscripten 1.39.16, see: https://github.com/emscripten-core/emscripten/commit/d4fabf3da40e7f556700b16950739d5960a91559
2022-12-27emscripten: enforce version 1.39.19 or higherKleis Auke Wolthuizen2-0/+4
2022-12-27emscripten: remove redundant `thread_flags` implementationKleis Auke Wolthuizen1-3/+0
Since it's the same as the one in `CLikeCompiler`.
2022-12-27emscripten: use single arguments when specifying optionsKleis Auke Wolthuizen3-5/+5
i.e. without a space between the "-s" and option name. See: https://github.com/emscripten-core/emscripten/issues/11463 This is supported since Emscripten 1.39.19, see: https://github.com/emscripten-core/emscripten/commit/f45bea21f3a8f74a68ed4e3e3d7e290807ee2aff
2022-12-27emscripten: prefer `-pthread` over `-s USE_PTHREADS=1`Kleis Auke Wolthuizen1-2/+2
See: https://github.com/emscripten-core/emscripten/issues/12346 This is supported since Emscripten 1.38.33, see: https://github.com/emscripten-core/emscripten/commit/24350798a8570f567327f873cf1efb0361aec284
2022-12-25dependencies: better logging of pkg-config call outputsEli Schwartz1-1/+5
If `pkg-config --modversion foobar` fails, we don't know why. The general issue here, though, is that call_pkgbin routinely logs stdout for informational purposes, but not stderr. Fixes #11076
2022-12-24interpreter: use static_lib's already calculated pic valueDylan Baker1-9/+1
Instead of re-calculating it when building both libraries
2022-12-23Bump version number for new development.Jussi Pakkanen1-1/+1
2022-12-23This is it. The 1.0.0.1.0.0Jussi Pakkanen1-1/+1
2022-12-23Created release note page for 1.0.0.Jussi Pakkanen11-68/+86
2022-12-22meson: Cache os.path.realpath in CLikeCompilerArgsNirbheek Chauhan1-4/+9
Profiling showed that we were spending 25s inside os.path.realpath() on Windows while generating compile lines for build.ninja, inside NinjaBackend.generate() The real path for these will not (should not) change during a single meson invocation, so cache all these. Brings build.ninja generation from 73s to 47s on my machine.
2022-12-22Users.md: add i3Oliver Kraitschy1-0/+1
2022-12-21add more testcases for prebuilt objectsPaolo Bonzini2-3/+23
Cover more cases including passing objects via ExtractedObjects and CustomTarget.
2022-12-21fix build_target(objects: ...) documentationPaolo Bonzini1-4/+4
The documentation for build_target(...) does not list file or str as the possible types for the "objects" keyword argument, even though in theory the argument is meant for prebuild object files that are part of the sources. Of course that is only the theory, because an ExtractedObjects object is probably used a lot more than a file in the source tree. But at least make the reference manual's typing information accurate.
2022-12-21meta: add python 3.11 classiferMichael Hirsch1-0/+1
2022-12-21LGTM is discontinued. Remove badge and configMichael Hirsch2-6/+0
2022-12-21doc: Add missing include_directories kwarg to compiler.preprocess()Xavier Claessens1-0/+2
Fixes: #11202
2022-12-19Users.md: Add PostgreSQLAmit D1-0/+1
2022-12-17Bump version number for rc2.1.0.0rc2Jussi Pakkanen1-1/+1
2022-12-17mtest: handle TAP tests with unknown version.Eli Schwartz1-1/+4
TAP 14 states: > Harnesses may treat any TAP stream lacking a version as a failed test. TAP 13 states: > In the absence of any version line version 12 is assumed. It is an > error to explicitly specify any version lower than 13. So, modern TAP is saying that we should treat a missing version as a test definition bug, it's no longer okay to use a missing version as saying "let's use TAP 12". But, we can choose whether to treat it that way or error out. Let's do a diagnostic, as we do elsewhere. But allow TAP streams that aren't well defined, if they used to be well defined (back in TAP 12).
2022-12-16Merge pull request #11174 from bgilbert/jar-manifestJussi Pakkanen5-2/+63
depfixer: silence `fix_jar()` and make it do something
2022-12-16Merge pull request #11181 from tristan957/backendsJussi Pakkanen3-16/+36
JNISystemDependency fixes
2022-12-15Enable Java project tests on DarwimTristan Partin1-1/+1