LINUX.ORG.RU

Вышел Free Pascal Compiler 3.0.0

 ,


4

6

25 ноября выпущена новая версия свободного компилятора языков Pascal и Object Pascal — FPC 3.0.0 «Pestering Peacock».

Основные изменения в этом выпуске:

Улучшения совместимости с Delphi:

  • Добавлена поддержка Delphi-подобных пространств имен для модулей.
  • Добавлена возможность создания динамических массивов с помощью конструктора Create.
  • Строки типа AnsiString теперь хранят информацию о своей кодировке.

Изменения в компиляторе:

  • Добавлен новый уровень оптимизации -O4, при котором компилятор может переставлять поля в объектах классов, не вычислять неиспользуемые значения и ускорять работу с числами с плавающей точкой с возможной потерей точности.
  • Добавлен анализ потоков данных (data flow analysis).
  • Добавлена поддержка следующих целей:
    • Java Virtual Machine / Dalvik.
    • AIX для PowerPC 32/64-бит (без поддержки сборки ресурсов для 64-бит).
    • MS-DOS real mode.
    • Android для ARM, x86 и MIPS.
    • AROS.

>>> Подробности



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

кто-то еще этим пользуется???

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

Странно, что этого не было ещё лет 15 назад

Ничего странного, FPC делался как 32 разрядный Паскаль. В то время было много таких проектов.

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

Строки типа AnsiString теперь хранят информацию о своей кодировке

Зачем???

Чтобы не было проблем с кодировкой.

Например в WinFF (gui для ffmpeg) под офтопом не работают русские имена файлов, из-за того что внутреннее представление в utf8, а winapi - ansi. Для жителей сша проблема не видна, ибо все ascii-соместимо.

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

Строки типа AnsiString теперь хранят информацию о своей кодировке

Зачем???

Что бы не было оПХБЕР в консоли. Строка - это осмысленный текст, а для набора байтов есть массив байтов.

AlexVR ★★★★★
()

Знакомые школьницы из.приличных школ Москвы говорят, что им советуют майкрософтовский компилятор. Первичный язык обучения - с++.

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

Если пакет не обязательно, то можно из сорцов собрать. make с fpc из реп, затем сносим и sudo make install.

Пакет-то само собой обязательно, но под 7 центос нигде нет, просто никто ещё не сделал. Но я уже продвинулся, методом подбора удалось собрать на fpc 2.6.4 из 22 федоры. Так что головоломка решается просто -- импортнуть пакет от 22 федоры в центосный koji, собрать промежуточный вариант, после чего выкинуть, перевести на самоподдув и ещё раз собрать.

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

Кстати, а интересно, почему qt4pas не линкуется статически, а идет в комплекте к Лазарю в виде разделяемой либы?

Какие-то лицензионные заморочки?

Ну если оно LGPL, то при статической линковке всё остальное тоже же должно будет стать LGPL?

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

Странно что паскаль ещё жив, когда есть оберон, который мощнее, проще и всё от того же вирта.

Тогда уж не оберон, а ComponentPascal. Но у него с пингвином отношения не сложились.

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

В гцц можно хоть -Oдохрениллиард, оно равносильно -O3, можно нагуглить даже исходн ик, где этот уровень вычисляется. А так, например, у suncc уровней оптимизации 5, у ИАРа - вообще 9.

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

GPL 3 или LGPL 2.1. Или проприетарная за $$$, но без юридических препонов со статической линковкой.

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

Тогда уж не оберон, а ComponentPascal. Но у него с пингвином отношения не сложились.

У Oberon | ComponentPascal вообще мало с кем отношения сложились. А жаль.
Гораздо лучше ObjectPascal. Ребята тужатся перевести BlackBox на линукс, только вот не очень. :( Тут играем, тут не играем, тут рыбу заворачивали....

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

Если твоя ниша выходит за рамки «мамаявебдивилопер!», то подходит для качественного закрытия любых задач в любых системах. Большой респект ребятам. Ждём нового лазаря.

sydenis
()
Ответ на: комментарий от AlexVR

Пистон же справляется, просто за счёт того, что внутри у себя всё держит в юникоде, чем тут такой подход не угодил?

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

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

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

Ну если оно [на условиях GNU] LGPL, то при статической линковке всё остальное тоже же должно будет стать LGPL?

Нет.

Zmicier ★★★★★
()
Последнее исправление: Zmicier (всего исправлений: 1)
Ответ на: комментарий от d_a

Там сделано специальное исключение, что статически слинкованные бинарники могут распространяться по любой лицензии. При этом сам компилятор (не rtl и не пакеты) идёт по GPL.

FoodChemist
()
Ответ на: комментарий от A-234

Тогда юникод.

The new String class will store characters encoded either as ISO-8859-1/Latin-1 (one byte per character), or as UTF-16 (two bytes per character), based upon the contents of the string. The encoding flag will indicate which encoding is used.

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

Без обид, но там есть репы наподобие питоновских, или там NIH-синдром?

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

На сабж еще перетаскивают кучу всякого дельфевого энтерпрайза из 90-х, даже если 95% такого энтерпрайза умерло/переписано, оставшиеся 5% - это очень много кода/программистов, засчет этого Lazarus живет и будет жить и поддерживаться еще долго.

Поддерживал монструрозное по размеру дельфиприложение (начатое в 80-х) по узкоспециализированному учету, с заказчиками (не РФ) были договоренности по поддержке его до 2020+. Подобный энтерпрайз бывает много дешевле перетащить на Lazarus, чем связываться с post-Borland Delphi или пытаться переписать на Java.

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

tcl/tk. легко, кроссплатформенно, батарейки, быстро (разрабатывать ПО, конечно, а не только формы клепать). лазарь хорош лишь для неисправимых паскалистов. и это, тем, кто в треде поминал обероны.. сам питаю теплые чувства и к модуле-2, и к оберонам (компонентный паскаль и блэкбокс, в особенности), писал по мелочи в блекбоксе наколенные поделки, но ниша прикладного ПО уже безвозвратно утеряна, концепция осталась непонята большинством

tcler
()
Ответ на: комментарий от d_a

Или проприетарная за $$$, но без юридических препонов со статической линковкой.

А с LGPL-то что за препоны? Я так понимаю, единственное ограничение - это если проект проприетарный, надо предоставлять покупателю объектные модули (даже не исходники), чтобы он мог сие пересобрать с другой версией Qt.

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

Fastcgi

для «мамаявебдивилопер» тоже норм - пишу fastcgi для Apache на нем 32/64bit Linux :)

acukac
()
Ответ на: комментарий от hobbit

А я не знаю, я в гугле прочитал, что если статически линковать с LGPL библиотекой, то всё остальное тоже должно стать LGPL. Возможно, неправильно. Это если не "LGPL with exceptions".

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

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

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

Так а чем это отличается от того что в ОП?

Чем это отличается от того, что в ОП, мне не интересно. У gcc это отличается от гипотетического -O4 тем, что на четырёх предыдущих уровнях не выполняется оптимизаций, потенциально приводящих к несовместимости со стандартами (c IEEE 754?).

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

Ядро поддерживает псевдоформат бинарников binfmt_misc, позволяющий устанавливать в юзерспейсе произвольные интерпретаторы бинарников произвольных видов. У QEMU есть режим работы с трансляцией кода из бинарников чужой архитектуры в код для хоста, с системными вызовами в ядро хоста. Склеенная вместе эта композиция делает чудеса.

Воу воу, полегче аутлоу, может быть вначале попробовать вот это взять для бутстрапа - ftp://ftp.freepascal.org/fpc/dist/3.0.0/x86_64-linux/.

Когда я слышу о сферическом бутстрапе в вакууме, в котором задействованы бинарники для ARM, то о какой целевой архитектуре я должен подумать в первую очередь?

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

Первичный язык обучения - с++.

Экие дела творятся в «приличных» школах Москвы. Наверное долго думали какой язык выбрать, чтобы у новичка отбить охоту программировать.

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

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

Да, это неверно. Тов. hobbit же, напротив, выше подал справедливую мысль, за тем малым исключением, что: а) слова «проприетарный» и «покупатель» здесь слишком узки — LGPL никак не дискриминирует программы на свободные и несвободные, и ни те, ни другие, разумеется, не обязаны продаваться и покупаться, могут быть и бесплатными; б) есть еще парочка менее заметных требований.

Право, было бы гораздо полезнее прочитать саму лицензию, а не наверченные вокруг нее толкования «в гугле» — в отличие от большинства других юридических документов, лицензии ГНУ написаны человеческим языком (но английским, разумеется). Читая третью версию GNU LGPL, имейте в виду, что она сама по себе есть исключение (exception) из полной GNU GPL и без нее недействительна.

Но если вы так любите читать чужие пересказы, то пожалуйста — могу пересказать вам (IANAL, TINLA) требования GNU Lesser GPL. Вообще, суть ее в том, что вы должны обеспечить возможность реализации всеми пользователями права на модификацию свободной библиотеки, даже если она связаны с вашим несвободным продуктом, поэтому вы обязаны:

— Поставить получателей вашего продукта в известность, о том, что у них есть такое право: то есть сообщить, что в ваш продукт включена такая-то свободная библиотека на условиях GNU Lesser GPL и указать copyright notice и приложить полный текст GNU LGPL (включая GNU GPL, если v3).

— Предоставить возможность получить соответствующий исходный код библиотеки и об’яснить, как его получить. «Соответствующий» — значит именно тот, из которого вы собрали ту библиотеку, что передаете получателю в составе вашего продукта (и в частности, версию не новее, а именно ту).

— Дать техническую возможность перекомпоновать ваш продукт с измененной версией библиотеки: в случае компилируемого кода — либо таки использовать динамическую компоновку, но можно и статическую, тогда нужно предоставить, как минимум, годный для компоновки об’ектный код (но можно и исходный, разумеется); в случае интерпретируемых получается, что ничего особенного делать по этой части не нужно.

— Дать легальную возможность, то есть разрешить: собственно перекомпоновку, а также на обратную разработку в целях отладки этой перекомпоновки.

— Также следует убедиться, что не поставлены какие-либо из дополнительных условий, что допускаются пунктом 7 GPLv3 (требование атрибуции, например), Lesser GPL их не отменяет. Если поставлены — выполнить их.

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

Странно что паскаль ещё жив, когда есть оберон, который мощнее, проще и всё от того же вирта.

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

У Вирта языки слишком академические, я уже молчу про библиотеки к ним.

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

Ну если оно LGPL, то при статической линковке всё остальное тоже же должно будет стать LGPL?

Кстати, это утверждение будет не вполне верно даже если вы дважды уберете буковку «L». Поскольку существуют еще и совместимые и GNU GPL лицензии.

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

чем связываться с post-Borland Delphi

А что там такого плохого?

Злая проприетарщина без будущего же. Каждый следующий релиз дороже и глючнее чем предыдущий. Число юзеров неуклонно падает.

anonymous
()

Юзаю PascalABC под mono, полёт нормальный. Правда hello world выполняется 0.64 секунды.

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

Если твоя ниша выходит за рамки «мамаявебдивилопер!», то подходит для качественного закрытия любых задач в любых системах.

Дак всякое подходит, вон Фортран, например. Но если нынче есть более человеческие языки для быстрого и качественного «закрытия любых задач», зачем пытать себя этим?

anonymous
()

Годнота!!!
Ну чё, теперь буду в Лазаре пасквилять под ведроид!!! :)

Нет, без шуток, реально хорошая новость. Одобрямс!

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

Спасибо, попробовал по подсказкам разобрать текст Меньшей. Удивительная штука, если всё правильно понял, можно же сделать многоходовочку -- берём LGPL header-only библиотеку на C++, линкуем статически (в общем-то по другому и не сделать), формально это не заставляет нас открывать код приложения, но, смотрим, чтобы выкатить публичный Minimal Corresponding Source, в какие обьектники попал сгенерированный по шаблону код (интересно, как я это буду делать? оно же может паразитно везде залезть через вложенные заголовки...), допустим попал во все (во все самые важные) ... и fsf wins.

d_a ★★★★★
()
Последнее исправление: d_a (всего исправлений: 1)
Ответ на: комментарий от anonymous

Когда я слышу о сферическом бутстрапе в вакууме, в котором задействованы бинарники для ARM, то о какой целевой архитектуре я должен подумать в первую очередь?

Не знаю насчёт сферического, я первым делом тогда стянул (универсальный) src.rpm из родительской федоры и застрял на этом куске:

# This is only needed when useprebuiltcompiler is defined.
# But it's not in an 'if defined' block, since the file has to be included in the srpm
# Thus you should enable this line when useprebuildcompiler is defined for any target
#
# Last used for ARM bootstrap, for the ARM boostrap, the following 2 debs:
#  ftp://ftp.nluug.nl/pub/os/Linux/distr/debian/pool/main/f/fpc/fp-compiler-2.6.2_2.6.2-5_armhf.deb
#  ftp://ftp.nluug.nl/pub/os/Linux/distr/debian/pool/main/f/fpc/fp-units-base-2.6.2_2.6.2-5_armhf.deb
# were extracted, usr renamed to fpc-2.6.2-bin-armv7hf and then tarred
# Source1:        fpc-2.6.2-bin-armv7hf.tar.gz
# Source1:        http://www.cnoc.nl/fpc/%{name}-%{version}.compiler.bin.tar.gz


Я подумал, когда в первый раз увидел, что они каким-то образом забустрапили промежуточные версии под все архитектуры, что поддерживает федора, с помощью одного бинарника из дебиана, но похоже что просто armhf был последним и информация именно о нём осталась в комментарии.

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

Каждый следующий релиз дороже и глючнее чем предыдущий. Число юзеров неуклонно падает.

Пруфы будут или одна газификация луж? А то информации мало, но она противоположная: http://glooscapsoftware.blogspot.ru/2013/06/its-alive-delphi-sales-increased-...

atrus ★★★★★
()

Вышел Free Pascal Compiler 3.0.0

«Jurassic Park» ничему их не научил, похоже.

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