(дубль) Не могу разобраться со странной ошибкой
Имею я вполне рабочий код
http://lisper.ru/apps/format/69
то есть он был успешна запущен и не вываливал ошибок. но его повторный запуск не удался. Ошибки валятся и в slime и просто из sbcl.
Ругаются на скобки. Но все скобки расставлены логично и по потребности. Подсветка скобок показывает, что в самом конце есть лишние закрывающие, хотя они ни разу не лишние.
Может кто встречался с подобной проблемой и успешно ее одолевал?
[#]
Да система просто в шоке от размера выражения и настоятельно требует разбить его на много маленьких гы :))
[#]
Боясь показаться капитаном очевидность могу лишь порекомендовать привести код в удобочитаемый вид, разделить на тцать блоков и т.п. Тогда, глядишь, и баги станут более легкоотлавлемаемыми. А так, имхо, если в этой мешанине автор не разбирается, то не автор и подавно не сможет разобраться.
[#]
arhimag, только что пришел к такому же выводу ибо ни slime тут не виноват ни sbcl.
Даже в gedit скобка не подсвечивается ж(
И как тут разбить, хз. Но что странно - один раз скомпилилось же!
[#]
> Но что странно - один раз скомпилилось же!
Как это было? Например, часто некоторые вещи можно выполнить через M-C-x в SLIME, но при этом в файле нарушены скобки и загрузить файл не получится.
P.S. Я бы такие вещи вообще грузил бы из ресурсов.
[#]
Черт! Уже устал бороться. Код урезал на половину, а скобки так и достают. Запустить удалось только код из гита. Но там он староват :(
[#]
> Запустить удалось только код из гита.
Что за код?
> Скажите, по какому принципу разбивать такой код?
> На более мелкие функции?
Можно попробовать и так, для разумного ответа надо понимать задачу.
[#]
Это код который я закоммитил на github дня 4 назад. Он немного староват. А как разбивать код графического интерфейса на куски я слабо представляю. Он вроде весь в let-ui должен помещаться.
[#]
let-ui это обычный блок, можно вынести в функции. вместо виджета в let-ui можно подставить вызов функции
например, вместо
(gtk:button :stock "gtk-print")
можно написать
(:expr (func))
а уж func должна вернуть кнопку.
например, вместо
(gtk:button :stock "gtk-print")
можно написать
(:expr (func))
а уж func должна вернуть кнопку.
[#]
Т.е. замена избыточного текста дополнительным вызовом функции?
Или я пока еще не понял, это макрос?
Или я пока еще не понял, это макрос?
[#]
Да. Заменить, к примеру пару десятков (g-signal-connect ...) на какую-либо функцию. Только не уверен что заработает.