Comments 10
Технология хорошая, но получившийся .exe весит 4 мегабайта и запускается больше 5 секунд на довольно быстром современном десктопе :(. Огорчает, что Iron- и J- версии python и ruby всего лишь портировали интерпритатор вместо того чтобы компилировать код питона в байткод соответствующей виртуальной машины.
BTW, может знаете — какие такие у всех фатальные трудности скомпилировать исходник на питоне/руби в байткод CLR? Понятно что reflection и eval() потребуют дополнительной машинерии — но что там фатально сложного что никто даже не пытается и тянут с собой интерпретатор?
BTW, может знаете — какие такие у всех фатальные трудности скомпилировать исходник на питоне/руби в байткод CLR? Понятно что reflection и eval() потребуют дополнительной машинерии — но что там фатально сложного что никто даже не пытается и тянут с собой интерпретатор?
+2
Могу предположить, что всё дело в философии: Python компилируется только в Python bytecode, который можно прогнать через dis. А если поддерживать технологию компиляции напрямую в байткод виртуальной машины, это усложнит сам проект.
Python, наверное, потому и получил популярность, что развивать его код было просто. Хотя, согласен, компиляция в другой байткод/naive была бы полезна.
Python, наверное, потому и получил популярность, что развивать его код было просто. Хотя, согласен, компиляция в другой байткод/naive была бы полезна.
+1
Перестал таскать интерпретатор пару месяцев назад. Компиляция исходников в родные системе либы с помощью CPython и мелкий загрузчик в 3 строчки на чем угодно (лично я использую C#)
0
Отличное решение! Делитесь практической частью! )
0
Ну насчет компиляции в либы тут: habrahabr.ru/post/138537/, много граблей но лучшего решения для себя не нашел.
Насчет загрузчика для C# — подключаем скомпилированную либу (dll/so) в проект, выполняем фунцкию из подключенной либы (есть небольшая зависимость кода от того что выполняем, но почти всегда это 1-2 строчки) :)
Насчет загрузчика для C# — подключаем скомпилированную либу (dll/so) в проект, выполняем фунцкию из подключенной либы (есть небольшая зависимость кода от того что выполняем, но почти всегда это 1-2 строчки) :)
0
Стандартом требуется reflection не только на модули-функции, а еще и на stack frame например. Не представляю, как сделать питоновский frame напрямую из clr frame.
Встроенный интепретатор решает вопрос.
JIT позволяет не слишком при этом тормозить.
Встроенный интепретатор решает вопрос.
JIT позволяет не слишком при этом тормозить.
0
py2exe/cx_Freeze так же умеют делать на выходе 2 файла (да и вообще по умолчанию именно так и делают)
Ну а при чем тут CPython вообще непонятно.
Ну а при чем тут CPython вообще непонятно.
0
Sign up to leave a comment.
Делаем standalone exe на IronPython