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 ()

Добавлена поддержка следующих целей:
Java Virtual Machine / Dalvik

Это как? Компилится в байт-код?

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

Это как? Компилится в байт-код?

Да:

The FPC backend for the Java Virtual Machine (JVM) generates Java byte code that conforms to the specifications of the JDK 1.5 (and later), and also to the Dalvik VM from the Android platform.

http://wiki.freepascal.org/FPC_JVM

ishido ()

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

Генерики уже есть?

Добавлен новый уровень оптимизации -O4

Перегоним всякие gcc с всего 3-мя уровнями компиляции!

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

Зачем???

domu ()
Последнее исправление: domu (всего исправлений: 1)

Java Virtual Machine / Dalvik

Упал под стол пишу оттуда, здорово!

I-Love-Microsoft ★★★★★ ()
Ответ на: комментарий от anonymous

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

p.s. Но за проект я рад.

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

Генерики уже есть?

Да, еще с 2.2: http://wiki.freepascal.org/Generics. Не знаю, насколько совместимы.

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

Зачем???

Судя по всему, для обеспечения совместимости с Delphi 2009 (http://edn.embarcadero.com/article/images/38980/Delphi_and_Unicode.pdf, The New AnsiString Type).

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

Генерики уже есть?

Да, причём в режиме DELPHI/DELPHIUNICODE они даже Delphi-совместимые. На github есть библиотека с классами совместимыми с generic.collections.

Зачем???

Совместимость с Delphi 2009+, автоматическая перекодировка, ну и бонусом частичная возможность эмуляции unicode rtl, если внутреннюю кодировку выставить в utf-8 и включить режим DELPHIUNICODE.

atrus ★★★★★ ()

Посоны уверено идут своей дорогой и кладут болт на менстрим-тусовку. и это хорошо.

Новость годная, мне аж захотелось вспомнить студенчество и наговнякать пару форм. Пойду, пожалуй, помастульгирую.

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

Перегоним всякие gcc с всего 3-мя уровнями компиляции!

уже давно есть gcc -O4

anonymous ()

Работа над бинарной совместимостью с плюсовыми модулями окончательно заброшена, или я что-то пропустил?

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

уже давно есть gcc -O4

А я слышал о gcc -O9000 и даже о gcc -O100500

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

А я слышал о gcc -O9000 и даже о gcc -O100500

Вброс не удался :) Но на самом деле есть -Ofast, он вполне подходит под четвертый уровень.

anonymous ()

Хотеть себе на центос. Можно было бы попробовать double commander допилить, например, но во время последнего приступа интереса я не осилил сходу забутстрапить fpc. Федоровские пакеты похоже какие-то промежуточные бинари под arm юзают для бутстрапа, но у меня билд-машина на виртуалке под x86.

d_a ★★★★★ ()

Только один вопрос: зачем?

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

А я слышал о gcc -O9000 и даже о gcc -O100500

Вброс не удался :) Но на самом деле есть -Ofast, он вполне подходит под четвертый уровень.

-Ofast
  Disregard strict standards compliance.

Так что не подходит.

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

Федоровские пакеты похоже какие-то промежуточные бинари под arm юзают для бутстрапа, но у меня билд-машина на виртуалке под x86.

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

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

Так что не подходит.

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

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

Работа над бинарной совместимостью с плюсовыми модулями окончательно заброшена, или я что-то пропустил?

Точней, над линковкой с плюсовым кодом. я про эти планы http://www.freepascal.org/future.var

be_nt_all ()

А они новые фичи языка тоже делают, или смирились с ролью затычки для легаси-параши и забили?

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

У крестов появился стандартизованный ABI, или я что-то пропустил?

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

Маркетинг проигран, остальное никого не волнует, потому таки затычка или полтора задрота

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

ну я так понимаю, планировалась (и была частично запилена) совместимость с GCC

be_nt_all ()

Новость позитивная. Интересно, Лазарь на «тройке» ожидается скоро?

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

Только порадоваться успел...

Скачал rpm-ы, попытался накатить на ALT p7 - и

ошибка: неудовлетворенные зависимости:
rpmlib(FileDigests) <= 4.6.0-1 нужен для fpc-3.0.0-1

PVOzerski ★★★ ()

Отметил новость кружкой чая. Долгих лет FPC.

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

Перегоним всякие gcc с всего 3-мя уровнями компиляции!

У gcc есть -Ofast, там то же самое.

Разве что кроме перестановки полей структур (не уверен насчёт них)

jeuta ★★★★ ()

Добавлен новый уровень оптимизации -O4

А -О3 заработал уже? А генерил неработоспособный код.

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

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

I-Love-Microsoft ★★★★★ ()
Ответ на: комментарий от I-Love-Microsoft

У меня какие-то единичные крэши, которые можно было бы потыкать post-mortem, но больше раздражает, что в варианте с qt4pas не перерисовываются некоторые диалоговые окна, пока не изменишь хотя бы на 1 пиксель размер.

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

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

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

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

Кстати, а интересно, почему qt4pas не линкуется статически, а идет в комплекте к Лазарю в виде разделяемой либы? Для мелких поделок очень неудобно, с учетом того, что линь по умолчанию не ищет библиотеки в каталоге исполнимого файла (что и правильно, но не всегда удобно). Какие-то лицензионные заморочки?

PVOzerski ★★★ ()

Lazarus для своих целей ну очень крут. Понадобилось в прошлом году сделать вспомогательную утилиту для нетехнических заказчиков под оффтоп, обязательно одним бинарником, маленькую (чтобы в почту пролезала) и чтобы на некро-XP работала без жаб/доднетов. Глядел в сторону WTL - не осилил (не стоило того), а на Лазаре формочки накиданные в Дебиане пересобрались в <1МБ оффтоп-бинарник вообще без изменений.

Вообще не знаю есть ли у Lazarus'а конкуренты в категории «легкий кросплатформенный гуй». Жабадоднеды и прочие електроны - сразу слонопотамят мимо. PyGTK в оффтопе грустный. PyQt (PySide) ничего так, но 10+МБ кутей + 3МБ питона всегда тащит. PyWxWidgets правда не пробовал, не знаю насколько живой он.

FreePascal - это пример как надо развивать нишевые языки, чтобы реальным юзерам было удобно реальные задачи решать - переносимость и стабильность на высоте. Можно ставить в пример всяким D-лангам, которые в погоне за сиюминутным успехом у хипсторов перманентно имеют платформу в состоянии, непригодном для реального использования.

anonymous ()

Слыш Бивис, он сказал Peacock...

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

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

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