Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Сб сен 23, 2017 9:22 pm

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 88 сообщений ]  На страницу Пред. 1 2 3 4 5 6 След.
Автор Сообщение
 Заголовок сообщения: Re: Порт LUA
СообщениеДобавлено: Вт май 10, 2011 8:54 am 
Не в сети
Mentor
Аватара пользователя

Зарегистрирован: Вт янв 15, 2008 11:27 am
Сообщения: 750
думаю, достаточно реализовать всего лишь одну доступную для пользователя функцию - что-то вроде lib_load, на вход которой подаётся имя библиотеки, а возвращать она будет таблицу функций (которые на самом деле-то являются указателями на определённый код, так что ничего сложного не должно быть). но вот как из lua такие функции вызывать - вопрос, не знаю проверяет ли интерпретатор количество и тип параметров... и насчёт передачи параметров - думаю, lua использует stdcall, так что надо и это учесть.

насчёт кода импорта функций из динамических библиотек:
http://redmine.kolibrios.org/projects/k ... /kolibri.c
строки 235-285


Вернуться к началу
 Заголовок сообщения: Re: Порт LUA
СообщениеДобавлено: Вт май 10, 2011 10:38 am 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
У луа своя система вызовов.Я посмотрю на код разных библиотек и подумаю,что с ним делать.А еще посмотрю на код поддержки библиотек в самой луа.Но займусь этим не скоро.Еще много работы над шрифтами


Вернуться к началу
 Заголовок сообщения: Re: Порт LUA
СообщениеДобавлено: Вт май 10, 2011 12:52 pm 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
Eruman писал(а):
Для новичков:
Пока вопросы копятся. Запустил Lua, пример с таблицей вылетает с символом #, только номер строки другой. Стал исключать строки для поиска ошибки.
Еще непонятно, скармливаю выражение :
i[1] = 1
Прога вылетает без сообщений об ошибке на доске. Так и должно быть?


1) Баг повторить не удается. Оба варианта у меня работают замечательно с рамдрайва на ядре 1739, и на том же ядре не работают нормально с жесткого диска (так и должно быть). С новым ядром работает отовсюду. Может, дело в какой-то ошибке файловой системы?

2) У меня выводится сообщение об ошибке на доску. В lua нужно инициализировать таблицы. Вот так:
Код:
i={}
i[1]=1


Вернуться к началу
 Заголовок сообщения: Re: Порт LUA
СообщениеДобавлено: Ср июл 20, 2011 11:37 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Вт авг 25, 2009 4:45 pm
Сообщения: 788
Есть какие-либо новости в работе над Lua?


Вернуться к началу
 Заголовок сообщения: Re: Порт LUA
СообщениеДобавлено: Ср июл 20, 2011 11:52 pm 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
Возможно скоро сделаю луа 5.2b8 или какой там последний.Что делать с библиотеками-так и не придумал.Заявок на перенос функций системы в стандартную библиотеку не поступало.


Вернуться к началу
 Заголовок сообщения: Re: Порт LUA
СообщениеДобавлено: Чт июл 21, 2011 10:40 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Вт авг 25, 2009 4:45 pm
Сообщения: 788
может сделать модуль kolibri. ?
например kolibri.window_new(x, y, height, width) ?


Вернуться к началу
 Заголовок сообщения: Re: Порт LUA
СообщениеДобавлено: Чт июл 21, 2011 10:57 pm 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
XVilka писал(а):
может сделать модуль kolibri. ?
например kolibri.window_new(x, y, height, width) ?

Пробовал. Разницы никакой. Если посмотреть на разные расширения для lua, то добавление системных функций в основную библиотеку - обычная практика.


Вернуться к началу
 Заголовок сообщения: Re: Порт LUA
СообщениеДобавлено: Чт июл 21, 2011 11:16 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Вт авг 25, 2009 4:45 pm
Сообщения: 788
А по поводу обертки - возможно загружать динамически функции в луа. см. C API - просто пропихивать в стек имена функции и указатели на них, а также параметры


Последний раз редактировалось XVilka Пт июл 22, 2011 12:53 am, всего редактировалось 1 раз.

Вернуться к началу
 Заголовок сообщения: Re: Порт LUA
СообщениеДобавлено: Пт июл 22, 2011 12:37 am 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
Блин, точно ведь. Как сразу до меня не дошло :(
Сложновато будет с типами данных только.


Вернуться к началу
 Заголовок сообщения: Re: Порт LUA
СообщениеДобавлено: Сб ноя 19, 2011 1:55 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Вт авг 25, 2009 4:45 pm
Сообщения: 788
по поводу динамической загрузки библиотек - советую посмотреть в сторону luaffi или libffi http://luajit.org/ext_ffi.html


Вернуться к началу
 Заголовок сообщения: Re: Порт LUA
СообщениеДобавлено: Пн дек 19, 2011 10:30 pm 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
Lua 5.2.0
Теперь официально.

Добавлены команды ввода-вывода через консоль:
Код:
copen() - открыть окно консоли
cclose() - закрыть окно консоли
cprintf() - вывести на экран что-нибудь
cgets() - считать строку с клавиатуры


Пример программы:
Код:
copen()
cprintf("Hello! What is your name?\n")
name=cgets()
cprintf("Nice to meet you, ",name,"!\n")
a=3
b=2
c=a+b
cprintf("I know: a+b=",c,"\n")
cclose()


Вложения:
lua-5.2.0.7z [96.92 КБ]
197 скачиваний
Вернуться к началу
 Заголовок сообщения: Re: Порт LUA (5.2.0)
СообщениеДобавлено: Вс апр 08, 2012 9:49 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Вт авг 25, 2009 4:45 pm
Сообщения: 788
Лучше перенести эти команды в в модуль "console" или "os" или подобное, так будет больше совместимости и идеологически правильнее.


Вернуться к началу
 Заголовок сообщения: Re: Порт LUA (5.2.0)
СообщениеДобавлено: Вс апр 08, 2012 10:09 pm 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
Когда я это делал, я вообще не представлял, как модули делать. Сейчас чуть лучше представляю. Так что возможно вообще уберу эти функции и добавлю нормальный вызов библиотек и ассемблерных вставок (о_О, да!)


Вернуться к началу
 Заголовок сообщения: Re: Порт LUA (5.2.0)
СообщениеДобавлено: Чт апр 12, 2012 8:49 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Вт авг 25, 2009 4:45 pm
Сообщения: 788
Еще очень полезный модуль есть - lpreg (содержит также модуль re), для работы с паттернами и подобием регулярных выражений, написан на си, можно включить в сборку для колибри


Вернуться к началу
 Заголовок сообщения: Re: Порт LUA (5.2.0)
СообщениеДобавлено: Чт дек 13, 2012 7:42 pm 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
Вроде я уже выкладывал - не нашел. В архиве исходники и скрипт для сборки compile.sh.


Вложения:
lua-5.2.0-src.7z [497.53 КБ]
143 скачивания
Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 88 сообщений ]  На страницу Пред. 1 2 3 4 5 6 След.

Часовой пояс: UTC+03:00


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB