старые и новые косяки лазаря или ... новогодняя сборка

Вопросы программирования и использования среды Lazarus.

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

старые и новые косяки лазаря или ... новогодняя сборка

Сообщение sunjob » 19.01.2022 00:34:13

добрый день, коллеги!

1. все fpc/lazarus у меня ставятся в свои каталоги
2. версии lazarus привязаны к версии fpc (настраивается)
3. разруливанием версий, настройкой окружения, конфиг-каталогами у меня занимается отдельный набор скриптов
4. установлены след. версии (пишу из под sl14.2 x64, в основной оси sl12.2 и того больше)

старые версии
Код: Выделить всё
fpc-3.0.4 / lazarus_1.8.4  gtk
fpc-3.0.4 / lazarus_2.0.4  gtk
fpc-3.0.4 / lazarus_2.0.6  gtk
fpc-3.0.4 / lazarus_2.0.8  gtk
fpc-3.2.0 / lazarus_2.0.10 qt4 (основная)


новые версии (последние)
Код: Выделить всё
fpc-3.2.0 / lazarus-2.0.12
fpc-3.2.2 / lazarus-2.2.0


старые версии - б.м, без особых проблем работают
новые версии - тут появились неразрешимые проблемы

///////////////////////////////////////////////////////////////////////////////

> spoiler - немного о настройке окружения fpc/lazarus

### fpc
установка/PREFIX, конфиги:
Код: Выделить всё
/usr/fpc           ~/config/fpc/3.0.4/{fpc.cfg,fppkg.cfg}  <-- default (старая версия)
/opt/fpc-3.2.0 :   ~/config/fpc/3.2.0/{fpc.cfg,fppkg.cfg}
/opt/fpc-3.2.2 :   ~/config/fpc/3.2.2/{fpc.cfg,fppkg.cfg}


### lazarus (аналогично)
Код: Выделить всё
/opt/lazarus-x.x.x : ~/config/lazar/x.x.x/{*}


в запускающих скриптах производится настройка окружения
Код: Выделить всё
export PPC_CONFIG_PATH=<путь к fpc.cfg>


на всякий случай сделал "аналогичную переменную" для fppkg.cfg, думал проканает
но, видимо не проканало :)
Код: Выделить всё
export FPPKG_CONFIG_PATH=<путь к fppkg.cfg>


///////////////////////////////////////////////////////////////////////////////

далее, коротко и поподробнее :о)

///////////////////////////////////////////////////////////////////////////////

Коротко

можно предположить что-то поломали либо в fpc, либо в lazarus
считаю что-то поломали в lazarus, т.к. с обоими "новыми" fpc-версиями "старые" лазари собираются/работают без проблем
в частности, проверил
Код: Выделить всё
slackware-14.2 x64
lazarus_2.0.10 / fpc-3.2.0
lazarus_2.0.10 / fpc-3.2.2


собирал в 3х версиях гуи: gt2, qt4, qt5
проверено на 2х системах sl12.2/14.2 (в той или иной степени глюки повторяются)

> spoiler
причем qt4 отлично рисует шрифты, в отличие qt5-шг!!! ну а gtk-всегда рисовал отлично :о)

///////////////////////////////////////////////////////////////////////////////

Подробности "новых" косяковх

1. проблемы в настройках IDE-окружения/проекта

- первый запуск лазаря, не видит путей к конфигам fpc, (PPC_CONFIG_PATH - настроена)
- после указания в настройках пути к fppkg.cfg - на первое время успокаивается, но потом все равно выдает подобные сообщения
- видимо, как следствие, выдается сообщение, что неизвестные настройки платформы/процессора итд
помогает принудительная настройка:
Код: Выделить всё
menu / tools / configure build lazarus
указание Target_OS/CPU


тоже самое надо проделать с настройками проекта (сделать дефолтными):
Код: Выделить всё
menu / project / project options / compiller options / config & target


после данных настроек лазарь может собирать пустой проект

ИзображениеИзображениеИзображение


2. сборка минимального проекта (пустая форма с одной кнопкой)

при добавлении кнопки и 2м кликом по кнопке (формирование обработчика) - выдается ошибка

подсвечивается файл base.inc, он, естественно присутствует в "дереве" (файлы на месте)
и мне особенно не понятно, причем тут файлы винды?!

ошибка:
Код: Выделить всё
Codetools, Errors: 1
windows.pp(44,5) Error: include file not found "base.inc"


файлы windows.pp
Код: Выделить всё
fpc-source-3.0.4
/usr/src/fpc-3.0.4/packages/libndsfpc/examples/graphics/Effects/windows/windows.pp
/usr/src/fpc-3.0.4/rtl/win32/windows.pp
/usr/src/fpc-3.0.4/rtl/win64/windows.pp
/usr/src/fpc-3.0.4/rtl/wince/windows.pp

fpc_3.2.0
/opt/fpc-3.2.0/src/packages/libndsfpc/examples/graphics/Effects/windows/windows.pp
/opt/fpc-3.2.0/src/rtl/win32/windows.pp
/opt/fpc-3.2.0/src/rtl/win64/windows.pp
/opt/fpc-3.2.0/src/rtl/wince/windows.pp

fpc_3.2.2
/opt/fpc-3.2.2/src/packages/libndsfpc/examples/graphics/Effects/windows/windows.pp
/opt/fpc-3.2.2/src/rtl/win32/windows.pp
/opt/fpc-3.2.2/src/rtl/win64/windows.pp
/opt/fpc-3.2.2/src/rtl/wince/windows.pp


файлы base.inc
Код: Выделить всё
fpc-source-3.0.4
/usr/src/fpc-3.0.4/rtl/win/wininc/base.inc
/usr/src/fpc-3.0.4/rtl/wince/wininc/base.inc

fpc_3.2.0
/opt/fpc-3.2.0/src/rtl/win/wininc/base.inc
/opt/fpc-3.2.0/src/rtl/wince/wininc/base.inc

fpc_3.2.2
/opt/fpc-3.2.2/src/rtl/win/wininc/base.inc
/opt/fpc-3.2.2/src/rtl/wince/wininc/base.inc


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

в инете есть упоминание о похожем, но это не то
url

ПРИЧЕМ, сам лазарь может себя пересобрать, при некоторых особеностях(*)!
(*) особенности заключаются в пересборке c QT-версией GUI, далее

ИзображениеИзображениеИзображение

add 2022.01.21 - ноги растут из файла-рессуров
c каких это ... "условных едениц"... тут присутствует настройки для Windows/win32 ?
Код: Выделить всё
project1.res

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">^M
<assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="CompanyName.ProductName.AppName" type="win32"/>
<description>Your application description.</description>
<dependency>
  <dependentAssembly>
   <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595
  </dependentAssembly>


на скриншотах видно, что подключаемый файл с ошибкой это
Код: Выделить всё
/opt/fpc-3.2.2/src/rtl/wince/windows.pp
{$i base.inc}


дополнительно
1. проект с кнопкой, созданный под lazarus-2.0.10 и нормально собираемый и запускаемый, все так-же выдает ошибку в lazarus-2.0.12
2. лазарь и паскаль собранные в стандартный PREEFIX работает нормально
Код: Выделить всё
PREFIX=/usr

проверял на
Код: Выделить всё
lazarus-2.0.12
fpc-3.2.0


UPDATE путем подмены выяснилось:
лазарь/fpc тупит именно из-за того, что кто-либо (lazarus or fpc) расположены по ссылке
допустим так
Код: Выделить всё
/opt/fpc-3.2.2 -->
~/opt/fpc-3.2.2

ИзображениеИзображение

3. особенности пересборки Lazarus c QT-версией GUI

если в настройках
Код: Выделить всё
menu / Tools / Configure Buils Lazarus


выбрать qt5, то сборка пройдет нормально, не важно какой GUI-Toolkit был выбран при сборке qt4 или qt5 (пересборка пройдет нормально под тем-же тулкитом, т.е. если лазарь был собран с qt4, то и пересобирется в qt4)

если выбрать qt - вывалит непонятная ошибка
Изображение

4. Ambiguous units found: Lazarus 2.0.12
URL

///////////////////////////////////////////////////////////////////////////////

косяки старых версий

1. настройки проекта, не видят настройки -FU в конфиг-файле

Изображение

Код: Выделить всё
PPC_CONFIG_PATH - настроен, указывает на fpc.cfg
~/config/fpc/x.x.x/fpc.cfg


предполагаю, что лазарь не анализирует настройку окружения, PPC_CONFIG_PATH (fpc нормально "настраивается")

2. проблема "просмотра пакетного менеджера"

при просмотре пакетов, если потеряется фокус, типа переключились посмотреть что-то другое, то уже не вернется обратно, только через kill ... the-bill

а отвлекаться надо! если что-то прочитать или еще чего подглядеть в "других" текстах, инете.

Код: Выделить всё
1. menu / Package / Install-Uninstall Packages
2. появления окна пакетного менеджера
3. переключаемся на другой приложение/рабочий стол
4. возвращаемся обратно к лазару
5. нет доступа к окну пакетного менеджера, лазар не реагирует на обращение к меню итд,
6. kiillall lazarus


3. баг редактора, промотка кода

(*) как выснилось, это фича редактора! только не понятно, отключаемая или нет?

при промотке текста "имя-заглавие функции" остается на месте, а весь код функции проматывается
(наткнулся один раз)

Изображение
Изображение
Изображение
Изображение
Изображение
Изображение
Изображение
Изображение
Изображение
Изображение


4. эпичный баг, реакция нажатия на кнопку мышью и пробелом

2020.07.08 замечен и задокументирован :о) на пленку

на пробел - не срабатывает, очищается (видимо по дефолту)
по нажатию мышкой - отрабатывает нормально (видео продублированы)

video1
video2

///////////////////////////////////////////////////////////////////////////////

дополнение/обращение к программистам/кураторам проекта lazarus

1. ск. всего в лазаре нет анализа переменной PPC_CONFIG_PATH, т.к. при "первых" запусках лазаря выдается куча сообщений что "fpc.cfg не найден"

видимо, или "около того из-за этого" в последних вер. появилась настройка пути к fppkg.cfg

предлогаю (было-бы не плохо):

добавить анализ переменных окружения:
Код: Выделить всё
PPC_CONFIG_PATH   -> путь к fpc.cfg
FPPKG_CONFIG_PATH -> путь к fppkg.cfg (*)


и если они "трушные" сделать "автоматическое" добавление/переопределение настройки в гуях лазаря

(*) - в инете не нашел упоминания об "использовании" данной переменной, видимо, ее как раз и не существует.
предлагаю "добавить" в наш "арсенал"

так-же добавить, в gui-настройки путь к fpc.cfg, как уже сделано для fppkg.cfg

///////////////////////////////////////////////////////////////////////////////

Код: Выделить всё
Linux
Slackware 12.2/x32 - Trinity TDE 3.5.12
- kernel 2.6.33.20
- gtk+2-2.20.1
- glibc-2.11.1
- qt4pas-2.1
- qt4-4.7.4
- qt4-4.8.7

Slackware 14.2/x64 - Trinity TDE 4.0.11
- kernel ...


///////////////////////////////////////////////////////////////////////////////

всех с новым годом, новым частем... надеюсь, сообществу пригодиться :D
Последний раз редактировалось sunjob 24.01.2022 14:59:30, всего редактировалось 21 раз(а).
Аватара пользователя
sunjob
постоялец
 
Сообщения: 123
Зарегистрирован: 12.01.2011 15:19:54

Re: старые и новые косяки лазаря или ... новогодняя сборка

Сообщение Seenkao » 19.01.2022 02:03:24

sunjob писал(а):при промотке текста "имя-заглавие функции" остается на месте, а весь код функции проматывается

Это не баг. Когда большая процедура/функция и курсор стоит в этой процедуре/функции, то при перемотке будет показываться название и данные процедуры/функции. Если ты конечно находишься в пределах этой процедуры/функции.

sunjob писал(а):на пробел - не срабатывает, очищается (видимо по дефолту)

это вероятно кнопка не в фокусе. Надо выставлять фокус, тогда она будет нажиматься.
Seenkao
энтузиаст
 
Сообщения: 502
Зарегистрирован: 01.04.2020 03:37:12

Re: старые и новые косяки лазаря или ... новогодняя сборка

Сообщение Vadim » 19.01.2022 06:39:28

sunjob писал(а):ск. всего в лазаре нет анализа переменной PPC_CONFIG_PATH

Посмотрел исходники старых версий Лазаря (2.1 и 2.0.2, которые у меня случайно завалялись), там упоминания про эту переменную тоже нет. Зато она есть (была в старых и никуда не девалась в новых) версиях FPC, в этом можно убедиться посмотрев файл "compiler/options.pas". От этого ко мне прокрадываются смутные подозрения, что у Вас где-то настройки ненастроены. :-)
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: старые и новые косяки лазаря или ... новогодняя сборка

Сообщение sunjob » 19.01.2022 09:21:04

PPC_CONFIG_PATH
эта настройка fpc-компилятора а не лазаря и поэтому должна там быть по умолчанию (в кишках fpc), а вот с лазарем... упс...

у Вас где-то настройки ненастроены

а у Вас на кухне молоко убежало :D ... как говориться, без проблем, принимается, предлагаю пофантазировать и выдать дотошное предположение "где именно оно ненастроено" :mrgreen:

это вероятно кнопка не в фокусе

она сможет нажиматься, будучи не в фокусе?! на ск. я помню (косяк давнишний) кнопка была в фокусе (а то как иначе то?!)
да и баг подтвердился, я в это время общался с приятелем-программистом, у него тоже самое было
проблема была в том, что нажатие пробелом отрабатывалось не полностью... только одна часть из кода - очистка содержимого мемо, а вторая часть не отрабатывалась (на видео все же отлично видно)

Это не баг

хотелось бы отключаемый такой "не баг", любая особенность во время работы мешает (обычно)
Аватара пользователя
sunjob
постоялец
 
Сообщения: 123
Зарегистрирован: 12.01.2011 15:19:54

Re: старые и новые косяки лазаря или ... новогодняя сборка

Сообщение zub » 19.01.2022 11:26:36

ИМХО смысла разводить зоопарк нет никакого. Есть 2 актуальные версии - последняя релизная и транковая.
Остальное - тыква и держать их стоит только изза какойто критичекой потери обратной совместимости
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: старые и новые косяки лазаря или ... новогодняя сборка

Сообщение sunjob » 19.01.2022 20:12:18

... ИМХО смысла ... Есть 2 актуальные версии - последняя релизная и транковая.

Вы топик точно читали?! :P
Аватара пользователя
sunjob
постоялец
 
Сообщения: 123
Зарегистрирован: 12.01.2011 15:19:54

Re: старые и новые косяки лазаря или ... новогодняя сборка

Сообщение Seenkao » 19.01.2022 22:07:19

sunjob писал(а):хотелось бы отключаемый такой "не баг"

очень удобная штука! Особенно когда код большой. Видишь в какой функции/процедуре ты в данный момент находишься, если конечно курсор в тексте находится в пределах экрана. Щёлкнул посреди кода и увидел что за функция "под рукой".
Seenkao
энтузиаст
 
Сообщения: 502
Зарегистрирован: 01.04.2020 03:37:12

Re: старые и новые косяки лазаря или ... новогодняя сборка

Сообщение sunjob » 19.01.2022 22:22:56

все это, конечно, хорошо, если "ожидаемо" и знаешь где "бабахнуть кувалдой" и что из этого получиться :о)
в geany - в строке статуса показывается имя функции, в qtcreatore - тоже как-то отображается (не помню, т.к. редко с ним общаюсь)

Щёлкнул посреди кода и увидел

поподробнее, в 2х словах?! что щелкнул?! :D или вы про "такое" дефолтное поведение?
Аватара пользователя
sunjob
постоялец
 
Сообщения: 123
Зарегистрирован: 12.01.2011 15:19:54

Re: старые и новые косяки лазаря или ... новогодняя сборка

Сообщение Seenkao » 20.01.2022 01:21:02

Если у тебя десятки функций, каждая на 7 страниц, то при прокручивании достаточно просто потеряться. А мышкой щёлкнув по коду, мы увидим в какой функции мы находимся. Перекрутили или нет, если требовалась именно эта функция (если мотать клавишами, то там постоянно светится, потому что курсор в пределах рабочего окна всегда).
Seenkao
энтузиаст
 
Сообщения: 502
Зарегистрирован: 01.04.2020 03:37:12

Re: старые и новые косяки лазаря или ... новогодняя сборка

Сообщение sunjob » 20.01.2022 02:31:00

да это я понял сразу :о) поэтому привел пример того, что в других редакторах это сделано по своему :о)
мне было не понятно, что вы имеете в виду под щелчком
ладно, забыли...
Аватара пользователя
sunjob
постоялец
 
Сообщения: 123
Зарегистрирован: 12.01.2011 15:19:54

Re: старые и новые косяки лазаря или ... новогодняя сборка

Сообщение Seenkao » 20.01.2022 03:09:27

мышь, левый клик по коду. )))
Seenkao
энтузиаст
 
Сообщения: 502
Зарегистрирован: 01.04.2020 03:37:12

Re: старые и новые косяки лазаря или ... новогодняя сборка

Сообщение sunjob » 20.01.2022 23:10:49

меня больше всего интересует основная проблема, откуда ноги ростут у win32 ???
2. сборка минимального проекта (пустая форма с одной кнопкой)


Добавлено спустя 11 часов 28 минут 16 секунд:
UPDATE

уточнение главного косяка (кажется докопался до сути, проблемы в том, что теперь/новый лазарь не желает работать с сылками :oops: ...)

если fpc/src находятся по ссылке, то все...!!!
допустим так
Код: Выделить всё
/opt/fpc-3.2.2 -->
~/opt/fpc-3.2.2

ИзображениеИзображение

или еще не менее веселое приключение, если исходники fpc положить по ссылке :о)
Аватара пользователя
sunjob
постоялец
 
Сообщения: 123
Зарегистрирован: 12.01.2011 15:19:54

Re: старые и новые косяки лазаря или ... новогодняя сборка

Сообщение sunjob » 24.01.2022 13:56:01

xxl. Несколько форм, доступ к одной из форм
Код: Выделить всё
Lazarus 2.0.10 - OK
Lazarus 2.0.12 - ERROR

procedure TForm1.Button1Click(Sender: TObject);
begin
TForm2.Visible := True;
end; 

unit1.pas(36,16) Error:
Only class methods, class properties and class variables can be referred with class references


... простите, это мы говорим о стабильной версии?! :oops:

нам тут как-бы... клацать по калавитуре а не ногти красить, пока там начальники имущество делят :oops: ! откатываемся на Lazarus 2.0.10 :mrgreen:

зы. позже, конечно-же выяснилось, что я немного ступил :lol: (сообщение немного подправил :D :D :D )
Последний раз редактировалось sunjob 24.01.2022 18:42:15, всего редактировалось 3 раз(а).
Аватара пользователя
sunjob
постоялец
 
Сообщения: 123
Зарегистрирован: 12.01.2011 15:19:54

Re: старые и новые косяки лазаря или ... новогодняя сборка

Сообщение iskander » 24.01.2022 14:10:03

Чем носиться с глюками как с писаной торбой, может лучше сходить в багтрекер?
Что касаемо 5, то компилятор, кажется, в своём праве, если конечно TForm2 это имя класса.
iskander
энтузиаст
 
Сообщения: 590
Зарегистрирован: 08.01.2012 18:43:34

Re: старые и новые косяки лазаря или ... новогодняя сборка

Сообщение zub » 24.01.2022 14:25:43

>>откатываемся на Lazarus 2.0.10
прям так сразу не разобравшись))
Ты немного лукавишь, в 2.0.10 будет точно такая ошибка
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 23

Рейтинг@Mail.ru