Free Pascal 2.2.0
Версия языка программирования PascalНа момент написания диска версия 2.2.0 - последняя стабильная.
Основные изменения относительно версии FPC 2.0.4:
Платформы:
- Новая платформа: Win64. FPC - первый open source-компилятор для операционной системы Windows 64-бит
- Новая архитектура процессора: 64-bit PowerPC
- Подержка PowerPC/64 на Linux
- Теперь поддерживается Mac OS X на Intel (i386)
- Новая платформа: Windows CE (Windows Mobile)
- Новая платформа: Nintendo Game Boy Advance
- Новая платформа: Nintendo DS
- Нативная поддержка для платформы ARM
- Обновлена поддержка платформы GO32V2 DOS
Компилятор:
- Внутренний компоновщик для win32, win64 и wince
- Generic (экспериментально)
- Поддержка нескольких файлов ресурсов
-
pointer[low..high]-синтаксис для передачи указателей в стиле C в процедуры - Делегирование интерфейсов
- Реализация safecall
-
Widestringпод Windows COM/OLE-совместимы - Оптимизирована скорость выполнения программ
- Полная поддержка компилятором путей более 255 символов длиной
- Отладка: поддержка Dwarf
- Уменьшено использование памяти при компиляции
- Множество мелких исправлений, в том числе по совместимости
RTL:
- Куча использует меньше памяти
- Улучшенная поддержка
variant - Улучшенная поддержка
currency - Обработка исключений может быть использована без модуля
SysUtils - Множество мелких исправлений, в том числе по совместимости
FCL:
- Улучшенная поддержка баз данных
- Удалены устаревшие модули sqlitedataset, interbase, fpodbc, ddg, mysqldb3 и mysqldb4
- Множество мелких исправлений, в том числе по совместимости
Пакеты:
- Добавлен новый менеджер пакетов fppkg
- Улучшенная поддержка баз данных
- Добавлен совместимый с Delphi модуль
RichEdit - Множество мелких исправлений, в том числе по совместимости
Free Vision:
- Теперь использует
resourcestring
Интегрированная среда разработки:
- Evaluate window
- Улучшенный рендеринг HTML
- Улучшенная поддержка xterm
- Небольшие исправления ошибок
Другое:
- Улучшенная документация
- Улучшенная поддержка кросс-компиляции
Изменения, которые могут влиять на работоспособность кода программ:
Для всех платформ:
- Изменения типа
stringв режиме Delphi. В версии 2.2.0 по умолчанию используется директива компилятора{$h+}вместо{$h-}. Это означает, чтоstringрассматривается теперь какansistringпо умолчанию. Данное изменение может привести к неработоспособности кода, ориентированного на работу сshortstring. Решение данной проблемы возможно либо путем адаптации кода для работы сansistringлибо принудительного указания директивы компилятора{$h-}. - Изменения работы с константами-числами с плавающей точкой. В
прежних
реализациях FPC использовалась максимальная точность, допустимая на
платформе, теперь же используются минимальная точность, которая не
вызывает потерю данных. В результате этого нововведения некоторые
конструкции могут давать точность меньшую, чем в прошлом. Если
требуется большая точность вычисления, то рекомендуется использовать
типы с большей точностью вычисления, например,
extended. - Изменение типа
System.Exitcodeдля совместимости с Delphi и ОС, поддерживающими 4-х байтовый код завершения. Во всех реализациях вплоть до 2.0.4 переменнаяSystem.Exitcodeбыла объявлена какword, теперь она объявлена какlongint. В результате этого изменения не все ассемблерные вставки могут работать корректно сExitcode. - Удален
RTLEventStartWait. Прежде необходимо было вызыватьRTLEventStartWaitперед запросомRTLEventWaitForиз-за особенностей реализации в UNIX-системах. В результате этого изменения код, использующий вызовRTLEventStartWait, будет неработоспособен, необходимо удалить вызовыRTLEventStartWait, т.к. в них больше нет необходимости. - Изменение работы операции
in. В прежних реализациях левый операнд преобразовывался в типbyte, подобно Turbo Pascal. Теперь же размер операнда сохраняется, но до конца еще не реализована поддержка чисел больше 256. - Прежде было допустимо приведение неявным образом к 32-х
разрядному
целочисленному типу некоторых строк. Теперь конструкции типа
dword1:='ab'; будут запрещены, но строки длинной в 4 символа могут быть неявно преобразованы к 32-х разрядному целочисленному типу. - Режим GPC отключен.
{$mode gpc}и -mgpc теперь не работают. -
TFPHashtableпереименован вTFPDataHashTableиз-за введения нового классаTFPCustomHashTable.
Изменения для платформы UNIX:
- Постоянство
RTLEvent. Многократные вызовыRTLEventSetEventтеперь не теряются и скапливаются в очереди. Сделано для совместимости с поведением под Windows.
Изменения для платформы PowerPC:
- Изменение вычислений с плавающей точкой. Теперь вычисления будут выполняться не с двойной точностью как было ранее по умолчанию. Сделано для увеличения быстродействия.
Изменения для 64 разрядных платформ:
- Теперь
Variant-массивы используют 32-битные, а не 64-битные индексы. Введено для совместимости со стандартными подпрограммами Windows и программами, написанными на других языках.
Поддерживаемые системы:
- Кроссплатформенный
Лицензия:
- GNU GPL