Компілятор безкоштовних паскалів (також відомий як FPK Pascal) - це компілятор з відкритим кодом Паскаль, який підтримує такі операційні системи: Linux, FreeBSD, NetBSD, MacOSX / Darwin, MacOS classic, DOS, Win32, OS / 2, BeOS, SunOS (Solaris), QNX та Classic Amiga.
Free Pascal Compiler доступний для різних процесорів Intel x86, Amd64 / x86 64, PowerPC, PowerPC64, Sparc та ARM.
Безкоштовний компілятор Pascal має дуже чисту мову, вона не використовує ніяких файлів Makefile, на відміну від більшості мов програмування, вона швидко з великою 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.
- Засіб захисту: переконайтеся, що модифікатор перевантаження присутній як у інтерфейсі, так і в реалізації, якщо ви використовуєте його.
- Зміни в блоці:
- Деякі способи TDataet змінює підпис (TRecordBuffer):
- Стара поведінка. Кілька (віртуальних) методів TDataset мають параметри типу & quot; pchar & quot ;, які часто називаються буфером & quot;.
- Нова поведінка: тип 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 та 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
- Нова поведінка: компілятор видає застарілі попередження для цих символів. У майбутніх версіях їх можна видалити.
- Причина: gfs вже давно замінено цілком крос-платформенною функцією sysutils.getfilehandle. fpsystem (shortstring) була залишком міграції 1.0.x-> 2.0.x (версію ansistring підтримується), константи MS_ призначені для виклику msync, який не підтримується FPC, і, таким чином, були невикористані та не позначені для протягом десятиліття і може статися до ядра 1.x разів, tpipe - це псевдонім 1.0.x з baseunix.TFildes, одиниця, в якій (fp) труба була перенесена в протягом серії 2.0. Unix.statfs - це перевантажена версія, яка не була належним чином перейменована в префікс fp *, коли інші були перейменовані в 2.4.0
- Засіб захисту: використовуйте нові варіанти (sysutils.getfilehandle, fpsystem (анстрінг), baseunix.tfildes). У випадку констант MS_, отримати поточні значення для констант з того самого місця, де ви отримали код, який їх використовує.
- Змінено поведінку TStrings.DelimitedText (класи пристроїв):
- Стара поведінка. Якщо StrictDelim є вірним, TStrings.DelimitedText не повністю відповідає специфікації формату SDF (яка визначена в довідці Delphi) принаймні у випадку пробілів (і, мабуть, інших символів низького ASCII) перед і в кінці полів, а також цитати та закінчення рядків. Гірше того, якщо StrictDelimiter є істинним, і в згаданих вище випадках, збереження TString .DelimitedText і завантаження цього тексту в інший TString призводять до відмінностей між двома. Примітка. За замовчуванням StrictDelimiter є помилковим.
- Нова поведінка: FPC слідує за поведінкою Delphi.
- Причина: Послідовність (написання та читання в DelimitedText повинні мати однакові рядки), сумісність Delphi (слідуючи специфікації SDF).
- Спосіб усунення: перегляньте існуючий код, який читає або записує DelimitedText; при необхідності конвертувати дані або записати код перетворення. Детальний тест див. У тестах webtbs tw19610.pp.
- fcl-image TTiffIDF перейменовано на TTiffIFD:
- Стара поведінка: клас tiff helper для каталогу & quot; файл файлу зображень & quot; було помилково написано TiffIDF (tiffcmn unit)
- Нова поведінка: тепер перейменовано в TTiffIFD
- Причина: послідовність, низький рівень використання
- Засіб відновлення: перейменуйте ідентифікатор відповідно.
- модуль libc видає недійсне попередження:
- Стара поведінка: незважаючи на те, що протягом багатьох років підрозділ libc не видавав застарілі попередження
- Нова поведінка: при використанні модуля libc з'являється застаріле попередження, закликаючи вас до оновлення.
- Причина: unit libc є усталеною одиницею Kylix із обмеженою переносимостью
- Засіб захисту: Використовуйте відповідні пристрої FPC, як описано в блоці libc
- Інше:
- Підтримка UPX була знищена:
- Стара поведінка: в FPC Makefiles була присутня деяка залишкова підтримка UPX (виконуваний пакет), а DOS та Windows FPC-версії містять двокористувацьку UPX.
- Нова поведінка: все вилучено.
- Причина: Випуск бінарних файлів UPX не було на деякий час. Розмір виконуваних файлів FPC зазвичай є незначним в ці дні в порівнянні з загальним розміром установки, а за допомогою UPX іноді виникає незначні неприємності (помилкові позитиви від вірусних сканерів, гірша поведінка ОС, несумісність з певними виконуваними розділами ...)
- Спосіб вирішення: завантажте та встановіть UPX самостійно зі своєї домашньої сторінки та, загалом, переглядайте її потребу.
Що нового у версії 2.4.4:
- Ця версія містить більшість виправлень бібліотеки з початку червня 2010 р. по березень 2011 р.
- Також є деякі виправлення для компілятора, більшість із яких стосується 64-розрядних.
Що нового у версії 2.4.0:
- Ресурси, подібні до Delphi, для всіх платформ
- Покращення інформації про налагодження карликів
- Кілька нових цілей
- 64-розрядний Mac OS X (x86_64 / ppc64)
- iPhone (Mac OS X / Arm)
- Хайку (від сім'ї BeOS)
- Покращена підтримка ARM EABI
- Оптимізація всієї програми
- Багато виправлень помилок компілятора та півріччя оновлень бібліотеки (з 2.2.4)
Що нового у версії 2.2.4:
- Усі:
- Експериментальний пакет-інсталяційний інструмент
- Пакети:
- Додана підтримка читання / запису TIFF у fcl-image
- Поліпшення та виправлення в підтримці CHM
- Виправлено зв'язування gtk2-пакета з версіями gtk вище 2.13.4
- IDE:
- Додана підтримка файлів довідки CHM
Коментар не знайдено