[Sbcl-help] Sbcl on LMDE 5

0 views
Skip to first unread message

Will Senn

unread,
Jun 25, 2023, 5:26:12 PM6/25/23
to sbcl...@lists.sourceforge.net
Hi new sbcl user here. I’m trying to set up a working self-hosted sbcl environment. When I download the latest binary tarball and unpack it, when I try to run sbcl, I get several errors about GLIBC-2.3/4. So, I decide to go with the package version - sudo apt install sbcl sbcl-doc, which work. Then, I do the build docs and install dance against the latest source tarball, whic succeeds... go figure.

I have a couple of questions:

1. It says it succeeded and 18/19 contributed extensions were built. How do I know which are configured and did 1 fail, was it unselected, or what? Interestingly, I see 21 directories...

2. I ran the tests and a socket test failed. What can I do to track down the issue or is it an issue?

LMDE 5 is the latest Linux Mint Debian Edition (a pure 64 bit version 5.x kernel Linux with no Ubuntu parts, based on Debian 11.x Bullseye).

Thanks,

Will

Sent from my iPhone

_______________________________________________
Sbcl-help mailing list
Sbcl...@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sbcl-help

Stas Boukarev

unread,
Jun 25, 2023, 6:37:04 PM6/25/23
to Will Senn, sbcl...@lists.sourceforge.net
Some contribs need external software dependencies or hardware dependencies (avx2). When something fails it says something about failures and returns a non-zero exit status.

Will Senn

unread,
Jun 25, 2023, 10:04:37 PM6/25/23
to Stas Boukarev, sbcl...@lists.sourceforge.net
Thanks Stas,

So nothing's "failing", but the message about 18 (out of 19) was disconcerting. After some trial and error, it looks like the contribs/Makefile defines what gets built:

contribs = sb-posix sb-bsd-sockets sb-introspect sb-cltl2 sb-aclrepl \
     sb-sprof sb-capstone sb-md5 sb-capstone sb-executable sb-gmp sb-mpfr \
     sb-queue sb-rotate-byte sb-rt sb-simple-streams sb-concurrency sb-cover \
     sb-simd sb-grovel asdf

active_contribs = $(filter-out $(SBCL_CONTRIB_BLOCKLIST),$(contribs))

after filtering, it looks like the list is:
    sb-posix sb-bsd-sockets sb-introspect sb-cltl2 sb-aclrepl
    sb-sprof sb-capstone sb-md5 sb-capstone sb-executable sb-gmp sb-mpfr
    sb-queue sb-rotate-byte sb-rt sb-simple-streams sb-concurrency sb-cover
     sb-grovel asdf

So, if I move edit contrib/Makefile and remove the extraneous sb-capstone reference, and the sb-simd reference (excluded by the blocklist), move off the sb-simd and sb-perf folders (sb-perf isn't included in the contribs list),  and rebuild. I get:

The build seems to have finished successfully, including 18 (out of 18)
contributed modules.

Happy day. Do I need simd and perf? As a beginner, I doubt it, but why is sb-simd blocklist'd but included in the source distribution? Why is sb-perf not included in the contribs variable? and why is sb-capstone in there twice? I'm curious by nature :).

I guess a better question at this point is, what does a vanilla install of sbcl need to include? I'm pretty sure asdf is commonly used, cuz I've seen it referenced elsewhere, but other than that I know nothing. What do I really need to include in my contribs for doing straight up lisp learning?

Thanks,

Will

Stas Boukarev

unread,
Jun 25, 2023, 10:06:46 PM6/25/23
to Will Senn, sbcl...@lists.sourceforge.net
sb-simd needs an avx2-capable cpu, and I have no idea what sb-perf is supposed to be.

Will Senn

unread,
Jun 25, 2023, 11:02:58 PM6/25/23
to Stas Boukarev, sbcl...@lists.sourceforge.net
Hi Stas,

That makes sense. So moving off simd is good - my cpu is avx, not avx2. Who knows what perf is, I won't worry about it. Oh, and I think I figured out what the test failure with the sb-socket is. It was complaining about some INET6 socket stuff, which I take to be ipv6 stuff. I disable ipv6 on my systems... mostly cuz it sucks, but also because it's very unnecessary, causes startup delays on the connect, has completely nonsensical identifiers, and so on, and so on. So, if that's the test (ipv6 socket creation and testing), then I could care less about it. If not, back to the drawing board.

Thanks,

Will

Stas Boukarev

unread,
Jun 25, 2023, 11:06:53 PM6/25/23
to Will Senn, sbcl...@lists.sourceforge.net
The tests do test for ipv6, but it's supposed to ignore the failures when ipv6 is not supported.

Will Senn

unread,
Jun 25, 2023, 11:14:49 PM6/25/23
to Stas Boukarev, sbcl...@lists.sourceforge.net
Huh! Well, I get this error:
 Failure:            ../contrib/sb-bsd-sockets/tests.lisp / INET6-SOCKET-BIND

and looking back into the test log:
::: Running :INET6-SOCKET-BIND
::: INFO: made sockets
::: UNEXPECTED-FAILURE :INET6-SOCKET-BIND due to SIMPLE-ERROR:
        "Expected ADDRESS-IN-USE err"

I'll try it with the ipv6 stuff enabled (yuck) and see if it succeeds.

Thanks,

Will

Stas Boukarev

unread,
Jun 25, 2023, 11:20:14 PM6/25/23
to Will Senn, sbcl...@lists.sourceforge.net
You can skip doing that.

Will Senn

unread,
Jun 26, 2023, 2:53:01 PM6/26/23
to Stas Boukarev, sbcl...@lists.sourceforge.net
Just to close the loop, after I enable ipv6 (comment out the lines disabling it in sysctl.conf) and set it auto in ipv6 settings for the ethernet card, the test passes.

Thanks for the assist!

Will

Stas Boukarev

unread,
Jun 26, 2023, 2:53:51 PM6/26/23
to Will Senn, sbcl...@lists.sourceforge.net
I've adjusted the test to ignore ipv6 test failures again.

Will Senn

unread,
Jun 26, 2023, 2:56:12 PM6/26/23
to Stas Boukarev, sbcl...@lists.sourceforge.net
Oh, that's what you meant - cool, even better :).
Reply all
Reply to author
Forward
0 new messages