Lisp-Stat / lisp-stat

Lisp-Stat main system
https://lisp-stat.github.io/lisp-stat
Microsoft Public License
140 stars 11 forks source link

Installation error #29

Closed perrygeo closed 7 months ago

perrygeo commented 8 months ago

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?

Symbolics commented 8 months ago

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:

perrygeo commented 8 months ago

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!

perrygeo commented 7 months ago

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!