Я не понимаю, что означает слово translate mean. Это то же самое, что и компиляция?
Что означает «перевод», подробно описано в The RPython Toolchain. Также есть несколько вводных данных более высокого уровня в Coding Guide и FAQ.
Суммируя их резюме:
- Compile и импортировать полную программу RPython.
- Динамический анализ программы и аннотирование ее потоковыми графами.
- Скомпилируйте потоковые графы в поточные графы нижнего уровня.
- Оптимизация скомпилированных потоковых графов.
- Проанализируйте скомпилированные и оптимизированные потоковые графы.
- Сгенерировать источник C из потоковых графов и анализа.
- Скомпилируйте и подключите источник C к исполняемому файлу.
Итак, в шаге 1 используется обычный компилятор Python, в шаге 7 используется обычный C-компилятор (и компоновщик), а шаги 3 и 4 аналогичны тем, что обычно делает оптимизирующий компилятор. Но призывать общий процесс «компиляции» вводить в заблуждение. (Кроме того, люди, вероятно, интерпретировать это означает что-то похожее на то, что делает Shedskin, который, безусловно, не так.)
ли PyPy-с создано в переводе то же самое, как бен/PyPy в двоичном?
То, что заканчивается в двоичном дистрибутиве, в основном такое же, как если бы вы запускали процесс установки на цели перевода. Итак, да, goal/pypy-c
и bin/pypy
- фактически то же самое.
Является ли предустановленный PyPy здесь ссылкой на исходный код?
№ Это относится к bin/pypy
из двоичного распределения. Как говорят документы, вы можете фактически использовать любые Python 2.6+, включая CPython, или goal/pypy-c
, оставшиеся от предыдущей сборки и т. Д. Однако, вероятно, переводчик будет работать быстрее всего на стандартном двоичном дистрибутиве PyPy, так что это то, что вы следует использовать, если у вас нет веских оснований для этого.
Итак, правильный способ перевести - это 'pypy ../../rpython/bin/rpython --opt = jit targetpypystandalone.py' вместо использования' python ../../rpython/bin/rpython - opt = jit targetpypystandalone.py'? – amazingjxq
@amazingjxq: Ну, документы на шаге 1 говорят, что вы должны использовать предварительно построенный PyPy вместо CPython, если это вообще возможно, а затем на шаге 4 показать, используя свой Python по умолчанию (который, вероятно, CPython). Какое право? Ну, я не делал этого с 1,2 или около того, но IIRC, 'pypy' произвел точно такой же результат примерно в 25% случаев, поэтому ... Я бы сказал, если вы только собираетесь это сделать один раз, попробуйте 'pypy'; если вы собираетесь делать это неоднократно, попробуйте оба и посмотрите. – abarnert
Переводчик * не * оптимизирован для работы на PyPy. Пару лет назад мы пытались использовать PyPy вместо CPython, и это было в два раза быстрее, вот и все. В противном случае вывод будет таким же. Не имеет смысла знать, точно ли это * то же самое: выполнение одной и той же вещи дважды в строке не создает идентичный вывод (есть заметные зависимости от словарного порядка, который не воспроизводится). Но это по-прежнему «одно и то же», для некоторого определения да. –