FPC 2.2
Модератор: Модераторы
- Иван Шихалев
- энтузиаст
- Сообщения: 1138
- Зарегистрирован: 15.05.2006 11:26:13
- Откуда: Екатеринбург
- Контактная информация:
FPC 2.2
Пока в официальных новостях ничего нет, но по ftp и спискам рассылки складывается следующая картина: выпущена версия 2.1.3 - как первичная бета 2.2. В исходниках написано, что релиз последует в течение 3-х месяцев. Выделена ветка 2.3, в которой пойдет разработка новых фич — 2.1.х только доводит до ума то, что есть.
А есть не так уж мало. Работает делегация интерфейсов, встроенный линкер... Почти работает OLE Automation — пока не поддерживаются свойства. Работают генерики, но не могу сказать, насколько адекватно — меня они не особо интересуют.
А есть не так уж мало. Работает делегация интерфейсов, встроенный линкер... Почти работает OLE Automation — пока не поддерживаются свойства. Работают генерики, но не могу сказать, насколько адекватно — меня они не особо интересуют.
- Иван Шихалев
- энтузиаст
- Сообщения: 1138
- Зарегистрирован: 15.05.2006 11:26:13
- Откуда: Екатеринбург
- Контактная информация:
- Иван Шихалев
- энтузиаст
- Сообщения: 1138
- Зарегистрирован: 15.05.2006 11:26:13
- Откуда: Екатеринбург
- Контактная информация:
-
PublicJoke
- новенький
- Сообщения: 41
- Зарегистрирован: 04.07.2006 12:21:07
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
Что бы это значило?
Компилятор 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
- Откуда: Зеленоград
-
PublicJoke
- новенький
- Сообщения: 41
- Зарегистрирован: 04.07.2006 12:21:07
- Иван Шихалев
- энтузиаст
- Сообщения: 1138
- Зарегистрирован: 15.05.2006 11:26:13
- Откуда: Екатеринбург
- Контактная информация:
-
PublicJoke
- новенький
- Сообщения: 41
- Зарегистрирован: 04.07.2006 12:21:07
To Иван Шихалев:
Предлагаете подправить код? Например, так:
TImpl = class(TInterfacedObject, ITest)
Результат идентичный. Причем, когда я упоминал дельфийскую нотацию, я имел ввиду, что приведенный код успешно компилируется Дельфой и не менее успешно исполняется (в примере приведена только interface-часть).
Предлагаете подправить код? Например, так:
TImpl = class(TInterfacedObject, ITest)
Результат идентичный. Причем, когда я упоминал дельфийскую нотацию, я имел ввиду, что приведенный код успешно компилируется Дельфой и не менее успешно исполняется (в примере приведена только interface-часть).
- Иван Шихалев
- энтузиаст
- Сообщения: 1138
- Зарегистрирован: 15.05.2006 11:26:13
- Откуда: Екатеринбург
- Контактная информация:
-
PublicJoke
- новенький
- Сообщения: 41
- Зарегистрирован: 04.07.2006 12:21:07
To Иван Шихалев:
Давайте добьём тему? Приведите, пожалуйства, код для FPC, использующий делегирование и успешно компилирующийся у Вас.
Прошу прощения, разобрался сам. FPC реализует только вариант, который в документации к Delphi называется "Delegating to an interface-type property", а я обычно использую "Delegating to a class-type property". Виноват.
Давайте добьём тему? Приведите, пожалуйства, код для FPC, использующий делегирование и успешно компилирующийся у Вас.
Прошу прощения, разобрался сам. FPC реализует только вариант, который в документации к Delphi называется "Delegating to an interface-type property", а я обычно использую "Delegating to a class-type property". Виноват.
haword писал(а):когда то в 2.2 обещали сделать поддержку пакетов что то на вроде bpl как в delphi...
А зачем это надо? Чтобы была зависимость от наличия на машине дистрибутива FPC? Линковать пакет к приложению - тоже сомнительное удовольствие, т.к. конечный продукт увеличивается в размерах. Или я просто не знаю преимуществ пакетов в Delphi? А ведь не знаю же!
Работают генерики, но не могу сказать, насколько адекватно...
Интересно, а это ещё зачем??? Видимо, хотят из красивого Паскаля сделать монстра, похожего на C++. Вот так вот языки и вырождаются
- alexs
- долгожитель
- Сообщения: 4066
- Зарегистрирован: 15.05.2005 23:17:07
- Откуда: г.Ставрополь
- Контактная информация:
Самое главное преимущество пакетов - это удалённое сопровождение разработок
мой опыт:
у клиента стоит наш большой комплекс
обновления и доработки проходят регулярно
в целях минимизации трафика используются пакеты
без пакетов размер обновления - 10-15 мег
при пакетах - до 1 мега
ещё это очень хорошая замена стандартным dll винды - причина таже - уменьшение размера исполняемых модулей
мой опыт:
у клиента стоит наш большой комплекс
обновления и доработки проходят регулярно
в целях минимизации трафика используются пакеты
без пакетов размер обновления - 10-15 мег
при пакетах - до 1 мега
ещё это очень хорошая замена стандартным dll винды - причина таже - уменьшение размера исполняемых модулей
