URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 89393
[ Назад ]

Исходное сообщение
"Релиз компилятора Python - Nuitka 0.4.2"

Отправлено opennews , 31-Мрт-13 10:16 
Выпущен (http://nuitka.net/posts/nuitka-release-042.html) релиз компилятора для языка Python - Nuitka 0.4.2 (http://nuitka.net), позволяющего транслировать скрипт на языке Python в представление на C++, которое можно скомпилировать в исполняемый файл, использующий libpython для  обеспечения максимальной совместимости с CPython (используются штатные средства  CPython для управления объектами). Возможна компиляция как библиотек так и непосредственно исполнительных файлов, в том числе и рекурсивная.


В текущем виде проект уже обеспечивает заметное повышение производительности итогового исполняемого файла по сравнению с CPython (опережение на 258% в тесте pystone). Тем не менее, началась работа по реализации более значительных оптимизаций, которые позволят перевести производительность на новый уровень. В частности, уже реализована начальная система развёртывания констант и планируется задействование средств статического анализа кода для учёта информации о типах переменных при трансляции в код на С++, что позволит использовать нативные типы данных без обращения к libpython. Для преобразования типов, которые не удалось угадать при проведении автоматизированного анализа, разработчику будет предоставлена возможность ручного определения модуля с подсказками об используемых типах. Также планируется реализация интерфейса для взаимодействия с кодом на языке Си, через подключение написанных на Си ctypes-биндингов.

В текущем выпуске полностью поддерживаются версии языка Python 2.6, 2.7, 3.2 и базовый синтаксис версии 3.3. Компиляция выполняется путем трансляции кода в С++ и последующей передачи компилятору С++, таким как g++, MinGW g++, clang. Поддерживаются операционные системы Linux, MacOS X, Windows (32bit), FreeBSD, и аппаратные платформы x86, x86_64 и arm. Выпуск 0.4.2 примечателен добавлением поддержки Python 3.3 и  FreeBSD, а также большой порцией новых оптимизаций и исправлением ошибок.

Установка компилятора может быть выполенена через pip:


<font color="#461b7e">
   sudo pip install nuitka
</font>

Компиляция программ может быть выполнена командой:

<font color="#461b7e">
   nuitka-python --recurse-all some_file.py
или просто:
   nuitka --exe some_file.py

</font>


  

URL: http://nuitka.net/posts/nuitka-release-042.html
Новость: https://www.opennet.ru/opennews/art.shtml?num=36544


Содержание

Сообщения в этом обсуждении
"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Анонимиус , 31-Мрт-13 10:16 
Мне нравится этот оборот "в текущем виде проект уже обеспечивает" применительно к софту. Два раза. Видать это главное его достоинство. Текущий проект.

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 31-Мрт-13 10:53 
Название хорошее, но какие преимущества перед shedskin(который хорош в основном только на тривиальном коде)?

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 01-Апр-13 12:31 
> Название хорошее, но какие преимущества перед shedskin(который хорош в основном только
> на тривиальном коде)?

Название от имени жены разработчика - Анютка, да она русская.
Преимущество - компилируется любой корректный код, не требуется дописывания или переписывания кода.


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено anono , 31-Мрт-13 10:55 
Компилятора Python?
Хмм.

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Зад , 31-Мрт-13 13:50 
Да. На самом Python делают прототипирование, которое позволяет быстро сделать полурабочий вариант. Потом этот полурабочий компиляируют и еще лучше тестируют, и если все хорошо паралельно начинают переписывать проект на что-то побыстрее.

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 02-Апр-13 04:44 
> Да. На самом Python делают прототипирование, которое позволяет быстро сделать полурабочий вариант.

Но зачем тратить время на полурабочий вариант? Не проще ли сразу делать нормально? На что только не пойдет народ чтобы плюсы не учить...


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено бедный буратино , 02-Апр-13 05:37 
>> Да. На самом Python делают прототипирование, которое позволяет быстро сделать полурабочий вариант.
> Но зачем тратить время на полурабочий вариант? Не проще ли сразу делать
> нормально? На что только не пойдет народ чтобы плюсы не учить...

Голову лучше забивать нормальными вещами. Если человек начинает думать категориями плюсов, то он просто не может думать о простых и приятных вещах, это просто не вмещается в него. Он превращается в того, что я считаю страшным оскорблением - в "технаря". Их жизнь проходит за перегородками и у них пропадают человеческие навыки и чувства.

Хватит зомбировать людей, и заставлять их утыкаться в чёрный ящик. В любом, подчёркиваю, в любом таком сообществе царят только снобизм, злоба, неудовлетворённость и ненависть. Это не стоит того.

А нормальный человек плюсы понять не сможет. Чисто физически, не говоря уже о психологически. Потому что ему будет СЛИШКОМ НЕИНТЕРЕСНО и СЛИШКОМ БОЛЬНО. Нельзя понять такое.

Это языки должны быть средством для общения людей, а не люди - придатком и исполнителями для языков.


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Eddhie , 31-Мрт-13 11:11 
Что только не придумают, чтобы не учить C++ :)

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 31-Мрт-13 11:22 
…и это правильно. Всякой фигнёй вроде С++ незачем забивать голову. Вот чистый С — совсем другое дело.

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 31-Мрт-13 11:35 
от чистого си уже и с гцц отказываться начяли ибо не нужен для прикладного софта.

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 31-Мрт-13 11:54 
>от чистого си уже и с гцц отказываться начяли ибо не нужен для прикладного софта.

Это произошло, что все старые и опытные программисты самоустранились, и в проект нахлынула волна неопытных новичков. Как говорил Линус Торвальдц, уже того факта, что на си++ пишут там много посредственных программистов, должно быть достаточно, чтобы полностью отказаться от этого языка.


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 31-Мрт-13 12:21 
На русском языке говорят много плохих людей, полностью откажитесь от русского. Или вам надо, чтобы САМ ЛИНУС это сказал?

P.S. с вашим оппонентом тоже не согласен. С вполне живет и для прикладного софта, во-первых, а во-вторых, компилятор - не прикладной софт, и причины перехода на С++ были явно далеки от вашего "кококо не подходит".


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 31-Мрт-13 13:05 
Покажите мне большие прикладные проекты на СИ которым не более 2 лет.

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 31-Мрт-13 13:11 
Покажите мне большие прикладные проекты, которым не более 2 лет.

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено fiskus , 31-Мрт-13 14:17 
https://github.com/linuxmint/Cinnamon

https://github.com/languages/C


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 02-Апр-13 00:36 
Cinnamon на си, с вами плохо похоже. СИ там только по историческим причинам ибо это форк.
Посмотрите сколько они коммитят в js и в СИ.

https://github.com/languages/C - и где тут прикладные проекты которым не больше 2 лет и на си и не по историческим причинам а по объективным.


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 02-Апр-13 04:47 
> и на си и не по историческим причинам а по объективным.

Ну знаете, любые проекты - по историческим причинам. Reason: вы не можете писать на ЯП который еще даже не изобрели. Поэтому вы неизбежно будете выбирать какой-то из существующих ЯП. Си помнится первый по популярности ЯП в мире, подвинувший яву обратно на второе место. Но, конечно, лечить о том что на си все пишут только по историческим причинам это не мешает. Ведь "если факты не подтверждают теорию - от них надо избавиться!"



"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Eddhie , 02-Апр-13 12:47 
>> Си помнится первый по популярности ЯП в мире, подвинувший яву обратно на второе место.

Это что ли по индексу Tiobe?


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 02-Апр-13 20:35 
Не любые а только те, которым досталось в наследство гора хода, что свойственно опенсорсу.

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Anonim , 01-Апр-13 11:48 
> На русском языке говорят много плохих людей, полностью откажитесь от русского. Или
> вам надо, чтобы САМ ЛИНУС это сказал?

На русском, к сожалению, говорят все меньше и меньше. Больше говорят на Олбанском, вот от него бы отказаться



"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 31-Мрт-13 13:09 
Врать и придумывать сказки нехорошо. Новичков там уже лет 5 не было, разве что индусы из одного университета (где их натаскивает один из ветеранов). На C++ перешли в том числе для того, чтобы снять технический долг и привлечь новичков.

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 31-Мрт-13 13:19 
> Врать и придумывать сказки нехорошо. Новичков там уже лет 5 не было,
> разве что индусы из одного университета (где их натаскивает один из
> ветеранов). На C++ перешли в том числе для того, чтобы снять
> технический долг и привлечь новичков.

Про технический долг это вы на хабре лучше расскажите. Реальная проблема gcc не технический долг, а то что там давно не наблюдается нормальных специалистов. Вообще, можно сформировать некий критерий, по которому человек, знающий си, но не знающий си++ это лучший программер, знающий и то и другое - средний, а знающий только си++ - быдлокодер.


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Eddhie , 31-Мрт-13 13:24 
Ох...ть! Белый - хорошо, мулат - так себе, чёрный - плохо.

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 31-Мрт-13 13:37 
Нет не так. Если у тебя родители наркоманы - ты плохой, если строители - средний, если заняты в науке - хороший. Когда кто-то придёт и станет говорить мне, что он не любит си, поскольку это отстой, не поддерживающий классы и наследование, я скажу ему, чувак, может быть ты и хороший программист, но происхождение твоих навыков весьма сомнительно. И да, оказывается, он быдлокодил на visual studio, пока те не перешли на си шарп.

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Eddhie , 31-Мрт-13 15:03 
Да нет, это больше похоже на "если конструктор чертит на бумаге, он крутой спец, а иначе быдлоинженерит в САПРе".

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено GraiT , 01-Апр-13 14:30 
А ведь в твоих словах есть доля истины, так как после хорошого освоения карандаша с бумагой и долгим изучением текущих САПР (например, Autocad), начинаешь понимать, что в текущем их состоянии, всё их приимущества не более чем фантазия авторов сего поделия!

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 01-Апр-13 20:08 
Ути пуси :) На спор ты тупо карандашиком хиленький А0 будешь неделб рисовать и всё равно зарубят на несоответствии\помарках. Зажралися народец то :) Что такое тушью обводить н не знает :)

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 02-Апр-13 04:52 
> придёт и станет говорить мне, что он не любит си, поскольку
> это отстой, не поддерживающий классы и наследование, я скажу ему, чувак,
> может быть ты и хороший программист, но происхождение твоих навыков весьма сомнительно.

К вопросу о программистах и их знаниях: http://ithappens.ru/story/10776

Ну что, господа программисты. Признавайтесь,
1) Кто и сколько промахов сделал бы решая эту задачу сам?
2) Кто из вас может оценить точность вычислений?
3) Кто из вас может оценить влияние различного оборудования на ответ?

А казалось бы, такая простая задача...


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 31-Мрт-13 14:37 
> Вообще, можно сформировать некий критерий, по которому человек, знающий си, но не знающий си++ это лучший программер, знающий и то и другое - средний, а знающий только си++ - быдлокодер.

Знать Си++, не зная Си — всё равно, что владеть кошельком, но не владеть его содержимым.


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 31-Мрт-13 15:51 
Забавное заблуждение

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 31-Мрт-13 16:07 
Почему заблуждение? Общее подмножество Си и Си++ охватывает Си почти полностью. Хочешь, не хочешь, но если ты действительно знаешь Си++, то и Си ты тоже знаешь. Согласно modus tollens, из этого следует, что если ты не знаешь Си — тщетно надеяться, что ты знаешь С++. Что и требовалось доказать.

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 01-Апр-13 20:11 
> Почему заблуждение? Общее подмножество Си и Си++ охватывает Си почти полностью. Хочешь,
> не хочешь, но если ты действительно знаешь Си++, то и Си  ты тоже знаешь.
> Что и требовалось доказать.

А потом такой фрукт слегка поправляет неточности в коде старичков ... и в Debian уходит дырявая крипта :(
Дьявол в деталях детка, хелловорлд я те на любом языке напишу - и что я их все знаю?


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 02-Апр-13 04:54 
> Забавное заблуждение

Нифига. Нормальный си++'ник си знает. А вот быдлокодеры которые полагают что си мол слишком сложно, а вот си++ с его наворотами это да - они спиди гонщики. Они вообще по факту не особо понимают как их программа работает. Они буковки в редакторе расставляют. Что по факту будет сделано машиной после расставления букв такие индивиды вообще не в курсе.


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 01-Апр-13 12:35 
> Про технический долг это вы на хабре лучше расскажите. Реальная проблема gcc
> не технический долг, а то что там давно не наблюдается нормальных
> специалистов. Вообще, можно сформировать некий критерий, по которому человек, знающий
> си, но не знающий си++ это лучший программер, знающий и то
> и другое - средний, а знающий только си++ - быдлокодер.

Чем человек больше знает и умеет - тем хуже?
Вы бы свою секту чисто "Си-разработчиков", c опытом в одну курсовую закрыли бы уже.


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено GraiT , 01-Апр-13 14:34 
>Чем человек больше знает и умеет - тем хуже?

А ведь ты прав)


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено бедный буратино , 01-Апр-13 14:48 
>>Чем человек больше знает и умеет - тем хуже?
> А ведь ты прав)

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


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 01-Апр-13 18:25 
> Чем человек больше знает и умеет - тем хуже?

Не, тогда хуже всех был бы тот, кто знает Си и Си++ одновременно. Очевидно же!


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 31-Мрт-13 12:22 
>Вот чистый С — совсем другое дело.

Чистый C хорош для ядра ОС. Пока что хорош. А вот в области гуя любители чистого C родили такого уродца, как Gtk.


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено BratSinot , 31-Мрт-13 13:02 
Сами вы уродец, а Gtk простой как пробка, а связке с linglade/GtkBuilder вообще сводится к написанию функций для ивентов.

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Зад , 31-Мрт-13 13:52 
Все нормально с GTK, язык C там очень даже в тему. Тем более что сейчас на нем писать нет нужды, есть Vala, на котором достаточно описать логику и обработчиков, остальное делается в Glade

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 02-Апр-13 04:56 
> Чистый C хорош для ядра ОС. Пока что хорош.

И вот уже лет 40 как ничего лучше толком и не сделали.

> А вот в области гуя любители чистого C родили такого уродца, как Gtk.

Хрень как хрень. Живет себе, развивается.


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено лох , 31-Мрт-13 12:47 
> Что только не придумают, чтобы не учить C++ :)

а теперь представьте, что, например, все сайты писались бы на С++. Как с серверной, так и с клиентской стороны. Загружаешь страничку, запускаешь копмилятор, и через 20 минут на страничке появляются анимация, ютуб и обработчики кликов...
И почему вообще именно С++? Тогда уж сразу, что только не придумают, чтобы не учить ассемблер, тьфу, двоичные коды.


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Зад , 31-Мрт-13 13:53 
Твой ник говорит сам за себя.
p.s. мой тоже

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено YetAnotherOnanym , 31-Мрт-13 14:15 
Ну ладно, ладно, сравнили булки с пальцем. Одно дело загрузил-отрендерил-показал, другое дело - сервис, который крутится 24*7 и молотит этих страниц тыщщи в секунду.

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено fiskus , 31-Мрт-13 14:22 
Плохой пример. Если бы все писалось на C++, браузер был бы для просмотра только текста, а у всех сайтов были бы десктопные-приложения. Ну как на телефонах сейчас.

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Нанобот , 31-Мрт-13 11:25 
не прошло и тридцати лет, как разработчики решили заняться оптимизацией питона

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено d , 31-Мрт-13 11:42 
"релиз компилятора ..., позволяющего транслировать"
Я всю жизнь думал, что такие программы называются словом на букву т. Но, видимо, сейчас модно писать компиляторы. Почти как раньше браузеры и позже операционные системы.

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Зад , 31-Мрт-13 13:46 
В компилятор встроен транслятор, если что. Транслятор это шткуа которая транслирует из одного представления в другое.

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 31-Мрт-13 13:50 
> В компилятор встроен транслятор, если что. Транслятор это шткуа которая транслирует из
> одного представления в другое.

Терминатор, это такая штука, которая терминирует нечто, то есть превращает из обычного состояния в состояние терминированности.


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 01-Апр-13 12:40 
>> В компилятор встроен транслятор, если что. Транслятор это шткуа которая транслирует из
>> одного представления в другое.
> Терминатор, это такая штука, которая терминирует нечто, то есть превращает из обычного
> состояния в состояние терминированности.

Терминатор это губернатор Калифорнии.


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 01-Апр-13 14:48 
Терминатор — это граница между дневным и ночным полушариями планеты.

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено бедный буратино , 01-Апр-13 14:50 
> Терминатор — это граница между дневным и ночным полушариями планеты.

Теперь понятно, почему 10Base2/10Base5 работали в зависимости от времени суток.


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 31-Мрт-13 13:47 
Это всё пошло с llvm.

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 31-Мрт-13 11:50 
Когда люди пытаются компилить язык с динамической типизцией, неизбежно возникает необходимость предсказания типов и перекомпиляции, в случае если изначально тип был определён неверно. Потом они говорят: ребята, давайте сделаем типизацию, дадим подсказку нашему чудо-компилеру. Так получается новый недо-язык, который имеет мало общего с исходным.

А всё из-за того что люди не хотят мириться с тем, что он тормозит, вместо того чтобы учить более производитеьные решения. Каждой задаче свой язык, - это аксиома, которую должен вызубрить каждый


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Grmmhnd , 31-Мрт-13 12:20 
Беда, в том, что, как правило, при использовании более производительных решений начинает страдать скорость разработки, поэтому и появляются такие подобия.
Но, все-таки, то, как к этой проблеме подходят Scala и Go, мне кажется более правильным.

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено лох , 31-Мрт-13 12:43 
> не хотят мириться с тем, что он тормозит
> Каждой задаче свой язык

вы сами себе ответили. Ничего не тормозит. По крайней мере на тех задачах, на которых рационально использовать питон.


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 02-Апр-13 05:14 
> задачах, на которых рационально использовать питон.

Т.е. всякие одноразовые скриптики.


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 02-Апр-13 18:55 
Одноразовые скриптики — это оксюморон, как горячий лёд или windows-сервер. Писать скрипт для того, чтобы использовать его один раз, а потом выбросить, нецелесообразно. Скрипты пишут тогда, когда они могут пригодиться еще не раз.
И да, какой смысл писать скрипт на python, если есть sh, perl и tcl?

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 31-Мрт-13 13:13 
>Когда люди пытаются компилить язык с динамической типизцией, неизбежно возникает необходимость предсказания типов и перекомпиляции, в случае если изначально тип был определён неверно

Нет. Компилятор вычисляет типы по простым правилами auto a = "str"; или решением уравнений. Функции в питоне имеет смысл обрабатывать как шаблонные функции в C++, то есть для каждого набора типов аргументов инстансцируется специализация функции и генерируется код для конкретного набора типов.


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 31-Мрт-13 13:23 
>>Когда люди пытаются компилить язык с динамической типизцией, неизбежно возникает необходимость предсказания типов и перекомпиляции, в случае если изначально тип был определён неверно
> Нет. Компилятор вычисляет типы по простым правилами auto a = "str"; или
> решением уравнений. Функции в питоне имеет смысл обрабатывать как шаблонные функции
> в C++, то есть для каждого набора типов аргументов инстансцируется специализация
> функции и генерируется код для конкретного набора типов.

Это подходит только для простых типов, а что делать с объектами?


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 31-Мрт-13 13:48 
делать толстые таблицы методов на манер того, как это делается в objective C.

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 31-Мрт-13 13:20 
> Когда люди пытаются компилить язык с динамической типизцией, неизбежно возникает необходимость предсказания типов и перекомпиляции, в случае если изначально тип был определён неверно

Избежно.


#include <stdio.h>
// Упрощённая модель динамической типизации:
typedef enum type_t {NULL, INTEGER, REAL, OBJECT} type_t;
typedef struct dynamic_type {
    type_t tag;
    union {
        long integer_value;
        double real_value;
        void *pointer_value;
    };
} dynamic_type;

int main(){
    dynamic_type variable1 = {.tag = INTEGER, .integer_value = 42};
    dynamic_type variable2 = {.tag = REAL, .real_value = 3.14159265358979};
    printf("SUMM: %f\n", variable1.integer_value + variable2.real_value);
}


Это что, правда так сложно?

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 31-Мрт-13 13:27 
>[оверквотинг удален]
> } dynamic_type;
> int main(){
>     dynamic_type variable1 = {.tag = INTEGER, .integer_value =
> 42};
>     dynamic_type variable2 = {.tag = REAL, .real_value =
> 3.14159265358979};
>     printf("SUMM: %f\n", variable1.integer_value + variable2.real_value);
> }
>

> Это что, правда так сложно?

Не сложно, но при чём тут компиляция питона в си? Возмём код z = x + y. Теперь покажите, как сделать из этого си, если тип x и y не известен.


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено CPP , 31-Мрт-13 13:50 
>[оверквотинг удален]
>> 42};
>>     dynamic_type variable2 = {.tag = REAL, .real_value =
>> 3.14159265358979};
>>     printf("SUMM: %f\n", variable1.integer_value + variable2.real_value);
>> }
>>
>> Это что, правда так сложно?
> Не сложно, но при чём тут компиляция питона в си? Возмём код
> z = x + y. Теперь покажите, как сделать из этого
> си, если тип x и y не известен.

В С++ думаю, что это будут объекты (абстрактные типы), а не базовые типы данных, так же как в C#. Возникает ощущение, что человек изобретает велосипед -)


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 31-Мрт-13 13:52 
> Возмём код z = x + y. Теперь покажите, как сделать из этого си, если тип x и y не известен.


python_type z;
if (x.__add__.type == PYTHON__FUNC){
    x.__add__(x, y, &z);
}

//тем временем где-то внутри функции python_float.__add__(const python_type x, const python_type y, python_type &z):
double x_temp, y_temp;
bool result = cast_to_double(x,&x_temp);
bool result = result && cast_to_double(y,&y_temp);
if (result){
  z.type = PYTHON_FLOAT;
  z.float_value = x_temp + y_temp;
  return SUCCESS;
} else {
  fputs("Type conversion error", stderr);
  return FAILURE;
}



"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 31-Мрт-13 14:22 
Читаю: если x позволяет складывать, вызвать функцию add в предположении что x,y,z это double. Ну да ладно, по крайней мере есть код. Фишка в том, что это идёт в сторону cpython. Что нужно получить на выходе:

double z = x + y;

А ещё лучше сразу машинный код. В случае когда есть хотя бы минимальная возможность, сделать:

int z = x + y;

Ибо целые числа работают значительно быстрее. Посему без перекомпиляции никак.


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 31-Мрт-13 14:48 
> Что нужно получить на выходе:
> double z = x + y;
> А ещё лучше сразу машинный код. В случае когда есть хотя бы минимальная возможность, сделать:
> int z = x + y;
> Ибо целые числа работают значительно быстрее. Посему без перекомпиляции никак.

Нет.
Если типы x и y известны заранее, то и тип z будет известен заранее (или будет заранее известный Error), и никакая перекомпиляция не потребуется.
Если тип x или y не известен заранее, то и тип z будет неизвестен заранее, и никакая перекомпиляция не поможет.
Что непонятно?


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 01-Апр-13 12:27 
> Не сложно, но при чём тут компиляция питона в си? Возмём код
> z = x + y. Теперь покажите, как сделать из этого
> си, если тип x и y не известен.

Во-первых Вы когда примеры приводите, постарайтесь чтобы они были корректны.
Ваш код не корректен если типы x и y не известны, python вернет ошибку.

Во-вторых изучите мат.часть. На лицо полное не понимание вопроса. Есть много материалов по типизации, например вот хорошая статья: http://habrahabr.ru/post/161205/


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 02-Апр-13 05:18 
> z = x + y. Теперь покажите, как сделать из этого си, если тип x и y не известен.

Для си вообще до балды на самом деле какие там типы. Значения в памяти и нии...т. Как именно вы желаете суммировать гайки с бананами - ваше дело. Технически доступиться до гаек и бананов - можно.

А вот то что некто может нисколько не сомневаясь засуммировать одно и другое и даже что-то на выход вернуть - вот это уже баг, а не фича. Т.к. програмер накосячит и не заметит нифига. Ну а что, чего-то же посчиталось!


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено 123 , 02-Апр-13 10:25 
"...Для си вообще до балды на самом деле какие там типы..."

Задача не транслировать python в С, а транслировать в корректно работающую программу на C.


if <условие 1>:
  x, y = "123", "456"
elif <условие 2>:
  x, y = 123, 456
else:
  x, y = [1, 2, 3], [4, 5, 6]

z = x + y

Пример синтетический, но как это транслировать в C, которому "типы до балды"?


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 02-Апр-13 18:28 

python_type *x, *y, *z;
if (<условие 1>){
  x = new_python_string("123");
  y = new_python_string("456");
} else if (<условие 2>) {
  x = new_python_int(123);
  y = new_python_int(456);
} else {
  x = new_python_dict(new_python_int(1),new_python_int(2),new_python_int(3));
  y = new_python_dict(new_python_int(4),new_python_int(5),new_python_int(6));
}
z = get_python_method(x,"__add__")(y);

Синтетическому примеру — синтетическое решение. Описания типа python_type и реализации функций не привожу, ибо принцип уже описан в примерах выше.

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 01-Апр-13 12:16 
>Когда люди пытаются компилить язык с динамической типизцией, неизбежно возникает необходимость предсказания типов и перекомпиляции, в случае если изначально тип был определён неверно.

Вы путаете слабую типизацию с динамической. Вот например в Си слабая, статическая, явная типизация. И там возможны ошибки о которых вы говорите.

А в Python строгая, динамическая, неявная типизация, и приведение одного типа к другому возможно только через специальные функции, да и то не всегда.


>А всё из-за того что люди не хотят мириться с тем, что он тормозит, вместо того чтобы учить более производитеьные решения.

Да! Почти не осталось людей, которые пишут на fortran и в машинных кодах.


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 02-Апр-13 05:19 
> Да! Почти не осталось людей, которые пишут на fortran и в машинных кодах.

То-то все критичные места в кодеках и тому подобном на ассемблере выписаны. Оно и понятно - если голову засунуть в бидон то кажется что весь мир состоит только из этого бидона.


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено бедный буратино , 02-Апр-13 05:42 
>> Да! Почти не осталось людей, которые пишут на fortran и в машинных кодах.
> То-то все критичные места в кодеках и тому подобном на ассемблере выписаны.
> Оно и понятно - если голову засунуть в бидон то кажется что весь мир состоит только из этого бидона.

Кодеки пишут специально созданные для этого люди. У обычных людей в жизни совсем другая цель.


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 31-Мрт-13 12:29 
Оставим в стороне вопрос нужно/не нужно. Больше интересует насколько оно работоспособно. Раньше про проект не было слышно ничего.

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 31-Мрт-13 13:09 
вы думаете оно плохо работает? в режиме интерпретации не отличить от питона

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 31-Мрт-13 13:13 
PyPy мне кажется более перспективным

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 31-Мрт-13 13:46 
От GIL'а оно избавляется? Если нет, то толку то.

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено all_glory_to_the_hypnotoad , 31-Мрт-13 14:13 
от GIL пробуют избавиться в PyPy

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 01-Апр-13 12:44 
> От GIL'а оно избавляется? Если нет, то толку то.

О Вы знаете такие слова! Для справки GIL - это такая штука, которую при желании можно просто отключить в обычном CPython, обычно в библиотеках связанных с вычислениями (numpy, scipy и т.п.) так и делают.


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 01-Апр-13 20:15 
> Для справки GIL - это такая штука, которую при желании можно просто отключить в обычном CPython,
>обычно в библиотеках связанных с вычислениями (numpy, scipy и т.п.) так и делают.

Бобёр -выдыхай!


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 02-Апр-13 05:21 
> библиотеках связанных с вычислениями

Вычисления на питоне - это что-то типа гонок на асфальтоукладчиках.


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 05-Апр-13 11:52 
>Вычисления на питоне - это что-то типа гонок на асфальтоукладчиках.

Так а чё давай сравним скорость на реальных примерах. Например нужно перемножить пару матриц содержащих комплексные числа. С тебя рабочий код на Си. Я тебе свои две строчки кода на python покажу как ты код покажешь, а то обычно такие товарищи уклоняются от прямого сравнения, и да я уверен что эти две строчки моего кода будут быстрее выполнятся особенно на больших размерностях.  


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 31-Мрт-13 14:08 
Python вряд ли что-то поможет

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено YetAnotherOnanym , 31-Мрт-13 14:11 
> уже обеспечивает заметное повышение производительности итогового исполняемого файла по сравнению с CPython (опережение на 258% в тесте pystone). Тем не менее, началась работа по реализации более значительных оптимизаций, которые позволят перевести производительность на новый уровень

Охренеть... Это на каком же уровне его производительность сейчас? Всё-таки, похоже, я был прав, когда отказался от зопе/плоне/джанго/что-там-ещё-могло-быть когда выбирал основу для сайта конторы.


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено chinarulezzz , 31-Мрт-13 14:38 
Скажи нам всем, что же ты выбрал вместо тормозного питона-интерпретатора? С++?

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено спец , 31-Мрт-13 15:15 
ты написал сайт на чистом C? кулибин... :)))

браво, подскажи название своей "конторы", посмотреть, оценить r/s
Если даже в нашей конторке, Django на nginx + uwsgi по тестам идёт 200 r/s... должно быть у вас конкурент фейсбука?


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено YetAnotherOnanym , 31-Мрт-13 15:35 
> должно быть у вас конкурент фейсбука

Смотрите в противоположную сторону. Производительность - это ещё и возможность арендовать виртуальный сервер подешевле. А сайт не скажу, потому что всё заглохло за неимением бабок - как был у конторы сайт из пяти страничек на джумле, так и остался.


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 01-Апр-13 12:50 
>> должно быть у вас конкурент фейсбука
> Смотрите в противоположную сторону. Производительность - это ещё и возможность арендовать
> виртуальный сервер подешевле.

Можете привести пример сдачи/аренды такого сервера?

>А сайт не скажу, потому что всё заглохло
> за неимением бабок - как был у конторы сайт из пяти
> страничек на джумле, так и остался.

Вот она - история успеха С++ в покорение веба.


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено YetAnotherOnanym , 01-Апр-13 13:58 
google://аренда виртуального сервера

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 01-Апр-13 14:17 
>google://аренда виртуального сервера

Нет. Нужен пример экономии.  

  


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено бедный буратино , 01-Апр-13 13:43 
> ты написал сайт на чистом C? кулибин... :)))

Можно я скажу?

Я когда-то писал сервер на чистом basic и winsock. С нуля реализовал веб-сервер, сначала посмотрев, как работает apache, гоняя его telnet-клиентом, потом свой сервер гоняя всеми браузерами, от ie до links. Никакой документации не смотрел, да и не было её у меня. У меня был матрас, бельевая верёвка, на которой висела мышь (компьютерная). И всю основную функциональность я написал за сутки, не отвлекаясь на сон, потому что МЕНЯ ШТЫРИЛО, безо всякого компота. Потом я приделал и post-запросы и нужный мне вариант cookies, и прочее.

Тогда я изобрёл и роуты, и всё остальное, что потом встретил в python-фреймворках. В php не было главного, висения в памяти, поэтому под свои задачи я мог делать всё, что хотел. И, почти всё это, не сговариваясь, я потом получил в bottle, по иронии судьбы.

Но на те года у меня было главное - возможность получить exe-шник в несколько десятков килобайт, делающий иконку в панели windows, через которую можно управлять приложением.

Жаль только, жить в эту пору прекрасную уж не придётся ни мне, ни тебе. Но те пути, которые я смог найти, обойдя традиционную схему, и которые мне подсказывала схема новая - этому просто не могло бы быть аналогов, если бы я просто ковырял php. Начиная от висения в памяти (есть в python-фреймворках) и заканчивая некоторыми нехитрыми трюками, которые не pythonic, грязные, но которые позволяли некоторые детали делать за 10 секунд "прям здесь" вместо чего-то там с подготовкой.

Когда ты всё сделал с нуля, ты царь и бог на каждом уровне, и у тебя каждая деталюшечка под контролем, ради интересов проекта можно даже приделать грязный хак на низком уровне и не бояться. Это не в интересах программирования, но это в интересах истины. Это не разработка, это создание объекта современного искусства, "малевания", когда главное - не инструменты, а задумка в голове.

А пыхеры так и остались младенцами, которые думают, что видят весь мир, но это только потому, что весь мир у них малюсенький. Чтобы оставить младенческое, нужно вырасти. И поэтому те, кто пишут для души - только они и делают шедевры и провалы, 0.01% шедевров на 99.9% провалов. У остальных же процент шедевров и объектов искусства, бросающих вызов - ровно 0.00%. Нужно смотреть ширше, и нужно уметь видеть ширше. Для этого можно и поилку для хомячка на emacs lisp написать, а не только веб-сайт на c. Искусство - это когда ты знаешь, что творишь, и зачем творишь. Когда ты знаешь только "на чём" - это ремесло.

Кстати, веб-сайт на c - это не так уж и смешно. Есть http://www.koanlogic.com/klone/


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено YetAnotherOnanym , 01-Апр-13 14:10 
>> ты написал сайт на чистом C? кулибин... :)))
> Кстати, веб-сайт на c - это не так уж и смешно. Есть
> http://www.koanlogic.com/klone/

Есть ещё хорошая ссылка - http://en.wikipedia.org/wiki/Comparison_of_web_application_f...
Но только если сама идея вдумчиво подойти к выбору основы для будущего сайта вызывает у людей насмешку и неприятие - зачем давать им какие-то ссылки?
(кст, за ссылку спасибо ;))


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 01-Апр-13 14:34 
>> ты написал сайт на чистом C? кулибин... :)))
> Можно я скажу?
> Я когда-то писал сервер на чистом basic и winsock. С нуля реализовал
> веб-сервер, сначала посмотрев, как работает apache, гоняя его telnet-клиентом, потом свой

В университете веб-сервер на Си писали за одну пару лабораторки.
Так что нашел чем хвастаться.

> Тогда я изобрёл и роуты, и всё остальное, что потом встретил в
> python-фреймворках.

Это изобрели задолго до тебя, в первом же веб-сервере, и даже до него в gopher. Так как отдавать отдельную страничку отдельной функцией это первое что приходит в голову.

> Когда ты всё сделал с нуля, ты царь и бог на каждом
> уровне, и у тебя каждая деталюшечка под контролем, ради интересов проекта
> можно даже приделать грязный хак на низком уровне и не бояться.

Фигня это всё. В чём смысл если каждый напишет себе свою ОС, свой веб-сервер. Попробовать, понять как работатет - ну хорошо, понял, дальше что?

> Это не в интересах программирования, но это в интересах истины. Это
> не разработка, это создание объекта современного искусства, "малевания", когда главное
> - не инструменты, а задумка в голове.
> Кстати, веб-сайт на c - это не так уж и смешно. Есть
> http://www.koanlogic.com/klone/

А еще первые CGI на нем писали. Давайте выкинем последние 30 лет развития и начнем все по новому изобретать.


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено бедный буратино , 01-Апр-13 14:46 
> В университете веб-сервер на Си писали за одну пару лабораторки.
> Так что нашел чем хвастаться.

Я не хвастаюсь, я объясняю. И главное - это не вебсервер, это платформа, чтобы можно было делать быстро, удобно и в соответствии с художественным замыслом. Я на своей платформе несколько игрушек сделал.

> Это изобрели задолго до тебя

Именно. Но сам факт, что даже я, в подвальных условиях, не являясь программистом и не зная ничего из того, что происходит, придумал схему, которая 1 в 1 повторяла - только доказывает, что это ЕСТЕСТВЕННОЕ ПОЛОЖЕНИЕ ВЕЩЕЙ. Ну, конечно, кроме программистов, у которых мозги набекрень, и для которых программирование это не средство, а процесс.

> Фигня это всё. В чём смысл если каждый напишет себе свою ОС, свой веб-сервер.

Конечно, фигня. Если каждый напишет свою "Тайную вечерю", свою "Орлеанскую деву", снимет свои "Слёзы капали". Но смысл создания - в создании. А не в элементах. На элементы нужно смотреть как на элементы - если они только часть замысла, а не весь замысел. Если для этого требуется своя ОС - нужно писать свою ОС или менять замысел. А творцы - это те, которые не слушают стереотипы, а разрушают их.

А те, кто мыслит шаблонами, тот и будет в категориях "я = все" и "все = я". Это не творец, это обезьяна. Человек немыслящий.

http://upload.wikimedia.org/wikipedia/commons/b/b6/Diogenes_...

> Попробовать, понять как работатет - ну хорошо, понял, дальше что?

Опять вы путаете искусство и ремесло. Художника и маляра. Ну рисует краска красным, и что? А разница между поделками и творениями на века - именно в деталях. И если для одной единственной детали требуется трудиться 99% времени - художник будет трудиться.


>> Кстати, веб-сайт на c - это не так уж и смешно. Есть
>> http://www.koanlogic.com/klone/
> А еще первые CGI на нем писали. Давайте выкинем последние 30 лет развития и начнем все по новому изобретать.

А давайте вы не будете говорить о вещах, в которых не понимаете, не будете пытаться строить из себя то, кем не являетесь и не будете делать вид, что понимаете, о чём с вами говорят.

И писать на klone - это не проблема. Если нужны ресурсы. Всяко лучше, чем на php.


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 01-Апр-13 17:58 
>А давайте вы не будете говорить о вещах, в которых не понимаете,

Начни с себя.


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено бедный буратино , 02-Апр-13 04:43 
>> А давайте вы не будете говорить о вещах, в которых не понимаете,
> Начни с себя.

Я могу себе позволить


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 04-Апр-13 01:19 
>>> А давайте вы не будете говорить о вещах, в которых не понимаете,
>> Начни с себя.
> Я могу себе позволить

Можешь позволить? Ну так начни не помалкивать о вещах в которых не понимаешь.


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 02-Апр-13 00:09 
>И писать на klone - это не проблема. Если нужны ресурсы. Всяко лучше, чем на php.

Писать на нём одна большая проблема. Где ORM/DAL, где языки разметки вроде markdown, это же банальный компилируемый php код на Си внутри html, вы реально не понимаете почему так делать нельзя? Вы действительно предлагаете это убожество вместо RoR,Django,Web2py,Play?


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено бедный буратино , 02-Апр-13 04:42 
>>И писать на klone - это не проблема. Если нужны ресурсы. Всяко лучше, чем на php.
> Писать на нём одна большая проблема. Где ORM/DAL, где языки разметки вроде
> markdown, это же банальный компилируемый php код на Си внутри html,

Там нормальные шаблоны. В отличие от php.

> вы реально не понимаете почему так делать нельзя? Вы действительно предлагаете
> это убожество вместо RoR,Django,Web2py,Play?

Не вместо. Есть и разные подходы, и разные задачи, и разное исполнение. Сторонникам "один рейх, один фюрер" советую моментально отправиться на винду и использовать её форумы и доски.


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 04-Апр-13 01:18 
>>>И писать на klone - это не проблема. Если нужны ресурсы. Всяко лучше, чем на php.
>> Писать на нём одна большая проблема. Где ORM/DAL, где языки разметки вроде
>> markdown, это же банальный компилируемый php код на Си внутри html,
> Там нормальные шаблоны. В отличие от php.
>> вы реально не понимаете почему так делать нельзя? Вы действительно предлагаете
>> это убожество вместо RoR,Django,Web2py,Play?
> Не вместо. Есть и разные подходы, и разные задачи, и разное исполнение.
> Сторонникам "один рейх, один фюрер" советую моментально отправиться на винду и
> использовать её форумы и доски.

Так ты же сам стороник одного решения вот и вперед.


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 02-Апр-13 05:23 
> идёт 200 r/s...

А нжинкс например спокойно выдаст несколько тысяч r/s :). Так что как вы понимаете, just in case, bottleneck-ом станет ваша питонятина, а вовсе не.



"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено бедный буратино , 02-Апр-13 05:45 
>> идёт 200 r/s...
> А нжинкс например спокойно выдаст несколько тысяч r/s :). Так что как
> вы понимаете, just in case, bottleneck-ом станет ваша питонятина, а вовсе не.

А проект на C выдаёт 0 r/s. Потому что не создан, или выкинут по причине "развивать некому".

А ещё у nginx есть кеширование. А ещё есть статика, которая благодаря силе http идёт отдельными запросами. А ещё есть js. И много других умных слов, которые сами по себе не средства, а только кирпичики, по которому СОЗДАТЕЛЬ СОЗДАЁТ проекты, а технарь может их только перекладывать туда сюда, чтобы выглядело круто, давало крутые цифры, но людям никак не помогало вообще и в принципе.



"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено web , 02-Апр-13 10:00 
для просвещения невежд:

https://github.com/aaugustin/django-c10k-demo

Это тебе на заметку те цифры которые были 3года назад:

http://developers.facebook.com/blog/post/301/


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено спец , 02-Апр-13 15:04 
Мда, анонимы-экстрасенсы вышли из отпуска))

Данное число вместе с подключенной SQL БД, в которой у нас в т.ч длинные транзакции.
один сервер, под тестом, сейчас идёт наращивание и проработка функционала, и нам было интересно узнать в текущий момент времени, какую нагрузку держит код.

Поверьте, мы видим под тестом узкие места и это не python.

PS:
200r/s - это более 17 000 000 хитов в сутки.


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 01-Апр-13 20:16 
> Охренеть... Это на каком же уровне его производительность сейчас? Всё-таки, похоже, я
> был прав, когда отказался от зопе/плоне/джанго/что-там-ещё-могло-быть когда выбирал
> основу для сайта конторы.

Сдаётся мне твоей конторе это не помогло :) Ибо не то меняли ...


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено GoTLiuM , 31-Мрт-13 14:52 
# cat test.py
b = 0
for i in range(100):
        for x in range(100):
                b += i * x
print "Done"
# nuitka --exe test.py
# time ./test.exe
Done

real    0m0.064s
user    0m0.044s
sys     0m0.020s
# time python test.py
Done

real    0m0.028s
user    0m0.020s
sys     0m0.004s

меняем 100 на 10000 и перезапускаем

# time ./test.exe
Done

real    0m14.777s
user    0m14.773s
sys     0m0.000s
# time python test.py
Done

real    0m28.759s
user    0m28.722s
sys     0m0.012s

Отсюда следует, что не всегда оно надо.


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Мяут , 31-Мрт-13 14:57 
Оно еще и exe-файлы генерит? :)

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено GoTLiuM , 31-Мрт-13 15:08 
обычный исполняемый бинарник. и да, пример был из под Linux)))

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 02-Апр-13 00:44 
> Оно еще и exe-файлы генерит? :)

Есть возможность кросскомпиляции при указании опции --windows-target.


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено pro100master , 01-Апр-13 11:34 
оно, может, и не надо, а вот с++, например, надо :)
$time ./test
Done

real    0m0.002s
user    0m0.000s
sys     0m0.000s

$ cat main.cpp
#include <iostream>

int main(int argc, char **argv) {
  
    long x, y, b;
  
    b = 0;
    for( x=0; x<10000; x++)
    {
      for( y=0; y<10000; y++)
      {
        b += x * y;
      }
          
    }
    
    std::cout << "Done" << std::endl;
    return 0;
}


зы всегда прикалывали такие оторванные от жизни тесты)


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 01-Апр-13 19:32 
http://en.wikipedia.org/wiki/Vectorization_(parallel_computing)

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено pro100master , 01-Апр-13 21:53 
Аноним намекает, что как бы есть алгебраическое решение. Зачетно, вики осилил. На самом деле, интеловский компилятор, как и gcc, если это вынести за пределы main(), заменит на константу или число (внезапно), без всякой алгебры и прочего шаманства с циклами. Я же как бы намекнул на оторванный от реальности тест :)

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено GoTLiuM , 02-Апр-13 05:17 
>[оверквотинг удален]
>       for( y=0; y<10000; y++)
>       {
>         b += x *
> y;
>       }
>     }
>     std::cout << "Done" << std::endl;
>     return 0;
> }
> зы всегда прикалывали такие оторванные от жизни тесты)

Лучше сразу на C. А тесты и впрямь прикольные, но результат на лицо:)
#include<stdio.h>

int main() {
        int x, y, b = 0;
        for (x = 0; x < 10000; x++) {
                for (y = 0; y < 10000; y++) {
                        b += x * y;
                }
        }
        printf("Done");
        return 0;
}


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 02-Апр-13 05:25 
> Лучше сразу на C. А тесты и впрямь прикольные, но результат на лицо:)

Да, си сделал питона раз так в эн. Хотя нет, эн мало, лучше эм.


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 04-Апр-13 01:22 
> # cat test.py
> b = 0
> for i in range(100):
>         for x in range(100):
>            
>     b += i * x
> print "Done"

Даже на таком примере видно, что человек от python далек.


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Филипп Филиппович , 31-Мрт-13 15:16 
Это может стать одним из очень немногих способов скрыть исходный код на Python. :-)

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено спец , 31-Мрт-13 15:33 
про .pyc видимо не знаем?)

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено all_glory_to_the_hypnotoad , 31-Мрт-13 15:37 
pyc не скрывает код.

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Xasd , 31-Мрт-13 16:09 
> pyc не скрывает код.

:-) вы будуте удивлены, но таки-скрывает.

если в интернетах существуют программы типа "unpyc", то это ещё не обозначает что они работают (а не просто так занимают место на sourceforge).

а используя стандартный модуль http://docs.python.org/3/library/marshal.html -- можно прочитать байт-кодный pyc -- но толку от этого будет не сильно больше, чем например дизасемблировать C/C++-программу :-)


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Филипп Филиппович , 01-Апр-13 13:17 
И всё-таки не скрывает, работают декомпиляторы. Uncompyler, во всяком случае, с Python 2.7 вполне справляется. И даже на вполне реальных текстах, а не только на "Hello, world!". Не гарантирую, что всё декомпилируется безукоризненно, но, во всяком случае, визуально код очень и очень похож на исходный. Можете проверить:
git clone https://github.com/gstarnberger/uncompyle.git
setup.py там есть, он ставит скрипт uncompiler.py.
Хотя некоторые декомпиляторы и правда только занимают место на sourceforge.

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено all_glory_to_the_hypnotoad , 01-Апр-13 22:35 
чувак, харэ лить в интернет всякую херню, иди УЧИСЬ. Хотя бы чему-нибудь. Нельзя же на каждую тему писать столько бреда.

питоновский сорц транслируется в байткод почти один к одному, сравнение  C <-> asm вообще близко не стоит.


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 02-Апр-13 05:27 
> питоновский сорц транслируется в байткод почти один к одному, сравнение  C
> <-> asm вообще близко не стоит.

Питонисты как правило вообще ни бум-бум в структуре данных с которыми они имеют дело. То-есть, они обычно вообще не понимают как это фактически представляется. Предсказуемо разложить байтики в памяти или на диске? О, что вы, это рокетсайнс!


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено бедный буратино , 02-Апр-13 05:41 
> Питонисты как правило вообще ни бум-бум в структуре данных с которыми они
> имеют дело. То-есть, они обычно вообще не понимают как это фактически
> представляется. Предсказуемо разложить байтики в памяти или на диске? О, что
> вы, это рокетсайнс!

А зачем?

Достаточно понять логику диктов, и то, как они работают - и наступит всемирное счастье, этим можно будет пользоваться. То, что ты знаешь, как лежат в памяти данные, но не знаешь, как работают дикты (как я в детстве), не даёт тебе возможность делать простые вещи просто. И что толку от этого знания? По мне, так знать написание фразы "то есть" это гораздо более важный навык.

ps. Через pickle я могу даже знать, как эти структуры можно на стене написать, чтобы читалось. :) Шутка.


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Филипп Филиппович , 02-Апр-13 09:07 
И именно поэтому я не беру в команду питонистов без знания C++. :-)

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено бедный буратино , 02-Апр-13 12:45 
> И именно поэтому я не беру в команду питонистов без знания C++. :-)

Да, вот для бейсбольной команды это действительно важно.



"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Филипп Филиппович , 02-Апр-13 13:23 
У Вас довольно оригинальное восприятие термина "команда" по умолчанию в контексте разработки ПО. :) Что ж, во всяком случае, это свежо.

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Xasd , 03-Апр-13 00:20 
> питонистов без знания C++. :-)

это довольно странная ситуация. обычно питонисты как раз таки знают C/C++ .

хотя бы потому что Python как инструмент -- он расширяет возможности C/C++ (в Python-программе -- модули критические к производительности -- пишут на C/C++, вызывая их из Python-кода . ды и сам CPython написан на C, это важно если зохотеть поизучать его код).

а вот C/C++-программисты -- как раз не все знают как писать Python-программы :-) .

# P.S.: здесь можно вспомнить Шелдона Купера (вымышленный персонаж TBBT) который утверждает что если уж он знает как работает Теоретическая Физика (параллель: C/C++, asm, ...) , то значит он знает всё в этом мире! в том числе социально подготовлен (параллель: Python, Ruby, ...). а на практике оказывается -- что Шелдон Купер совершенно не приспособлен, и не способен сделать простую вешь простым способом.


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Филипп Филиппович , 03-Апр-13 14:19 
Верно, что сиплюсплюсники обычно совершенно не умеют писать на Python, если, конечно, они не делают это регулярно. Вернее, приличные плюсплюсники начинают писать быстро и легко, но unpythonic стиль из них выбивается по полгода, а то и по году плотной работы. До этого смотреть на код глазам больно.

Поверьте моему опыту, большинство питонщиков, приходящих на собеседования, знает C++ чисто номинально, на уровне простых классов, циклов и "Hello, world". И даже не всегда хорошо думает в терминах указателей. В общем, сейчас рынок вакансий сильно превышает рынок адекватных соискателей. И в последний раз ситуация была другой во время кризиса на рубеже 2008-го и 2009-го. В Питере, во всяком случае, но думаю, что не только в Питере так.


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Филипп Филиппович , 31-Мрт-13 16:17 
Попробуйте погуглить, скажем, слова "декомпилятор pyc". Использование .pyc может помочь только в том случае, если поставлена задача помешать простому прямому редактированию.

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


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено chinarulezzz , 31-Мрт-13 16:02 
Если хочется скрыть код, то легче интегрировать python в Си-проект. А байткод ничего не скрывает, его декомпилировать раз плюнуть.

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Xasd , 31-Мрт-13 16:12 
> А байткод ничего не скрывает, его декомпилировать раз плюнуть.

например, как? :)

(и да... не забываем что щаз 2013-год, если вдруг возникнет желание скопипастить совет [путём использования Интернетовской Машины Времени] из далёких времён :))

см -- #73


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Филипп Филиппович , 01-Апр-13 13:18 
Это не соответствует действительности. Uncompyler вполне работоспособен. Во всяком случае, с Python 2.7 он у меня справился нормально. Про Python 3 сказать не могу, если есть желание -- проверьте сами.

См. #85


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 02-Апр-13 00:42 
> Это не соответствует действительности. Uncompyler вполне работоспособен. Во всяком случае,
> с Python 2.7 он у меня справился нормально. Про Python 3
> сказать не могу, если есть желание -- проверьте сами.
> См. #85

У меня был один китайский проектик на Django под Windows с привязкой к динмаическим библиотекам, хотел перенести его под Linux ибо не гоже винду ставить, так вот все файлы в pyc, python2.6, ниодного рабочего решения для декомпиляции не нашел.


"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Филипп Филиппович , 02-Апр-13 09:33 
Может, давно было. Может, не повезло -- попались несколько нерабочих решений, а рабочее по случайности не попалось. А может, они чем-то обрабатывали pyc. Там в принципе можно попробовать его помучить, чтобы работоспособность байт-кода сохранилась, а конструкции Python меньше угадывались.

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 04-Апр-13 01:16 
Скажем так: удалось декомпилировать где-то 10%.
Поиском в гугле и поиском на гитхабе владею.
Уверен что ничего не применяли.

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Филипп Филиппович , 05-Апр-13 15:35 
И даже ключик -OO Питону не давали? ;-)

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено бедный буратино , 01-Апр-13 14:58 
на опеннет в честь профессионального праздника всех наших - новая мулька? Минусы в плюсы превращаются? Откуда у меня сразу и с места +2 и +1? :)

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 01-Апр-13 20:08 
Норм буратино написал!

"Релиз компилятора Python - Nuitka 0.4.2"
Отправлено Аноним , 02-Апр-13 09:23 
оно не работает для Python 3.2  Win из-за отстутствия sys.abiflags