aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2020-09-24environment: Pass defines to clang based ObjC[++] compilersDylan Baker1-1/+5
mypy noticed that we were passing [] (instead of a dict or None) to the ClangCompiler class in objc, which made me noticed that for C and C++ we set the defines, but not for ObjC and ObjC++
2020-09-24compilers/objcpp: add type annotationsDylan Baker2-14/+31
2020-09-24compilers/objc: Add type annotationsDylan Baker2-14/+28
2020-09-24compilers: Tell mypy that the compiler mixins are just thatDylan Baker16-178/+122
We do this by making the mixins inherit the Compiler class only when mypy is examining the code (using some clever inheritance shenanigans). This caught a bunch of issues, and also lets us delete a ton of code.
2020-09-24compilers: make is_cross part of the base Compiler classDylan Baker14-38/+36
Every class needs to set this, so it should be part of the base. For classes that require is_cross, the positional argument remains in their signature. For those that don't, they just allow the base class to set their value to it's default of False.
2020-09-24compilers: make sanity_check_impl a protected methodDylan Baker3-4/+4
It's an implementation detail after all
2020-09-24compilers: put name_string method in base compilerDylan Baker9-24/+4
Every language had the exact same implementation
2020-09-24run_mypy: compilers/c_function_attributes is already type safeDylan Baker1-0/+1
2020-09-24run_mypy: all of compilers/mixins is now type safeDylan Baker1-14/+1
2020-09-24compilers/mixins: make xc16 type safeDylan Baker2-2/+8
2020-09-24compilers/mixins: make visual studio type safeDylan Baker2-2/+22
2020-09-24compilers/mixins/pgi: Make type safeDylan Baker2-2/+12
2020-09-24compilers/mixins/islinker: Make type safeDylan Baker2-0/+5
2020-09-24compilers/mixins/intel: make type safeDylan Baker2-12/+23
2020-09-24compilers/mixins/intel: Use the has_func_attribute_extra_args functionDylan Baker2-1/+6
Instead of putting that extra argument in the base compiles() class
2020-09-24compilers/mixins/emscripten: make type safeDylan Baker2-4/+12
2020-09-24compilers/mixins/elbrus: make type safeDylan Baker2-1/+6
2020-09-24compilers/mixins: make compcert type safeDylan Baker2-2/+7
2020-09-24compilers/mixins/clang: Make type safeDylan Baker3-5/+25
2020-09-24compilers/mixings/gnu: make type safeDylan Baker2-11/+35
2020-09-24compilers/mixins/clike: fix mypy issuesDylan Baker7-152/+303
2020-09-24compilers/mixins/ccrx: make mypy safeDylan Baker2-1/+7
2020-09-24compilers/mixins/c2000: Make mypy safeDylan Baker2-1/+7
2020-09-24compilers/mixins/arm: make type safeDylan Baker2-26/+25
2020-09-24compilers/compilers: Fully type annotateDylan Baker7-168/+266
2020-09-24ast/introspection: Fix typing violation due to untyped functionsDylan Baker1-7/+8
When we add type annotations to this in compilers this will break, unless we've already filtered out the non-string arguments.
2020-09-24compilers: Use a distinct type for compile/link resultsDylan Baker5-29/+42
Currently we do some crazy hackery where we add extra properties to a Popen object and return that. That's crazy. Especially since some of our hackery is to delete attributes off of the Popen we don't want. Instead, let's just have a discrete type that has exactly the properties we want.
2020-09-23zsh: Add completions for meson compileDylan Baker1-0/+16
2020-09-23zsh: add completions for subprojectsDylan Baker1-3/+77
2020-09-23zsh: add wrap completionsDylan Baker1-1/+54
This is still missing completions for promote, but I can't figure out how to find the wraps in subprojects that are not in the parent project when those projects haven't been fetched yet.
2020-09-23zsh: add missing arguments to meson test completionsDylan Baker1-5/+6
This also reorders the options internally to match the output of meson test --help, which makes it easier to diff
2020-09-23zsh: Add completions for meson initDylan Baker1-2/+22
2020-09-23Deprecate meson.build_root() and meson.source_root()Xavier Claessens3-6/+13
Those function are common source of issue when used in a subproject because they point to the parent project root which is rarely what is expected and is a violation of subproject isolation.
2020-09-23zsh: Add completions for meson installDylan Baker1-2/+17
2020-09-22pylint: turn on a few more errorsDylan Baker1-0/+3
2020-09-22pylint: turn on bad-indentation errorDylan Baker6-30/+31
and fix all of the bad indentation
2020-09-22pylint: turn on warnings for abstract classesDylan Baker1-0/+1
We're using these now, so having some error checking to make sure we don't have paths were we're trying to instantiate an abstract class would be good.
2020-09-22pylint: Turn on warnings for incorrect number of argsDylan Baker3-6/+11
This catches some very real errors. The one in scalapack is pretty silly actually, it's failing to figure out that the exploded list is at least two arguments. However, the code is actually clearer by not using a list and exploding it, so I've done that and pylint is happy too.
2020-09-22zsh: add meson dist completionsDylan Baker1-2/+18
2020-09-22mdist: actually constrain the choices of the --formats optionDylan Baker1-1/+1
Since we already have that list available.
2020-09-22zsh: Add ability to complete depedency pathsDylan Baker1-4/+4
using , separated syntax
2020-09-22zsh: add missing options for meson introspectDylan Baker1-5/+7
2020-09-22zsh: share common options between meson configure and meson setupDylan Baker1-36/+38
2020-09-22zsh: Add missing options for meson setupDylan Baker1-12/+26
2020-09-22zsh: remove binaries that are not longer installedDylan Baker1-1/+1
2020-09-21Add a test of a failed pickled commandJon Turney1-0/+7
2020-09-21docs: Clarify what literal strings mean [skip ci]Nirbheek Chauhan1-2/+3
Someone on IRC was confused by this paragraph.
2020-09-21Improve docs for creating new wraps. [skip ci]Jussi Pakkanen1-16/+85
2020-09-20Make meson_exe report pickled command when it failsJon Turney2-1/+6
Make 'meson --internal exe --unpickle' report the actual command executed when it fails, which is otherwise invisible.
2020-09-20Improve description of meson wrapped custom commandsJon Turney3-24/+47
I've always found ninja reporting 'a meson_exe.py custom command' unclear and confusing. Instead say we are invoking a custom command, wrapped by meson, and why.