ошибка компиляции common lisp

Я пытаюсь скомпилировать common-lisp "my-project", это соответствующие разделы, которые ломаются при компиляции:

 (ql:quickload :cffi-grovel)
 (ql:quickload :static-vectors)

Скомпилировать сообщения

  2: ASDF/ACTION:PERFORM returned NIL
  2: (ASDF/ACTION:PERFORM #<ASDF/LISP-ACTION:PREPARE-OP >
                          #<ASDF/SYSTEM:SYSTEM "static-vectors">)
  2: ASDF/ACTION:PERFORM returned NIL
  2: (ASDF/ACTION:PERFORM #<ASDF/LISP-ACTION:PREPARE-OP >
                          #<ASDF/LISP-ACTION:CL-SOURCE-FILE
                            "static-vectors" "pkgdcl">)
  2: ASDF/ACTION:PERFORM returned NIL
  2: (ASDF/ACTION:PERFORM #<ASDF/LISP-ACTION:COMPILE-OP >
                          #<ASDF/LISP-ACTION:CL-SOURCE-FILE
                            "static-vectors" "pkgdcl">)
..........................
[package static-vectors]      2: ASDF/ACTION:PERFORM returned NIL
  2: (ASDF/ACTION:PERFORM #<ASDF/LISP-ACTION:LOAD-OP >
                          #<ASDF/LISP-ACTION:CL-SOURCE-FILE
                            "static-vectors" "pkgdcl">)
  2: ASDF/ACTION:PERFORM returned T
  2: (ASDF/ACTION:PERFORM #<ASDF/LISP-ACTION:PREPARE-OP >
                          #<ASDF/LISP-ACTION:CL-SOURCE-FILE
                            "static-vectors" "constantp">)
  2: ASDF/ACTION:PERFORM returned NIL
  2: (ASDF/ACTION:PERFORM #<ASDF/LISP-ACTION:COMPILE-OP >
                          #<ASDF/LISP-ACTION:CL-SOURCE-FILE
                            "static-vectors" "constantp">)
  2: ASDF/ACTION:PERFORM returned NIL
  2: (ASDF/ACTION:PERFORM #<ASDF/LISP-ACTION:LOAD-OP >
                          #<ASDF/LISP-ACTION:CL-SOURCE-FILE
                            "static-vectors" "constantp">)
  2: ASDF/ACTION:PERFORM returned T
  2: (ASDF/ACTION:PERFORM #<ASDF/LISP-ACTION:PREPARE-OP >
                          #<ASDF/LISP-ACTION:CL-SOURCE-FILE
                            "static-vectors" "initialize">)
  2: ASDF/ACTION:PERFORM returned NIL
  2: (ASDF/ACTION:PERFORM #<ASDF/LISP-ACTION:COMPILE-OP >
                          #<ASDF/LISP-ACTION:CL-SOURCE-FILE
                            "static-vectors" "initialize">)
.      2: ASDF/ACTION:PERFORM returned NIL
  2: (ASDF/ACTION:PERFORM #<ASDF/LISP-ACTION:LOAD-OP >
                          #<ASDF/LISP-ACTION:CL-SOURCE-FILE
                            "static-vectors" "initialize">)
  2: ASDF/ACTION:PERFORM returned T
  2: (ASDF/ACTION:PERFORM #<ASDF/LISP-ACTION:PREPARE-OP >
                          #<CFFI-GROVEL:GROVEL-FILE
                            "static-vectors" "ffi-types">)
  2: ASDF/ACTION:PERFORM returned NIL
  2: (ASDF/ACTION:PERFORM #<CFFI-GROVEL::PROCESS-OP >
                          #<CFFI-GROVEL:GROVEL-FILE
                            "static-vectors" "ffi-types">)
; cc -m64 -o /home/me/.cache/common-lisp/sbcl-1.3.1.debian-linux-x64/home    /me/.dotfiles/sbcl/.quicklisp/dists/quicklisp/software/static-vectors-1.6/src/ffi-types__grovel-tmpOU81XRV0 -I/home/me/.dotfiles/sbcl/.quicklisp/dists/quicklisp/software/cffi_0.17.1/ /home/me/.cache/common-lisp/sbcl-1.3.1.debian-linux-x64/home/me/.dotfiles/sbcl/.quicklisp/dists/quicklisp/software/static-vectors-1.6/src/ffi-types__grovel.c
    3: (RUN-PROGRAM "cc" ("-m64" "-o" "/home/me/.cache/common-lisp/sbcl-1.3.1.debian-linux-x64/home/me/.dotfiles/sbcl/.quicklisp/dists/quicklisp/software/static-vectors-1.6/src/ffi-types__grovel-tmpOU81XRV0" "-I/home/me/.dotfiles/sbcl/.quicklisp/dists/quicklisp/software/cffi_0.17.1/" "/home/me/.cache/common-lisp/sbcl-1.3.1.debian-linux-x64/home/me/.dotfiles/sbcl/.quicklisp/dists/quicklisp/software/static-vectors-1.6/src/ffi-types__grovel.c") :INPUT T :OUTPUT T :ERROR T :WAIT T :ALLOW-OTHER-KEYS T :IF-INPUT-DOES-NOT-EXIST :ERROR :IF-OUTPUT-EXISTS :OVERWRITE :IF-ERROR-EXISTS :OVERWRITE :SEARCH T :IF-OUTPUT-DOES-NOT-EXIST :CREATE :IF-ERROR-DOES-NOT-EXIST :CREATE :WAIT T :INPUT :INTERACTIVE :OUTPUT :INTERACTIVE :ERROR-OUTPUT :INTERACTIVE :INPUT :INTERACTIVE :ERROR-OUTPUT :INTERACTIVE :IF-INPUT-DOES-NOT-EXIST :ERROR :IF-OUTPUT-EXISTS :OVERWRITE :IF-ERROR-OUTPUT-EXISTS :OVERWRITE :ELEMENT-TYPE :DEFAULT :EXTERNAL-FORMAT :UTF-8 :OUTPUT :INTERACTIVE :ERROR-OUTPUT :INTERACTIVE)

странное поведение:

Мое плавающее окно-эмулятор-терминала (X11, i3-Window-Manager) всплывает на передний план! Я должен закрыть это окно, чтобы начать процесс компиляции, но после этого оно попадает прямо в ОТЛАДЧИК со следующим условием:

Ошибка / Отладчик

#<error printing object> cannot be printed readably.
[Condition of type CFFI-GROVEL:GROVEL-ERROR]

Restarts:
0: [RETRY] Retry PROCESS-OP on #<GROVEL-FILE "static-vectors" "ffi-types">.
1: [ACCEPT] Continue, treating PROCESS-OP on #<GROVEL-FILE "static-vectors" "ffi-types"> as having been successful.
2: [RETRY] Retry ASDF operation.
3: [CLEAR-CONFIGURATION-AND-RETRY] Retry ASDF operation after resetting the configuration.
4: [ABORT] Give up on "my-project"
5: [RETRY] Retry EVAL of current toplevel form.
--more--

Backtrace:
0: (CFFI-GROVEL:GROVEL-ERROR "~a" #<PRINT-NOT-READABLE {100E16CC53}>)
1: ((LAMBDA NIL :IN CFFI-GROVEL:PROCESS-GROVEL-FILE))
2: (SB-IMPL::%WITH-STANDARD-IO-SYNTAX #<CLOSURE (LAMBDA NIL :IN CFFI-GROVEL:PROCESS-GROVEL-FILE) {100AEB197B}>)
3: ((:METHOD ASDF/ACTION:PERFORM (CFFI-GROVEL::PROCESS-OP CFFI-GROVEL:GROVEL-FILE)) #<CFFI-GROVEL::PROCESS-OP > #<CFFI-GROVEL:GROVEL-FILE "static-vectors" "ffi-types">) [fast-method]
4: ((SB-PCL::EMF ASDF/ACTION:PERFORM) #<unavailable argument> #<unavailable argument> #<CFFI-GROVEL::PROCESS-OP > #<CFFI-GROVEL:GROVEL-FILE "static-vectors" "ffi-types">)
5: (SB-DEBUG::TRACE-CALL #<SB-DEBUG::TRACE-INFO ASDF/ACTION:PERFORM> #<CLOSURE (LAMBDA (SB-PCL::.ARG0. SB-PCL::.ARG1.) :IN "/build/sbcl-X2E_zI/sbcl-1.3.1/src/pcl/dlisp3.fasl") {10053FF57B}> #<CFFI-GROVEL..
6: ((:METHOD ASDF/ACTION:PERFORM-WITH-RESTARTS :AROUND (T T)) #<CFFI-GROVEL::PROCESS-OP > #<CFFI-GROVEL:GROVEL-FILE "static-vectors" "ffi-types">) [fast-method]
7: ((:METHOD ASDF/PLAN:PERFORM-PLAN (LIST)) ((#<ASDF/LISP-ACTION:PREPARE-OP > . #1=#<ASDF/SYSTEM:SYSTEM "uiop">) (#2=#<ASDF/LISP-ACTION:COMPILE-OP > . #1#) (#3=#<ASDF/LISP-ACTION:LOAD-OP > . #1#) (#<CFFI..
8: ((FLET SB-C::WITH-IT :IN SB-C::%WITH-COMPILATION-UNIT))
9: ((:METHOD ASDF/PLAN:PERFORM-PLAN :AROUND (T)) ((#<ASDF/LISP-ACTION:PREPARE-OP > . #1=#<ASDF/SYSTEM:SYSTEM "uiop">) (#2=#<ASDF/LISP-ACTION:COMPILE-OP > . #1#) (#3=#<ASDF/LISP-ACTION:LOAD-OP > . #1#) (#..
10: ((FLET SB-C::WITH-IT :IN SB-C::%WITH-COMPILATION-UNIT))

После выполнения условия "ACCEPT" и обработки PROCESS-OP на # как успешного продолжается процесс компиляции, за которым следует простая ошибка, потому что скомпилированный fasl-файл не может быть найден.

Устранение неполадок

После того, как я был смущен таким побочным эффектом в моей локальной настройке SBCL + SLIME, я попробовал

1.) удалите $ HOME / .cache / common-lisp / и повторно скомпилируйте без успеха или изменений.

2.) установка новой среды через Розуэлл и запуск оттуда, что дало мне ту же ошибку, плюс предупреждение терминала, которое может пролить свет на проблему:

** (x-terminal-emulator:27111): WARNING **: Binding '<Shift><Control><Alt>a' failed!
Unable to bind hide_window key, another instance/window has it.
PluginRegistry::load_plugins: Importing plugin __init__.py failed: 'module' object has no attribute 'AVAILABLE'

Я не уверен, зависят ли эти случаи друг от друга, и как, так как же мне начать исправлять такое поведение окна?

Как я мог приступить к компиляции отказавших компонентов?


person LeinadLime    schedule 03.01.2017    source источник
comment
В (ql:qickload :cffi-grovel) есть опечатка, которая довольно быстро сломает ситуацию. Это проблема?   -  person Joshua Taylor    schedule 03.01.2017
comment
Ой, правда! Это просто ручная ошибка при вводе моих вопросов. Вы правы, но это вызовет какую-то ошибку undefined function, я думаю ... Спасибо за ваш комментарий :)   -  person LeinadLime    schedule 03.01.2017
comment
Несмотря на то, что вы приложили усилия для предоставления сообщений об ошибках, я думаю, что трудно воспроизвести ошибку без дополнительной информации. Ошибки журнала ASDF ничего мне не говорят; у вас есть что-нибудь еще написанное в *inferior-lisp* буфере? (в Emacs).   -  person coredump    schedule 03.01.2017
comment
@coredump После запуска swank inferior-lisp просто выдает ПРЕДУПРЕЖДЕНИЕ для переопределения THREAD-FOR-EVALUATION (не кажется интересным, возможно, вызвано многопоточным соединением в Swank / Slime ..), за которым следует процитированное выше x-terminal-emulator ПРЕДУПРЕЖДЕНИЕ ... Теперь я пытаюсь как-то обойти проблему, но как мне отладить глубже? strace sbcl ...?   -  person LeinadLime    schedule 03.01.2017
comment
@LeinadLime Я бы сначала попробовал притормозить и отследить одну проблему за другой. Это похоже на проблему, специфичную для вашей конфигурации (у меня такой проблемы нет). Установить SBCL из исходного кода довольно просто (загрузить, sh make.sh --fancy и sudo sh install.sh). Используйте версию 1.3.12, потому что в 1.3.13 есть небольшая проблема с static-vectors. Может быть, также установите свежий quicklisp и quickload-slime-helper проверьте, ссылается ли ваш emacs на правильные версии quicklisp и sbcl. Попробуйте быстро загрузить библиотеки, которые могут работать, например cl-ppcre, alexandria. Затем продолжайте расследование. Удачи.   -  person coredump    schedule 03.01.2017
comment
Вы пытались запустить эту команду вручную? cc -m64 -o /home/me/.cache/common-lisp/sbcl-1.3.1.debian-linux-x64/home/me/.dotfiles/sbcl/.quicklisp/dists/quicklisp/software/static-vectors -1.6 / src / ffi-types__grovel-tmpOU81XRV0 -I / home / me / .dotfiles / sbcl / .quicklisp / dists / quicklisp / software / cffi_0.17.1 / /home/me/.cache/common-lisp/sbcl-1.3 .1.debian-linux-x64 / домашний / меня / .dotfiles / sbcl / .quicklisp / dists / quicklisp / software / static-vectors-1.6 / src / ffi-types__grovel.c   -  person Alexander Artemenko    schedule 04.01.2017
comment
@AlexanderArtemenko хорошая идея! смешно, я не сделал. Вот что вызывает странное поведение! До сих пор не знаю, что он делает (позор мне). Спасибо!   -  person LeinadLime    schedule 04.01.2017


Ответы (1)


Ошибка была обойдена - хотя выполнение чистой ПРОГРАММЫ ЗАПУСКА вызывает ту же ошибку в моей системе - следуя руководство ASDF 3 в Приложении D

В качестве примера правильного использования библиотеки CFFI является использование: defsystem-depends-on ("cffi-grovel"), как показано ниже, которое определяет класс asdf :: cffi-grovel, который может быть обозначен ключевым словом : cffi-grovel среди компонентов системы:

(defsystem "some-system-using-ffi"
  :defsystem-depends-on ("cffi-grovel")
  :depends-on ("cffi")
  :components
  ((:cffi-grovel "foreign-functions")
   ...))

После вставки этого в my-project.asd ошибка компиляции исчезла.

person LeinadLime    schedule 03.01.2017
comment
Нет, он все еще там. Думаю, мне удалось перенести его на более поздний этап (который был скрыт до тех пор, пока не возникла еще одна ошибка) ... продолжение следует ... Источник сбоя должен быть где-то в настройке компилятора c ++. - person LeinadLime; 04.01.2017
comment
Вы добились прогресса? У меня почти такая же ошибка. Различия, вероятно, связаны с тем, что я использую ECL, а вы используете SBCL. PROCESS-OP on #<GROVEL-FILE "static-vectors" "ffi-types"> хотя и идентичен. - person Michael Fox; 25.01.2017
comment
@MichaelFox К сожалению, нет. Но пока я компилировал какой-то полностью независимый исходный код на C в командной строке, также наблюдалось такое странное поведение (всплывающее окно i3wm) и, как следствие, эта ошибка компиляции. Я предполагаю, что есть некоторые проблемы с моей / нашей средой сборки C. Поскольку мои знания gcc / clang отсутствуют, придется подождать. Удачи! - person LeinadLime; 27.01.2017
comment
@MichaelFox Если вам удастся скомпилировать часть cffi-grovel-package с помощью командной строки: cc -m64 -o $ your-path-to / quic‌ klisp / software / stati‌ c-vectors-1.6 / src / ff‌ i- types__grovel.c, как предложил Александр Артеменко, это было бы исправлением. - person LeinadLime; 27.01.2017