Регистрация | Войти
Lisp — программируемый язык программирования
RSS
навигация к ошибке загрузки asdf и к определению системы
den73 - 05.07.2015 19:48, Сообщений - 7
Перевожу свою библиотечку на sbcl.
Есть такие фичи:

1. Если при сборке asdf-ом возникла проблемка, то дебаггер не позволяет напрямую открыть файл исходника, где она случилась (насколько я знаю).
Я решил эту проблему. В ошибке будет иметься рестарт EDIT-COMPONENT. Вызывать его не надо, но надо нажать двоеточие (команда eval-in-frame)
и дальше написать asdf::e и RETURN. Тогда откроется файл исходника. Его можно скомпилировать уже обычным c-c c-k (slime-compile-and-load-file)
и увидеть расписные ошибки.

Если же после двоеточия написать asdf::ep, то откроется файл системы, к которой
относится этот исходник.

2. M-. на имени системы позволяет перейти к её исходнику. Это изменение ещё не в репозитоири, если кому интересно - пишите.
[#]
Интересно.  На другие реализации можно портировать?  А где сырцы? :)
lithp - 06.07.2015 06:27
[#] Ответ на комментарий от lithp 06.07.2015 06:27
Уже работает на лиспворксе, причём на лиспворксе есть ещё и расписная навигация для ошибок чтения.

Помимо этого в лиспворксе есть ещё возможность задавать для файла таблицу чтения. Пишешь в файле (in-readtable имя)
и дальше компиляция форм идёт в этой таблице чтения.

И много других вкусностей.

Сейчас сижу, думаю, как фичу с таблицей чтения перенести на SLIME, но боюсь, что тут без форка не обойтись. Неприятно это.

Сорцы тут:

https://bitbucket.org/budden/budden-tools

Сейчас они в процессе перевода, так что не соберутся, наверное, ни на одной из двух систем.
Любая обратная связь приветствуется, а уж помощь делом - тем более :)
den73 - 06.07.2015 11:14
[#] Ответ на комментарий от den73 06.07.2015 11:14
Сейчас сижу, думаю, как фичу с таблицей чтения перенести на SLIME, но боюсь, что тут без форка не обойтись. Неприятно это. 

Если получится хорошо и удобно, можно наверное и в апстрим протолкнуть, в contribs модули например.  Удобная фича же.

https://bitbucket.org/budden/budden-tools

Спасибо.   Там много всего. :) как бы со всем этим всем разобраться.

> Сейчас они в процессе перевода

То есть будет раздробление на более мелкие независимые части?
lithp - 06.07.2015 13:13
[#] Ответ на комментарий от lithp 06.07.2015 13:13
Форкаю slime... иначе не удалось... Вроде ил запустился и посчитал (+ 2 2)

Нет, существенное раздробление не планируется. Будет куча директив условной компиляции.

Я понимаю, что раздробить было бы полезно, потому что у меня довольно стрёмная библиотечка.
В какой-то степени уже раздроблено. В целом же на приведение в божеский вид у меня нет нет ресурсов.

Залил сорсы, слиме пока не залил.
den73 - 06.07.2015 14:53
[#] Ответ на комментарий от den73 06.07.2015 14:53
Пока не доделано до конца. У меня своя таблица чтения. Когда на ней будет работать комплишен,
будет более понятно, работает ли ил. Процесс идёт бодро, но думаю, ещё пару дней понадобится.
den73 - 06.07.2015 23:06
[#] Ответ на комментарий от den73 06.07.2015 23:06
Вот что-то наваял, не знаю, насколько жизнеспособно:

 https://bitbucket.org/budden/budden-tools/src/866bcf15ad5c793868a0a31e602474189eeec91f/asdf-3.1.4-tools.lisp?at=default  - это про редактирование компонента при ошибке и про
навигацию к определеию системы по её имени. Зависит от остальной части библиотеки.

https://bitbucket.org/budden/budden-slime - это клон ила, различающий в файле таблицы чтения.
Если в файле написать (in-readtable), то ил поймёт, какая таблица чтения нужна. Требует editor-hints.named-readtables.

den73 - 08.07.2015 14:38
[#] Ответ на комментарий от den73 08.07.2015 14:38
Наконец-то выяснил, что если загружать систему через M-x slime-load-system, то он показывает ошибки.
Но если система загружается через файл инициализации, написанный на лиспе, то это не помогает.
den73 - 16.08.2015 11:47
@2009-2013 lisper.ru