Re[7]: Препроцессор в python
От: Cyberax Марс  
Дата: 05.10.09 18:48
Оценка:
Здравствуйте, meandr, Вы писали:

M>Если следовать вашей логике то зачем оптимизация нужна вообще, и так все работает

Оптимизация нужна там, где она нужна.

Здесь она не нужна.
Sapienti sat!
Re[9]: Препроцессор в python
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 05.10.09 19:24
Оценка:
Здравствуйте, meandr, Вы писали:

M>Запускаем все на windows получаем cкомпиленый в байт код Pytest.pyc копируем его и test.py на unix машину (FreeBSD7.1) зупускаем и получаем "hellow posix", значит это место не заоптимизировано


Да, действительно отпимизирует только если в условии используется именно __debug__ а не собственные значения тут я ошибся.

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[5]: Препроцессор в python
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 05.10.09 19:24
Оценка:
Здравствуйте, meandr, Вы писали:

M>Re[3]: Препроцессор в python

M>Eue спасибо идею я понял, чет даж незадумывался об этом что сам компайлер викидывает неиспользуемый код, но как сделать так чтобы питон выкинул часть платформенно зависимого кода по условию ума не приложу.

Видимо остается только вариант вынести платформенно-зависимый код в функции или классы в отдельных модулях и использовать динамический import

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[6]: Препроцессор в python
От: FR  
Дата: 06.10.09 04:29
Оценка:
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Видимо остается только вариант вынести платформенно-зависимый код в функции или классы в отдельных модулях и использовать динамический import


Есть еще варианты для особо упорных. В питоне в стандартных модулях практически полностью доступен компилятор в байт код, есть возможность анализировать и менять AST и в общем вполне возможно написать свой компилятор в байт код, выкидывающий все ненужное. Задача не сложная но достаточно муторная.
Ну и для настоящих джедаев, можно написать утилиту преобразующую уже готовый байт код.
Re[2]: Препроцессор в python
От: meandr  
Дата: 09.10.09 07:55
Оценка:
Re: Препроцессор в python
>>Вообще идея заиметь препроцессор в питоне конечно бредовая. Но если мозг съеден целью "оптимизацией до посинения", то подобные вопросы решаются >>>архитектурно — весь платформо-зависимый код кладется в разные модули и где надо делается их условный импорт.


>>>if os.name == 'posix':

>>> import post_rel as rel
>>>else:
>>> import nt_rel as rel

Угу я вообщем то согласен. Тока не могу понять одного почему платформу на которой выполняеться python нелюзя было сделать тоже встроенной перменной, как __debug__? В этом случае часть кода бы просто была викинута при компиляции и никогда бы не исполнялось ветвление.
Posted via RSDN NNTP Server 2.1 beta
Re[3]: Препроцессор в python
От: Daevaorn Россия  
Дата: 09.10.09 08:27
Оценка:
Здравствуйте, meandr, Вы писали:

M>Угу я вообщем то согласен. Тока не могу понять одного почему платформу на которой выполняеться python нелюзя было сделать тоже встроенной перменной, как __debug__? В этом случае часть кода бы просто была викинута при компиляции и никогда бы не исполнялось ветвление.


Потому что питон по большей части кросс-платформенный, а потому платформо-зависимые модули или часть кода в них не очень распространенный юз-кейс. Потом при правильной архитектуре, как уже было сказано выше, ифы не проблема.
Re[4]: Препроцессор в python
От: meandr  
Дата: 09.10.09 09:11
Оценка:
Re[3]: Препроцессор в python
>>Потому что питон по большей части кросс-платформенный, а потому платформо-зависимые модули или часть кода в них не очень распространенный юз-кейс.

Если это все так то почему же в стандартной библиотеке Python море платформо специфичного кода.
Posted via RSDN NNTP Server 2.1 beta
Re[5]: Препроцессор в python
От: Daevaorn Россия  
Дата: 09.10.09 10:02
Оценка:
Здравствуйте, meandr, Вы писали:

M>Re[3]: Препроцессор в python

>>>Потому что питон по большей части кросс-платформенный, а потому платформо-зависимые модули или часть кода в них не очень распространенный юз-кейс.

M>Если это все так то почему же в стандартной библиотеке Python море платформо специфичного кода.


Это плата за то чтобы клиентский код был более высокоуровневым и не зависел от платформы. Это справдливо для всех языков и их стандартных библиотек. Плюс ко всеми в питоне многое из стандартной библиотеки написано не на нем самом а на Си.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.