Если тебе интересна интеграция с Lua

Вопросы использования сторонних (не входящих в состав FPC и Lazarus) утилит и библиотек.

Модератор: Модераторы

Если тебе интересна интеграция с Lua

Сообщение Devil » 11.09.2012 17:45:09

Привет, уважаемый форумчанин

Я являюсь разработчиком дорогой для меня библиотеки CrystalLUA. Цель проекта - избавить Delphi/FreePascal программиста от рутины связывания нативного кода и кода Lua. Кто не знает, Lua - самый распространённый скриптовый язык в мире.

Пишу это сообщение не только, чтобы на мой проект обратили внимание. Сейчас актуален другой вопрос. В середине октября я планирую приступить к большой переработке проекта. Среди ключевых нововведений - полная поддержка Unicode, события, и конечно же автобиндинг – механизм, благодаря которому необходимость в регистрации промежуточных калбеков может просто отпасть. Файл документации будет переведён на английский. Так вот мне как воздух сейчас нужны люди. Энтузиасты, способные не только использовать чужие наработки, но и участвовать в развитии проектов "зоны свободного ПО". Если ты посмотришь хотя бы в опубликованную Mind-карту - увидишь, что работы много и дело найдётся каждому. Заявленные фичи и так будут реализованы, просто со сторонней помощью они будут разработаны комфортнее; + можно реализовать вещи за пределами заявленного списка. К примеру на данный момент до полной поддержки FreePascal руки не дошли. Поэтому если ты считаешь, что можешь быть или хотел бы быть в чём-то полезен - жду сообщение в личку или по любому из контактов, указанных в ветке.

p.s. такое сообщение я оставляю на многих русскоязычных форумах. Потому что аудитория Delphi/FreePascal-программистов не велика. Lua используют ещё меньше. А для продуктивной работы с иностранцами не хватит моего знания языка.

в любом случае спасибо за внимание!
Последний раз редактировалось Devil 13.09.2012 13:54:59, всего редактировалось 1 раз.
Devil
новенький
 
Сообщения: 40
Зарегистрирован: 10.12.2008 09:56:33

Re: Если тебе интересна интеграция с Lua

Сообщение sign » 12.09.2012 04:26:11

Скачал, запустил пример.
Упс!
Код: Выделить всё
C:lazaruscomponentscrystal_luaCrystalLUA.pas(5705,55) Error: Incompatible type for arg no. 1: Got "TTypeInfo", expected "PTypeInfo"

Лазарус 1.1
FPC 2.6.1

Добавлено спустя 19 минут:
Было
Код: Выделить всё
5057   typename := GetOrdinalTypeName(PropInfo.PropType^);

Исправил на
Код: Выделить всё
58057  typename := GetOrdinalTypeName(PropInfo.PropType);

Код: Выделить всё
C:lazaruscomponentscrystal_luaCrystalLUA.pas(6662,48) Error: Incompatible type for arg no. 1: Got "TTypeInfo", expected "PTypeInfo"

Исправил аналогично.

Далее:
Код: Выделить всё
C:lazaruscomponentscrystal_luaCrystalLUA.pas(7401,59) Error: Incompatible types: got "Byte" expected "LongBool"

Понял, править нужно много!

Добавлено спустя 6 минут 15 секунд:
А вот таким вообще никогда не занимался, потому невежественен:
Код: Выделить всё
Value.p := Pointer(lua_tocfunction(Handle, stack_index));
C:\lazarus\components\crystal_lua\CrystalLUA.pas(10978,58) Error: Wrong number of parameters specified for call to "<Procedure Variable>"

lua_tocfunction: function(L: Plua_State; idx: Integer): lua_CFunction; cdecl;

lua_CFunction = function(L: Plua_State): integer; cdecl;
sign
энтузиаст
 
Сообщения: 874
Зарегистрирован: 30.08.2009 09:20:53

Re: Если тебе интересна интеграция с Lua

Сообщение Devil » 12.09.2012 11:13:50

sign,

я программирую в основном на Delphi. Библиотека частенько меняется и синхронизировать с компиляцией под FPC не всегда успевается.
в последний раз проект хорошо компилировался под FPC и даже работал
однако были "скользкие" моменты. Например в библиотеке предусмотрен вызов виртуальных методов. При регистрации смотрится: виртуальный он или нет. Однако под FPC такой возможности с наскока добиться не удалось. Кроме того странно вели себя typeinfo. В Delphi к примеру для TRect не генерируется typeinfo. А в FPC он есть и генерируется разный, в зависимости от ключей компиляции в используемых модулях (долго объяснять).

Проработка в FPC - это одно из направлений, которое хотелось бы реализовать (с чьей-то помощью).
Аналогично кроссплатформ x86 (Linux, Mac OS)
не исключаю поддержки других платформ, просто используется много ассемблера, планируется ещё больше (чтобы максимизировать производительность).

Так что если кто-то изъявит желание тщательно проработать многие внутренние вопросы до стабильного состояния - будет здорово.
Единственное что прошу - не относиться к задаче поверхностно. Задача сложна
Devil
новенький
 
Сообщения: 40
Зарегистрирован: 10.12.2008 09:56:33

Re: Если тебе интересна интеграция с Lua

Сообщение alex208210 » 12.09.2012 17:51:20

Devil
Обратись к mai62, автору handycache. Он тесно работает с Delphi и LUA
alex208210
постоялец
 
Сообщения: 206
Зарегистрирован: 12.05.2010 13:16:51

Re: Если тебе интересна интеграция с Lua

Сообщение Devil » 12.09.2012 20:18:18

alex208210,

написал
но честно говоря от этого форума я хотел бы найти спецов именно по FreePascal и кроссплатформ. Которые естественно заинтересованы в интеграции с Lua
Devil
новенький
 
Сообщения: 40
Зарегистрирован: 10.12.2008 09:56:33

Re: Если тебе интересна интеграция с Lua

Сообщение Mr.Smart » 12.09.2012 21:51:47

Devil, у вас профессиональная заинтересованность? Или как?

Добавлено спустя 39 секунд:
з.ы. Знаем, любим - LUA.
Mr.Smart
долгожитель
 
Сообщения: 1797
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Если тебе интересна интеграция с Lua

Сообщение Kemper » 12.09.2012 23:24:09

Сразу проситься... Положите вы проект в DVSN, какой-нибудь, хоть Git, хоть Mercurial, хоть fossil, а то помогать и работать без этих инструментов просто не возможно.
Kemper
новенький
 
Сообщения: 61
Зарегистрирован: 18.05.2010 00:29:44

Re: Если тебе интересна интеграция с Lua

Сообщение B4rr4cuda » 13.09.2012 00:14:14

Недавно как раз смотрел данную библиотеку.. даже правил до состояния проглатывания компилятором.. вот только дальше сигсегв в procedure TLuaRecordInfo.InternalRegField(..
В причинах с наскока разобраться не получилось - отложил до лучших времен.
Аватара пользователя
B4rr4cuda
энтузиаст
 
Сообщения: 693
Зарегистрирован: 28.12.2007 07:48:35

Re: Если тебе интересна интеграция с Lua

Сообщение Kemper » 13.09.2012 00:16:36

Kemper
новенький
 
Сообщения: 61
Зарегистрирован: 18.05.2010 00:29:44

Re: Если тебе интересна интеграция с Lua

Сообщение Devil » 13.09.2012 10:06:30

Mr.Smart,

> у вас профессиональная заинтересованность? Или как?

хороший вопрос. Да, во-первых, у меня профессиональная заинтересованность.
Во-вторых, я человек благодарный, сам часто пользуюсь свободными разработками, хочется отдать что-то миру взамен. Если у меня есть действительно качественные библиотеки - я их стараюсь выложить в интернет. А с учётом того, как тяжело на практике связать Lua с Delphi - мой "продукт" действительно может помочь людям. В-третьих, уже просто созрела серьёзная переработка. Связано это и с Unicode, и с новыми уникодизированными версиями FreePascal/Delphi, и с новыми идеями по оптимизациям, и новым взглядом на проект. Наконец настало время показать проект миру, а для этого надо довести библиотеку до компиляции в современных средствах, доработать документацию и перевести её на английский. Я посмотрел на ажиотаж и базовые возможности библиотеки Lua4Delphi. Ажиотаж большой, либа фигня. ИМХО. Кстати автор недавно психанул, и оставил только платные разработки (я слышал от 1000 фунтов). Я хочу всё сделать бесплатно.


B4rr4cuda,
> TLuaRecordInfo.InternalRegField(..
> В причинах с наскока разобраться не получилось - отложил до лучших времен.


как я уже говорил, вопрос значительно глубже, чем сделать библиотеку компилируемой под FPC.
сделать так, чтобы оно компилировалось под FPC могу и я. Нужно только время потратить.
Вопрос глубже. А именно в виртуальных методах, RTTI и прочих особенностях хранения данных. К примеру реализация ClassParent() в FPC и Delphi немного различаются. Хранение массивов, "количество" в FPC и Delphi различается на единицу. Так вот все эти вопросы надо изучить, проработать, реализовать и оттестировать.
Devil
новенький
 
Сообщения: 40
Зарегистрирован: 10.12.2008 09:56:33

Re: Если тебе интересна интеграция с Lua

Сообщение B4rr4cuda » 13.09.2012 10:52:51

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

Я догадался)

Вообще, библиотека показалась мне излишне сложной в плане реализации. Разбираться в её логике и работе нужно плотно и усердно. Лично у меня времени на подобное действо не будет, к сожалению. Хотя в либе заинтересован, в принципе. Поэтому если бы вы разбили все требуемые правки на подзадачи, для реализации которых не потребуется курить всю библиотеку, то шансов на помощь со стороны стало бы поболее.
Аватара пользователя
B4rr4cuda
энтузиаст
 
Сообщения: 693
Зарегистрирован: 28.12.2007 07:48:35

Re: Если тебе интересна интеграция с Lua

Сообщение Devil » 13.09.2012 11:09:20

All,

давайте на ты

Kemper,

Сразу проситься... Положите вы проект в DVSN, какой-нибудь, хоть Git, хоть Mercurial, хоть fossil, а то помогать и работать без этих инструментов просто не возможно


Может быть это не скромно. Но я достаточно хорошо взвешиваю решения, оцениваю плюсы и минусы, в зависимости от поставленных задач и приоритетов. Весь мой движок (а CrystalLUA только его часть) хостится на частном SVN сервере. Я использую SVN при работе над проектом. Буду ли я давать кому-то координаты на этот проект? Нет. Потому что эта ситуация когда и второй и третий - лишние. Проект сложен уже сейчас, разрабатывать идеологию сложно уже сейчас, если в идеологию кто то будет вмешиваться ещё - я просто потеряю интерес к проекту. Потому что сложности в архитектуре нарастут снежным комом и разгребать это всё - наверное худшая перспектива, которую я сейчас могу представить.

Почему та схема, которая имеется сейчас - самая правильная. (но я уверен, существуют проекты, которые глупо разрабатывать командой без SVN). Проект по сути состоит из всего одной(!) *.pas библиотеки. В каких-то мелких доработках на стороне он не нуждается. Крупные доработки выходят скопом и редко, может быть раз в пол года. Версия всегда маркируется датой выпуска, поэтому обновляться можно крайне редко, сравнивая для начала дату выпуска. Если у проекта будет сайт (ну мало ли), то архив будет храниться там. Пока мне нужна стабильная ссылка и ссылка с моего narod-сайта полностью удовлетворяет. Хотя фиг знает, может и будет потом ссылка на какой-нибудь SourceForge к примеру.

я не против использования DVSN. Я за взвешенную расстановку приоритетов.
сорри если наступил на "больную мозоль"

Подошли к важному вопросу. В чём же состоит ожидаемая помощь.
Ожидаемую помощь я делю на три части: тестирование, проработка информации, разработка сторонних средств

Ну то что тестировать нужно будет на разных данных и платформах, думаю, объяснять не надо.
К части "проработка информации" как раз относится например изучение отличий RTTI, законов компиляции, отличия для платформ. Под "проработкой информации" подразумевается полное теоретическое изучение, а так же практические наработки кодом, которые я уже смогу использовать в библиотеке. Каждую "область проработки" я сопровождаю документом с чётким описанием: 1) почему такая проработка вообще нужна. 2) какие приоритеты. 3) какие шаги предлагаю. К примеру сейчас я пишу документ по interface, OLE, Variant. Если один чувак проработает эту информацию, то скорее всего в скриптах появится возможность использовать Excel, Word и другие Ole-контейнеры так же удобно, как бы это делаем в Delphi (наверно и в FPC). Если кто-то из посетителей этого форума проявит желание проработать вопрос полной совместимости с FreePascal и Linux, Mac OS - то я так же создам полный документ со всем описанием, что нужно проработать.

Сторонние средства - это программные продукты, которые каким либо образом помогают в развитии или использовании библиотеки. К примеру, если получится, один чувак реализует универсальную систему тестирования. И тогда возможно огромная гора проблем с тестированием отпадёт. Один человек, кстати с этого форума, возможно разработает IDE. И тогда разрабатывать Lua скрипты можно будет не только с подсветкой синтаксиса, но и всплывающими подсказками, управлениями проектами, дебагом - всё с учётом именно особенностей работы c CrystalLUA. Существует и ещё 1-2 сторонних средства, которые желательно было бы разработать.

Я пишу "возможно", "желательно", "может быть" - потому что проект не коммерческий и каждый участник может как реализовать, так и не реализовать. Ну а я их просто не потяну, потому что свою большую область работ я уже обрисовал. (можно посмотреть в Mind-карте на том форуме)

Добавлено спустя 1 минуту 5 секунд:
B4rr4cuda,

Вообще, библиотека показалась мне излишне сложной в плане реализации. Разбираться в её логике и работе нужно плотно и усердно. Лично у меня времени на подобное действо не будет, к сожалению. Хотя в либе заинтересован, в принципе. Поэтому если бы вы разбили все требуемые правки на подзадачи, для реализации которых не потребуется курить всю библиотеку, то шансов на помощь со стороны стало бы поболее.


ну я собственно об этом и написал
Devil
новенький
 
Сообщения: 40
Зарегистрирован: 10.12.2008 09:56:33

Re: Если тебе интересна интеграция с Lua

Сообщение Devil » 18.10.2012 23:41:58

Апаю тему

на данный момент позиция грамотного FreePascal разработчика свободна
если тебе данная тема интересна - пожалуйста отписывайся. Крайне важно чтобы ты рулили в FreePascal, владел навыками плотной работы с RTTI, имел опыт программирования под WIndows/Linux/Mac OS. Знание ассемблера приветствуется
Devil
новенький
 
Сообщения: 40
Зарегистрирован: 10.12.2008 09:56:33


Вернуться в Сторонние средства

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

Рейтинг@Mail.ru