FPC 2.2

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Аватара пользователя
Иван Шихалев
энтузиаст
Сообщения: 1138
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург
Контактная информация:

FPC 2.2

Сообщение Иван Шихалев »

Пока в официальных новостях ничего нет, но по ftp и спискам рассылки складывается следующая картина: выпущена версия 2.1.3 - как первичная бета 2.2. В исходниках написано, что релиз последует в течение 3-х месяцев. Выделена ветка 2.3, в которой пойдет разработка новых фич — 2.1.х только доводит до ума то, что есть.

А есть не так уж мало. Работает делегация интерфейсов, встроенный линкер... Почти работает OLE Automation — пока не поддерживаются свойства. Работают генерики, но не могу сказать, насколько адекватно — меня они не особо интересуют.
haword
постоялец
Сообщения: 301
Зарегистрирован: 02.03.2006 10:34:40

Сообщение haword »

когда то в 2.2 обещали сделать поддержку пакетов что то на вроде bpl как в delphi, видать передумали и перенесли на 2.3 как я понял
Аватара пользователя
Иван Шихалев
энтузиаст
Сообщения: 1138
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург
Контактная информация:

Сообщение Иван Шихалев »

haword писал(а):видать передумали и перенесли на 2.3 как я понял

Я понял так же.
Sniper
постоялец
Сообщения: 472
Зарегистрирован: 28.05.2005 13:02:42

Сообщение Sniper »

всмысле релиз 2.2 будет через 3 месяца? Debian-way какой-то :twisted:
Аватара пользователя
Иван Шихалев
энтузиаст
Сообщения: 1138
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург
Контактная информация:

Сообщение Иван Шихалев »

Что значит Debian-way?
PublicJoke
новенький
Сообщения: 41
Зарегистрирован: 04.07.2006 12:21:07

Сообщение PublicJoke »

To Иван Шихалев:

Компилятор 2.1.3, идущий вместе с последним Лазарем. Проверил следующие интересующие меня вещи (под Виндой):
- TCustomVariantType.DispInvoke - работает, поверить не могу!
- implements - похоже, что не работает, код такой:

ITest = interface
procedure Proc1;
end;

TImpl = class
public
procedure Proc1;
end;

TAgg = class(TInterfacedObject, ITest)
protected
fImpl: TImpl;

property Impl: TImpl read fImpl implements ITest;
end;

На выделенной строке ругается, говорит:
Unit1.pas(36,53) Error: Implements property must have interface type

Что бы это значило?
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
Сообщения: 1409
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Сообщение Sergei I. Gorelkin »

Значит это, что свойство Impl должно быть интерфейсного типа. Ну или по крайней мере класс TImpl должен реализовывать какой-то интерфейс, иначе конструкция совсем не в тему получается.
Sniper
постоялец
Сообщения: 472
Зарегистрирован: 28.05.2005 13:02:42

Сообщение Sniper »

Иван Шихалев писал(а):Что значит Debian-way?

Ну это я придумал по аналогии с Unix-way, а обозначает оно, долгую разработку между релизами. Debian Etch должен был выйти в ноябре(?), а сейчас апрель :twisted: У них даже слоган есть "Выйдет, когда будет готово" вот и создатели FPC тоже не торопятся :D
PublicJoke
новенький
Сообщения: 41
Зарегистрирован: 04.07.2006 12:21:07

Сообщение PublicJoke »

To Иван Шихалев:

Код написан в дельфийской нотации. Описания отличий синтаксиса для FPC я не нашел. Не уточните, что вы имели ввиду?
Аватара пользователя
Иван Шихалев
энтузиаст
Сообщения: 1138
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург
Контактная информация:

Сообщение Иван Шихалев »

Ну... я ничего не говорил ;) а по сути — TImpl не реализует никакой интерфейс, т.е. никакого отношения к implements иметь не может.
PublicJoke
новенький
Сообщения: 41
Зарегистрирован: 04.07.2006 12:21:07

Сообщение PublicJoke »

To Иван Шихалев:

Предлагаете подправить код? Например, так:

TImpl = class(TInterfacedObject, ITest)

Результат идентичный. Причем, когда я упоминал дельфийскую нотацию, я имел ввиду, что приведенный код успешно компилируется Дельфой и не менее успешно исполняется (в примере приведена только interface-часть).
Аватара пользователя
Иван Шихалев
энтузиаст
Сообщения: 1138
Зарегистрирован: 15.05.2006 11:26:13
Откуда: Екатеринбург
Контактная информация:

Сообщение Иван Шихалев »

Значит, этот момент недоделфен :) Я привык объявлять поле и свойство именно интерфейсного типа — все работает.
PublicJoke
новенький
Сообщения: 41
Зарегистрирован: 04.07.2006 12:21:07

Сообщение PublicJoke »

To Иван Шихалев:

Давайте добьём тему? Приведите, пожалуйства, код для FPC, использующий делегирование и успешно компилирующийся у Вас.

Прошу прощения, разобрался сам. FPC реализует только вариант, который в документации к Delphi называется "Delegating to an interface-type property", а я обычно использую "Delegating to a class-type property". Виноват.
rv82
новенький
Сообщения: 15
Зарегистрирован: 23.04.2007 10:28:43

Сообщение rv82 »

haword писал(а):когда то в 2.2 обещали сделать поддержку пакетов что то на вроде bpl как в delphi...

А зачем это надо? Чтобы была зависимость от наличия на машине дистрибутива FPC? Линковать пакет к приложению - тоже сомнительное удовольствие, т.к. конечный продукт увеличивается в размерах. Или я просто не знаю преимуществ пакетов в Delphi? А ведь не знаю же! :) А недостатки заню :wink:
Работают генерики, но не могу сказать, насколько адекватно...

Интересно, а это ещё зачем??? Видимо, хотят из красивого Паскаля сделать монстра, похожего на C++. Вот так вот языки и вырождаются :cry:
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

Самое главное преимущество пакетов - это удалённое сопровождение разработок
мой опыт:
у клиента стоит наш большой комплекс
обновления и доработки проходят регулярно
в целях минимизации трафика используются пакеты
без пакетов размер обновления - 10-15 мег
при пакетах - до 1 мега
ещё это очень хорошая замена стандартным dll винды - причина таже - уменьшение размера исполняемых модулей
Ответить