read-time feature expressions

'#+' and '#-' introduce conditional compilation: the form that follows
is kept only when the feature expression is true, and otherwise is read
and thrown away.  An expression is a feature name, or and / or / not
of them.

They are read time, not compile time.

Default features are the host's software-version, software-type and
machine-type as CHICKEN reports them, plus what --features flag adds.
This commit is contained in:
2026-09-16 17:44:56 +03:00
parent 6e4cb80424
commit bf83baa508
7 changed files with 189 additions and 5 deletions

View File

@@ -61,7 +61,7 @@ sextest:
$(MAKE) -C ./tools/sextest sextest
cp ./tools/sextest/sextest .
SEX_TEST_PROGRAMS = hello-world lists comments unicode serialize
SEX_TEST_PROGRAMS = hello-world lists comments unicode serialize features
# Multi-module linking is checked end to end; see tests/modules/Makefile.
check-modules: sexc