Free Pascal Compiler (aka FPK Pascal) - это компилятор Pascal с открытым исходным кодом, который поддерживает следующие операционные системы: Linux, FreeBSD, NetBSD, MacOSX / Darwin, MacOS classic, DOS, Win32, OS / 2, BeOS, SunOS (Solaris), QNX и Classic Amiga.
Бесплатный компилятор Pascal доступен для разных процессоров Intel x86, Amd64 / x86 64, PowerPC, PowerPC64, Sparc и ARM.
Free Pascal Compiler имеет очень чистый язык, он не использует Makefile, в отличие от большинства языков программирования, Fast с большим F, каждый блок имеет свои собственные идентификаторы и включает интегрированную среду разработки (IDE).
Кроме того, программное обеспечение обеспечивает отличную интеграцию с ассемблерами, объектно-ориентированное программирование, интеллектуальную привязку, независимость от распределения и совместимость с существующим кодом.
Что нового в этом релиз:
- Эта версия является точечным обновлением до 3.0 и содержит исправления и пакеты обновлений, некоторые из которых имеют высокий приоритет.
Что нового в версии:
- Изменения языка:
- Анонимные наследуемые вызовы:
- Старое поведение: анонимный унаследованный вызов мог вызвать любой метод в родительском классе, который принял аргументы, совместимые с параметрами текущего метода.
- Новое поведение: анонимный унаследованный вызов гарантированно всегда вызывает метод в родительском классе, который был переопределен текущим.
- Пример: см. http://svn.freepascal.org/svn/fpc/trunk/tests/tbs/tb0577.pp. В предыдущих версиях FPC унаследованный вызов в tc3.test вызывал бы tc2.test (b: byte; l: longint = 1234) ;. Теперь он вызывает tc.test.
- Причина: соответствие документации FPC, совместимость с Delphi.
- Устранение: если вы хотите, чтобы компилятор решил, какой метод вызывать на основе указанных параметров, используйте полностью указанное унаследованное выражение вызова, такое как унаследованный тест (b).
- Модификатор перегрузки должен присутствовать в интерфейсе:
- Старое поведение: было возможно объявить функцию / процедуру / метод как перегрузку только в реализации.
- Новое поведение: если используется директива перегрузки, она также должна появляться в интерфейсе.
- Причина: старый механизм может вызвать проблемы с поиском (в зависимости от того, была ли уже реализована реализация, компилятор будет обрабатывать процедуру, как если бы она была объявлена с / без перегрузки), это может привести к нежелательной перекомпиляции юнитов для изменения интерфейса crc и совместимости с Delphi.
- Устранение: убедитесь, что модификатор перегрузки присутствует как в интерфейсе, так и в реализации, если вы его используете.
- Изменения в блоке:
- Несколько методов изменения TDataset (TRecordBuffer):
- Старое поведение: несколько (виртуальных) методов TDataset имеют параметры типа «pchar», которые часто называют «буфером».
- Новое поведение: тип pchar был изменен на TRecordBuffer. В настоящее время этот тип по-прежнему является псевдонимом для символа p (ansi), но со временем он будет изменен на pbyte для ветки 2.7.1 / 2.8.0, совместимой с D2009 +.
- Причина: подготовка к совместимости с Delphi 2009+ и улучшение общей типизации. В Delphi 2009+ (и полностью совместимые режимы FPC в будущем) pchar больше не указывает на байт. Это изменение будет объединено с 2.6 (.2), но с TRecordBuffer = pchar.
- Устранение: измените соответствующие виртуальные методы, чтобы использовать TRecordBuffer для параметров буфера. Определите TRecordBuffer = pansichar, чтобы поддерживать работу старых Delphis и FPC. В тех местах, где используется тип буфера, не используйте pchar, а символ TRecordbuffer.
- DLLParam изменен с Longint на PtrInt:
- Старое поведение: DLLParam имел тип Longint даже на Win64.
- Новое поведение: теперь DLLParam имеет тип PtrInt, а также на 64-битных системах.
- Причина: предотвращение потери данных, соответствие декларации в заголовках Windows.
- Устранение: измените объявление процедур, используемых в качестве привязки dll, чтобы взять параметр PtrInt вместо Longint.
- Некоторые символы в модулях Unix и Unixutils устарели:
- Старое поведение: нет устаревшего предупреждения для unixutils.getfs (несколько вариантов), unix.fpsystem (только для версии с короткой строкой), Unix.MS_ константы и unix.tpipe. unix.statfs
- Новое поведение: компилятор выдает устаревшее предупреждение для этих символов. В будущих версиях они могут быть удалены.
- Причина: getfs был заменен полностью кросс-платформенной функцией sysutils.getfilehandle давно. fpsystem (shortstring) осталась без изменений 1.0.x- & gt; 2.0.x (поддерживается версия ansistring), константы MS_ - для вызова msync, который не поддерживается FPC, и поэтому он не использовался и не установлен для в течение десятилетия и может появиться в ядре 1.x раз, tpipe был псевдонимом 1.0.x базового элемента. TFildes, подразделение, в котором (fp) был перемещен во время серии 2.0. Unix.statfs - это перегруженная версия, которая не была должным образом переименована в префикс fp *, когда остальные были переименованы в 2.4.0.
- Устранение: используйте новые варианты (sysutils.getfilehandle, fpsystem (ansistring), baseunix.tfildes). В случае констант MS_, получите текущие значения для констант из того же места, где вы получили код, который их использует.
- Изменено поведение TStrings.DelimitedText (классы единиц):
- Старое поведение: если StrictDelim истинно, TStrings.DelimitedText не полностью соответствует спецификации формата SDF (которая определена в справке Delphi), по крайней мере, в случае пробелов (и, предположительно, других символов с низким ASCII) спереди и в конце полей, а также кавычек и окончаний строк. Хуже того, если StrictDelimiter истинно, и в случаях, упомянутых выше, сохранение TString .DelimitedText и загрузка этого текста в другой TString приводят к различиям между ними. Примечание: StrictDelimiter по умолчанию имеет значение false.
- Новое поведение: FPC следует за поведением Delphi.
- Причина: согласованность (запись и чтение в DelimitedText должны приводить к тем же строкам), совместимость с Delphi (по спецификации SDF).
- Устранение: просмотрите существующий код, который читает или пишет DelimitedText; при необходимости конвертировать данные или код конвертера записи. См. Тесты webtbs tw19610.pp для подробного теста.
- fcl-image TTiffIDF переименован в TTiffIFD:
- Старое поведение: класс-помощник tiff для каталога файлов изображений " был с ошибкой TiffIDF (единица tiffcmn)
- Новое поведение: теперь переименовано в TTiffIFD
- Причина: согласованность, низкое использование
- Устранение: переименуйте идентификатор соответствующим образом.
- unit libc выдает устаревшее предупреждение:
- Старое поведение: в то время как устаревшие устаревшие модули libc не выдавали устаревшее предупреждение
- Новое поведение: устаревшее предупреждение отображается при использовании элемента libc, призывая обновить его.
- Причина: unit libc является устаревшим подразделением Kylix с ограниченной переносимостью
- Устранение: используйте надлежащие блоки FPC, как описано в libc unit
- Другое:
- Поддержка UPX была удалена:
- Старое поведение: в FPC Makefiles существовала некоторая поддержка UPX (исполняемый пакетщик), а выпуски DOS и Windows FPC включали двоичный файл UPX.
- Новое поведение: все удалены.
- Причина: Release binaries не были UPX'ed некоторое время. Размер исполняемых файлов FPC обычно незначителен в настоящее время по сравнению с общим размером установки, а использование UPX иногда вызывает некоторые незначительные неприятности (ложные срабатывания от антивирусных сканеров, ухудшение поведения подкачки ОС, несовместимость с определенными исполняемыми разделами ...)
- Устранение: загрузите и установите UPX самостоятельно со своей домашней страницы и в целом переоцените необходимость в нем.
Что нового в версии 2.4.4:
- Эта версия содержит большинство исправлений библиотек с начала июня 2010 года по март 2011 года.
- Есть также некоторые исправления компилятора, большинство из которых относятся к 64-битным.
Что нового в версии 2.4.0:
- Delphi как ресурсы для всех платформ, >
- Улучшение информации об отладке Dwarf,
- Несколько новых целей
- 64-разрядная Mac OS X (x86_64 / ppc64)
- iPhone (Mac OS X / Arm)
- Haiku (из семейства BeOS)
- Улучшена поддержка ARM EABI.
- Оптимизация всей программы
- Множество исправлений для компилятора и полгода обновлений библиотек (начиная с версии 2.2.4).
Что нового в версии 2.2.4:
- Все:
- Экспериментальные пакеты-установочный инструмент
- Пакеты:
- Добавлена поддержка чтения / записи TIFF в fcl-image
- Усовершенствования и исправления в поддержке CHM
- Исправлена ссылка gtk2-пакета с версиями gtk выше 2.13.4
- IDE:
- Добавлена поддержка файлов справки CHM
Комментарии не найдены