|
|
|
Delphi + Python + Linux
|
|||
|---|---|---|---|
|
#18+
Vizit0rугу. отправилось сильно быстро. Мне лично очень жаль, что они так и не сделали поддержку мультиплатформенности на дельфы, только для FPC. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2018, 18:01 |
|
||
|
Delphi + Python + Linux
|
|||
|---|---|---|---|
|
#18+
alekcvpVizit0rИз 10+ практики PascalScript показал себя как стабильный и вылизанный донельзя. Много чего не умеет, но то, что есть - работает на отлично. Некоторые его решения меня ставят в тупик, как и некоторые моменты исходного кода. Если вы про RemObjects. Из того что быстро вспоминается: зачем-то сделали так, что для классов, которые экспортируются в скрипт, можно сеттер для свойства назначить напрямую, а для геттера - обязательно нужно сделать обёртку, т.к. он по-умолчанию сделан в виде процедуры. Почему не сделать в виде функции, как в дельфи - непонятно. Нормальный скриптер должен на входе получать только ссылку на класс, остальное брать по RTTI. Все специальные обертки в пекло. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2018, 19:55 |
|
||
|
Delphi + Python + Linux
|
|||
|---|---|---|---|
|
#18+
asviridenkovНормальный скриптер должен на входе получать только ссылку на класс, остальное брать по RTTI. Все специальные обертки в пекло. И много есть таких нормальных скриптеров? Желательно ещё бесплатных? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2018, 19:59 |
|
||
|
Delphi + Python + Linux
|
|||
|---|---|---|---|
|
#18+
alekcvpasviridenkovНормальный скриптер должен на входе получать только ссылку на класс, остальное брать по RTTI. Все специальные обертки в пекло. И много есть таких нормальных скриптеров? Желательно ещё бесплатных? :) Понятия не имею. Но возможность очевидная и удобная, и не использовать ее странно. Насчет бесплатности - осуждаемые здесь Pax и Fast - платные. Почти все приличные остальные - тоже. Откуда взяться бесплатному? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2018, 20:20 |
|
||
|
Delphi + Python + Linux
|
|||
|---|---|---|---|
|
#18+
asviridenkovНасчет бесплатности - осуждаемые здесь Pax и Fast - платные. Почти все приличные остальные - тоже. Откуда взяться бесплатному? Не знаю насчёт RTTI, но когда-то давно, когда я смотрел на FastScript, я так и не понял как там (и можно ли вообще) вызвать на исполнение только определённую процедуру из сценария и прочитать значение переменной после этого. А, кстати, DWS2 вроде умеет в RTTI. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2018, 20:38 |
|
||
|
Delphi + Python + Linux
|
|||
|---|---|---|---|
|
#18+
alekcvpasviridenkovНасчет бесплатности - осуждаемые здесь Pax и Fast - платные. Почти все приличные остальные - тоже. Откуда взяться бесплатному? Не знаю насчёт RTTI, но когда-то давно, когда я смотрел на FastScript, я так и не понял как там (и можно ли вообще) вызвать на исполнение только определённую процедуру из сценария и прочитать значение переменной после этого. А, кстати, DWS2 вроде умеет в RTTI. Не знаю насчет фаста, но вызов отдельной процедуры с параметрами, мне кажется входит в минимальный минимум скриптеров. Вот асинхронный вызов (одновременно из разных потоков), это уже более интересная возможность. В принципе нормальный скриптер должен позволять: + Выполнить тело скрипта + Выполнить функцию с параметрами и вернуть значение + Выполнить функцию с var/out параметрами + Вычислить произвольное выражение. DWS умеет RTTI, но он вроде напрямую не работает, только в JS компилирует, не? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2018, 21:06 |
|
||
|
Delphi + Python + Linux
|
|||
|---|---|---|---|
|
#18+
asviridenkovDWS умеет RTTI, но он вроде напрямую не работает, только в JS компилирует, не? Работает. Компиляция в JS там как приятный бонус. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2018, 21:11 |
|
||
|
Delphi + Python + Linux
|
|||
|---|---|---|---|
|
#18+
asviridenkovalekcvpпропущено... И много есть таких нормальных скриптеров? Желательно ещё бесплатных? :) Понятия не имею. Но возможность очевидная и удобная, и не использовать ее странно. Насчет бесплатности - осуждаемые здесь Pax и Fast - платные. Почти все приличные остальные - тоже. Откуда взяться бесплатному? у пакса импорт классов совсем не через ртти. Более того, у пакскомпилятора импортер юнитов был рассчитан на что-то совсем древнее, после него юниты с импортом приходилось руками долго и нудно доводить до правильного состояния. Так что теория и практика - это совсем разные вещи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2018, 21:22 |
|
||
|
Delphi + Python + Linux
|
|||
|---|---|---|---|
|
#18+
asviridenkovНормальный скриптер должен на входе получать только ссылку на класс, остальное брать по RTTI. Все специальные обертки в пекло. ИМХО: в корне неверно. Нормальный скриптер должен выполнять скрипт (компиляция, исполнение), иметь минимальную билиотеку (базовые типы и их поддержка, основная математика) и предоставлять "прозрачный контракт" на добавление своей библиотеки. А вот всякие излишества вроде RTTI и прочей рефлексии должны быть в базовой библиотеке языка, который их предоставляет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2018, 22:34 |
|
||
|
Delphi + Python + Linux
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)А вот всякие излишества вроде RTTI и прочей рефлексии должны быть в базовой библиотеке языка, который их предоставляет. И как без поддержки RTTI внутри, сделать ее снаружи? То же самое каждому самому писать? Сферический скриптер в вакууме не нужен, людям нужно то что максимально соответствует принципу "воткнул и работает". А писать по строчке на каждое свойство каждого класса - увольте. Автоматический импорт частично спасает ситуацию, но ставит вопрос синхронизации. ЗЫ Некоторые еще и функции не умеют регистрировать без прослойки, вместо того чтобы написать что-то вроде Код: pascal 1. нужно еще функцию городить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2018, 22:49 |
|
||
|
Delphi + Python + Linux
|
|||
|---|---|---|---|
|
#18+
asviridenkovИ как без поддержки RTTI внутри, сделать ее снаружи? То же самое каждому самому писать? >>...и предоставлять "прозрачный контракт" на добавление своей библиотеки. например, ActiveScripting (VBScript, JScript) создал движок добавил свои главные объекты (IDispatch), методы которых будут видны запустил Контрактом здесь является IDispatch, и в принципе под виндой довольно удобно, так как всё пляшет вокруг него. Обёрток к нему даже в базовой поставке дельфи, минимум 2 класса. Фактически выходит строчек на 100 для подцепки. asviridenkovСферический скриптер в вакууме не нужен, людям нужно то что максимально соответствует принципу "воткнул и работает". А писать по строчке на каждое свойство каждого класса - увольте. Автоматический импорт частично спасает ситуацию, но ставит вопрос синхронизации.Как раз полностью абстрактный и нужен, который полностью подчиняется главному приложению. Что бы оно не полезло куда не нужно. А такой навороченный - хз куда с помощью него можно полезть, хорошо если только в Math. PS: + ещё очень желательно иметь возможность отладки, н-р те же движки ActiveScripting её поддерживают ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 07:07 |
|
||
|
Delphi + Python + Linux
|
|||
|---|---|---|---|
|
#18+
В новых Delphi RTTI действительно мощный Например, у формы или какого угодно компонента есть событие. Так вот благодаря RTTI ты можешь получить не только имя, сеттер, геттер, но и параметры вызова, с учётом var, const и array of. А из скрипта всё это богатство можно вызвать. Я как раз бьюсь над этим последние пару месяцев. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 12:50 |
|
||
|
Delphi + Python + Linux
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOU, Вообще, вся эта информация была доступна с Delphi 6, просто удобных обёрток для неё небыло. А вот попробуй получить свойства advanced records и... обломись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 13:55 |
|
||
|
Delphi + Python + Linux
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan) Что бы оно не полезло куда не нужно. А такой навороченный - хз куда с помощью него можно полезть, хорошо если только в Math. PS: + ещё очень желательно иметь возможность отладки, н-р те же движки ActiveScripting её поддерживают Что мешает добавлять только те классы которые нужно, плюс задавать видимость методов (public/protected)? Отладка само собой, это не обсуждается. Интересна возможность удаленной отладки, чтобы можно было, скажем, скрипт внутри сервиса отлаживать, или на другой машине. Но такого у дельфовых скриптеров не видел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 14:16 |
|
||
|
Delphi + Python + Linux
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUВ новых Delphi RTTI действительно мощный Например, у формы или какого угодно компонента есть событие. Так вот благодаря RTTI ты можешь получить не только имя, сеттер, геттер, но и параметры вызова, с учётом var, const и array of. А из скрипта всё это богатство можно вызвать. Я как раз бьюсь над этим последние пару месяцев. Так в чём его мощь, ежели ты бьёшься уже последние пару месяцев? Была бы реально мощь - ты бы сделал за неделю. Вот это мощь, понимаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 15:45 |
|
||
|
Delphi + Python + Linux
|
|||
|---|---|---|---|
|
#18+
под ванSOFT FOR YOUВ новых Delphi RTTI действительно мощный Например, у формы или какого угодно компонента есть событие. Так вот благодаря RTTI ты можешь получить не только имя, сеттер, геттер, но и параметры вызова, с учётом var, const и array of. А из скрипта всё это богатство можно вызвать. Я как раз бьюсь над этим последние пару месяцев. Так в чём его мощь, ежели ты бьёшься уже последние пару месяцев? Была бы реально мощь - ты бы сделал за неделю. Вот это мощь, понимаю Скорее всего он пытается сделать прямой вызов методов, без использования довольно тормознутых Invoke, а там возни хватает, особенно если не только x32 поддерживать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 15:57 |
|
||
|
Delphi + Python + Linux
|
|||
|---|---|---|---|
|
#18+
asviridenkov, Именно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 16:12 |
|
||
|
Delphi + Python + Linux
|
|||
|---|---|---|---|
|
#18+
Ждем самого быстрого в мире скриптового языка)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 16:14 |
|
||
|
Delphi + Python + Linux
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey, Если я ничего не путаю, то в Delphi 6 ты не видишь TypeInfo аргументов функции. Или я заблуждаюсь? Накатай примерчик. Насчёт свойств структур не помню. Но поля находятся без проблем ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 16:15 |
|
||
|
Delphi + Python + Linux
|
|||
|---|---|---|---|
|
#18+
asviridenkov, Для самого быстрого нужен JIT Ну и потом, скорее всего я CrystalLUA отложу в пользу менеджера памяти. Слишком много я отдал скриптовику, и слишком давно не посвящал времени менеджеру :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 16:17 |
|
||
|
Delphi + Python + Linux
|
|||
|---|---|---|---|
|
#18+
asviridenkovбез использования довольно тормознутых Invoke Если я правильно помню, там основные тормоза от TValue. Но даже в таком виде Invoke быстрее мамонтового ObjectInvoke раз в семь :) SOFT FOR YOUИменно Опять на фигню время тратишь... SOFT FOR YOUЕсли я ничего не путаю, то в Delphi 6 ты не видишь TypeInfo аргументов функции. Или я заблуждаюсь? C Delphi 7 всё это можно получить. SOFT FOR YOUНакатай примерчик. http://hallvards.blogspot.ru/2006/09/extended-class-rtti.html SOFT FOR YOUНо поля находятся без проблем Поля не свойства. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 16:29 |
|
||
|
Delphi + Python + Linux
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUДля самого быстрого нужен JIT И он есть в DWS. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 16:29 |
|
||
|
Delphi + Python + Linux
|
|||
|---|---|---|---|
|
#18+
Кстати, есть ещё один быстрый скриптер , и даже с поддержкой указателей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 16:31 |
|
||
|
Delphi + Python + Linux
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey, Интересная статейка, но это методы, а не события. Ты попробуй TypeInfo параметров события получить. А что до фигни... ну каждый программирует что хочет :) Мне всегда был интересен механизм вызова функций на разных платформах. Не думал, что там столько нюансов! Ну и потом на старых Delphi нет TValue, мне нужно было что-то своё. Это даже если не учитывать его тормознутость :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2018, 16:43 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39581280&tid=2041343]: |
0ms |
get settings: |
7ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
168ms |
get topic data: |
9ms |
get forum data: |
6ms |
get page messages: |
95ms |
get tp. blocked users: |
2ms |
| others: | 196ms |
| total: | 507ms |

| 0 / 0 |
