<<打印对象错误>> lisp - matlisp

3
I'm quite new to Common Lisp, and I've come across a problem when trying to use the package Matlisp, which I load with (ql:quickload :matlisp).
When I try to use the package, for example, by simply executing:
(randn '(2 2))

我总是收到一个错误,说:

“不会(没错,你读对了,小子!)为抽象张量类“TENSOR DOUBLE-FLOAT STRIDE-ACCESSOR SIMPLE-ARRAY”生成方法。” [类型为TENSOR-ABSTRACT-CLASS的条件]

在回溯中,我看到许多“打印对象错误”消息(如附图所示)。 Backtrace

我尝试过的所有matlisp函数都出现了这个问题。我可能缺少非常基本的东西,还是这可能是包的问题?

我在Emacs 25.0.50上运行slime,我的Lisp实现是SBCL 1.2.11,这些信息是否相关。

任何帮助都将不胜感激!

以下是回溯:

Will not (yes you read that right, buster!) generate method for abstract tensor class "TENSOR DOUBLE-FLOAT STRIDE-ACCESSOR SIMPLE-ARRAY".
   [Condition of type TENSOR-ABSTRACT-CLASS]

Restarts:
 0: [CONTINUE] Retry assertion.
 1: [RETRY] Retry SLIME REPL evaluation request.
 2: [*ABORT] Return to SLIME's top level.
 3: [REMOVE-FD-HANDLER] Remove #<SB-IMPL::HANDLER INPUT on descriptor 8: #<CLOSURE (LABELS SWANK/SBCL::RUN :IN SWANK/BACKEND:ADD-FD-HANDLER) {10031CEE8B}>>
 4: [ABORT] Exit debugger, returning to top level.

Backtrace:
  0: (SB-KERNEL:ASSERT-ERROR (TENSOR-LEAFP #:XX348) ((#:XX348 |TENSOR DOUBLE-FLOAT STRIDE-ACCESSOR SIMPLE-ARRAY|)) NIL TENSOR-ABSTRACT-CLASS :TENSOR-CLASS |TENSOR DOUBLE-FLOAT STRIDE-ACCESSOR SIMPLE-ARRAY|..
  1: ((:METHOD REF (STRIDE-ACCESSOR)) #<error printing object>) [fast-method]
      Locals:
        SUBSCRIPTS = (0 0)
        X = #<|TENSOR DOUBLE-FLOAT STRIDE-ACCESSOR SIMPLE-ARRAY| <<error printing object>> {1005CE9F93}>
  2: ((LABELS TWO-PRINT :IN PRINT-TENSOR) #<error printing object>)
      Locals:
        SB-DEBUG::ARG-0 = #<|TENSOR DOUBLE-FLOAT STRIDE-ACCESSOR SIMPLE-ARRAY| <<error printing object>> {1005CE9F93}>
        SB-DEBUG::ARG-1 = NIL
  3: ((FLET SB-IMPL::PRINT-DESCRIPTION :IN SB-IMPL::%PRINT-UNREADABLE-OBJECT))
  4: (SB-IMPL::%PRINT-UNREADABLE-OBJECT #<error printing object>)
  5: ((:METHOD PRINT-OBJECT (TENSOR T)) #<error printing object>) [fast-method]
      Locals:
        SB-DEBUG::ARG-2 = #<|TENSOR DOUBLE-FLOAT STRIDE-ACCESSOR SIMPLE-ARRAY| <<error printing object>> {1005CE9F93}>
        SB-DEBUG::ARG-3 = #<SB-IMPL::STRING-OUTPUT-STREAM {1005CEB763}>
  6: ((LABELS SB-IMPL::HANDLE-IT :IN SB-KERNEL:OUTPUT-OBJECT) #<SB-IMPL::STRING-OUTPUT-STREAM {1005CEB763}>)
  7: (SB-IMPL::STRINGIFY-OBJECT #<error printing object>)
  8: (PRIN1-TO-STRING #<error printing object>)
  9: (SWANK::PRESENT-REPL-RESULTS #<error printing object>)
 10: (SWANK-REPL::TRACK-PACKAGE #<CLOSURE (LAMBDA NIL :IN SWANK-REPL::REPL-EVAL) {1005CE9DAB}>)
 11: (SWANK::CALL-WITH-RETRY-RESTART "Retry SLIME REPL evaluation request." #<CLOSURE (LAMBDA NIL :IN SWANK-REPL::REPL-EVAL) {1005CE9D0B}>)
 12: (SWANK::CALL-WITH-BUFFER-SYNTAX NIL #<CLOSURE (LAMBDA NIL :IN SWANK-REPL::REPL-EVAL) {1005CE9CEB}>)
 13: (SWANK-REPL::REPL-EVAL "(randn '(2 2)) ..)
 14: (SB-INT:SIMPLE-EVAL-IN-LEXENV (SWANK-REPL:LISTENER-EVAL "(randn '(2 2)) ..)
 15: (EVAL (SWANK-REPL:LISTENER-EVAL "(randn '(2 2)) ..)
 16: (SWANK:EVAL-FOR-EMACS (SWANK-REPL:LISTENER-EVAL "(randn '(2 2)) ..)
 17: (SWANK::PROCESS-REQUESTS T)
 18: ((LAMBDA NIL :IN SWANK::HANDLE-REQUESTS))
 19: ((LAMBDA NIL :IN SWANK::HANDLE-REQUESTS))
 20: (SWANK/SBCL::CALL-WITH-BREAK-HOOK #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK> #<CLOSURE (LAMBDA NIL :IN SWANK::HANDLE-REQUESTS) {1005CE6B7B}>)
 21: ((FLET SWANK/BACKEND:CALL-WITH-DEBUGGER-HOOK :IN "/Users/danielpgomez/.emacs.d/elpa/slime-20151110.1649/swank/sbcl.lisp") #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK> #<CLOSURE (LAMBDA NIL :IN SWANK::HANDLE-..
 22: (SWANK::CALL-WITH-BINDINGS ((*STANDARD-OUTPUT* . #1=#<SWANK/GRAY::SLIME-OUTPUT-STREAM {1003FA0833}>) (*STANDARD-INPUT* . #2=#<SWANK/GRAY::SLIME-INPUT-STREAM {1002E15833}>) (*TRACE-OUTPUT* . #1#) (*ERR..
 23: (SWANK::HANDLE-REQUESTS #<SWANK::SINGLETHREADED-CONNECTION {10031CED73}> T)
 24: ((LABELS SWANK/SBCL::RUN :IN SWANK/BACKEND:ADD-FD-HANDLER) 8)
 25: (SB-IMPL::SUB-SUB-SERVE-EVENT NIL NIL)
 26: (SB-IMPL::SUB-SERVE-EVENT NIL NIL NIL)
 27: (SB-SYS:WAIT-UNTIL-FD-USABLE 0 :INPUT NIL T)
 28: (SB-IMPL::REFILL-INPUT-BUFFER #<SB-SYS:FD-STREAM for "standard input" {10064BC373}>)
 29: (SB-IMPL::INPUT-CHAR/ASCII #<SB-SYS:FD-STREAM for "standard input" {10064BC373}> NIL 0)
 30: ((LAMBDA (&REST REST) :IN SB-IMPL::GET-EXTERNAL-FORMAT) #<SB-SYS:FD-STREAM for "standard input" {10064BC373}> NIL 0)
 31: (READ-CHAR #<SB-SYS:FD-STREAM for "standard input" {10064BC373}> NIL 0 #<unused argument>)
 32: (READ-CHAR #<SYNONYM-STREAM :SYMBOL SB-SYS:*STDIN* {10001A25A3}> NIL 0 #<unused argument>)
 33: (SB-IMPL::%READ-PRESERVING-WHITESPACE #<SYNONYM-STREAM :SYMBOL SB-SYS:*STDIN* {10001A25A3}> NIL (NIL) T)
 34: (SB-IMPL::%READ-PRESERVING-WHITESPACE #<SYNONYM-STREAM :SYMBOL SB-SYS:*STDIN* {10001A25A3}> NIL (NIL) NIL)
 35: (READ #<SYNONYM-STREAM :SYMBOL SB-SYS:*STDIN* {10001A25A3}> NIL (NIL) NIL)
 36: (SB-IMPL::REPL-READ-FORM-FUN #<SYNONYM-STREAM :SYMBOL SB-SYS:*STDIN* {10001A25A3}> #<unavailable argument>)
 37: (SB-IMPL::REPL-FUN NIL)
 38: ((LAMBDA NIL :IN SB-IMPL::TOPLEVEL-REPL))
 39: (SB-IMPL::%WITH-REBOUND-IO-SYNTAX #<CLOSURE (LAMBDA NIL :IN SB-IMPL::TOPLEVEL-REPL) {1004A6241B}>)
 40: (SB-IMPL::TOPLEVEL-REPL NIL)
 41: (SB-IMPL::TOPLEVEL-INIT)
 42: ((FLET #:WITHOUT-INTERRUPTS-BODY-85 :IN SB-EXT:SAVE-LISP-AND-DIE))
 43: ((LABELS SB-IMPL::RESTART-LISP :IN SB-EXT:SAVE-LISP-AND-DIE))

当我尝试使用(ql:quickload :matlisp)(ql:quickload "matlisp")加载matlisp时,会出现错误:debugger invoked on a QUICKLISP-CLIENT:SYSTEM-NOT-FOUND: System "matlisp" not found - Renzo
Matlisp应该在local-projects文件夹中,我相信。它可以在https://github.com/matlisp/matlisp上获得。 - Daniel
1个回答

4
问题比较复杂。Matlisp在基础张量打印过程中出现问题。根据我的测试,只有最新的提交才会出现这个问题。由于某种原因,这会导致slime的swank-repl::repl-eval出现问题。在sly上不会发生这种情况。你应该在matlisp的问题跟踪器中报告打印错误,并在此期间使用以前的提交(例如6f7d1dc),或者使用Sly。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接