Sorcerer
Файловые функции и strpbrk я добавлю.
void exit(int code){ _exit(code); }; Не posix, но сойдёт.
int remove(const char *path) ф. 70.8
int rename(const char *old, const char *new); Не поддерживается.
int system ( const char * command ); Не поддерживается.
clock strftime difftime на эти нет времени .
Порт LUA (5.2.0)
system - это разве не 70.7?
rename - это копирование файла в файл с новым именем, и удаление старого?
rename - это копирование файла в файл с новым именем, и удаление старого?
70.7 это exec(), а system() вызывает командный процессор которого у нас почти нет.
rename() для файлов и каталогов. Проще забитьЭто наверное трансляция соответствующих команд LUA. Обычно программы такими вещами не занимаются.
rename() для файлов и каталогов. Проще забить
Code: Select all
int rename(const char *old, const char *new)
{
errno = EACCES; // или EPERM
return -1;
}
Замечательно. Значит, в обозримом будущем Lua 5.2 заработает. Постараюсь запилить функции времени сам.
[offtop]А как насчет расширения функциональности argc/argv?[/offtop]
Да, это трансляция команд LUA, потому что функции вызываются из lua iolib
[offtop]А как насчет расширения функциональности argc/argv?[/offtop]
Да, это трансляция команд LUA, потому что функции вызываются из lua iolib
В смысле деления командной строки на отдельные токены ? Код есть, добавлю со временем.Sorcerer wrote:А как насчет расширения функциональности argc/argv?
Кнопки удалять можно командой создания кнопок (по аналогии с системной функцией).kogemyaka wrote:Неплохо получилось, всё работает. Ещё бы можно было кнопки удалять и добавить работу со временем.
Стандартная функция lua для работы со временем только одна - clock, и вместо нее стоит заглушка, возвращающая 0. В принципе, можно добавить все системные функции Колибри, но я пока что не буду этого делать, а займусь lua 5.2.
Можно при желании добавить в lua возможность использования COFF-библиотек, и все Колибри-зависимые функции вынести туда.
Кстати, сейчас проверил работу с файлами, все ОК, только переводы строк в текстовых файлах распознаются дважды. Не работает только execute.
Sorcerer
А ты можешь выложить скомпилированные объектники ? Проще будет найти, чего не хватает.
А ты можешь выложить скомпилированные объектники ? Проще будет найти, чего не хватает.
Я просто беру lua52 с официального сайта, и собираю. Никаких правок не вносил в эту версию.
С menuetlibc собиралось только после правки макросов va и создания заглушки для signal (однако падало при вызове argv, и иногда в эмуляторе).
С menuetlibc собиралось только после правки макросов va и создания заглушки для signal (однако падало при вызове argv, и иногда в эмуляторе).
- Attachments
-
-
lua52o.7z (66.25 KiB)Downloaded 287 times
-
Спасибо, посмотрю вечером.
Update.
Почти добил. Остались две функции clock() и strftime().
Update.
Почти добил. Остались две функции clock() и strftime().
Sorcerer
Сделал заглушки на некоторые функции. Удалось собрать. При запуске без параметров выводит информационную строку и корректно завершается. Что ещё с ним можно делать я не знаю .
Update.
kos.txt - новый скрипт для ld. Линковать рекомендую с опцией -s - убирает отладочный мусор.
Для компиляции gcc -D__DYNAMIC_REENT__ -fomit-frame-pointer
дополнительно -ffast-math если проблемы с мат. функциями
-fno-builtin-printf больше не нужна
Сделал заглушки на некоторые функции. Удалось собрать. При запуске без параметров выводит информационную строку и корректно завершается. Что ещё с ним можно делать я не знаю .
Update.
kos.txt - новый скрипт для ld. Линковать рекомендую с опцией -s - убирает отладочный мусор.
Для компиляции gcc -D__DYNAMIC_REENT__ -fomit-frame-pointer
дополнительно -ffast-math если проблемы с мат. функциями
-fno-builtin-printf больше не нужна
Замечательно. Работает запуск lua [имя_файла]. Из-за отсутствия кода разбора параметров другие ключи бесполезны (например, ключ e).
Проверяю сейчас работоспособность, действительно, работает стабильно. Размер бинарника примерно такой же, как у версии menuetlibc. Файловые операции работают.
Что и требовалось доказать, не работают: os.clock, os.difftime, os.time, os.date, os.rename, os.execute
Из всего этого можно с легкостью проститься лишь с os.rename, остальные функции нужны.
Я правильно понимаю, что я могу создать инклуд-файл со своими версиями clock(), difftime() и так далее, подключить их к lua.c, и функции будут переобъявлены? И если все заработает, это можно будет включить в библиотеку?
Для проверки работы lua я всегда держу под рукой простой скрипт 1.lua, который работает на большинстве версий lua:
Проверяю сейчас работоспособность, действительно, работает стабильно. Размер бинарника примерно такой же, как у версии menuetlibc. Файловые операции работают.
Что и требовалось доказать, не работают: os.clock, os.difftime, os.time, os.date, os.rename, os.execute
Из всего этого можно с легкостью проститься лишь с os.rename, остальные функции нужны.
Я правильно понимаю, что я могу создать инклуд-файл со своими версиями clock(), difftime() и так далее, подключить их к lua.c, и функции будут переобъявлены? И если все заработает, это можно будет включить в библиотеку?
Для проверки работы lua я всегда держу под рукой простой скрипт 1.lua, который работает на большинстве версий lua:
Code: Select all
for i=1,10 do
print ("Number is "..i)
end
Sorcerer
difftime должна работать. Там ничего нет:
difftime должна работать. Там ничего нет:
Code: Select all
double
_DEFUN (difftime, (tim1, tim2),
time_t tim1 _AND
time_t tim2)
{
return (double)(tim1 - tim2);
}
Конечно.Я правильно понимаю, что я могу создать инклуд-файл со своими версиями clock(), difftime() и так далее, подключить их к lua.c, и функции будут переобъявлены? И если все заработает, это можно будет включить в библиотеку?
Ну, тогда и os.clock работает Правда, одно и то же число всегда выводит.
clock должна показывать ипользованное процесорное время от запуска программы. Можно заменить на 26.9 и считать разницу от запуска при условной загрузке 100%.
При запуске без параметров у меня lua, собранная из тех же [только без перенаправления ввода-вывода] исходников, переходит в режим командного интерпретатора и падает. Наверное, это не очень страшно.
И библиотеки почему-то не хотят прикручиваться пока что.
И библиотеки почему-то не хотят прикручиваться пока что.
Who is online
Users browsing this forum: No registered users and 2 guests