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)

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

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

sT331h0rs3 ★★★★★
()

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

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

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

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

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

Зачем???

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

Java Virtual Machine / Dalvik

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

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

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

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

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

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

Да, еще с 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
() автор топика
Ответ на: комментарий от Deleted

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

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

Зачем???

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

atrus ★★★★★
()

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

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

anonymous
()

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

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

А я слышал о 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
()
Ответ на: комментарий от be_nt_all

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

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

be_nt_all ★★
()

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

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

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

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

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

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

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

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

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

PVOzerski ★★★
()

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

DeadEye ★★★★★
()

Оно еще живое?

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

Перегоним всякие 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
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.