Компиляция UFFI-зависимых программ на ECL - PullRequest
2 голосов
/ 29 февраля 2012

Есть ли способ компилировать UFFI-зависимые программы на lisp на Embeddable Common Lisp без их изменения?

Например, когда я пытаюсь загрузить CLSQL через Quicklisp, я получаю следующую ошибку:

> (ql:quickload "clsql")

Condition of type: LOAD-SYSTEM-DEFINITION-ERROR
Error while trying to load definition for system clsql from pathname /home/thorin/quicklisp/dists/quicklisp/software/clsql-20120107-git/clsql.asd: Cannot find the external symbol GETENV in #<"FFI" package>.

Available restarts:

1. (ABORT) Give up on "clsql"
2. (RESTART-TOPLEVEL) Go back to Top-Level REPL.

Broken at SI:BYTECODES. [Evaluation of: (QUICKLISP-CLIENT:QUICKLOAD "clsql")]

Что еще интереснее, когда я повторяю команду без выхода, я получаю следующую ошибку:

> (ql:quickload "clsql")
To load "clsql":
  Load 1 ASDF system:
    clsql
; Loading "clsql"
[package cmucl-compat]............................
[package clsql-sys]...............................
[package clsql]...................................
[package clsql-user]
FINALIZE-INHERITANCE 
;;; Error:
;;;   in file kmr-mop.lisp, position 1682
;;;   at (FINALIZE-INHERITANCE (FIND-CLASS '%SLOT-ORDER-TEST-CLASS))
;;;   * The form (FINALIZE-INHERITANCE (FIND-CLASS '%SLOT-ORDER-TEST-CLASS)) was not evaluated successfully.
;;; Error detected:
;;; The function FINALIZE-INHERITANCE is undefined.
Condition of type: COMPILE-ERROR
Error while invoking #<compile-op (:VERBOSE NIL) 000000000497ae70> on #<cl-source-file "clsql" "sql" "base" "kmr-mop">

Возможно, это как-то связано с Quicklisp.

1 Ответ

0 голосов
/ 01 марта 2012

ffi-интерфейс ECL совместим с UFFI. http://ecls.sourceforge.net/new-manual/

...