- Decouple ASDF initialization from devel/cl-asdf by creating a dedicated port: devel/freebsd-cl-asdf-init.
- Convert devel/cl-asdf/bsd.cl-asdf.mk to USES=cl.
- Add devel/cl-asdf-sbcl
- Update ASDF configuration:
- Prefer newer ASDF versions, but only if the fasl is available.
- Replace license text with an SPDX license identifier.
- Simplify and clarify documentation.
- Remove the assumption that ${PREFIX} is /usr/local.
- Use uiop:getenv instead of a custom getenv function.
- Remove asdf:output-files customization to resolve output translation issues.
- Improve output translations:
- Prevent writing fasls to ${PREFIX}/lib/common-lisp/ when the corresponding fasl port is not installed.
- Fall back to ASDF's default caching mechanism of writing fasl to a cache under ${HOME} when users install a Common Lisp port without its fasl port.
- Improve interoperability with Common Lisp code from sources outside of ports, such as Quicklisp.
Details
- Reviewers
olgeni - Group Reviewers
portmgr - Commits
- R11:4c954c1522cb: Infrastructure for Common Lisp Ports: Overhaul
Diff Detail
- Lint
Lint Skipped - Unit
Tests Skipped - Build Status
Buildable 61028 Build 57912: arc lint + arc unit
Event Timeline
@olgeni, @krion: Another thought about improving our CL ports infrastructure: Decouple asdf-init.lisp from devel/cl-asdf to create devel/freebsd-asdf-init and have lang/sbcl depend on it instead.
The main reason lang/sbcl depends on devel/cl-asdf is to pull in our ASDF initialization script so SBCL can work seamlessly with our CL ports infrastructure. It's almost a side effect that we get a newer ASDF, but it's suboptimal to do this because it forces users (by default, anyway) to build the ADSF binary at run-time. This is because lang/sbcl cannot also depend on devel/cl-asdf-sbcl since it would introduce an unavoidable circular dependency. By decoupling asdf-init.lisp from devel/cl-asdf, we can have lang/sbcl use its bundled ASDF which includes the ADSF fasl and then depend only on devel/freebsd-asdf-init. The only downside is that SBCL's bundled ASDF lags a bit behind the latest release. I'll try testing this out tomorrow. Any thoughts or comments are welcome.
Also, I see there are a couple of unnecessary whitespace changes here. That's the Emacs default lisp-mode having strong opinions. Hopefully it's minimal enough that it doesn't affect things.
Minor changes to Mk/Uses/cl.mk to pull in deve/cl-asdf-<fasl> when FASL_TARGET is defined.
portmgr, Could you review Mk/Uses/cl.mk? Asking because of https://docs.freebsd.org/en/articles/committers-guide/#ports-qa-misc-no-touch.
Add ASDF to lang/clisp's OPTIONS_DEFAULT, so we are not required to pull devel/cl-asdf and devel/cl-asdf-clisp.
lang/sbcl: Remove files/pkg-message.in. There is no need to warn users about Quicklisp incompatibilites now.
- Remove FASL_BUILD as it's redundant with FASL_TARGET
- Update comments
- Remove devel/cl-freebsd-asdf-init/files/pkg-message.in; a similar message is displayed for each CL implementation port