Board.KolibriOS.org
http://board.kolibrios.org/

Python для KolibriOS
http://board.kolibrios.org/viewtopic.php?f=45&t=1655
Page 1 of 9

Author:  XVilka [ Fri Jan 21, 2011 10:02 am ]
Post subject:  Python для KolibriOS

Портировано.

См - svn://kolibrios.org/programs/develop/tinypy

Attachments:
tinypy-1.1.tar.gz [39.68 KiB]
Downloaded 433 times

Author:  bw [ Fri Jan 21, 2011 3:38 pm ]
Post subject:  Re: Python для KolibriOS

Не вижу больших сложностей в переносе оригинальной ветки, CPython. Но зачем?

..bw

Author:  XVilka [ Fri Jan 21, 2011 10:37 pm ]
Post subject:  Re: Python для KolibriOS

по-моему как раз с основной веткой будут большие сложности - там очень много кода. Здесь весь код на си можно даже переписать используя замену вызовов libc и вывод команды gcc -masm=intel -S

Author:  Jaeger [ Sun Mar 13, 2011 1:06 am ]
Post subject:  Re: Python для KolibriOS

Появились первые успехи в портировании TinyPy:
Из ввода-вывода пока только печать на консоль через console.obj (код подключения библиотеки скопирован из shell).

Пример программы:
Spoiler: Show
def my_func(greeting):
print(greeting, ", KolibriOS!")

if __name__=="__main__":
my_func("Hello")


При запуске спрашивает имя .py-файла с программой. Из-за проблем с передачей параметров в libc напрямую передавать имя программы пока нельзя.
Всех интересующихся прошу потестировать.

Offtopic: Нужно ли упаковывать 7zip-ом исполняемый файл, если он уже упакован kpack-ом, и 7zip делает его только больше?

Attachments:
tinypy.7z [38.39 KiB]
Downloaded 296 times

Author:  SoUrcerer [ Sun Mar 13, 2011 9:50 am ]
Post subject:  Re: Python для KolibriOS

Хорошая работа! HelloKolibri запустился :) Желаю успехов в продолжении разработки!
7z действительно только увеличивает размер файла, но на форуме запрещено размещение файлов с некоторыми расширениями, а 1 кб разницы в размере - не так уж и важно, я считаю.

Author:  Jaeger [ Tue Mar 15, 2011 10:45 pm ]
Post subject:  Re: Python для KolibriOS

Спасибо на добром слове :)

Насчёт продолжения разработки - надо определиться с направлением. Хочется реализовать хотя бы часть стандартной библиотеки, и тут есть 2 варианта:

а) сделать доступным из программы на TinyPy вызов системных функций Колибри, и всю обвязку делать на питоне.
Достоинства: сохраняется малый размер интерпретатора, легче добавлять новые библиотеки.
Недостатки: программы на питоне становятся небезопасными; "тяжёлые" приложения будут тормозить.

б) всю стандартную библиотеку писать на C (или даже FASM).
Достоинства: меньший объём на диске (скомпилированные TinyPy-модули много занимают); скорость работы приложений.
Недостатки: всё это будет компилиться внутрь интерпретатора, и он будет расти в размере, что не согласуется с названием tiny.

Author:  XVilka [ Sat Mar 19, 2011 12:09 am ]
Post subject:  Re: Python для KolibriOS

Я думаю золотая середина - самое то - "тяжелые" функции для оптимизации писать на си - а "легкие" на питоне

Author:  Jaeger [ Thu Mar 31, 2011 1:14 pm ]
Post subject:  Re: Python для KolibriOS

Залил исходники на svn://kolibrios.org/programs/develop/tinypy.
Пример модуля расширения на C в комплекте, на FASM будет чуть позже.

Author:  SoUrcerer [ Thu Mar 31, 2011 8:29 pm ]
Post subject:  Re: Python для KolibriOS

А как с модулями дела обстоят? Возможно ли собрать sys, zipfile и xml.dom.minidom? Тогда можно будет смотреть odt из Колибри с помощью odt2txt.py (можно затем перегонять markdown txt в html).

Author:  Jaeger [ Thu Mar 31, 2011 9:39 pm ]
Post subject:  Re: Python для KolibriOS

С модулями дела обстоят, можно сказать, никак. :( Для sys нужна системно-зависимая подложка, которую нужно писать отдельно на C или FASM. TinyPy не поддерживает многие возможности языка, так что даже модули, написанные только на Python, сходу не заработают.
В первоочередных планах - поддержка работы с файлами и модуль ctypes для использования имеющихся dll.

Author:  SoUrcerer [ Thu Mar 31, 2011 11:18 pm ]
Post subject:  Re: Python для KolibriOS

Понимаю. Похожая история с lua (может быть, немного получше) - текущая сборка не поддерживает библиотеки, кроме стандартных. Все сторонние библиотеки, которые хочется использовать, нужно линковать статически с базовой.
И всё же, удачи ;)

Author:  XVilka [ Sat Apr 09, 2011 2:10 pm ]
Post subject:  Re: Python для KolibriOS

Для добавления работы с XML - см. сюда viewtopic.php?f=24&t=1701

Для добавления работы с регулярными выражениями - см. сюда viewtopic.php?f=24&t=1700

Author:  Jaeger [ Sun Apr 10, 2011 10:51 pm ]
Post subject:  Re: Python для KolibriOS

Почти разобрался, как писать к TinyPy модули на FASM. Уже есть пустой модуль, который только регистрируется, теперь учусь экспортировать функции. Процесс небыстрый, бо уж очень много хитростей в генераторе кода GCC.
Эх, вот бы ещё хоть одного питониста в проект...

XVilka, спасибо! Модуль re понадобится одним из первых, xml тоже будет нужен. Только их лучше бы сделать в виде dll-ек, чтоб использовать не только в питоне.

Author:  XVilka [ Sun Apr 17, 2011 1:09 pm ]
Post subject:  Re: Python для KolibriOS

Что-то не сообразил как собирать из сырцов, выложенных на свн. Кстати там файл mymain.c лишний

Author:  Jaeger [ Sun Apr 17, 2011 10:10 pm ]
Post subject:  Re: Python для KolibriOS

Нужно собрать menuetlibc и в Makefile в MENUETDEV записать путь к ней. После этого сказать "make", получится бинарник tpmain. В общем, всё как в руководстве diamond'а. Единственно - нужно использовать libc из svn-а, а не из архива, в архиве нет функции vsnprintf().
Файл mymain.c действительно лишний.

Page 1 of 9 All times are UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/