PyPy научился напрямую загружать расширения CPython'а

Автор оригинала: Alexander Schremmer
  • Перевод
PyPy теперь умеет загружать и запускать расширения CPython'а (то есть, .pyd и .so файлы) напрямую, при помощи новой подсистемы, которая называется CPyExt. В отличие от решения, представленного в другом блог-посте (в котором модули расширения типа numpy запускались на CPython и проксировались через TCP), новое решение больше не требует запущенного CPython. Мы пока ещё не достигли полной бинарной совместимости (как Ironclad), но, в большинстве случаев, достаточно просто перекомпилировать расширение.

Единственное требование — необходимые функции C API из CPython должны быть реализованы в PyPy. Если вы пользователь или автор модуля, и вам не хватает некоторых функций в PyPy, мы приглашаем вас их реализовать. Уже довольно много людей (включая много новых контрибьюторов) уже включились в разработку и реализовали некоторые функции для того, чтоб их любимые модули заработали. В конце поста — список имён.

Кстати о скорости. Несмотря на то, что существуют накладные расходы на запуск этих модулей, когда мы запускаем движок регулярных выражений из CPython (_sre.so) и проходим бенчмарк spambayes из набора бенчмарков Unladen Swallow (см speed.pypy.org), то получаем значительное ускорение: тест стал вдвое быстрее по сравнению с движком регулярок, встроенным в PyPy. Из закона Амдала следует, что _sre.so должен работать в несколько раз быстрее, чем встроенный движок.

В данный момент идёт работа над PIL и другими модулями. Например, поддержка distutils уже почти завершена. И если вы хотите участвовать в этом или получить больше информации о том, как использовать эту новую возможность, заходите на наш IRC-канал #pypy на freenode.

Участники разработки CPyExt:
  • Alex Gaynor
  • Benjamin Peterson
  • Jean-Paul Calderone
  • Maciej Fijalkowski
  • Jan de Mooij
  • Lucian Branescu Mihaila
  • Andreas Stührk
  • Zooko Wilcox-O Hearn

Комментарии 11

    0
    Ну что тут комментировать, просто здорово и всё, молодцы ребята. Верю, что это выльется в новую платформу, производительную и масштабируемую.
      +3
      Да, по сути — как только доделают полную поддержку C API, его можно будет начать использовать для множества разных вещей, которые раньше были недоступны.

      А со скоростью у PyPy уже лучше, чем у остальных реализаций :)
        0
        Главное, что идеи правильные. В приложении к такому замечательному языку — это вообще просто замечательно. IT двигается вперёд в основном за счёт таких вот энтузиастов, корпорации приходят на готовенькое.
          0
          Чтож ещё чуть-чуть и можно будет начинать писать PyPyPy…
            0
            Если получится так же эффективно — почему бы и нет ??
          0
          Лучше бы наконец сделали поддержку хотябы 2.6 питона
            +1
            «Хотя бы» есть поддержка 2.5. Если ты пишешь не для себя, то гарантировать, что у кого-то будет стоять версия 2.6 ты всё равно не можешь. Да и подавляющее большинство библиотек поддерживают даже 2.4, так что я пока не вижу в этом большой проблемы.
        –14
        ПиПи?
          0
          О чём вопрос? Как произносится, или что это вообще такое? :)
          • НЛО прилетело и опубликовало эту надпись здесь
              +7
              Потерпи немного.

            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

            Самое читаемое