Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
 Re: Delphi + Python + Linux  [new]
Vizit0r
Member

Откуда:
Сообщений: 563
Vizit0r
угу.


отправилось сильно быстро.

Мне лично очень жаль, что они так и не сделали поддержку мультиплатформенности на дельфы, только для FPC.
9 янв 18, 18:01    [21091184]     Ответить | Цитировать Сообщить модератору
 Re: Delphi + Python + Linux  [new]
asviridenkov
Member

Откуда:
Сообщений: 3807
alekcvp
Vizit0r
Из 10+ практики PascalScript показал себя как стабильный и вылизанный донельзя. Много чего не умеет, но то, что есть - работает на отлично.

Некоторые его решения меня ставят в тупик, как и некоторые моменты исходного кода. Если вы про RemObjects.
Из того что быстро вспоминается: зачем-то сделали так, что для классов, которые экспортируются в скрипт, можно сеттер для свойства назначить напрямую, а для геттера - обязательно нужно сделать обёртку, т.к. он по-умолчанию сделан в виде процедуры. Почему не сделать в виде функции, как в дельфи - непонятно.


Нормальный скриптер должен на входе получать только ссылку на класс, остальное брать по RTTI. Все специальные обертки в пекло.
9 янв 18, 19:55    [21091394]     Ответить | Цитировать Сообщить модератору
 Re: Delphi + Python + Linux  [new]
alekcvp
Member

Откуда:
Сообщений: 1089
asviridenkov
Нормальный скриптер должен на входе получать только ссылку на класс, остальное брать по RTTI. Все специальные обертки в пекло.

И много есть таких нормальных скриптеров? Желательно ещё бесплатных? :)
9 янв 18, 19:59    [21091400]     Ответить | Цитировать Сообщить модератору
 Re: Delphi + Python + Linux  [new]
asviridenkov
Member

Откуда:
Сообщений: 3807
alekcvp
asviridenkov
Нормальный скриптер должен на входе получать только ссылку на класс, остальное брать по RTTI. Все специальные обертки в пекло.

И много есть таких нормальных скриптеров? Желательно ещё бесплатных? :)


Понятия не имею. Но возможность очевидная и удобная, и не использовать ее странно.
Насчет бесплатности - осуждаемые здесь Pax и Fast - платные. Почти все приличные остальные - тоже. Откуда взяться бесплатному?
9 янв 18, 20:20    [21091428]     Ответить | Цитировать Сообщить модератору
 Re: Delphi + Python + Linux  [new]
alekcvp
Member

Откуда:
Сообщений: 1089
asviridenkov
Насчет бесплатности - осуждаемые здесь Pax и Fast - платные. Почти все приличные остальные - тоже. Откуда взяться бесплатному?

Не знаю насчёт RTTI, но когда-то давно, когда я смотрел на FastScript, я так и не понял как там (и можно ли вообще) вызвать на исполнение только определённую процедуру из сценария и прочитать значение переменной после этого.
А, кстати, DWS2 вроде умеет в RTTI.
9 янв 18, 20:38    [21091487]     Ответить | Цитировать Сообщить модератору
 Re: Delphi + Python + Linux  [new]
asviridenkov
Member

Откуда:
Сообщений: 3807
alekcvp
asviridenkov
Насчет бесплатности - осуждаемые здесь Pax и Fast - платные. Почти все приличные остальные - тоже. Откуда взяться бесплатному?

Не знаю насчёт RTTI, но когда-то давно, когда я смотрел на FastScript, я так и не понял как там (и можно ли вообще) вызвать на исполнение только определённую процедуру из сценария и прочитать значение переменной после этого.
А, кстати, DWS2 вроде умеет в RTTI.


Не знаю насчет фаста, но вызов отдельной процедуры с параметрами, мне кажется входит в минимальный минимум скриптеров. Вот асинхронный вызов (одновременно из разных потоков), это уже более интересная возможность.
В принципе нормальный скриптер должен позволять:
+ Выполнить тело скрипта
+ Выполнить функцию с параметрами и вернуть значение
+ Выполнить функцию с var/out параметрами
+ Вычислить произвольное выражение.

DWS умеет RTTI, но он вроде напрямую не работает, только в JS компилирует, не?
9 янв 18, 21:06    [21091560]     Ответить | Цитировать Сообщить модератору
 Re: Delphi + Python + Linux  [new]
Kazantsev Alexey
Member

Откуда:
Сообщений: 2926
asviridenkov
DWS умеет RTTI, но он вроде напрямую не работает, только в JS компилирует, не?

Работает. Компиляция в JS там как приятный бонус.
9 янв 18, 21:11    [21091572]     Ответить | Цитировать Сообщить модератору
 Re: Delphi + Python + Linux  [new]
Vizit0r
Member

Откуда:
Сообщений: 563
asviridenkov
alekcvp
пропущено...

И много есть таких нормальных скриптеров? Желательно ещё бесплатных? :)


Понятия не имею. Но возможность очевидная и удобная, и не использовать ее странно.
Насчет бесплатности - осуждаемые здесь Pax и Fast - платные. Почти все приличные остальные - тоже. Откуда взяться бесплатному?


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

Так что теория и практика - это совсем разные вещи.
9 янв 18, 21:22    [21091600]     Ответить | Цитировать Сообщить модератору
 Re: Delphi + Python + Linux  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 3267
asviridenkov
Нормальный скриптер должен на входе получать только ссылку на класс, остальное брать по RTTI. Все специальные обертки в пекло.

ИМХО: в корне неверно. Нормальный скриптер должен выполнять скрипт (компиляция, исполнение), иметь минимальную билиотеку (базовые типы и их поддержка, основная математика) и предоставлять "прозрачный контракт" на добавление своей библиотеки.

А вот всякие излишества вроде RTTI и прочей рефлексии должны быть в базовой библиотеке языка, который их предоставляет.
9 янв 18, 22:34    [21091746]     Ответить | Цитировать Сообщить модератору
 Re: Delphi + Python + Linux  [new]
asviridenkov
Member

Откуда:
Сообщений: 3807
kealon(Ruslan)
А вот всякие излишества вроде RTTI и прочей рефлексии должны быть в базовой библиотеке языка, который их предоставляет.

И как без поддержки RTTI внутри, сделать ее снаружи? То же самое каждому самому писать?

Сферический скриптер в вакууме не нужен, людям нужно то что максимально соответствует принципу "воткнул и работает".
А писать по строчке на каждое свойство каждого класса - увольте. Автоматический импорт частично спасает ситуацию, но ставит вопрос синхронизации.

ЗЫ Некоторые еще и функции не умеют регистрировать без прослойки, вместо того чтобы написать что-то вроде
AddFunction('Cos(X: Extended): Extended', @Cos);


нужно еще функцию городить.
9 янв 18, 22:49    [21091781]     Ответить | Цитировать Сообщить модератору
 Re: Delphi + Python + Linux  [new]
kealon(Ruslan)
Member

Откуда: Нижневартовск
Сообщений: 3267
asviridenkov
И как без поддержки RTTI внутри, сделать ее снаружи? То же самое каждому самому писать?

>>...и предоставлять "прозрачный контракт" на добавление своей библиотеки.
например, ActiveScripting (VBScript, JScript)
  • создал движок
  • добавил свои главные объекты (IDispatch), методы которых будут видны
  • запустил

    Контрактом здесь является IDispatch, и в принципе под виндой довольно удобно, так как всё пляшет вокруг него. Обёрток к нему даже в базовой поставке дельфи, минимум 2 класса. Фактически выходит строчек на 100 для подцепки.

    asviridenkov
    Сферический скриптер в вакууме не нужен, людям нужно то что максимально соответствует принципу "воткнул и работает".
    А писать по строчке на каждое свойство каждого класса - увольте. Автоматический импорт частично спасает ситуацию, но ставит вопрос синхронизации.
    Как раз полностью абстрактный и нужен, который полностью подчиняется главному приложению. Что бы оно не полезло куда не нужно. А такой навороченный - хз куда с помощью него можно полезть, хорошо если только в Math.


    PS: + ещё очень желательно иметь возможность отладки, н-р те же движки ActiveScripting её поддерживают
  • 10 янв 18, 07:07    [21092009]     Ответить | Цитировать Сообщить модератору
     Re: Delphi + Python + Linux  [new]
    SOFT FOR YOU
    Member [заблокирован]

    Откуда:
    Сообщений: 2761
    В новых Delphi RTTI действительно мощный
    Например, у формы или какого угодно компонента есть событие. Так вот благодаря RTTI ты можешь получить не только имя, сеттер, геттер, но и параметры вызова, с учётом var, const и array of. А из скрипта всё это богатство можно вызвать. Я как раз бьюсь над этим последние пару месяцев.
    10 янв 18, 12:50    [21093060]     Ответить | Цитировать Сообщить модератору
     Re: Delphi + Python + Linux  [new]
    Kazantsev Alexey
    Member

    Откуда:
    Сообщений: 2926
    SOFT FOR YOU,

    Вообще, вся эта информация была доступна с Delphi 6, просто удобных обёрток для неё небыло. А вот попробуй получить свойства advanced records и... обломись.
    10 янв 18, 13:55    [21093318]     Ответить | Цитировать Сообщить модератору
     Re: Delphi + Python + Linux  [new]
    asviridenkov
    Member

    Откуда:
    Сообщений: 3807
    kealon(Ruslan)
    Что бы оно не полезло куда не нужно. А такой навороченный - хз куда с помощью него можно полезть, хорошо если только в Math.

    PS: + ещё очень желательно иметь возможность отладки, н-р те же движки ActiveScripting её поддерживают


    Что мешает добавлять только те классы которые нужно, плюс задавать видимость методов (public/protected)?

    Отладка само собой, это не обсуждается. Интересна возможность удаленной отладки, чтобы можно было, скажем, скрипт внутри сервиса отлаживать, или на другой машине. Но такого у дельфовых скриптеров не видел.
    10 янв 18, 14:16    [21093436]     Ответить | Цитировать Сообщить модератору
     Re: Delphi + Python + Linux  [new]
    под ван
    Guest
    SOFT FOR YOU
    В новых Delphi RTTI действительно мощный
    Например, у формы или какого угодно компонента есть событие. Так вот благодаря RTTI ты можешь получить не только имя, сеттер, геттер, но и параметры вызова, с учётом var, const и array of. А из скрипта всё это богатство можно вызвать. Я как раз бьюсь над этим последние пару месяцев.

    Так в чём его мощь, ежели ты бьёшься уже последние пару месяцев? Была бы реально мощь - ты бы сделал за неделю. Вот это мощь, понимаю
    10 янв 18, 15:45    [21093871]     Ответить | Цитировать Сообщить модератору
     Re: Delphi + Python + Linux  [new]
    asviridenkov
    Member

    Откуда:
    Сообщений: 3807
    под ван
    SOFT FOR YOU
    В новых Delphi RTTI действительно мощный
    Например, у формы или какого угодно компонента есть событие. Так вот благодаря RTTI ты можешь получить не только имя, сеттер, геттер, но и параметры вызова, с учётом var, const и array of. А из скрипта всё это богатство можно вызвать. Я как раз бьюсь над этим последние пару месяцев.

    Так в чём его мощь, ежели ты бьёшься уже последние пару месяцев? Была бы реально мощь - ты бы сделал за неделю. Вот это мощь, понимаю


    Скорее всего он пытается сделать прямой вызов методов, без использования довольно тормознутых Invoke, а там возни хватает, особенно если не только x32 поддерживать.
    10 янв 18, 15:57    [21093932]     Ответить | Цитировать Сообщить модератору
     Re: Delphi + Python + Linux  [new]
    SOFT FOR YOU
    Member [заблокирован]

    Откуда:
    Сообщений: 2761
    asviridenkov,

    Именно
    10 янв 18, 16:12    [21093978]     Ответить | Цитировать Сообщить модератору
     Re: Delphi + Python + Linux  [new]
    asviridenkov
    Member

    Откуда:
    Сообщений: 3807
    Ждем самого быстрого в мире скриптового языка))
    10 янв 18, 16:14    [21093988]     Ответить | Цитировать Сообщить модератору
     Re: Delphi + Python + Linux  [new]
    SOFT FOR YOU
    Member [заблокирован]

    Откуда:
    Сообщений: 2761
    Kazantsev Alexey,

    Если я ничего не путаю, то в Delphi 6 ты не видишь TypeInfo аргументов функции. Или я заблуждаюсь? Накатай примерчик.

    Насчёт свойств структур не помню. Но поля находятся без проблем
    10 янв 18, 16:15    [21093992]     Ответить | Цитировать Сообщить модератору
     Re: Delphi + Python + Linux  [new]
    SOFT FOR YOU
    Member [заблокирован]

    Откуда:
    Сообщений: 2761
    asviridenkov,

    Для самого быстрого нужен JIT
    Ну и потом, скорее всего я CrystalLUA отложу в пользу менеджера памяти. Слишком много я отдал скриптовику, и слишком давно не посвящал времени менеджеру :)
    10 янв 18, 16:17    [21094004]     Ответить | Цитировать Сообщить модератору
     Re: Delphi + Python + Linux  [new]
    Kazantsev Alexey
    Member

    Откуда:
    Сообщений: 2926
    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 янв 18, 16:29    [21094072]     Ответить | Цитировать Сообщить модератору
     Re: Delphi + Python + Linux  [new]
    Kazantsev Alexey
    Member

    Откуда:
    Сообщений: 2926
    SOFT FOR YOU
    Для самого быстрого нужен JIT

    И он есть в DWS.
    10 янв 18, 16:29    [21094075]     Ответить | Цитировать Сообщить модератору
     Re: Delphi + Python + Linux  [new]
    Kazantsev Alexey
    Member

    Откуда:
    Сообщений: 2926
    Кстати, есть ещё один быстрый скриптер, и даже с поддержкой указателей.
    10 янв 18, 16:31    [21094092]     Ответить | Цитировать Сообщить модератору
     Re: Delphi + Python + Linux  [new]
    SOFT FOR YOU
    Member [заблокирован]

    Откуда:
    Сообщений: 2761
    Kazantsev Alexey,

    Интересная статейка, но это методы, а не события. Ты попробуй TypeInfo параметров события получить.
    А что до фигни... ну каждый программирует что хочет :)

    Мне всегда был интересен механизм вызова функций на разных платформах. Не думал, что там столько нюансов! Ну и потом на старых Delphi нет TValue, мне нужно было что-то своё. Это даже если не учитывать его тормознутость :)
    10 янв 18, 16:43    [21094157]     Ответить | Цитировать Сообщить модератору
     Re: Delphi + Python + Linux  [new]
    Kazantsev Alexey
    Member

    Откуда:
    Сообщений: 2926
    SOFT FOR YOU
    А что до фигни... ну каждый программирует что хочет :)

    Не, если тут дело в поддержке старых версий, то вопросов нет ;)
    10 янв 18, 16:56    [21094217]     Ответить | Цитировать Сообщить модератору
    Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
    Все форумы / Delphi Ответить