Lisp-Stat/lisp-stat

Installation error

perrygeo opened this issue · 3 comments

I'm using a relatively vanilla Linux box (ubuntu 22.04) and am attempting to install lisp-stat. I'm new to Common Lisp so bear with me and please help me understand where I'm going wrong here:

  1. Installed roswell and ros use sbcl-bin
  2. Start a repl with ros run --eval '(ql:quickload :swank)' --eval '(swank:create-server :dont-close t)'
  3. Try to install lisp-stat with (ql:quickload :lisp-stat) which results in
To load "lisp-stat":
  Load 1 ASDF system:
    lisp-stat
; Loading "lisp-stat"
....................Library #P"/home/mperry/.roswell/lisp/quicklisp/dists/quicklisp/software/cephes.cl-20231021-git/scipy-cephes/libmd.so" exists, skipping build

debugger invoked on a SIMPLE-ERROR in thread
#<THREAD tid=17517 "main thread" RUNNING {1001480123}>:
  Unknown property name "OtherMath".

I've tried removing and recompiling the .so mentioned above. Same result. It appears that libmd.so compiles fine and doesn't appear to link to any missing external libraries

# in ~/.roswell/lisp/quicklisp/dists/quicklisp/software/cephes.cl-20231021-git/scipy-cephes
$ ldd libmd.so
        linux-vdso.so.1 (0x00007ffc80b3f000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f0c56e1a000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f0c57076000)

Is there some trick that isn't covered in the docs? Maybe some missing libraries? Is roswell/quicklisp the wrong toolkit for the job? Is there a better approach for getting this installed on modern linux machines? Is there a well-known CL debugging technique that has eluded me? Help me out here - neither apt, nor the docs, nor google have anything to say about this "OtherMath" symbol. Surely I'm not alone here - I can't imagine that installing lisp-stat on the current LTS of a popular Linux distribution is novel territory. What am I missing?

Hmm. I use neither Roswell nor Linux, but I don't think those are related to this problem. However let's eliminate variables. Will you please copy & paste the output from this command in the REPL: asdf:load-system :cephes do this from a fresh image. I'd like to see exactly where in the stack trace this error is coming from.

A few thoughts:

  • Are you using the most recent version of Quicklisp libraries?
  • Perhaps one of these other libraries is expecting something that has OtherMath?
  • Perhaps a linker flag is required on Linux? (like a -m or specific library)
  • In the worst case, you probably don't actually need cephes to get started and you could comment out that line in lisp-stat.asd and maybe the name space to skip loading the system.
  • Finally, you might try posting on Reddit or StackOverflow. I know there are Lisp-Stat users there running on Linux (apologies, I only have a MS Windows machine and MacOS available)

Thanks for the quick reply!

Looks like cephes loads on its own. lisp-stat is still failing to load

* (asdf:load-system :cephes)
T

I'm not sure what version of quicklisp I have, whatever gets installed with ros use sbcl-bin as of today.

I'll try a few things and report back if I find anything. Thanks!

I reinstalled the entire lisp environment and it works without problems. There was likely a system dependency that was missing - I apt-got a lot of libraries in the meantime so I can't be sure which ones. Are the C deps for 'lisp-stat' documented anywhere? Since it is evidently not as easy as (ql:quickload :lisp-stat), a basic dockerfile/readme/wiki with additional installation instructions for system deps on common platforms would go a long way towards making this more beginner friendly.

In any case, it works now, somehow. I look forward to trying it out!