diff options
Diffstat (limited to 'pkgtools/pkglint4/README')
-rw-r--r-- | pkgtools/pkglint4/README | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/pkgtools/pkglint4/README b/pkgtools/pkglint4/README new file mode 100644 index 00000000000..6c5eb9d7479 --- /dev/null +++ b/pkgtools/pkglint4/README @@ -0,0 +1,27 @@ +$NetBSD: README,v 1.1 2015/11/25 16:42:21 rillig Exp $ + +== Current problems == + +There are finally some automated tests that document a few intended +and actual behaviors. There is still plenty of poorly expressed +code not yet under test and therefore not yet safe to refactor. + +The current pkglint architecture will not scale much further. What is +needed next are parsers for nested, non-context-free languages (make(1), +sh(1), sed(1)). The parsers should be able to recognize partial +structures, as well as structures containing foreign parts. This is +because most of pkgsrc is heavily based on preprocessors: + +- The .if and .for directives in Makefiles are preprocessed by make(1) + before building dependencies and shell commands out of the remaining + text. + +- make(1) assembles shell commands from literal text and variables like + ${PKGNAME}. + +- Shell commands often use dynamic evaluation of variables. + +All this makes enhancing pkglint non-trivial. If you know of any +academic papers that might be of help in this case, please tell me. + +The pkglint source code is much too big for a single file. |