summaryrefslogtreecommitdiff
path: root/pkgtools/pkglint4/README
diff options
context:
space:
mode:
Diffstat (limited to 'pkgtools/pkglint4/README')
-rw-r--r--pkgtools/pkglint4/README27
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.