aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libbuild2/buildfile9
-rw-r--r--libbuild2/parser.cxx3
2 files changed, 9 insertions, 3 deletions
diff --git a/libbuild2/buildfile b/libbuild2/buildfile
index b6c59a5..2fb4bde 100644
--- a/libbuild2/buildfile
+++ b/libbuild2/buildfile
@@ -227,9 +227,12 @@ else
# Generated options parser.
#
-# @@ Consider generating common cli runtime namespace if adding more option
-# files. Plus sommon types-parser.?xx (which could also potentially be
-# reused by the driver).
+# Note that the cli runtime namespace is build2::build::cli rather than
+# build2::cli. That's because the cli namespace inside build2 is reserved for
+# the cli build system module (libbuild2-cli). In fact, every namespace inside
+# build2 is reserved for a potential module and the only namespace names we
+# can use are build (this name, along with import and export, is reserved by
+# the build system core) and names that start with an underscore.
#
if $cli.configured
{
diff --git a/libbuild2/parser.cxx b/libbuild2/parser.cxx
index bec3230..b76bb18 100644
--- a/libbuild2/parser.cxx
+++ b/libbuild2/parser.cxx
@@ -3348,6 +3348,9 @@ namespace build2
n = move (i->value);
+ if (n[0] == '_')
+ fail (l) << "module name '" << n << "' starts with underscore";
+
if (i->pair)
try
{