FPC 3.0.4

Вопросы программирования на Free Pascal, использования компилятора и утилит.

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

Re: FPC 3.0.4

Сообщение alexs » 22.12.2017 11:01:51

По виртуалкам (использую VBox):
Есть хорошая вешь - снапшоты и клоны.
Делаешь базовую установку системы со всеми вспомогательными инструментами
Потом делаешь либо снапшоты или связанный клоны (если одновременно не запускаешь - то без разницы что, если одновременно будут работать - то нужны клоны)
И в затем в них ставишь уже конкретную версию FPC

Получается достаточно экономно.
Базовая ОС порядка 10 ГБ и каждый снапшот 1-2ГБ.

По сорцам
А слить официальные сырцы от команды с SVN? Что там разрабы дистрибутива намутили - большой вопрос.
https://svn.freepascal.org/svn/fpc/tags/
Все версии FPC
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4053
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: FPC 3.0.4

Сообщение Сквозняк » 23.12.2017 01:49:23

alexs писал(а):По сорцамА слить официальные сырцы от команды с SVN? Что там разрабы дистрибутива намутили - большой вопрос.

Это не разрабы дистрибутива не рабочие пакеты распространяют в массы, а качается по ссылкам с сайта разработчиков лазаруса! Заходишь на http://www.lazarus-ide.org/ жмёшь на кнопку "Download Now" и попадаешь на соурцефордж где лежат пакеты и архивы. Отличная реклама паскалю :( Про лазарус можно отмазаться что не заметили зависимость которую надо прописать в скрипте пакета, а в пакете паскаля любому кто сделал несколько пакетов сразу бросается в глаза лажа: из исходников часть кода выкинули, причём давно, а в сборочном скрипте команду, которая с выкинутым взаимодействует, не закоментили. То есть пакет не тестили или собирали в такой среде, которая плюёт на все ошибки сборки и собирает что попало. Изящное решение: сделали пакеты с исходниками легче на 30 метров, выбросив справку и демки, и не рабочими.
https://svn.freepascal.org/svn/fpc/tags/
Все версии FPC

Там лежат исходники со странными зависимостями: версии 3.0.4 для сборки требуется чтобы в системе стояла именно версия 3.0.2 - версия 3.0.4 не подходит. Что же там намутили что компилятор разучился собирать сам себя? И там только голые исходники, без каталогов с документацией и демками, а весят из-за эсвээновской требухи больше. Большой необходимости именно в этом хранилище ощутить не успел, т.к. выкладываемые разработчиками на файлообменники исходники в архивах типа fpcbuild-3.0.4.tar.gz содержат всё что надо (но для 3.0.4 надо чтобы в системе не было версий <3.0.2, иначе лезут ошибки компиляции) для сборки на ПК, а также документацию, которую путём хитрого трюка можно собирать и автоматически, в пакете. Пока лазарус не нужно было пересобирать, вопрос корявости распространяемых пакетов так остро не стоял. Чтобы собрать такой пакет со всеми справкими и демками, справку надо патчить чтобы при сборке не задавала вопросы про ИОС, на которые нет хорошего ответа. Для версии 2.6.4 делал src.rpm с fpcbuild-*.tar.gz в качестве исходников, справку собирал так:
Код: Выделить всё
KATALOG2=`pwd`
cd $KATALOG1
patch -p0 < %{SOURCE18}
cd $KATALOG2
make -i -j1 -C fpcdocs html pdf FORCE FPC=${NEWPP} FPDOC=${NEWFPDOC}

То есть патчить исходники нужно уже после сборки компилятора, вот таким патчем
Код: Выделить всё
--- compiler/msg/errore.msg~   2014-02-25 13:05:54.000000000 +0200
+++ compiler/msg/errore.msg   2014-03-13 19:26:02.000000000 +0200
@@ -2938,12 +2938,6 @@
% Not all debug formats can be stored in an external file on all platforms. In particular, on
% Mac OS X only DWARF debug information can be stored externally.
option_invalid_macosx_deployment_target=11049_E_Invalid value for MACOSX_DEPLOYMENT_TARGET environment variable: $1
-option_invalid_iphoneos_deployment_target=11050_E_Invalid value for IPHONEOS_DEPLOYMENT_TARGET environment variable: $1
-% On Mac OS X, the MACOSX_DEPLOYMENT_TARGET/IPHONEOS_DEPLOYMENT_TARGET environment variable can be
-% used to set the default target OS version. In case of Mac OS X, it has to be of the format
-% XY.Z or XY.Z.AB with X, Y,Z , A and B all digits from 0-9.
-% In case of iOS, it has to be X.Z.A, where X, Z and A can all be either 1 or 2
-% digits from 0-9.
%\end{description}
# EndOfTeX

Решение, как починить сборку пакета есть давно, но до бракоделов не докричишься. В дистрибутивах пакеты чинят каждый по своему.
Сквозняк
энтузиаст
 
Сообщения: 1109
Зарегистрирован: 29.06.2006 22:08:32

Re: FPC 3.0.4

Сообщение Снег Север » 23.12.2017 09:10:55

но до бракоделов не докричишься. В дистрибутивах пакеты чинят каждый по своему.

Вот за это и не люблю линуксы (С)
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 2993
Зарегистрирован: 27.11.2007 16:14:47

Re: FPC 3.0.4

Сообщение alexs » 25.12.2017 10:14:12

Сквозняк
Много букв - честно не осилил :-(
Если считаешь что есть ошибка в скриптах - пиши в багтрекер, пиши на форум и разработчикам. Ответят.
Насчёт исходников из SVN - стартер всегда нужен. Разработчики решили - что стартер - это предыдущий версия (это логично). Если тебе хочется не слушаться рекомендаций разработчиков - OVERRIDEVERSIONCHECK=1.
Ну и на последок - избавиться от требухи свн очень просто - удали этот каталог.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4053
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: FPC 3.0.4

Сообщение Сквозняк » 25.12.2017 22:23:40

alexs писал(а):Много букв - честно не осилил

Да уж лучше много букв чем так, как в реадме. Что-то с линковщиком намутили странное, наверно вес бинарей путём усушки линковочной информации уменьшили, а какая теперь нужна версия binutils чтобы fpc-3.0.4 мог линковать программы, а они потом работать в системе - загадка и сюрприз для тех, кто будет этим пользоваться, про то нигде на видном месте не написано. Через лет 10 конечно будет круто этим пользоваться, но пока даже binutils от centos 7 не помогает.
Сквозняк
энтузиаст
 
Сообщения: 1109
Зарегистрирован: 29.06.2006 22:08:32

Re: FPC 3.0.4

Сообщение alexs » 26.12.2017 09:21:36

Вот честно - читаю (не только ваши) проблемы - которые тут описывают. Удивляюсь.
Вот честно - у меня основная машина обновляется начиналась с 20 федоры. Сейчас обновляю уже до 27. Исходники FPC и Lazarus-а с 2013 года SVN-ом обновляю. Плавно уже до 3.1.1 и 1.9 дошли. Вот не было проблем таких. В винде тоже не разу не было такой ситуации чтобы не собралось.
Конечно есть проблемы когда в результате доработок исходники не собираются. Но обычно откатываюсь на день назад. В течении 2-3 дней всё фиксится.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4053
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: FPC 3.0.4

Сообщение Сквозняк » 26.12.2017 18:29:54

alexs писал(а):Вот честно - читаю (не только ваши) проблемы - которые тут описывают. Удивляюсь.Вот честно - у меня основная машина обновляется начиналась с 20 федоры. Сейчас обновляю уже до 27.

А у меня 17 федора в качестве основного дистрибутива, более новые - где-то на других разделах, в дуалбутах. Есть ещё 7 альт, уже месяца 3 собираюсь вместо него 8 накатить. И что характерно, свободные видеодровишки - дрянь которую пилят под нужды бизнеса, которому что сменить железо, что позвонить в техподдержку, однохренственно. Посему, порегулировать свободными дровами видухи яркость монитора-прожектора, это боль и потеря времени. Посему версия ядра (чуть меньше 3.4) и иксов на основном дистре стоит такая, какая нужна последней версии хорошего видеодрайвера - каталист-наследие. Обновление федоры (а лучше переезд на 7 центос, к нему дрова амд печатает) до последней версии для меня означает крупный заказ в магазины, поскольку моник меня для набирания текста устраивает, а новая видуха потянет за собой и весь новый системник. Потому не так просто взять и обновить линукс до рекомендуемой бесплатными тестерами редхата версии. Тем более, что вайленд, пока на него всё что надо не портируют, а это лет 20 примерно, мне нафиг не нужен, вместе с третьим гномом. До сих пор fpc и лазарусы прекрасно ставились на старые линуксы. Много говорили что fpc-3.0 всё сломает. Протестил fpc-3.0.2 - вроде можно как и прежде писать в ansistring байты в диапазоне 0..255 и ничего за это плохого не делают, главное кодировку нигде не указывать. А вот про fpc-3.0.4 ничего не предупреждали, не говорили что именно она будет революционная, переведёт на новый формат, потому и проблемы воспринимались так остро, казалось: ещё чуть чуть, что-то поправить и оно заведётся. Ага, заведётся когда делаешь лазарусу 1.8 ldd, утилита сообщает что это статический файл! Вот просто ГТК2 взяли и статически слинковали, а бинарь от этого не распух. Ну и как такая программа в такой системе может запуститься? Предупреждать надо было, что теперь для наследия годны компиляторы <=3.0.2
Сквозняк
энтузиаст
 
Сообщения: 1109
Зарегистрирован: 29.06.2006 22:08:32

Re: FPC 3.0.4

Сообщение fedan » 26.12.2017 21:25:46

ссзб
fedan
новенький
 
Сообщения: 70
Зарегистрирован: 15.09.2016 21:18:48

Re: FPC 3.0.4

Сообщение Сквозняк » 26.12.2017 22:50:35

fedan писал(а):ссзб

Коммерческие программы, понимаю, тоже нужно компилить так, чтобы они работали только на последней убунте с федорой, у которой вяленый вместо ДЕ и не настраиваемая заглушка вместо видеодрайвера, а всякие центосы и красные шапки пусть идут лесом :mrgreen:
Сквозняк
энтузиаст
 
Сообщения: 1109
Зарегистрирован: 29.06.2006 22:08:32

Re: FPC 3.0.4

Сообщение fedan » 26.12.2017 23:53:40

Сквозняк писал(а):Ага, заведётся когда делаешь лазарусу 1.8 ldd, утилита сообщает что это статический файл! Вот просто ГТК2 взяли и статически слинковали, а бинарь от этого не распух.


gtk статически не линкуется. линкуется к /usr/lib/libgtk-x11-2.0.so
Код: Выделить всё
readelf -d lazarus | grep NEEDED


Добавлено спустя 9 минут 3 секунды:
Сквозняк писал(а):Коммерческие программы, понимаю, тоже нужно компилить так, чтобы они работали только на последней убунте с федорой, у которой вяленый вместо ДЕ и не настраиваемая заглушка вместо видеодрайвера


xwayland
fedan
новенький
 
Сообщения: 70
Зарегистрирован: 15.09.2016 21:18:48

Re: FPC 3.0.4

Сообщение Сквозняк » 27.12.2017 01:52:04

Только-только собрался исправленный пакет, с gdb7.9 и справкой, поставил и волшебным образом fpc научился и линковать старым линковщиком, и глибц последних версий ему тоже уже не нужен. Если бы сразу собрали релизную версию в виртуалке с 6-7 центосом, то она бы работала у большего количества народа.

Добавлено спустя 6 минут 47 секунд:
fedan писал(а):gtk статически не линкуется. линкуется к /usr/lib/libgtk-x11-2.0.so

Если ldd показывет что файл lazarus статический, то это значит что собрали его по такому формату, который текущая версия этой утилиты не знает.

xwayland

В топку, для него хороших дров в ближайшем будущем никто даже не обещал.
Сквозняк
энтузиаст
 
Сообщения: 1109
Зарегистрирован: 29.06.2006 22:08:32

Re: FPC 3.0.4

Сообщение Cheb » 22.01.2018 14:17:49

Таки 3.0.4 крашится с внутренней ошибкой на моём проекте если не понатыкать везде
del /Q .\*.o
del /Q .\*.ppu
- то есть работает только полная перекомпиляция всех юнитов, подрывая преимущество Паскаля в скорости.
Руки дойдут - запощу в багтрекер.
Аватара пользователя
Cheb
энтузиаст
 
Сообщения: 994
Зарегистрирован: 06.06.2005 15:54:34

Re: FPC 3.0.4

Сообщение Cheb » 28.01.2018 01:21:16

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

Пред.

Вернуться в Free Pascal Compiler

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

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

Рейтинг@Mail.ru