PUDGB - Pascal Units Dependency Graph Builder

Планы, идеология, архитектура и т.п.

Модератор: Модераторы

Аватара пользователя
Cheb
энтузиаст
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34
Контактная информация:

Сообщение Cheb »

Наконец-то заработало! :D

Отловил забытую отладочную связь, ведшую из глубин Vampyre Imaging обратно к модулю, использующему её.

Всё не так плохо, как я боялся: если выкинуть Vampyre Imaging, то модулей в графе остаётся девять штук, из которых половина - вспомогательные чепуховинки, остальные - с классами фреймворка. Вся мякотка - в конских размеров модуле cl_cge. Фреймворки используют её, но и она должна знать, что такое фреймворк.

Total units: 62
Total founded units: 39
Total units with Implimentation uses: 14
Total units in loops: 29
Total dependencies: 185
Total dependencies in loops: 66
Implimentation uses can be move to interface in ImagingUtility;

Изображение
zub
долгожитель
Сообщения: 2889
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Сообщение zub »

ашипки поправлю, спасибо.

>>Всё не так плохо, как я боялся
Я бы поспорил. С точки зрения компилятора все 29 юнитов в циклических зависимостях можно слить в один, т.к. при усес одного из них остальные подтянутся автоматом. Хотя если разбивка по модулям только для удобства програмиста и повторное использование не планируется, то пофиг
Аватара пользователя
Cheb
энтузиаст
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34
Контактная информация:

Сообщение Cheb »

Ядро моего движка - абсолютно монолитическая вещь, основной модуль построен в си-стиле и насчитывает 67 {$include}'ов многие из котрых - огромные и имеют собственные инклюды.
Те модули, что тут присутствуют в диаграмме - вынесены наружу чисто для удобства меня, один класс на модуль, чтобы не разносить объявление с реализацией. Некоторые из них имеют свой зоопарк инклюдов.

Инструмент - бесценный, спасибо :)
zub
долгожитель
Сообщения: 2889
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Сообщение zub »

>>Инструмент - бесценный, спасибо
Моего тут совсем немного. Спасибо fcl-passrc, AGraph и особенно graphviz.

На этом моя фантазия уже точно иссякла)) Разве что прилепить сохранение настроек в файл, чтоб не перебивать всё при каждом старте
Аватара пользователя
Cheb
энтузиаст
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34
Контактная информация:

Сообщение Cheb »

>Моего тут совсем немного.
Ото того, что она - суп из топора, она не перестаёт быть бесценной :D

>прилепить сохранение настроек в файл
Лучше в *разные* файлы, подобно проектам в Лазаре. Чтобы можно было переключаться туда-сюда, туда-сюда между несколькими проектами :roll:
Researching
незнакомец
Сообщения: 2
Зарегистрирован: 01.11.2018 10:47:12

Сообщение Researching »

ВНИМАНИЕ!!!!!!!
Сервис прекращает свою работу с 01.11.2018
За помощью с миграцией обращайтесь по e-mail: support@shamangrad.net
Аватара пользователя
Cheb
энтузиаст
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34
Контактная информация:

Сообщение Cheb »

Ранее скачанное приложение оказалось утрачено при ремонте ноутбука.
Пытался скачать заново - ссылка дохлая. Нет такого файла.
zub
долгожитель
Сообщения: 2889
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Сообщение zub »

Я дружно переехал на гитхаб, поправил нульпост
https://github.com/zamtmn/pudgb
Аватара пользователя
Cheb
энтузиаст
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34
Контактная информация:

Сообщение Cheb »

Уря :D [потирает лапки]

..давится вложенными комментариями { { } }, которые и фпц и лазарь жрут, не морщаясь.
Ну, заодно их выполю, ибо непорядок.

Добавлено спустя 27 минут 3 секунды:
.. ан нет, подавился описанием регистров в конце asm блока.
Бычит "expected semicolon" на левую квадратную скобку :(

Код: Выделить всё

      asm
        mov ecx, ptsc
        rdtsc
        mov [ecx], eax
        mov [ecx + 4], edx
      end ['ecx', 'eax', 'edx'];


.. а в одном месте бычит на точку в объявлении метода класса, явно не распознав его, как таковой.

В результате - граф моего поделиЯ явно неполный, в неём нет одного из самых используемых модулей... Но даже так... О Ктулху милосердный, какой взрыв на макаронной фабрике на три fullHD в ширину... :shock:
[убегает с воплями ужаса "полный граф фтагн!" ]
zub
долгожитель
Сообщения: 2889
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Сообщение zub »

Надо пересобрать с новым fcl-passrc, возможно там это все уже поправлено.
Модули которые нераспарсились в выхлоп не попадают, поэтому можно временно для графа в них оставить только усесы, остальное закоментить
zub
долгожитель
Сообщения: 2889
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Сообщение zub »

Небольшие правки и пре-релиз 0.99.2
- поддержка HiDPI
- задан путь по умолчанию к конфигам Lazarus
- я не понял как передать в сканер флажок po_IgnoreUnknownResource, поэтому собрал бинарник с модифицированным fcl-passrc. инклуды ресурсов игнорируются
- приложил архив dottoxml (пригодится например для экспорта в Yed)

https://github.com/zamtmn/pudgb/releases/tag/0.99.2
zub
долгожитель
Сообщения: 2889
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Сообщение zub »

Версия 0.99.3
-немного реорганизовал настройки
-добавил "Directly uses" - в граф попадают только юниты имеющие "Dest unit" в своем uses
-сохранение/загрузка настроек программы/проекта

https://github.com/zamtmn/pudgb/releases/tag/0.99.3
Ответить