The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Выпуск PyPy 5.0, реализации Python, написанной на языке Python

11.03.2016 09:10

Состоялся релиз PyPy 5.0, реализации языка Python, написанной на языке Python (используется статически типизированное подмножество RPython, Restricted Python). Новый выпуск примечателен значительным увеличением производительности, он в среднем на 1% быстрее прошлой версии PyPy и в 9.2 раз быстрее классического CPython 2.7. Выпуск доступен для x86-систем Linux 32/64, OpenBSD, FreeBSD, OS X 64 и Windows 32, а также для систем на базе архитектуры ARM (ARMv6 или ARMv7 с VFPv3) и PowerPC (ppc64).

Благодаря задействованию JIT-компилятора, на лету транслирующего некоторые элементы в машинный код, PyPy при выполнении некоторых операций в несколько раз обгоняет по производительности классическую реализацию Python на языке Си (CPython). Ценой высокой производительности и использования JIT-компиляции является более высокое потребление памяти - общее потребление памяти в сложных и длительно работающих процессах (например, при трансляции PyPy силами самого PyPy) превышает потребление CPython в полтора-два раза.

Новшества, добавленные в PyPy 5.0:

  • Продолжена работа по оптимизации использования метаданных в JIT-компиляторе. Разогрев JIT (warmup) теперь выполнятся на 30% быстрее, потребляя на 30% меньше памяти;
  • Обновлён C-API (cpyext). Новый cpyext отличается значительным увеличением производительности и упрощением взаимодействия между объектами на языке Си и объектами на уровне интерпретатора PyPy. Реализован более стабильный метод создания объектов PyObjects в cpyext. В результате, новый cpyext позволил добиться успешного прохождения всех тестов библиотекой lxml, собранной со всеми компонентами cython;
  • Система профилирования vmprof адаптирована для работы на различных платформах. Кроме Linux, vmprof теперь может применяться в OS X и Windows, поддерживается работа как с PyPy, так и с CPython.
  • До версии 1.5.2 обновлён модуль CFFI (C Foreign Function Interface) с реализацией интерфейса для вызова функций, написанных на языке Си, который может выступать в качестве более простой альтернативы модулю ctypes. В новой версии появилась возможность встраивания PyPy или CPython в программы на языке Си;
  • По аналогии с CPython по умолчанию в операциях с файловой системой теперь используется кодировка ASCII;
  • Для создания тестов задействована библиотека hypothesis;
  • Расширены возможности интегрированной математической библиотеки Numpy, в которой добавлена возможность индексированной фильтрации двоичных массивов ndarray и частично реализована поддержка функции partition();
  • Проведены многочисленные оптимизации: ускорены операции соединения строк, оптимизирован поиск глобальных переменных, в 15 раз ускорены операции распаковки чисел с типами float и double, на 50% ускорена распаковка целочисленных типов, оптимизирован поиск в mapdic, значительно увеличена производительность re.sub().



Основные особенности PyPy:

  • Поддержка бесстекового (Stackless) режима работы, позволяющего использовать модель actor (erlang-подобное программирование с массой микропотоков и отсыланием сигналов друг другу);
  • Реализация режима изолированного выполнения кода, к которому нет доверия. От sandbox в CPython данный режим отличается полной поддержкой всех возможностей языка без выделения unsafe-функций.
  • Автоматическая генерация и полная прозрачность встроенного JIT-компилятора;
  • PyPy успешно проходит стандартный тестовый пакет Python и поддерживает большинство из стандартных Python-модулей и фреймворков, таких как ctypes, django (с sqlite), twisted (без поддержки ssl), pylons, pyglet. PyPy может быть использован для бесшовной замены CPython 2.7;
  • Поддержка работы на архитектурах x86 (IA-32) , x86_64 и ARM. Ведется работа по адаптации для архитектуры PowerPC (PPC64), но она ещё не завершена;
  • На базе технологий PyPy созданы бэкенды для генерации в PyPy байткода для LLVM и виртуальных машин .NET/CLI и Java.
  • На базе PyPy ведется разработка реализаций на языке Python интерпретаторов Prolog, Smalltalk, Ruby, JavaScript, Io и Scheme.
  • Версия PyPy с поддержкой Python 3 развивается в рамках проекта Py3k;
  • Вариант PyPy с поддержкой распараллеливания на многоядерных системах развивается в рамках проекта PyPy-STM (PyPy Software Transactional Memory).


  1. Главная ссылка к новости (http://morepypy.blogspot.ru/20...)
  2. OpenNews: Разработка Python переносится на Git и GitHub
  3. OpenNews: Выпуск Nuitka 0.5.17, компилятора для языка Python
  4. OpenNews: Выпуск Pyston 0.4, реализации языка Python с JIT-компилятором
  5. OpenNews: Увидел свет язык программирования Python 3.5.0
  6. OpenNews: Выпуск PyPy 4.0, реализации Python, написанной на языке Python
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/44025-pypy
Ключевые слова: pypy, python
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (76) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 09:28, 11/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Реализации Python, написанной на Python и питоном погоняя :D
     
     
  • 2.19, Anon999 (ok), 12:02, 11/03/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Все это хорошо, но вот бы если занялись лишением недостатков реализации самого CPython, это было б значительно лучше.
     
  • 2.24, Анонимко (?), 13:07, 11/03/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Просто питон работает быстрее, если написан на питоне.
     
     
  • 3.25, Аноним (-), 13:13, 11/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Ложь, если PyPy и быстрее хоть где-то чем CPython то только за счёт использования JIT, который в CPython не используют, если бы использовали не было бы такого.
     
     
  • 4.28, ghost (??), 13:51, 11/03/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Если бы у бабушки был .у., она была бы дедушкой.
     
  • 3.26, Аноним (-), 13:16, 11/03/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    и как истинный питон не совместим с другими питонами.
     
     
  • 4.40, Аноним (-), 17:19, 11/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > и как истинный питон не совместим с другими питонами.

    Как истинный аноним – высказал свое мнение, не утруждая себя знанием предмета или аргументацией!

    > PyPy успешно проходит стандартный тестовый пакет Python и поддерживает
    >(http://pypy.org/compat.html) большинство из стандартных Python-модулей и фреймворков, таких
    > как ctypes, django (с sqlite), twisted (без поддержки ssl), pylons, pyglet. PyPy может быть использован
    > для бесшовной замены CPython 2.7;

     
  • 2.41, Нимано (?), 17:23, 11/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Реализации Python, написанной на Python и питоном погоняя :D

    Читать не только заголовок новости не пробовали?  Счастливчик – "сколько вам открытий чудных ..."

    Первое предложение:
    > Состоялся релиз PyPy 5.0, реализации языка Python, написанной на языке Python (используется
    > статически типизированное подмножество RPython, Restricted Python).

     

  • 1.2, RazrFalcon (ok), 09:46, 11/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Может хоть с ним portage перестанет тормозить.
     
     
  • 2.3, Аноним (-), 09:50, 11/03/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ты, наверно, очень невнимательный гентушник, раз не заметил что тормозит portage жесткий диск.
     
     
  • 3.7, Аноним (-), 10:21, 11/03/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Почему же тогда на точно таком же жёстком диске не тормозит apt из Debian, который написан на C?
     
     
  • 4.8, Аноним (-), 10:29, 11/03/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Потому что разное устройство пакетной базы, не?
     
  • 3.23, RazrFalcon (ok), 13:04, 11/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Переход с HDD на SSD не дает ощутимого прироста. В portage тормозит далеко не только io.
     
     
  • 4.29, Аноним (-), 13:59, 11/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Дает. Повторный запуск emerge всегда в разы быстрее, пока кэш ФС в RAM. Если, конечно, у тебя RAM не 512 мб.
     
     
  • 5.31, Нимано (?), 14:49, 11/03/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >> Переход с HDD на SSD не дает ощутимого прироста.
    > Дает. Повторный запуск emerge всегда в разы быстрее, пока кэш ФС в
    > RAM. Если, конечно, у тебя RAM не 512 мб.

    Я так понимаю, тут или особенный, уличный кэш для SSD или же при использовании HDD кэш насильно сбрасывают (типа "если у нас хдд, значит мы ХОТИМ читать/писать медленно! Не мешайте своим кэшем!")?

     
     
  • 6.38, Аноним (-), 17:01, 11/03/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Как я уже сказал, зависит от размера кэша ФС в памяти. Если памяти мало, то сбрасывается. В том числе во время компиляции тяжелого софта. Лично мне с моими 3 Гб ее всегда хватало если запросить дерево зависимостей при обновлении софта, Ctrl+C, снова повторить вывод дерева зависимостей.
     
  • 4.39, Аноним (-), 17:04, 11/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    I/O с кэшем в памяти - тоже I/O. И тоже есть накладные расходы на открытие/закрытие файловых дескрипторов. Особенно если это десятки тысяч файлов.
     
     
  • 5.58, Аноним (-), 12:46, 12/03/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    При использовании питона накладные расходы увеличиваются еще и благодаря питону. Это даже до редхата с DNF дошло, не прошло и 20 лет.
     
  • 5.69, . (?), 19:27, 12/03/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Подсказка двоешникам:
    Весь "I/O и окрытие/закрытие файловых дескрипторов" в питоне делается где то глубоко с кишках Си-шных либриотек, с их нативной скоростью.
         Навеки Ваш,
                Кэп.


     
  • 2.34, Аноним (-), 15:24, 11/03/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Попробуй paludis
     
  • 2.83, Aleks Revo (ok), 23:40, 13/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Не перестаёт, если интересуют экспериментальные данные ))
    Как верно заметили - узкое место hdd. C PyPy диск пригружается эффективней и всё на этом.
     

  • 1.4, Аноним (-), 09:53, 11/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    > Ценой высокой производительности и использования JIT-компиляции является более высокое потребление памяти - общее потребление памяти в сложных и длительно работающих процессах (например, при трансляции PyPy силами самого PyPy) превышает потребление CPython в полтора-два раза.

    нужно больше памяти

     
  • 1.5, Неанонимный Аноним (?), 10:06, 11/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Важнейший вопрос: выполняется ли pypy на pypy? (pypypypy)
    И сколько уровней вложенности потянет
     
     
  • 2.11, Аноним (-), 10:41, 11/03/2016 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Если не умеет в многоядерность, то не потянет. Если умеет - 32-ядерного сервачка вполне себе хватит на 2-3 уровня вложений!
     

  • 1.6, Аноним (-), 10:19, 11/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    >Благодаря задействованию JIT-компилятора, на лету транслирующего некоторые элементы в машинный код, PyPy при выполнении некоторых операций в несколько раз обгоняет по производительности классическую реализацию Python на языке Си (CPython).

    Что-то мне подсказывает что если добавить в классическую реализацию Python на языке Си (CPython) JIT-компилятор, на лету транслирующий некоторые элементы в машинный код то CPython будет быстрее в несколько раз и в несколько раз меньше потреблять память чем PyPy (ибо написан на C у которого по этим параметрам огромное превосходство над Python, на котором написан PyPy).

     
     
  • 2.10, kai3341 (ok), 10:31, 11/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Что-то мне подсказывает что если добавить в классическую реализацию Python на языке Си (CPython) JIT-компилятор, на лету транслирующий некоторые элементы в машинный код то CPython будет быстрее в несколько раз и в несколько раз меньше потреблять память чем PyPy (ибо написан на C у которого по этим параметрам огромное превосходство над Python, на котором написан PyPy).

    Верно мыслите. Но будет ещё быстрее, если алгоритм будет проработан и несколько раз переписан с нуля на Python, и уже когда переделывать будет нечего, реализован с низкоуровневом языке.

     
  • 2.17, llolik (ok), 11:55, 11/03/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Над этим уже работают
    https://github.com/dropbox/pyston
    https://www.opennet.ru/opennews/art.shtml?num=39494
     
  • 2.18, Аноним (-), 11:56, 11/03/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Быстрее это вряд ли. Скорость и так сишная в некоторых случая. Куда быстрее?
     
     
  • 3.21, Аноним (-), 12:09, 11/03/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >Скорость и так сишная в некоторых случая.

    Сишная говорите в некоторых случаях? Что же, охотно верю при условии что число этих случаев стремится к нулю или вообще отрицательно.

     
     
  • 4.22, Аноним (-), 13:03, 11/03/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Вот некоторый случай: На LORе как-то выкладывали пример с вычислением синуса в цикле.


    from math import sin

    def test():
        sum = 0.0
        for i in range(100000000):
            sum += sin(i)
        return sum

    print(test())


    Вроде так. Под PyPy скорость одинаковая по сравнению с аналогом на Си.

     
     
  • 5.35, Аноним (-), 16:26, 11/03/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ваш пример:
    time python ./test.py
    0.782010319461

    real 0m13.458s
    user 0m12.687s
    sys 0m0.755s

    Аналог на C test.c:



    #include <stdio.h>
    #include <math.h>

    void main()
    {
        int i;
        double sum = 0.0;
        for( i = 0; i < 100000000; ++i )
            sum += sin(i);
        printf("%.12f\n", sum);
    }



    gcc test.c -lm
    time ./a.out:
    0.782010319461

    real 0m3.262s
    user 0m3.254s
    sys 0m0.004s


    Итого: код на С работает в 4 раза быстрее кода на Python.

     
     
  • 6.36, Аноним (-), 16:44, 11/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Вы читать умеете? Под PyPy, а не под стандартным интерпретатором.
    Нужно так
    $ time PyPy ./test.py
     
     
  • 7.43, Аноним (-), 18:02, 11/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    С PyPy действительно на одном уровне с C time pypy test py 0 782010319461 re... большой текст свёрнут, показать
     
     
  • 8.46, Аноним (-), 18:37, 11/03/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    В новости под которой мы сейчас пишем последняя строка как бы заранее отвечает н... текст свёрнут, показать
     
     
  • 9.59, Аноним (-), 12:55, 12/03/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Так он даже без openmp продул Это человек еще флаги оптимизации не показал А т... текст свёрнут, показать
     
     
  • 10.63, Аноним (-), 14:25, 12/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Ну-ка ну-ка разгон в пару раз того кода, c помощью флагов 8211 в студи... текст свёрнут, показать
     
     
  • 11.72, Нимано (?), 15:24, 13/03/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Н-да Классическое А вдоль лyж анонимы на дивaнах сидят И тишина Вообще-то ... большой текст свёрнут, показать
     
     
  • 12.73, Аноним (-), 18:00, 13/03/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Трое суток флаги гуглил Сразу видно эксперта У pypy кстати тоже флаги есть Ко... текст свёрнут, показать
     
     
  • 13.74, Нимано (?), 18:58, 13/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Да-да, Анонимному Эксперту ведь кто-то активно мешал смешать питонщиков с грязь... текст свёрнут, показать
     
     
  • 14.76, myhand (ok), 19:24, 13/03/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Шо у вас такая болезнь про хаброшколие У них это рефлекс, их как собак Павлова... текст свёрнут, показать
     
     
  • 15.78, Аноним (-), 20:38, 13/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Та не, просто прикольно - ничего, ничего, потом отвечает типа аноним, типа один... текст свёрнут, показать
     
  • 14.77, Аноним (-), 20:19, 13/03/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Какой-то бессвязный бред Попробую вам помочь разобраться До того как другой А... большой текст свёрнут, показать
     
     
  • 15.79, Аноним (-), 21:14, 13/03/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да-да, только Вы, Истинный Аноним, ведаете ху из ху А про то, что можно, как ... большой текст свёрнут, показать
     
     
  • 16.80, Аноним (-), 21:28, 13/03/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Опять какой-то не адекват По теме - вам лечится надо, или хотя бы следить за со... текст свёрнут, показать
     
     
  • 17.81, Аноним (-), 21:47, 13/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Да не расстраиваетесь вы так Переход на личности и тонкие намеки вместо аргум... текст свёрнут, показать
     
  • 11.85, Аноним (-), 00:10, 14/03/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Легко Собери LZ4 с -O0 и -O3, поудивляйся разнице Это про цирк где питонист по... большой текст свёрнут, показать
     
     
  • 12.88, Аноним (-), 01:35, 14/03/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вы, наверное, автор LZ4, раз его каждый раз в пример ставите А автограф можно ... большой текст свёрнут, показать
     
  • 10.65, Аноним (-), 14:37, 12/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Разница в рамках погрешности, а если добавить к этому холодный старт PyPy то уже... большой текст свёрнут, показать
     
     
  • 11.86, Аноним (-), 00:15, 14/03/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А почему хитрить то Вон image magic хитрит в дефолтной сборке в почти всех ди... текст свёрнут, показать
     
  • 8.51, Нимано (?), 20:31, 11/03/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Какое Сам скрипт не транслируется в Си, а то что JIT как бы на Си , особо не в... текст свёрнут, показать
     
     
  • 9.54, Аноним (-), 04:12, 12/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Заменить цикл единственным вычислением - такой же примитивный и пошлый троллинг ... текст свёрнут, показать
     
     
  • 10.61, Аноним (-), 13:00, 12/03/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Так при честном сравнении питон продувает, приходится жульничать А если еще и п... текст свёрнут, показать
     
     
  • 11.66, Нимано (?), 15:04, 12/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    А где Уважаемый Эксперт честное сравнение увидел В Си-коде аноним использует ... текст свёрнут, показать
     
     
  • 12.87, Аноним (-), 00:48, 14/03/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Судя по тому как yum dnf portages работают - реалистичная аппроксимация Надуван... большой текст свёрнут, показать
     
     
  • 13.89, Аноним (-), 02:31, 14/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Не знаю, так как не использую А причем здесь вообще эта отсылка Я так понимаю,... большой текст свёрнут, показать
     
  • 9.60, Аноним (-), 12:58, 12/03/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Теперь понятно почему питон не тормозит Надо оказывается сервер 32-ядерный брат... текст свёрнут, показать
     
     
  • 10.64, Аноним (-), 14:27, 12/03/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну да, если не осилил подумать головой 8211 throw hardware at it ... текст свёрнут, показать
     
  • 6.37, Нимано (?), 16:49, 11/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >> Под PyPy скорость одинаковая по сравнению с аналогом на Си.
    > Ваш пример:
    > time python ./test.py
    > 0.782010319461
    > Итого: код на С работает в 4 раза быстрее кода на Python.

    Неа.



    # gcc49 test.c -lm
    # time ./a.out
    0.782010319460
    ./a.out  23,89s user 0,02s system 99% cpu 23,923 total
    # gcc49 test.c -lm -Ofast
    # time ./a.out
    0.782010319460
    ./a.out  23,60s user 0,00s system 99% cpu 23,603 total
    #  time pypy test.py
    0.78201031946
    pypy test.py  24,89s user 0,06s system 99% cpu 24,956 total
    # pypy --version
    Python 2.7.10 [PyPy 4.0.1  


    Python != CPython != PyPy

     
     
  • 7.44, Аноним (-), 18:08, 11/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Из вашего же комментария ниже:

    >Ага,  главное вставить про Си ... ведь знать, что PyPy написано RPython
    >который транслируется в Си

    Отсюда и скорость одинаковая, вот только этот пример лишь маленький частный случай, что-то никто не торопится заменять стандартные интерпретаторы.

     
     
  • 8.50, Нимано (?), 20:21, 11/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Скорость чего Генерирования нативного кода или скорость выполнения этого самого... текст свёрнут, показать
     
     
  • 9.62, Anonimous Cowardus (?), 13:05, 12/03/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    JIT 1 Требует дополнительного времени на генерацию кода 2 В памяти будет вис... текст свёрнут, показать
     
     
  • 10.70, Аноним (-), 20:22, 12/03/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Новость не читай, сразу в лужу отвечай Пруф или GTFO ... текст свёрнут, показать
     
  • 2.30, Нимано (?), 14:02, 11/03/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Что-то мне подсказывает что если добавить в классическую реализацию Python на языке Си

    Ага,  главное вставить про Си ... ведь знать, что PyPy написано [b]RPython[/b]
    http://rpython.readthedocs.org/en/latest/faq.html#what-is-this-rpython-langua

    > RPython is a restricted subset of the Python language.
    > RPython program restrictions mostly limit the ability to mix types in arbitrary ways.
    > RPython does not allow the binding of two different types in the same variable.
    > In this respect (and in some others) it feels a bit like Java.
    > Other features not allowed in RPython are the use of special methods (__xxx__) except __init__ and __del__, and the use of reflection capabilities (e.g.

    который транслируется в Си
    http://rpython.readthedocs.org/en/latest/translation.html#the-c-backend
    совсем не обязательно!


    > Что-то мне подсказывает

    Пытались уже не раз, вон:
    https://en.wikipedia.org/wiki/Unladen_Swallow
    даже при спонсировании гугла – не вышло.
    Видимо, нужно было писать на Си, а не на С++.

     
  • 2.33, Crazy Alex (ok), 14:54, 11/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Вот только писать сложную алгоритмику на сях - удовольствие ниже среднего, а отлаживать - тем более.
     

  • 1.9, privation (?), 10:30, 11/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    за erlang-подобия - зачетно ! захотелось попробовать ...
     
  • 1.14, KaE (ok), 10:57, 11/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Хочу реализацию JavaScript на JavaScript - JaJa!
     
     
  • 2.15, имя (?), 11:21, 11/03/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    https://github.com/jterrace/js.js/
     

  • 1.32, neon1ks (ok), 14:49, 11/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Разогрев JIT (warmup) теперь выполнятся на 30% быстрее, потребляя на 30% меньше памяти;

    А долго надо разогревать?)

     
     
  • 2.56, Аноним (-), 07:01, 12/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Пока не встанет
     
  • 2.67, Вы забыли заполнить поле Name (?), 16:38, 12/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > А долго надо разогревать?)

    Пару минут, если он теплый и ламповый.

     

  • 1.49, Аноним (49), 19:05, 11/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    numpy для py3k до сих пор не работает?
     
     
  • 2.71, . (?), 00:02, 13/03/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Тебя нае^манули :) https://pypi.python.org/pypi/numpy
     

  • 1.53, doberman (?), 01:06, 12/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А на PyPy можно запускать ещё один PyPy?
     
     
  • 2.84, Aleks Revo (ok), 23:59, 13/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > А на PyPy можно запускать ещё один PyPy?

    Каким образом?
    PyPy написан на RPython, а интерпретирует обычный Python - это разные языки.

     

  • 1.55, Аноним (-), 04:19, 12/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Обьясните мне глупому что такое JIT и в чем отличие от текущего Python Comile (.pyc и .pyo)? Если заменить все .py файлы на .pyc, то это можно назвать JIT интерпритатором CPython?
     
     
  • 2.68, Аноним (-), 16:40, 12/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Обьясните мне глупому что такое JIT и в чем отличие от текущего
    > Python Comile (.pyc и .pyo)? Если заменить все .py файлы на
    > .pyc, то это можно назвать JIT интерпритатором CPython?

    Для этого надо понять разницу между машинным кодом и какими-то там опкодами чего-то виртуального в pyc файлах. В pyc файлах не надо парсить синтаксис, но это не машинный код и поэтому все-равно производится интерпретация. Ну да, не слов а опкодов. Скорость все-равно плохая. Потому что быстрее всего - выполнить машинный код в процессоре аппаратно.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2020 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру