LINUX.ORG.RU

Степпер для CCL

 


0

4

А мне, представьте себе, ещё не надоело засорять ЛОР своими ненужными улучшениями для лиспа.

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

Большое преимущество - можно брать готовую функцию и инструментировать её для ходьбы без перекомпиляции. Этим он кардинально отличается в лучшую сторону от LW, который переопределяет функцию при установке брекпойнта. Недостаток, правда, в том, что шаги слишком редкие - как в SBCL. Чтобы шаги стали чаще, нужно допиливать ещё. И без перекомпиляции под другую политику оптимизации (при данном подходе) не обойтись. Хотя я вот не знаю, нужно ли допиливать или нет. В 80-строчной функции появилось 16 точек шагания. Вроде это мало, но по сравнению с trace, когда точка шагания всего одна - уже и не так мало. Может быть, если их подсветить, будет достаточно. Мозг-то никто не отнимает, можно им доработать, где шагов не хватает.

Если вдруг кому-то захочется кроме рассуждений о величии лиспа сделать для него что-то безполезное, то названия репозиториев приводятся в описании видео.

Следующая задача состоит в том, чтобы можно было поставить точку останова, щёлкнув мышью.

https://www.youtube.com/watch?v=1f4QRS0d8NU&t=6s

★★★★★

Последнее исправление: den73 (всего исправлений: 2)

Засада пришла откуда не ждали. Бекенд swank для CCL - под LLGPL.

Ну и я могу рассказать о том, как CCL под Windows зависает сам по себе, CCL под Linux зависает под gdb, как показываются под Windows крокозяблы... Это то, что ощутилось за 3-4 дня.

Ну, вот это тоже так ничего...

Неужели действительно пора завязывать со всей этой маргинальщиной? Или можно там дунуть, там плюнуть, там надфилем подпилить, и оно как-то заживёт? В целом-то оно на вид почти живое... А баги везде есть...

den73 ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Тебе че, жалко что ли? Пускай пилит, хотя бы для лулзов.

anonymous
()
Ответ на: комментарий от den73

Неужели действительно пора завязывать со всей этой маргинальщиной?

В фантастических фильмах такое клише есть: учОные долго напряженно смотрят на какого-то свежесозданного робота или огранизм и один вдруг страшным шепотом говорит О БОЖЕ ОНО ОБУЧАЕТСЯ.

thesis ★★★★★
()
Последнее исправление: thesis (всего исправлений: 2)
Ответ на: комментарий от den73

Хожу отладчиком по компилятору. Без брекпойнтов, но уже и так мне кажется очень классным - я стою в какой-то точке и вижу все переменные со значениями. Неужели же это хуже, чем смотреть на исходник? Честно говоря, никогда не понимал тех, кто считает отладчик безполезным.

Были определённые проблемы со сборкой мусора - всё падало. Сейчас поставил (gc) где надо и с-отключенным-gc где надо - вроде пока не падает.

Сделал более человеческий интерфейс - больше похож на быдлобейсик. Пока всё же сильно далеко от того, что надо, но уже гораздо лучше, чем совсем ничего.

den73 ★★★★★
() автор топика
Ответ на: комментарий от den73

Ну вот, приехали. Мой образ повреждён, и при попытке шагать по компилятору это всплывает где-то в середине процесса инструментирования самой жирной функции. Impurify падает. Ща попробую пересобрать с safety 3.

den73 ★★★★★
() автор топика
Ответ на: комментарий от den73

В общем, я сделал всё, что мог и похоже, что пора сниливаться с темы. Хотел написать «сливаться», но получилось гораздо лучше!

Вот лучшее, чего мне удалось достичь.

https://www.youtube.com/watch?v=SxYTF-gPRn0

den73 ★★★★★
() автор топика
Ответ на: комментарий от den73

С утра попробовал поколдовать над настройками gc - подумал, что крах приложения может быть вызван тем, что при отключенном gc заканчивается память. Не помогло.

den73 ★★★★★
() автор топика
Ответ на: комментарий от den73

и каково это — говорить самим с собой?

anonymous
()
Ответ на: комментарий от den73

Попробовал использовать штатный advise вместо создания своих обёрток - это намного хуже. Но всё равно не работает. Сцуко.

den73 ★★★★★
() автор топика
Ответ на: комментарий от den73

возьми сиплюсплюс. там всё работает.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.