Свободен Pascal Compiler (известен още като FPK Pascal) е компилатор с отворен код Pascal, който поддържа следните операционни системи: Linux, FreeBSD, NetBSD, MacOSX / 2, BeOS, SunOS (Solaris), QNX и Classic Amiga.
Free Pascal Compiler е достъпен за различни процесори Intel x86, Amd64 / x86 64, PowerPC, PowerPC64, Sparc и ARM.
Free Pascal Compiler разполага с много чист език, не използва Makefiles за разлика от повечето езици за програмиране, бърз е с голям F, всяко устройство има свои собствени идентификатори и включва IDE (Integrated Development Environment).
Освен това, софтуерът има отлична интеграция с асемблерите, обектно-ориентираното програмиране, интелигентното свързване, независимостта на разпространението и е съвместим със съществуващия код.
Какво ново версия:
- Тази версия е актуализация на точка 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) char, но във времето ще бъде променен на pbyte за клон 2.7.1 / 2.8.0, съвместим с D2009 +.
- Причина: Подготовка за съвместимост с Delphi 2009+ и подобряване на общото типизиране. В Delphi 2009+ (и напълно съвместими FPC режими в бъдеще) pchar не е пойнтер към байт вече. Тази промяна ще бъде обединена отново в 2.6 (.2), но с TRecordBuffer = pchar.
- Решение: Променете съответните виртуални методи, за да използвате TRecordBuffer за буферни параметри. Определете TRecordBuffer = pansichar, за да запазите по-старите Delphis и FPCs работещи. В местата, където се изписва буфер, не използвайте 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 е заменен от напълно cross-platform платформа sysutils.getfilehandle отдавна. fpsystem (shortstring) е остатък от миграцията 1.0.x-> 2.0.x (асистиращата версия остава поддържана), константите MS_ са за msync повикване, което не се поддържа от FPC и по този начин не е използвано и не е отметнато за в продължение на десетилетие и може да е на ядрото 1.x пъти, tpipe е 1.0.x псевдоним на baseunix.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 води до различия между двете. Забележка: StrictDelimer е по подразбиране фалшив.
- Ново поведение: FPC следва поведението на Delphi.
- Причина: Съгласуваността (изписването и четенето в DelimitedText би трябвало да доведе до същите струни), Delphi съвместимост (съгласно спецификацията на SDF).
- Отстраняване: Прегледайте съществуващия си код, който чете или пише DelimitedText; ако е необходимо, да конвертирате данни или да напишете код на конвертора. Вижте тестове webtbs tw19610.pp за подробно тестване.
- fcl-image TTiffIDF преименувано на TTiffIFD:
- Старо поведение: Класът helper на TIFF за директорията "image file" беше погрешно изписан TiffIDF (tiffcmn единица)
- Ново поведение: сега е преименувано на TTiffIFD
- Причина: Последователност, ниска употреба
- Решение: Преименувайте идентификатора според нуждите.
- единица libc издава отхвърлено предупреждение:
- Старо поведение: Докато е оттеглено от години, единицата libc не издава отхвърлено предупреждение
- Ново поведение: Когато се използва единица libc, се показва отхвърлено предупреждение, което ви подканва да актуализирате.
- Причина: единицата libc е наследник на Kylix, с ограничена преносимост
- Отстраняване: Използвайте подходящи FPC устройства, както е описано в блока libc
- Други:
- Поддръжката на UPX е премахната:
- Старо поведение: В FPC Makefiles имаше известна поддръжка за UPX (изпълним пакет), а версиите DOS и Windows FPC съдържаха UPX двоично.
- Ново поведение: Всички са премахнати.
- Причина: Бинарните файлове за пускане не са UPX'ed за известно време. Размерът на изпълнимите файлове на FPC обикновено е незначителен в сравнение с общия размер на инсталацията и използването на UPX от време на време причинява някои малки неприятности (фалшиви положителни резултати от вирусните скенери, по-лошо поведение при пейджинг от операционната система, несъвместимост с определени изпълними секции ...)
- Отстраняване: Изтеглете и инсталирайте UPX от началната си страница и като цяло преоценете нуждата от него.
Какво е новото във версия 2.4.4:
- Тази версия съдържа повечето корекции на библиотеките от началото на юни 2010 г. до март 2011 г.
- Съществуват и някои корекции на компилаторите, повечето свързани с 64-битови.
Какво е новото във версия 2.4.0:
- >
- Подобряване на информацията за отстраняване на грешки на джуджета
- Няколко нови цели
- 64-битов Mac OS X (x86_64 / ppc64)
- iPhone (Mac OS X / Arm)
- Хайку (от семейство BeOS)
- Подобрена поддръжка на ARM EABI
- Цялостна оптимизация на програмата
- Много корекции на бъгове за компилатори и половин година актуализации на библиотеките (от 2.2.4)
Какво е новото във версия 2.2.4:
Коментари не е намерена