• XSS.stack #1 – первый литературный журнал от юзеров форума

Как кросскомпилировать Python?

m0nst3r

RAM
Пользователь
Регистрация
26.07.2022
Сообщения
131
Реакции
26
Возможно ли скомпилировать python с нуля под нужную архитектуру? Какие есть сложности? На базе чего строить тулчейн?
Плохо понимаю устройство интерпритатора, если кто-то объяснит этот нюанс буду благодарен. Можно рассматривать компиляцию как конечных приложений так и всей инфраструктуры вместе с вм. Можно попробовать транслировать в си, но у меня не особо получилось, если кто-то скомпилирет под arm\mips hello world поделитесь как вы это сделали.
 
Транслировать в C можно через nuitka, реализация только для PC/Mac там. Решения кросскомпиляции я думаю возможны только костылями через Cython+MinGW.
 
Последнее редактирование:
Транслировать в C можно через nuitka, реализация только для PC/Mac там. Решения кросскомпиляции я думаю возможны только костылями через Cython+MinGW.
nuitka и похожие либы транслируют и компилиуют код как расширения для кода на python. Я ищу решения компиляции pvm, также неплохо исправить набор либ стандартных для интерпретатора. Спасибо за внимание к теме в любом случае
 
Последнее редактирование:
Нашел проект micropython https://micropython.org/, статически скомпиленый бинарник интерпретатора весит все еще много, можно попробовать самому вырезать лишние либы но я нашел вариант проще, подсмотрел у openwrt.

Если будет интерестный апдейт и вдохновение напишу свои заметки по кросскомпиляции и оптимизации интерпретатора. Думаю что сишный размер никак не выйдет, но нащупать грань интересно.
 
Последнее редактирование:
Пожалуйста, обратите внимание, что пользователь заблокирован
статически скомпиленый бинарник интерпретатора весит все еще много
Мало будет весить интерпретатор с маленьким функционалом. Если нужен маленький размер, то нужно брать что-то маленькое, а точно не Петухон, что-то типа Lua, или вот забавный новый язык делает русский чувачок - называется Umka, можно взять интерпретаторы JavaScript: Duktape, QuickJS, V7 и тд.
 
Мало будет весить интерпретатор с маленьким функционалом. Если нужен маленький размер, то нужно брать что-то маленькое, а точно не Петухон, что-то типа Lua, или вот забавный новый язык делает русский чувачок - называется Umka, можно взять интерпретаторы JavaScript: Duktape, QuickJS, V7 и тд.
Я думаю что стоит искать возможности для нестандартного использования языков, это расширяет кругозор и техническую базу, попробую постепенно вырезать функционал до самых базовых комманд. Спасибо за ответ, может странный вопрос, но почему в сравнении с lua питон нагруженный, что в нем лишнее или выдеющее его на фоне других? Lua никогда не пользовался.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
но почему в сравнении с lua питон нагруженный, что в нем лишнее или выдеющее его на фоне других?
В Lua нет нихера, там буквально порядка 8 базовых типов, там нет ни классов, ни массивов, только таблицы, очень маленькая стандартная библиотека. Обрезать Петухон можно бесконечно, для примера в Петухоне числа неограниченной размерности, для этого нужен код для операций над числами неограниченной размерности, у Луа число это либо double, либо int, а одни операции над большими числами добавят порядка 60кб.
 
В Lua нет нихера, там буквально порядка 8 базовых типов, там нет ни классов, ни массивов, только таблицы, очень маленькая стандартная библиотека. Обрезать Петухон можно бесконечно, для примера в Петухоне числа неограниченной размерности, для этого нужен код для операций над числами неограниченной размерности, у Луа число это либо double, либо int, а одни операции над большими числами добавят порядка 60кб.
Большое спасибо, действительно интерестно.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх