Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Вопросы по Embarcadero RAD Studio XE3

Автор: sergionn
Дата сообщения: 10.12.2012 13:44

Цитата:
результат Chrome сопоставим с XE2. Поэтому вполне возможно, что но его тесте Chrome лидировал.

я тогда в момент публикации гонял этот тест на 4-х компах, везде хром немного отставал.
Но на самом деле тут вопрос гораздо глубже, проблема в Google, на кону стоит судьба этой корпорации: сейчас идет борьба за web 3.0: какой он будет:
по версии гугля браузер и есть операционка, а Js, dart, go - его языки,
они владеют поиском и львиная доля бабосов от онлайн рекламы идут им в карман.
Но есть и другое мнение - возрожденные нативные приложения, которые также активно используют инет, но каждый владелец приложения сам контролирует контент в нем, и гуглю от этого ничего не перепадает.
Так вот ГУГЛЬ сейчас все силы бросил на Хром, это его сражение за будущий РЫНОК, докажут что код в браузере может выполняться быстрей, эволюция пойдет по пути html5, css3, если нет, то google будет не удел, править инетом будут гибридные соц.сети, доступ к которым идет напрямую из нативных приложений................

GlavBuh
По манделброту там немножко другая песня, позже напишу что да как...........
Автор: Arioch1
Дата сообщения: 10.12.2012 14:05
И еще вот это в XE3 попробуйте скомпилировать plz

http://pastebin.ca/2291081
Автор: sergionn
Дата сообщения: 10.12.2012 14:12

Цитата:
И еще вот это в XE3 попробуйте скомпилировать plz


Цитата:
Да, кстати, а в XE3 вот такое компилируется ?


если нужно на update1, тогда подождите, он у меня на другом компе.....
Автор: Arioch1
Дата сообщения: 10.12.2012 14:18
да хоть как, я на XE2.

Кстати на QC никаких Update 1 для XE3 пока нет

...какие же ограниченные дженерики в Дельфи, ни вывода типов нормального, ничего...
Автор: Frodo_Torbins
Дата сообщения: 10.12.2012 14:20

Цитата:
НЕ ОДИН, НЕ ОДИН из этих БАГОВ НЕ БЫЛ УСТРАНЕН в xe3 update1,
это просто СВИНСТВО!
И вот именно поэтому, конкретно я,
с большой вероятностью возможно перейду на RO + Smart Mobile studio!

А не получатся те же яйца, вид сбоку? Имхо, если нужна большая оперативность устранения чужих багов, тогда опен сорсу альтернатив нету.
Автор: Arioch1
Дата сообщения: 10.12.2012 14:30
мелких багов - да.
крупных - как повезет. напрмиер BPL в Лазарусе нет д осих пор, всё как в Delphi 2.

Мне кажется FLOSS может быть хорош в лёгкой допилке и поддержании брошеного проекта.
Но крупные изменения - все же кем-то спонсируются, т.е. как правило возникают в коммерческом софте
Автор: sergionn
Дата сообщения: 10.12.2012 14:38
Arioch1
первая ссыль:
[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

вторая ссыль:
[dcc32 Error] Project2.dpr(19): E2003 Undeclared identifier: 'I'
[dcc32 Error] Project2.dpr(20): E2005 'I' is not a type identifier
[dcc32 Error] Project2.dpr(25): E2005 'I' is not a type identifier
[dcc32 Error] Project2.dpr(28): E2133 TYPEINFO standard function expects a type identifier
[dcc32 Error] Project2.dpr(34): E2005 'I' is not a type identifier
[dcc32 Error] Project2.dpr(37): E2133 TYPEINFO standard function expects a type identifier
[dcc32 Error] Project2.dpr(57): E2250 There is no overloaded version of 'AcquireFree' that can be called with these arguments
Автор: kot3
Дата сообщения: 10.12.2012 14:44
sergionn
не в тему, а как удалось заюзать update 1?
Автор: sergionn
Дата сообщения: 10.12.2012 14:59
kot3
как все.......
Автор: Arioch1
Дата сообщения: 10.12.2012 14:59
1) та же фигня. Опять в справке написано одно, а на самом деле другое.

2) а вот это уже интересно. Что-то они исправили - и что-то другое сломали.
Или ты вставил сильно не правильно.
Или я вообще ничего не понимаю -= нет же ошщибок в строках 19/20 !

Добавлено:
sergionn может у тебя лицуха ? :-D
Автор: sergionn
Дата сообщения: 10.12.2012 15:07

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


[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

вот, сейчас вставил последнюю версию в конце страницы,
в прошлый раз вставлял сверху.....
Автор: Arioch1
Дата сообщения: 10.12.2012 15:16
это для первой ссылки (которая с подсветкой синтаксиса). У меня так же. Криво работае тType Inference

а что со второй ссылкой, откуда там вообще могла взяться ошибка в строке 19 ?
Автор: sergionn
Дата сообщения: 10.12.2012 15:41
Embarcadero® C++® XE3 Update1, 64bit, LLVM
1 тест: 3 секунды
2 тест: 1 секунда

выводы делайте сами...........
Автор: Medium
Дата сообщения: 10.12.2012 15:45
Просто "радует" работа с 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
Автор: Eternal_Shield
Дата сообщения: 10.12.2012 17:33
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;
Автор: Frodo_Torbins
Дата сообщения: 10.12.2012 17:35
Medium
Это не двойные кавычки, а экранированная одинарная. То есть дебагер показывает так, как оно выглядело бы в коде.
Автор: Medium
Дата сообщения: 10.12.2012 17:55
Frodo_Torbins
Спасибо, понятно. Вероятно, в XE2 не обращал внимание. Но не суть, в общем.
Больше вопрос с работой фильтра беспокоит. Всё никак не удается найти решение. Не работает по текстовым полям. Вариант с перелопачиванием всех проектов, увы, не вариант.
Автор: GlavBuh
Дата сообщения: 10.12.2012 18:40
sergionn

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

А какие могут быть выводы? Старый компайлер Delphi/C++ генерирует "никакой" код.
Ждем новый Delphi с LLVM-backend, таким как у недавно вышедшего С++ XE3.
Автор: Arioch1
Дата сообщения: 10.12.2012 18:51
но при этом asm там убили ?
Автор: sergionn
Дата сообщения: 10.12.2012 18:59

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

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


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

не проверял, скорее всего убрали, но с другой стороны зачем он теперь нужен:
пусть оптимизаций на таком уровне занимаются
специально обученные люди
Автор: GlavBuh
Дата сообщения: 10.12.2012 19:54
sergionn
Ну, с С++ они справились достаточно быстро. А когда уже есть наработки, добавить Delphi будет проще.


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

Если новый компайлер будет реально настолько быстрее старого, то я здесь соглашусь.

А как насчет ARC? Он уже реализован? И если да, остались ли обычные ссылки?
Автор: sergionn
Дата сообщения: 10.12.2012 20:25
GlavBuh
я пока не ковырял с++ upd1, поставил его на другой комп,
вот как обкатаю на upd1 свое delphi приложение, сразу перенесу на рабочую машину.........
Автор: antonpv
Дата сообщения: 11.12.2012 11:10

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

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

Цитата:
Ждем новый 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

Вот просто вообще не хочется делать красиво после этого...
Автор: Eternal_Shield
Дата сообщения: 11.12.2012 12:55
Arioch1

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

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


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

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



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

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

Замучаются делать совместимость с тонной существующего delphi-кода, хрено оно будет работать. Да и для рядовых девелоперов и разработчиков компонент будет куча гемора
Автор: sergionn
Дата сообщения: 11.12.2012 14:35
_http://www.theregister.co.uk/2012/12/11/verity_stob_sons_of_kahn/
Автор: Arioch1
Дата сообщения: 11.12.2012 14:37
О! давно он не отжигал. После песни о FreeAndNil все было как-то бледно
Автор: deks
Дата сообщения: 11.12.2012 15:36
В продолжение темы с тестом:

Oxygene Nougat alpha 1137 на OSX10.8 (exe - 10kb): 4.8 sec / 5.2 sec
Delphi XE2 U4hf1 на Win7x64 (exe - 140kb): 14 sec / 12 sec
Delphi XE2 U4hf1 на OSX10.8 (exe - 209kb): 13 sec / 12 sec
Lazarus 1.0 FPC2.6.0: 23 / 10 sec (exe - 2,3mb ?): 23 sec / 10 sec

Еще не пробовал Oxygene for Java / .NET - как руки дойдут!

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738

Предыдущая тема: [Delphi XE2] Размер PNG


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.