Внезапно получил quri.parser::parse-схема-строка не определена
Я был счастливым пользователем Дексадора. Вдруг, простой dex:get<url>
бросает мне
quri.parser::parse-scheme-string is undefined
ошибка.
Попытка (dex:get url)
:
0: ("undefined function")
1: (quri.parser::parse-uri-string #<unavailable argument> :start #<unavailable argument> :end #<unavailable argument>)
2: (quri.uri:uri "http://1337x.to/sort-search/sintel/seeders/desc/1/" :start 0 :end nil)
3: (dexador.backend.usocket:request #<unavailable argument> #<unavailable &REST argument> :method #<unused argument> :version #<unused argument> :content #<unavailable argument> :headers #<unavailable ar.
Кажется, это связано с моей средой. Я думаю, что это выскочило после того, как я понизил свою версию QL (из-за ошибки Slime).
редактировать: однажды я принял эту ошибку в отладчике, она больше не появляется.
Это странно: ни Дексадор, ни Кури не были изменены в последнее время. Раньше работал.
Кроме того, я попросил Dexador и Quri в локальных проектах моего QL найти эту функцию, и она появляется только один раз в Quri. Это даже не определенная функция, так как же она может работать? (учитывая, что пакет использует cl, quri.error и quri.util) https://github.com/fukamachi/quri/blob/83f3b8612be826b602f3584acac1b82691a141e6/src/parser.lisp#L96
Я удалил файлы fasl, найденные в моем проекте.
Во всяком случае, как бы вы подошли к этой проблеме?
Я все еще не хочу обновлять Quicklisp, Slime не выпустил новую версию.
редактировать: я обновил QL, затем удалил ~/quicklisp/
и переустановил его, удалил все ~/.cache/common-lisp
: тот же самый.
Благодарю.
SBCL Debian 1.2.4 (установлен 1.4.13, не удалось загрузить мой проект с другой ошибкой). Quicklisp dist "2018-04-30".
Я также спросил в вопросе https://github.com/fukamachi/dexador/issues/61
1 ответ
Макрос используется format
интернировать новые символы, и я установил *print-case*
в :downcase
в моем.sbclrc.
Есть исправление: https://github.com/fukamachi/quri/pull/24
Удаление файла из кэша ~/.cache/common-lisp/sbcl-xx/quri/
и быстрой загрузки quri было достаточно, чтобы вернуть функцию обратно.