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...") |
|||
Line 8: | Line 8: | ||
* 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: enable_static" | * dependencies lacking "static: enable_static" | ||
* 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 |
Revision as of 17:37, 20 January 2021
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 "static: enable_static"
- 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.