Internships/ProjectIdeas/Meson style checker: Difference between revisions
(Created page with " === Style checker for Meson === '''Summary:''' Write a style checker for QEMU's Meson-based build system QEMU is a complex program with a complex build system. The switc...") |
m (Add meson category) |
||
(2 intermediate revisions by one other user not shown) | |||
Line 7: | Line 7: | ||
* dependencies searched with a method other than "pkg-config" or "system" | * dependencies searched with a method other than "pkg-config" or "system" | ||
* dependencies lacking "static: | * dependencies lacking "kwargs: static_kwargs" | ||
* static libraries lacking "build_by_default: false" | |||
* variables not defined on all paths (Meson accepts undefined variables on the RHS of short-circuiting boolean operators) | * variables not defined on all paths (Meson accepts undefined variables on the RHS of short-circuiting boolean operators) | ||
* always-true or always-false conditions | * always-true or always-false conditions | ||
Line 19: | Line 20: | ||
* Mentor: Paolo Bonzini <pbonzini@redhat.com> | * Mentor: Paolo Bonzini <pbonzini@redhat.com> | ||
** IRC nick: pbonzini (OFTC). I am usually reachable here between 10AM CET and 6PM CET, Monday-Friday. | ** IRC nick: pbonzini (OFTC). I am usually reachable here between 10AM CET and 6PM CET, Monday-Friday. | ||
[[Category:Meson]] |
Latest revision as of 06:47, 14 June 2024
Style checker for Meson
Summary: Write a style checker for QEMU's Meson-based build system
QEMU is a complex program with a complex build system. The switch to Meson made it possible to access a pre-parsed representation of the build process. We would like to style-check Meson files for occurrences of possible issues:
- dependencies searched with a method other than "pkg-config" or "system"
- dependencies lacking "kwargs: static_kwargs"
- static libraries lacking "build_by_default: false"
- variables not defined on all paths (Meson accepts undefined variables on the RHS of short-circuiting boolean operators)
- always-true or always-false conditions
The Meson language is not Turing complete and does not have functions, hence the Meson files have a very simple control-flow graph; complicated dataflow analysis techniques are not necessary. However it is useful to know the basics of what is a CFG and how dataflow analysis works.
Details:
- Skill level: Intermediate
- Language: Python 3.6
- Topic/Skill areas: compilation techniques, Meson build system
- Mentor: Paolo Bonzini <pbonzini@redhat.com>
- IRC nick: pbonzini (OFTC). I am usually reachable here between 10AM CET and 6PM CET, Monday-Friday.