Closed kapkapas closed 4 years ago
Следите за развитием библиотеки Она меняет концепцию, будет содержать не только RTTI рутину Релиз будет в ближайшие недели
Добрый день! Дмитрий, спасибо за информацию. Не планируете ли вы выделить в отдельный модуль TValue? С уважением, Алексей К.
Не планирую. Более того, функционал и зависимость модуля Tiny.Rtti будет наращиваться. А зачем Вам отдельный модуль?
А зачем Вам отдельный модуль?
Попытаюсь прояснить свою позицию...
Надеюсь, что достаточно ясно изложил свое видение ... Буду рад дальнейшему успешному развитию вашего TinyRTTI.
С уважением, Алексей К.
Честно говоря, не понял, в чём профит
Не планируете ли вы выделить в отдельный модуль TValue?
Я задал свой вопрос для того чтобы понять насколько удобно будет использовать TinyRTTI в своих разработках. Для меня удобнее использовать в работе обозримый и понимаемый до конца код. Если я этого достигаю - это мой профит.
Своим вопросом я ничего не навязывал. Вы как автор решение приняли - это ваше право. Ответ ваш я услышал. Мотивы его как мне кажется достаточно очевидны. У каждого свой профит.
Собственно говоря, на данный момент, ответ на вопрос который я задавал для меня уже не актуален. То что я планировал уже закончил.
Для того, чтобы использовать TValue - достаточно подключить модуль Tiny.Rtti. Данный модуль объединяет в себе 2 вещи: системную информацию (TypeInfo и т.д.) и универсальное представление данных. Контекст в текущей реализации не делает ничего кроме конвертации TypeInfo в универсальное представление. Зависимости от Tiny.Invoke тут нет. Можно использовать TValue без привязки к этому модулю.
Но нельзя использовать отдельно от универсального представления
Зависимости от Tiny.Invoke тут нет. Можно использовать TValue без привязки к этому модулю.
TValue <- TRTTIContext & types TValue <- TTiny.Invoke Это все было ясно с самого начала.
Но нельзя использовать отдельно от универсального представления
TValue от TRTTIContext?
Embarcadero убрали слабую зависимость TValue от TRTTIContext в 10.3 (это была весьма странная вещь :-( ). В ближайшее время посмотрим что они сделают в 10.4
В реализации Эмбаркадеро нет универсального представления, есть только TypeInfo. В частности поэтому их показатели производительности ниже. К слову, в моей реализации привязки TValue к контексту практически нет, потому что в массе своей операции проходят уже с заранее известным универсальным представлением.
Не совсем понял вас. Как я понимаю TypInfo это по сути дела - API к массиву RTTI, "подготовленным" компилятором, а TRTTIContext дает более менее унифицированное объектное представление этих данных (где то сделанное весьма причудливым образом). Его тоже можно назвать универсальным представлением. К слову: массив RTTI организован весьма причудливым образом... Ну тут уже ничего не поделаешь. Универсальное представление можно сделать на основе своего аналога TRTTIContext, точнее системы метаклассов, генерируемого TRTTIContext - как я понимаю именно эту часть вы и называете универсальным представлением. Возможно я неправ.
Универсальное представление это типы TRttiGroup
, TRttiType
и TRttiExType
Впечатляет:
System.Rtti: 4699ms Tiny.Rtti (values): 141ms Tiny.Rtti (args): 32ms; Tiny.Rtti (direct): 9ms