Clarion 11-12

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
Губин Игорь
Шубуршун
Сообщения: 2770
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 30 раз

Clarion 11-12

Сообщение Губин Игорь »

finsoftrz писал(а): 03 Март 2026, 13:00 Ребенку, съевшему собаку" сколько годиков то?
Мне до пенсии осталось всего ничего. :facepalm:

Так речь не о кларионе как таковом.
Это я только кажусь дураком! На самом деле я полный идиот!
PavelNK
Старожил
Сообщения: 292
Зарегистрирован: 15 Март 2011, 8:02
Поблагодарили: 1 раз

Clarion 11-12

Сообщение PavelNK »

Губин Игорь писал(а): 03 Март 2026, 13:42
finsoftrz писал(а): 03 Март 2026, 13:00 Ребенку, съевшему собаку" сколько годиков то?
Мне до пенсии осталось всего ничего. :facepalm:

Так речь не о кларионе как таковом.
Какой породы была собака?(
Аватара пользователя
Губин Игорь
Шубуршун
Сообщения: 2770
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 30 раз

Clarion 11-12

Сообщение Губин Игорь »

PavelNK писал(а): 03 Март 2026, 15:26 Какой породы была собака?(
Я и слов таких не знаю, которые он употребляет. Я представляю чем он в каждый конкретный момент занимается, но в детали, даже, не суюсь. Насколько я в курсе, сейчас они разрабатывают какой-то VPN корпоративного класса.
Это я только кажусь дураком! На самом деле я полный идиот!
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5897
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 24 раза
Поблагодарили: 86 раз

Clarion 11-12

Сообщение finsoftrz »

Столкнулся с эффектом, когда среда С12 после генерации перестала вызывать компиляцию. То есть, изменяем что-то в словаре, запускаем сборку всего проекта, генерация сырцов происходит, а компиляция начинается и сразу заканчивается с сообщением об успехе. Открываешь отдельный app, запускаешь его сборку, генерация сырцов не происходит (они уже в актуальном состоянии), выполняется компиляция, как обычно. Причем так только на самом большом проекте, остальные собираются нормально, генерация, следом компиляция. Началось это недавно, после чего, так и не понял, как будто после добавления каких-то полей в словаре.
C6/C12, ШВС, tps/btrieve.
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5897
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 24 раза
Поблагодарили: 86 раз

Clarion 11-12

Сообщение finsoftrz »

Починилось после удаления солюшена и повторное ручное его создание из app. У народа такое, как я понял из clarionhub, тоже встречалось, чинили аналогично. Меня вначале смутило, что аналогично вели себя и вспомогательные солюшены для того же проекта. Почему ломается, хз.

Первый раз такое случилось, но ситуация неприятная. Если не заметить, то может привести к рассогласованию глобальных структур в dll и проблемам на стороне клиента. В сырцах все норм, а dll не пересобралась.
C6/C12, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8581
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 37 раз
Поблагодарили: 127 раз

Clarion 11-12

Сообщение Игорь Столяров »

finsoftrz писал(а): 15 Март 2026, 11:59 Если не заметить
У мя ещё со времён CPD 2.1 в папке каждого проекта есть командный файл _CRACK.BAT (но идея не моя).
Он удаляет из проекта вообще все производные файлы CLW/INC/BAK/AP~/CACHE и т.д., а также папки MAP / OBJ.
После этого проекту ничего не остаётся, кроме как пройти полную регенерацию при сборке. Бывает полезно ! :D
За теми, кто отстал, не возвращаться ! 🏴‍☠️ Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5897
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 24 раза
Поблагодарили: 86 раз

Clarion 11-12

Сообщение finsoftrz »

Потребности все почистить никогда не возникало, кроме перехода со среды С6 на среду С11.
После изменений в словаре перегенерятся только clw с декларациями (для тех app, которые используют измененные структуры в словаре) и по мелочам. Генератор кода в С11-С12 справляется с этой задачей (оптимизация генерации кода) гораздо лучше, чем в С6.
C6/C12, ШВС, tps/btrieve.
Аватара пользователя
Губин Игорь
Шубуршун
Сообщения: 2770
Зарегистрирован: 16 Сентябрь 2005, 16:35
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 30 раз

Clarion 11-12

Сообщение Губин Игорь »

finsoftrz писал(а): 15 Март 2026, 14:38 Потребности все почистить никогда не возникало, кроме перехода со среды С6 на среду С11.
Периодически требуется, когда перегенерация вызвана не правками в коде, а переключениями в шаблонах. Для этого в шаблоны вставляется вызов соответствующих батников для очистки.
Это я только кажусь дураком! На самом деле я полный идиот!
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5897
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 24 раза
Поблагодарили: 86 раз

Clarion 11-12

Сообщение finsoftrz »

Возможно, от шаблонов зависит. У меня изменения без очистки отрабатывают. Бывает, какая-нибудь невразумительная ошибка при открытии очередного app в поточной сборке, приходится перезапускать среду и открывать app вручную.
C6/C12, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8581
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 37 раз
Поблагодарили: 127 раз

Clarion 11-12

Сообщение Игорь Столяров »

finsoftrz писал(а): 15 Март 2026, 15:10 какая-нибудь невразумительная ошибка
Бывают непонятные ситуации, когда проще и быстрее сразу сделать "давайте все выйдем и снова зайдём",
чем разбираться с причинами ... т.к. всё равно потом к этому сводится. 🤷‍♀️
За теми, кто отстал, не возвращаться ! 🏴‍☠️ Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5897
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 24 раза
Поблагодарили: 86 раз

Clarion 11-12

Сообщение finsoftrz »

У меня попроще, нет ABC классов и соответствующих шаблонов. Линейная логика.
Периодически у среды сносит голову. Может быть при открытии app или при запуске сборки. Сообщения неадекватные. Лечится путем перезапуска среды. Было пару раз, когда портился список модулей в проектном файле, это мы уже обсуждали. Привыкли уже, лучше не будет, работаем с тем, что есть.
C6/C12, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8581
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 37 раз
Поблагодарили: 127 раз

Clarion 11-12

Сообщение Игорь Столяров »

finsoftrz писал(а): 15 Март 2026, 18:54 нет ABC классов и соответствующих шаблонов
Со штатными ABC шаблонами и классами проблем нет - т.к. они собственно и не изменяются.
Другое дело свои классы, субклассинг, вставки фрагментов текста на этапе компиляции ...
там иногда сам чёрт лапу сломит разобраться, откуда что и почему взялось. 😢

И, кстати, компилятор и линкер стали в C12 хуже чем в С6.3 (хотя может быть и быстрее).
Особенно это касается строгого контроля прототипов функций в классах и разных DLL проекта.
Например, он вполне "логично" пропускает, что тип данных *Queue и Queue - это одно и то же.
Но вот только, когда это заменяется на *Group и Group - это уже совсем не одно и то же. 😢
За теми, кто отстал, не возвращаться ! 🏴‍☠️ Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5897
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 24 раза
Поблагодарили: 86 раз

Clarion 11-12

Сообщение finsoftrz »

В ABC логика размазана по методам и свойствам классов, очень сложно для понимания. Чаще классы используют как черный ящик, не вникая во внутреннюю организацию. Но в ABC используется механизм виртуальных методов, требующий понимания, где какой код обрабатывается.
На мои предпочтения, самая оптимальная схема это использовать процедурные шаблоны без ABC и максимально убирать код внутрь простых ненаследуемых (по возможности) классов. Мы все учились понемногу, поэтому во времена популярности процедурных шаблонов многие размещали в точках вставки линейный код. Переделывать уже нет смысла. Кода получается гораздо больше, но минимизация его уже не особо принципиальна при нынешних доступных ресурсах. Зато линейный код работает заметно шустрее объектного.

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

Принципиальной разницы по скорости компиляции между С6 и С12 я не замечаю, плюс-минус. Значительный (на порядок) прирост скорости на этапе генерации кода. Заметно это тогда, когда активно используются темплейты.

Ошибки были всегда, но во времена С6 они фиксились и функционал доводился до кондиции. Позже, если добавлялся какой-то функционал, то он тестировался гораздо меньшим числом людей. Если что-то сразу не заметили, позже уже никто ничего не делал, недоработки остаются висеть и дальше, люди ищут пути, как их обойти без участия SV.
C6/C12, ШВС, tps/btrieve.
Ответить