sb-manual: do not document unbuilt contribs
Some checks are pending
CL-host / ecl (push) Waiting to run
CL-host / clisp (push) Waiting to run
CL-host / ccl (push) Waiting to run
CL-host / cmucl (push) Waiting to run
CL-host / sbcl (push) Waiting to run
CL-host / compare-xc-host-fasls (ccl, false) (push) Blocked by required conditions
CL-host / compare-xc-host-fasls (clisp, false) (push) Blocked by required conditions
CL-host / compare-xc-host-fasls (cmucl, false) (push) Blocked by required conditions
CL-host / compare-xc-host-fasls (self, false) (push) Blocked by required conditions
Linux arm / build (push) Waiting to run
Linux arm64 / build () (push) Waiting to run
Linux qemu / build (ppc64le) (push) Waiting to run
Linux qemu / build (riscv64) (push) Waiting to run
Linux / build (x86, --with-sb-thread, ) (push) Waiting to run
Linux / build (x86, --without-sb-thread, ) (push) Waiting to run
Linux / build (x86, --without-sb-unicode, ) (push) Waiting to run
Linux / build (x86-64, --with-mark-region-gc --with-nonstop-foreign-call) (push) Waiting to run
Linux / build (x86-64, --with-sb-fasteval --without-sb-eval --with-nonstop-foreign-call, fasteval) (push) Waiting to run
Linux / build (x86-64, --with-sb-thread --with-nonstop-foreign-call --with-tls-based-mv-return, sse4) (push) Waiting to run
Linux / build (x86-64, --with-sb-thread, ) (push) Waiting to run
Linux / build (x86-64, --without-sb-thread, ) (push) Waiting to run
Linux / build (x86-64, --without-sb-unicode, ) (push) Waiting to run
Mac / build (arm64, --with-mark-region-gc --with-nonstop-foreign-call --with-tls-based-mv-return) (push) Waiting to run
Mac / build (arm64, --with-sb-thread --with-nonstop-foreign-call --with-tls-based-mv-return) (push) Waiting to run
Mac / build (x86-64, --with-mark-region-gc --with-nonstop-foreign-call --with-tls-based-mv-return) (push) Waiting to run
Mac / build (x86-64, --with-sb-thread --with-nonstop-foreign-call --with-tls-based-mv-return) (push) Waiting to run
Windows arm64 / build (arm64, clang-aarch64, clangarm64) (push) Waiting to run
Windows / build (x86-64, ucrt-x86_64, ucrt64) (push) Waiting to run

Also, test texinfo generation on github.
This commit is contained in:
Gabor Melis 2026-09-03 10:28:30 +02:00
parent ccbf25c80d
commit 289db46c16
13 changed files with 49 additions and 34 deletions

View file

@ -29,6 +29,8 @@ jobs:
CC: arm-linux-gnueabihf-gcc
run: ./make.sh --xc-host='sbcl --dynamic-space-size 700MB --lose-on-corruption --disable-ldb --disable-debugger' --arch=arm
- name: build documentation
run: cd ./doc/manual && sh generate-texinfo.sh
- name: test
env:
CC: arm-linux-gnueabihf-gcc

View file

@ -47,6 +47,8 @@ jobs:
name: sbcl-linux-binary-arm64${{ matrix.options }}
path: sbcl-linux-binary-arm64${{ matrix.options }}
- name: build documentation
run: cd ./doc/manual && sh generate-texinfo.sh
- name: test
run: cd tests; ./run-tests.sh --slow
- name: ansi-test

View file

@ -50,6 +50,8 @@ jobs:
- name: test-fasteval
if: matrix.subfeatures == 'fasteval'
run: cd tests; ./run-tests.sh --evaluator-mode interpret
- name: build documentation
run: cd ./doc/manual && sh generate-texinfo.sh
- name: test
run: cd tests; ./run-tests.sh --slow
- name: ansi-test

View file

@ -37,6 +37,8 @@ jobs:
with:
name: sbcl-mac-binary-${{ matrix.arch }}${{ matrix.options }}
path: sbcl-mac-binary-${{ matrix.arch }}${{ matrix.options }}
- name: build documentation
run: cd ./doc/manual && sh generate-texinfo.sh
- name: test
run: cd tests; ./run-tests.sh --slow
- name: ansi-test

View file

@ -58,6 +58,8 @@ jobs:
with:
name: sbcl-windows-installer-${{ matrix.sys }}
path: sbcl-windows-installer
- name: build documentation
run: cd ./doc/manual && sh generate-texinfo.sh
- name: tests
working-directory: tests
run: ./run-tests.sh

View file

@ -49,12 +49,11 @@ jobs:
with:
name: sbcl-windows-installer-${{ matrix.sys }}
path: sbcl-windows-installer
- name: build documentation
run: cd ./doc/manual && sh generate-texinfo.sh
- name: tests
working-directory: tests
run: ./run-tests.sh
- name: ansi-tests
working-directory: tests
run: ./ansi-tests.sh

View file

@ -20,10 +20,13 @@ sb-mpfr.fasl: sb-gmp.fasl
sb-queue.fasl: sb-concurrency.fasl
sb-simple-streams.fasl: sb-posix.fasl sb-bsd-sockets.fasl
sb-grovel.fasl: asdf.fasl # for building the module, not for our build
sb-manual.fasl: sb-aclrepl.fasl sb-bsd-sockets.fasl sb-cltl2.fasl \
sb-concurrency.fasl sb-cover.fasl sb-grovel.fasl sb-introspect.fasl \
sb-md5.fasl sb-posix.fasl sb-rotate-byte.fasl sb-queue.fasl \
sb-sprof.fasl
sb_manual_module_deps = sb-aclrepl sb-bsd-sockets sb-cltl2 sb-concurrency \
sb-cover sb-grovel sb-introspect sb-md5 sb-posix sb-rotate-byte \
sb-queue sb-sprof sb-simd sb-simple-streams
sb_manual_unblocked_module_deps = \
$(filter-out $(SBCL_CONTRIB_BLOCKLIST), $(sb_manual_module_deps))
sb-manual.fasl: $(sb_manual_unblocked_module_deps:=.fasl)
# Notes:
# 1. Invoking $(MAKE) for nested make eliminates a warning about jobserver mode.

View file

@ -152,17 +152,14 @@
(push c wcu-warnings)))))
(with-compilation-unit ()
(loop for (generated-p stem) in (flattened-sources)
do (let* ((output (let ((name (if (pathnamep stem)
stem
(merge-pathnames objdir stem))))
(ensure-directories-exist name)
name))
(fasl
do (let ((fasl
(if (string= (pathname-type stem) "fasl")
stem
(multiple-value-bind (output warnings errors)
(compile-file (logicalize stem generated-p)
:output-file output)
(compile-file
(logicalize stem generated-p)
:output-file (ensure-directories-exist
(merge-pathnames stem objdir)))
(when (or warnings errors) (sb-sys:os-exit 1))
output))))
(fasls fasl)

View file

@ -7,13 +7,8 @@
On the positive side, this does not load extra stuff until the
user `require`s `sb-manual`. However, then it loads all contribs.
A finer grained approach may be preferable. For example, we could
make the `manual.lisp` file part of the contrib itself. Then
people might complain about the overhead of loading/having the
docstrings in the image.
Alternatively, we could have `sb-bsd-sockets/manual.lisp` as a new
`sb-bsd-sockets-manual` module. Eh.
It shouldn't be difficult to show documtation only for actually
loaded contribs.
- How to deal with repetitive package names?

View file

@ -6,15 +6,24 @@
(see @CUSTOMIZATION-HOOKS-FOR-USERS). This section contains
documentation (or pointers to documentation) for some of the
contributed modules."
#+#.(sb-manual::package-exists-p/reader '#:sb-aclrepl)
(@sb-aclrepl section)
#+#.(sb-manual::package-exists-p/reader '#:sb-concurrency)
(@sb-concurrency section)
#+#.(sb-manual::package-exists-p/reader '#:sb-cover)
(@sb-cover section)
#+#.(sb-manual::package-exists-p/reader '#:sb-grovel)
(@sb-grovel section)
#+#.(sb-manual::package-exists-p/reader '#:sb-introspect)
(@sb-introspect section)
(@sb-manual section)
#+#.(sb-manual::package-exists-p/reader '#:sb-md5)
(@sb-md5 section)
#+#.(sb-manual::package-exists-p/reader '#:sb-posix)
(@sb-posix section)
#+#.(sb-manual::package-exists-p/reader '#:sb-queue)
(@sb-queue section)
#+#.(sb-manual::package-exists-p/reader '#:sb-rotate-byte)
(@sb-rotate-byte section)
#+(or :x86-64 :arm64)
#+#.(sb-manual::package-exists-p/reader '#:sb-simd)
(@sb-simd section))

View file

@ -7,7 +7,9 @@
(if long
(format nil "~D-~2,'0D-~2,'0D ~2,'0D:~2,'0D:~2,'0D"
year month day hour minute second)
(format nil "~D-~2,'0D" year month)))))
(format nil "~D-~2,'0D" year month))))
(defun package-exists-p/reader (name)
(if (find-package name) '(and) '(or))))
(defsection @sbcl-manual (:title "SBCL Manual")
;; This docstring is not used in the Texinfo version (see
@ -44,6 +46,7 @@
(@package-locks section)
(@threading section)
(@timers section)
#+#.(sb-manual::package-exists-p/reader '#:sb-bsd-sockets)
(@networking section)
(@profiling section)
(@contributed-modules section)

View file

@ -38,8 +38,7 @@
(:file "../../sb-posix/manual")
(:file "../../sb-queue/manual")
(:file "../../sb-rotate-byte/manual")
(:file "../../sb-simd/manual"
:if-feature (:or :x86-64 :arm64))
(:file "../../sb-simd/manual")
(:file "../../sb-simple-streams/manual")
(:file "deprecation")))
(:file "late")))

View file

@ -290,7 +290,7 @@ most appropriate version based on the instruction set extensions that
are actually available.
This kind of run time instruction set dispatch is explicitly
supported by means of the SB-SIMD-INTERNALS:INSTRUCTION-SET-CASE
supported by means of the @code{sb-simd-internals:instruction-set-case}
macro. The code resulting from an invocation of this macro compiles
to an efficient jump table whose index is recomputed on each startup
of the Lisp image.