Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Embarcadero RAD Studio XE3

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57

Открыть новую тему     Написать ответ в эту тему

Arioch1



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
1) та же фигня. Опять в справке написано одно, а на самом деле другое.
 
2) а вот это уже интересно. Что-то они исправили - и что-то другое сломали.
Или ты вставил сильно не правильно.
Или я вообще ничего не понимаю -= нет же ошщибок в строках 19/20 !
 
Добавлено:
sergionn может у тебя лицуха ?  :-D

Всего записей: 904 | Зарегистр. 03-03-2010 | Отправлено: 16:59 10-12-2012
sergionn

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Или я вообще ничего не понимаю

 
[dcc32 Error] Project2.dpr(49): E2250 There is no overloaded version of 'AcquireConstrained' that can be called with these arguments
[dcc32 Error] Project2.dpr(50): E2250 There is no overloaded version of 'AcquireFree' that can be called with these arguments
[dcc32 Error] Project2.dpr(52): E2511 Type parameter 'I' must be a class type
 
вот, сейчас вставил последнюю версию в конце страницы,
в прошлый раз вставлял сверху.....

Всего записей: 472 | Зарегистр. 02-11-2011 | Отправлено: 17:07 10-12-2012 | Исправлено: sergionn, 17:10 10-12-2012
Arioch1



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
это для первой ссылки (которая с подсветкой синтаксиса). У меня так же. Криво работае тType Inference
 
а что со второй ссылкой, откуда там вообще могла взяться ошибка в строке 19 ?

Всего записей: 904 | Зарегистр. 03-03-2010 | Отправлено: 17:16 10-12-2012
sergionn

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Embarcadero® C++® XE3 Update1, 64bit, LLVM  
 1 тест: 3 секунды
 2 тест: 1 секунда
 
выводы делайте сами...........

Всего записей: 472 | Зарегистр. 02-11-2011 | Отправлено: 17:41 10-12-2012 | Исправлено: sergionn, 17:57 10-12-2012
Medium



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Просто "радует" работа с XE3. Тут и не знаешь, на кого грешить.
Есть ли у кого-нибудь при работе следующие баги (или фичи - хз):
1) текстовые значения переменных в среде отображаются в двойных кавычках. Поясню, если у Edit.Text присвоено значение FIELDTEST = '1', то при отладке среда показывает (при наведение мышкой, через Debug Inspector и т.д.), что значение у Edit'а якобы 'FIELDTEST = ''1'''. Т.е. с какого-то перепугу 1 отображается в двойных кавычках. Но на экране в самом Edit'е отображается правильно - FIELDTEST = '1'. Но это ещё так, неприятность, не более.
 
2) Более серьезная вещь - это работа фильтра у FIBPlus 7.4 под XE3. Если задать у FIBDataset значение Filter равное FIELDTEST = '1' и затем Filtered := True - датасет открывается всегда пустой, хотя значения, удовлетворяющие условию фильтрации точно есть. Если фильтровать по числовым полям - фильтрация работает правильно (как и раньше). А если по текстовому полю и присутствует значение в кавычка - датасет всегда возвращается пустой. Разбирался с исходниками FIBPlus - проблем не нашёл. Хотя о подобной ошибке кто-то написал и на форуме FIBPlus. Но, возможно, причина в самой XE3 и её багах.  
 
Может кто сталкивался с подобным или знает решение. Буду признателен за подсказку.
 
P.S. XE3 ещё без Update1

Всего записей: 587 | Зарегистр. 09-04-2002 | Отправлено: 17:45 10-12-2012 | Исправлено: Medium, 17:55 10-12-2012
Eternal_Shield

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Arioch1
Зачем в методах класса TSomeFactory используется соглашение var? Что ещё за var Impl: I? Особенно в AcquireFree. Собираетесь Impl заnilять при вызове AcquireFree? Nick вас накажет!
 
Если вместо var использовать const, то всё работает без проблем ... но если сильно хочется var использовать, то можно добавить в методы тот же самый аргумент, но только с const.
 
Типа:

Код:
 
type  
  TSomeFactory = class
    procedure AcquireFree<I>(var Impl: I; const Impl: I);  
    procedure AcquireConstrained<I>(var Impl: I; const Impl: I);  
end;
 

 
тогда всё будет работать без явного указания типа:
x.AcquireConstrained(svc, svc);
x.AcquireFree(svc, svc);
 
Да костыль, да некрасиво, но что поделать

Всего записей: 766 | Зарегистр. 18-05-2009 | Отправлено: 19:33 10-12-2012 | Исправлено: Eternal_Shield, 19:34 10-12-2012
Frodo_Torbins

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Medium
Это не двойные кавычки, а экранированная одинарная. То есть дебагер показывает так, как оно выглядело бы в коде.

Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 19:35 10-12-2012
Medium



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Frodo_Torbins
Спасибо, понятно. Вероятно, в XE2 не обращал внимание. Но не суть, в общем.
Больше вопрос с работой фильтра беспокоит. Всё никак не удается найти решение. Не работает по текстовым полям. Вариант с перелопачиванием всех проектов, увы, не вариант.

Всего записей: 587 | Зарегистр. 09-04-2002 | Отправлено: 19:55 10-12-2012
GlavBuh

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sergionn

Цитата:
Embarcadero® C++® XE3 Update1, 64bit, LLVM    1 тест: 3 секунды   2 тест: 1 секунда    выводы делайте сами...........

А какие могут быть выводы? Старый компайлер Delphi/C++ генерирует "никакой" код.  
Ждем новый Delphi с LLVM-backend, таким как у недавно вышедшего С++ XE3.

Всего записей: 96 | Зарегистр. 13-11-2003 | Отправлено: 20:40 10-12-2012
Arioch1



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
но при этом asm там убили ?

Всего записей: 904 | Зарегистр. 03-03-2010 | Отправлено: 20:51 10-12-2012
sergionn

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Ждем новый Delphi с LLVM-backend

думаешь дождемся?,
что-то меня терзают смутные сомнения что нет...............
 

Цитата:
но при этом asm там убили ?

не проверял, скорее всего убрали, но с другой стороны зачем он теперь нужен:
пусть оптимизаций на таком уровне занимаются
специально обученные люди

Всего записей: 472 | Зарегистр. 02-11-2011 | Отправлено: 20:59 10-12-2012 | Исправлено: sergionn, 21:08 10-12-2012
GlavBuh

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sergionn
Ну, с С++ они справились достаточно быстро. А когда уже есть наработки, добавить Delphi будет проще.
 

Цитата:
не проверял, скорее всего убрали, но с другой стороны зачем он теперь нужен:

Если новый компайлер будет реально настолько быстрее старого, то я здесь соглашусь.  
 
А как насчет ARC? Он уже реализован? И если да, остались ли обычные ссылки?

Всего записей: 96 | Зарегистр. 13-11-2003 | Отправлено: 21:54 10-12-2012
sergionn

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GlavBuh
я пока не ковырял с++ upd1, поставил его на другой комп,
вот как обкатаю на upd1 свое delphi приложение, сразу перенесу на рабочую машину.........

Всего записей: 472 | Зарегистр. 02-11-2011 | Отправлено: 22:25 10-12-2012 | Исправлено: sergionn, 22:26 10-12-2012
antonpv



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Цитата:
Ждем новый Delphi с LLVM-backend

Замучаются делать совместимость с тонной существующего delphi-кода, хрено оно будет работать.
Да и для рядовых девелоперов и разработчиков компонент будет куча гемора

Всего записей: 65 | Зарегистр. 18-10-2012 | Отправлено: 13:10 11-12-2012 | Исправлено: antonpv, 13:15 11-12-2012
Arioch1



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Ждем новый Delphi с LLVM-backend, таким как у недавно вышедшего С++ XE3.

Мягко скажем, не одно и то же.
 
Взять готовый, написанный другими парсер C++ от LLVM CLang и добавить в него интеграцию с IDE и возможно borland-specific расширения языка - это одно.
С нуля реализовать Delphi-парсер, свой собственный - это другое.
 

Цитата:
но с другой стороны зачем он теперь нужен

Может и не нужен, может я перестраховщик. Но хотя бы лдя совместимости, ведь из-за тупизны компиляторов DCC/FPC, или из-за слабости старых компьютеров - но Ассемблер есть много где.
VirtualTreeView, HTMLViewer кажется? Jedi CodeLib (особенно может быть в трюках типа патча VMT или unwinding стека)
Разные шифрующие/хэширующие библиотеки... Даже тот же DBF, как перевести Little Endian <-> Big Endian ? это одна команда для int32 и 3 для int64.  
А в паскале ? 3*4 и 3*8 байтовых операций память-память. Сможет ли LLVM это быстро опознать и преобразовать, с учётом родных для Delphi конвенций вызова?
 
Добавлено:

Цитата:
Собираетесь Impl заnilять при вызове AcquireFree? Nick вас накажет!

 
...Free  тут не глагол, а прилагательное.
Обозначает только, что параметр <I> идет без ограничений.
 
А сотв. ...Constrained - с ограничением.
 

Цитата:
Зачем в методах класса TSomeFactory используется соглашение var?

Чтобы вернуть значение. Можно ещё out сделать - но ЕМНИП Дельфи тут обманывает часто и вместо out все равно делает var. Или это только строк касалось ? Впрочем не важно - все равно не работает
 

Цитата:
procedure AcquireConstrained<I: class>(var Impl: I; const Impl: I);  
тогда всё будет работать без явного указания типа:  x.AcquireConstrained(svc, svc);

 
Надо будет подумать. Чем-то это лучше, чем svc := x.Get(type-of-svc).
 
Но тоже не фонтан. Если туда ещё удастся инлайн-процедуру вхреначить вместо макро-процессора... (можно в принципе и макро-процессор, но не хочется). Блин, ну они же уже 3 года дженерики используют, ну почему нельзя было их доделать в простейших случаях, чтобы не иметь этого геморроя с передачей GUID как в Support ?  
 
Интересно, может быт ьможно на переменные интерфейсного типа хелпер повесить ? :-D
Пердставляешь дизайн ? запрос сервиса у фабрики - метод указателя на сервис :-D
 
Вот просто вообще не хочется делать красиво после этого...

Всего записей: 904 | Зарегистр. 03-03-2010 | Отправлено: 13:36 11-12-2012 | Исправлено: Arioch1, 13:45 11-12-2012
Eternal_Shield

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Arioch1

Цитата:
Интересно, может быт ьможно на переменные интерфейсного типа хелпер повесить ? :-D

Не, record helper for IInterface не прокатит .. как и class helper for IInterface. Это я самым первым делом проверил в ХЕЗ
 

Цитата:
Надо будет подумать. Чем-то это лучше, чем svc := x.Get(type-of-svc).

Имхо, всё-равно убогий костыль.
 


з.ы: возвращаясь к тем тестам с интегралом: добавив 1 слово в код, у меня оба теста выполняются за одинаковое время (4 сек). Я так понимаю, весь сыр бор был именно из-за того, что тест с функцией itg был существенно медленнее теста без вызова оной. Ну и потом всё сошло с рельс и начался разговор за тормозность (FPU vs SSE2) в целом ... или я чего-то упустил?

Всего записей: 766 | Зарегистр. 18-05-2009 | Отправлено: 14:55 11-12-2012 | Исправлено: Eternal_Shield, 15:01 11-12-2012
Arioch1



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
убогий. Но убирает один риск - поменят ьтип переменной и пропустить старый тип в вызове фабрики

Всего записей: 904 | Зарегистр. 03-03-2010 | Отправлено: 14:58 11-12-2012
GlavBuh

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
antonpv

Цитата:
Цитата:
Цитата:
Цитата:  Ждем новый Delphi с LLVM-backend

Замучаются делать совместимость с тонной существующего delphi-кода, хрено оно будет работать.  Да и для рядовых девелоперов и разработчиков компонент будет куча гемора

Совместимости не будет, забудьте. Да и как можно сделать совместимость, если теперь в Delphi ручное выделение/освобождение памяти под объекты, а хотят сделать автоматический подсчет ссылок?
 
Да и хотя бы индексация массивов и строк с 0, а не с 1 как в Pascal/Delphi.
 
Вот выйдет Mobile Studio - там все видно будет.

Всего записей: 96 | Зарегистр. 13-11-2003 | Отправлено: 15:58 11-12-2012
sergionn

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
_http://www.theregister.co.uk/2012/12/11/verity_stob_sons_of_kahn/

Всего записей: 472 | Зарегистр. 02-11-2011 | Отправлено: 16:35 11-12-2012
Arioch1



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
О! давно он не отжигал. После песни о FreeAndNil все было как-то бледно

Всего записей: 904 | Зарегистр. 03-03-2010 | Отправлено: 16:37 11-12-2012
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Embarcadero RAD Studio XE3


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru