I was trying to install Nyxt browser on FreeBSD.
The Makefile uses sbcl to find a certain value:
ifeq ($(LISP), sbcl)
SBCL_FLAGS=--dynamic-space-size $(shell sbcl --noinform --no-userinit --non-interactive --eval '(prin1 (max 3072 (/ (sb-ext:dynamic-space-size) 1024 1024)))' --quit)
endif
The problem starts here: sbcl --noinform --no-userinit --non-interactive --eval <expression omitted> --quit
Despite the "--noinform --no-userinit --non-interactive" CLI options, sbcl prints out a little banner message: % sbcl --noinform --quit
;;; loading #P"/usr/local/lib/sbcl/asdf/asdf.lisp"
That ";;; loading ..." message gets into the SBCL_FLAGS variable and causes a shell syntax error when Make tries to run the resulting command (that it builds with that messed up variable.)Now this alone, although annoying, is not enough to make me cry. I'm a tough old bird who's been around the block. I know where my towel is.
What made me cry is that I can't find any information about >;;; loading #P"/usr/local/lib/sbcl/asdf/asdf.lisp"< !
SBCL and ASDF are both ancient and venerable, there is a metric shit-ton of documentation around them, going back to before I was born. However, without a greybeard around to mentor me, it's effectively not a learning cure but a learning cliff. And yeah, I could open a bug, or join a mailing list or IRC channel, etc. But I "don't have time for that", I just want to run a goddammed browser, not grok the ancient mysteries of SBCL/ASDF.
BTW, I'm not posting this to complain, I hoping someone will pipe up with some useful information about how to quash that little message (piping stderr to /dev/null loses the message, but also the value that we're trying to get from sbcl in the first place.)
(P.S. Hard-coding the value in the makefile let it continue, but then it spews a huge bunch of info about how it's compiling Lisp, cool, but then the build fails with an obscure link error or something. So it goes...)