3

Maxima for Windows 是使用 SBCL 编译的,但不知何故缺少 ASDF3 支持。这是*FEATURES*Maxima 的输出:

(QUICKLISP ASDF2 ASDF ASDF-UNICODE CL MK-DEFSYSTEM CLTL2 64-BIT
 64-BIT-REGISTERS ALIEN-CALLBACKS ANSI-CL ASH-RIGHT-VOPS
 C-STACK-IS-CONTROL-STACK COMMON-LISP COMPARE-AND-SWAP-VOPS COMPLEX-FLOAT-VOPS
 CYCLE-COUNTER FLOAT-EQL-VOPS FP-AND-PC-STANDARD-SAVE GENCGC
 IEEE-FLOATING-POINT INLINE-CONSTANTS INTEGER-EQL-VOP LINKAGE-TABLE
 LITTLE-ENDIAN MEMORY-BARRIER-VOPS MULTIPLY-HIGH-VOPS OS-PROVIDES-DLOPEN
 OS-PROVIDES-PUTWC PACKAGE-LOCAL-NICKNAMES PRECISE-ARG-COUNT-ERROR
 RAW-INSTANCE-INIT-VOPS RAW-SIGNED-WORD SB-DOC SB-DYNAMIC-CORE SB-EVAL SB-FUTEX
 SB-LDB SB-PACKAGE-LOCKS SB-QSHOW SB-SAFEPOINT SB-SAFEPOINT-STRICTLY
 SB-SIMD-PACK SB-SOURCE-LOCATIONS SB-THREAD SB-THRUPTION SB-UNICODE SB-WTIMER
 SBCL STACK-ALLOCATABLE-CLOSURES STACK-ALLOCATABLE-FIXED-OBJECTS
 STACK-ALLOCATABLE-LISTS STACK-ALLOCATABLE-VECTORS
 STACK-GROWS-DOWNWARD-NOT-UPWARD SYMBOL-INFO-VOPS UNBIND-N-VOP
 UNDEFINED-FUN-RESTARTS UNWIND-TO-FRAME-AND-CALL-VOP WIN32 X86-64)

它一定是QUICKLISP从我的.sbclrc文件中提取的,它实际上可以加载一些系统,比如ALEXANDRIA. 但是,它无法加载涉及更复杂编译的系统,LAPACK例如MINPACKODEPACK. 例如,

MAXIMA> (ql:quickload :uiop)

To load "uiop":
  Load 1 ASDF system:
    uiop
; Loading "uiop"

(:UIOP)
MAXIMA> (ql:quickload :lapack)

While evaluating the form starting at line 5, column 0
  of #P"C:/Users/alexe_000/quicklisp/dists/quicklisp/software/f2cl-20170403-git/packages/lapack.asd":
Maxima encountered a Lisp error:

 Error while trying to load definition for system lapack from pathname
 C:/Users/alexe_000/quicklisp/dists/quicklisp/software/f2cl-20170403-git/packages/lapack.asd:

    The name "F2CL-ASDF" does not designate any package.

Automatically continuing.
To reenable the Lisp debugger set *debugger-hook* to nil.

MAXIMA> (ql:quickload :f2cl-asdf)

To load "f2cl-asdf":
  Load 1 ASDF system:
    f2cl-asdf
; Loading "f2cl-asdf"
[package f2cl-asdf]
Maxima encountered a Lisp error:

 The name "ASDF/COMPONENT" does not designate any package.

与我的本地 SBCL 安装的功能进行比较,我将问题归结为我的 SBCL 上可用的 ASDF3,但 Maxima 上没有。

我已经设法从 Linux 上的源代码编译了 Maxima,它在那里工作得很好。Windows 上的编译过程相当复杂,如果可以的话,我宁愿避免它。那么,有没有办法以某种方式使 ASDF3 可用?

4

0 回答 0