25 Ноября 2024, 10:09

Python

Автор turbo, 03 Августа 2008, 18:02

« предыдущая тема - следующая тема »

0 Пользователей и 1 Гость просматривают эту тему.

turbo

03 Августа 2008, 18:02 Последнее редактирование: 01 Февраля 2011, 13:09 от Zhek@Ch
[size="3"]Множественные уязвимости в Python[/size]
 
 * Численные переполнения в основных модулях (stringobject, unicodeobject, bufferobject, longobject, tupleobject, stropmodule, gcmodule, mmapmodule) (CVE-2008-2315).
 * Численное переполнение в модуле hashlib, которые способно привести к некорректным криптографическим подписям. (CVE-2008-2316).
 * Множественные переполнения буфера при обработке unicode-строк (специфично только для 32битных систем) (CVE-2008-3142).
 * Google тоже нашел численные переполнения, но постеснялся уточнить их. (CVE-2008-3143).
 * Множественные численные переполнения и недополнения в функции PyOS_vsnprintf() и ошибка завышения на единицу при обработке строк нулевой длины, приводящее к повреждению памяти. (CVE-2008-3144).
http://www.gentoo.or...a-200807-16.xml

ping_Win

02 Февраля 2009, 21:51 #1 Последнее редактирование: 10 Ноября 2011, 23:55 от Zhek@Ch
[size="3"]После двух лет разработки выпущен релиз Zope 3.4.0[/size]

После двух лет разработки выпущен релиз Zope 3.4.0, объектно-ориентированного компонентного сервера приложений на языке Python. В новой версии основные изменения связаны с реструктуризацией исходных текстов: уходу от монолитной модели распространения к подходу, связанному с разбиением на небольшие пакеты, которые могут функционировать независимо друг от друга.

Одновременно, команда разработчиков Zope объявила о переходе на фиксированный 6-месячный цикл выпуска релизов.

http://www.opennet.r...shtml?num=20067

turbo

02 Мая 2009, 21:17 #2 Последнее редактирование: 10 Ноября 2011, 23:53 от Zhek@Ch
[size="3"]Первый релиз Schooltool, системы для управления учебным процессом[/size]

После 9 лет разработки представлен первый стабильный релиз web-ориентированной системы для управления учебным процессом и планированием занятий в школах и других учебных заведениях - SchoolTool 1.0. Программа распространяется в рамках лицензии GPL и разработана при поддержке фонда Марка Шаттлворта. Работа системы организована через web-интерфейс, написанный на языке Python с использованием фреймворка Zope 3.

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

http://www.opennet.r...shtml?num=21547

turbo

16 Июля 2009, 18:19 #3 Последнее редактирование: 28 Ноября 2011, 18:57 от Zhek@Ch
[size="3"]Unladen Swallow - новая реализация интерпретатора Python на базе LLVM [/size]

Несколько работников из компании Google, принимающие участие в разработке CPython, объявили о выпуске новой версии высокопроизводительной экспериментальной реализации интерпретатора языка Python - Unladen Swallow, в которой производится обкатка некоторых идей по существенному увеличению производительности.

Как значительный шаг вперёд, отмечается переход со стековой виртуальной машины интерпретатора на регистровую (LLVM), что позволило подключить к работе JIT-компилятор, на лету транслирующий наиболее часто используемые функции языка в исполняемый код. И хотя разработчики пока не рекомендуют использование данного ПО в промышленной эксплуатации, оно уже проходит все стандартные тесты на совместимость с базовой реализацией языка, что позволяет использовать Unladen Swallow в таких проектах, как Twisted, Django, NumPy и Swig.

http://www.opennet.r...shtml?num=22611

turbo

22 Октября 2009, 18:24 #4 Последнее редактирование: 14 Ноября 2011, 12:54 от Zhek@Ch
[size="3"]Гвидо ван Россум предложил на несколько лет заморозить возможности языка Python[/size]

Гвидо ван Россум (Guido van Rossum), великодушный пожизненный диктатор проекта Python, предложил сообществу разработчиков прекратить внесение изменений в грамматику, семантику и встроенные функции языка Python в течение нескольких лет. В качестве причин необходимости заморозки языка называется желание дать возможность создателям альтернативных реализаций языка Python, обеспечить в своих продуктах полную совместимость с классическим CPython.

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

На время заморозки у сообщества разработчиков появится прекрасная возможность сосредоточить свои усилия на продвижении Python 3, портировании старых библиотек, разработке утилит и написании документации по портированию программ и обеспечению одновременной поддержки в приложениях Python 2 и Python 3. Иными словами - основная задача подготовить средства для того, чтобы разработчик при переходе на Python 3 чувствовал себя комфортно.

http://www.opennet.r...shtml?num=23940

turbo

20 Января 2010, 17:49 #5 Последнее редактирование: 10 Ноября 2011, 23:43 от Zhek@Ch
[size="3"]Проект Zope 3 переродился под именем BlueBream[/size]

Представители сообщества разработчиков Zope, объектно-ориентированного компонентного сервера приложений на языке Python, сообщили о реинкарнации проекта Zope 3 под новым именем - "BlueBream". Первичной задачей нового проекта станет создание документации и серии руководств по быстрому введению в процесс разработки.

Идея переименования была полностью принята сообществом Zope и одобрена на последнем заседании управляющего совета. Релиз BlueBream 1.0 будет продолжением серии Zope 3.4 и позволит пользователям выполнить обновление в штатном режиме. Разработку проекта BlueBream будет курировать некоммерческая организация Zope Foundation, исходные тексты по прежнему будут доступны под BSD-подобной свободной лицензией Zope Public License.

http://www.opennet.r...shtml?num=25065

turbo

23 Февраля 2010, 23:07 #6 Последнее редактирование: 04 Ноября 2011, 19:53 от Zhek@Ch
[size="3"]DreamPie - новая командная оболочка для языка Python[/size]

Анонсирован первый релиз новой графической интерактивной командной оболочки (shell) для языка программирования Python - DreamPie 1.0. Программа распространяется в рамках лицензии GPLv3 и поддерживает интеграцию с Python 2.5, Python 2.6, Python 3.1, Jython 2.5 и IronPython 2.6. При разработке DreamPie использован код интегрированной среды разработки приложений IDLE, который был комбинирован с классическим интерактивным shell. Основная рабочая область в DreamPie разделена на два окна: в одном отображается история введенных команд и результат их работы, а в другом доступен для редактирования исходных код разрабатываемого скрипта.

Основные возможности DreamPie:

 * Автоматическое дополнение атрибутов и имен файлов;
 * Подсказки, отображающие как нужно вызывать функции;
 * Подсветка синтаксиса и парных элементов;
 * Возможность прерывания выполнения команды в любой момент;
 * Результаты выполнения кода сохраняются и доступны впоследствии для просмотра и повторного выполнения. История работы может быть сохранена в файл и позднее загружена из него. Поддерживается сохранение истории в HTML виде для последующей публикации;
 * Поддержка Jython и IronPython позволяет использовать DreamPie для работы с кодом на Java и классами .NET;
 * Возможность "Copy Code Only" позволяет разработчику скопировать любой блок кода, мгновенно выполнить его и сохранить в файл в отформатированном виде (код отфильтровывается от результатов);
 * Оболочку интегрирована поддержка библиотеки matplotlib, что позволяет в интерактивном режиме строить графики.

http://www.opennet.r...shtml?num=25538

Zhek@Ch

[size="3"]Релиз Python 3.2
[/size]

Доступен релиз языка программирования Python 3.2, основные усилия при подготовке которого были направлены на увеличение стабильности, расширение возможностей стандартной библиотеки и упрощение процесса портирования скриптов, написанных для ветки Python 2.x. Так как двухгодичный мораторий на изменение синтаксиса языка истекает 26 июня 2011 года, то версии 3.2 полностью обратно совместима с веткой Python 3.1 и не содержит изменений синтаксиса, семантики и встроенных функций (тем не менее отмечается несколько изменений во встроенных типах). Напомним, что после выхода выпуска 2.7 добавление новшеств в ветку Python 2.x прекращено, но ошибки будут исправляться вплоть до 2015 года. Из улучшений, добавленных в Python 3.2, можно отметить:

  • Расширение возможностей модуля unittest: реализована возможность обращения к модулям с тестами по файловому пути (python -m unittest discover -s my_proj_dir -p _test.py), а не только по имени; добавлены новые методы (assertCountEqual, assertWarns и assertWarnsRegex); реализована интерактивная командная строка для проведения ручных тестов; переработаны тексты сообщений, которые теперь более явно отражают причины сбоя; для более точного отражения выполняемых функций переименованы некоторые имена методов (например, вместо assert_ представлен assertTrue, вместо assertEquals - assertEqual);
  • Реализована поддержка привязанных к версии интерпретатора отдельных репозиториев для .pyc-файлов, используемых для кэширования байткода (PEP 3147). Вынос pyc-файлов в отдельные директории позволяет решить проблему с использованием нескольких Python-интерпретаторов (2.x и 3.x) для выполнения одних скриптов, что ранее приводило к постоянному обновлению кэшей;
  • Поддержка привязанных к номеру версии Python ABI динамических библиотек (PEP 3149), что позволяет использовать свой набор библиотек для различных версий и реализаций Python (CPython, PyPy, Jython);
  • Представлено новое пространство имен "concurrent" для организации параллельного программирования. Первым для данного пространства представлен модуль concurrent.futures (PEP 3148) с набором высокоуровневых функций для управления нитями и процессами. В будущем число модулей concurrent.* будет расширено;
  • Для модулей-расширений представлен ограниченный ABI (Py_LIMITED_API), который объявлен стабильным (PEP 384), что позволит решить проблему работоспособности сборок модулей-расширений для разных версий Python (при обновлении версии ранее приходилось пересобирать все модули-расширения. При использовании Py_LIMITED_API модули собранные для 3.2, смогут работать в ветках 3.3 и 3.4);
  • Базирующийся на словарях метод logging.config.dictConfig для определения конфигурации модуля для обработки логов (PEP 391);
  • Переработанная реализация GIL-блокировки (Global Interpreter Lock), оптимизированная для обеспечения параллельного выполнения нескольких Python-потоков на системах с многоядерными CPU;
  • В пакете email и модулях mailbox/nntplib добавлена поддержка модели bytes/text Python 3, что позволяет корректно обрабатывать сообщения в смешанных однобайтных и многобайтных кодировках;
  • Значительно улучшен модуль для обеспечения работы защищенных SSL-соединений, в который добавлен менеджер SSL-контекста;
  • Для доступа к системной информации, такой как файловые пути и специфичные для платформы опции, добавлен модуль sysconfig;
  • В модуле shutil добавлена поддержка работы с архивами в формате ZIP, TAR, GZIP и BZIP;
  • Значительно изменен модуль configparser, который переведен на использование нового протокола определения структуры конфигурации, основанного на маппинге значений;
  • Множественные исправления, возникающие из-за разделения типов bytes/string и особенностей обработки числовых операций в Python 3.

Rubik

11 Марта 2011, 13:47 #8 Последнее редактирование: 11 Марта 2011, 13:48 от Rubik
Just for fun

[size="3"]Компания Microsoft представила поддержку Python в Visual Studio [/size]

Компания Microsoft выпустила в режиме бета-тестирования пакет Python Tools for Visual Studio (PTVS), предназначенный для обеспечения поддержки языка Python в интегрированной среде разработки Visual Studio 2010. Код пакета разработан в недрах Microsoft и открыт в рамках лицензии Apache 2.0.

Из возможностей PTVS отмечены:

  • Поддержка как классического CPython 2.5 и 3.2, так и реализации Python для работы в виртуальной машине .NET - IronPython. В разработке находится поддержка проектов PyPy и Jython;
  • Реализация для Python расширенных режимов редактирования кода, поддержка Intellisense, поиска ссылок, REPL и других возможностей;
  • Поддержка локальной и удаленной отладки;
  • Поддержка профилирования кода;
  • Интерактивные параллельные вычисления через интеграцию IPython REPL;
  • Поддержка HPC кластеров и MPI, включая фукнкции по отладке кластерных приложений;
  • Поддержка вариантов библиотек NumPy & SciPy для .Net;
  • Поддержка Dryad (технология высокомасштабируемой параллельной обработки больших объемов данных)

Zhek@Ch

01 Мая 2011, 13:38 #9 Последнее редактирование: 01 Мая 2011, 13:39 от Zhek@Ch
[size="3"]Релиз PyPy 1.5, реализации Python, написанной на языке Python [/size]

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


Из других особенностей PyPy можно отметить:

  • Поддержка бесстекового (Stackless) режима работы, позволяющего добиться массового параллельного выполнения микропотоков (micro-threads).
  • Реализация режима изолированного выполнения кода, к которому нет доверия. От sandbox в CPython данный режим отличается полной поддержкой всех возможностей языка без выделения unsafe-функций.
  • Автоматическая генерация и полная прозрачность встроенного JIT-компилятора;
  • PyPy успешно проходит стандартный тестовый пакет Python и поддерживает большинство из стандартных Python-модулей и фреймворков, таких как ctypes, django (с sqlite), twisted (без поддержки ssl), pylons, pyglet. PyPy может быть использован для бесшовной замены CPython 2.6 и CPython 2.7;
  • Поддержка работы на архитектурах x86 (IA-32) и x86_64. Ведется работа по адаптации для архитектуры ARM, но она ещё не завершена;
  • На базе технологий PyPy созданы бэкенды для генерации в PyPy байткода для LLVM и виртуальных машин .NET/CLI и Java.
  • На базе PyPy ведется разработка реализаций на языке Python интерпретаторов Prolog, Smalltalk, Javascript, Io и Scheme.
Из новшеств, добавленных в PyPy 1.5, можно выделить:

  • Обеспечение совместимости с Python 2.7 (версией 2.7.1);
  • Увеличение производительности. По сравнению с прошлым выпуском скорость прохождения стандартного тестового комплекта возросла на 25%. Результаты сравнения производительности с выпуском PyPy 1.4 можно посмотреть здесь, а с CPython 2.6.2 - здесь;
  • В реализацию JIT-компилятора добавлена поддержка выноса инвариантов за пределы цикла, которая позволила увеличить производительность запутанных циклов, в которых выполняются математические вычисления;
  • Улучшена совместимость с CPython API для написания модулей-расширений, что позволило увеличить число поддерживаемых в PyPy сторонних модулей;
  • Обеспечена поддержка Tkinter, GUI библиотеки на базе TCL/TK, и построенной на её основе интегрированной среды IDLE;
  • Система профилирования cProfile теперь работает с JIT, но пока непригодна для полноценного анализа изощренный проблем с производительностью;
  • Отдельно ведется разработка реализации psycopg2-совместимой библиотеки (интерфейсный модуль для PostgreSQL) для PyPy.

Zhek@Ch

15 Мая 2011, 01:41 #10 Последнее редактирование: 15 Мая 2011, 01:41 от Zhek@Ch
[size="3"]NumPy 1.6.0 - расширение языка Python для научных вычислений[/size]
 
14 мая 2011 года стала доступной для загрузки стабильная версия 1.6.0 расширения языка Python для научных вычислений - NumPy.

NumPy содержит функции для операций с многомерными массивами и матрицами, а также стандартные функции линейной алгебры, преобразования Фурье, генераторы случайных чисел и инструменты для интеграции C/C++ и Fortran кода.

NumPy был разработан на базе кода двух пакетов для Python: Numeric и Numarray и является неотъемлемой базовой частью проекта SciPy - набора библиотек для вычислений в прикладной математике и науке на языке Python.

Работа над Numeric и Numarray прекратилась в 2005 и 2006 годах соответственно, и теперь NumPy рекомендуется для их замены.

Вычислительная сила NumPy заключается в интерпретации большинства вычислительных алгоритмов в операции над массивами и матрицами, что уменьшает проигрыш NumPy в быстродействии компилируемым языкам, таким как C или Fortran.
Этим NumPy очень напоминает интерпретируемый язык MATLAB'a и потому считается одной из его перспективных альтернатив, конечно, в комплекте со специализированными пакетами для Python, такими как вышеупомянутый SciPy, matplotlib, GMPY и другими.

Функции линейной алгебры в NumPy основаны на коде библиотеки LAPACK.

NumPy 1.6.0 совместим и с Python 2.4 - 2.7, и с Python 3.1 - 3.2.
Среди основных изменений в этом выпуске:

  • новый итератор, увеличивающий быстродействие большого количества функций
  • добавление поддержки 16-битного формата чисел с плавающей точкой половинной точности - IEEE 754-2008 binary16 (half precision), как тип данных numpy.half
  • добавлены полиномы Лежандра (Legendre), Лягерра (Laguerre), Эрмита (Hermite)
  • поддержка генератором F2py (Fortran to Python) массивов с динамическими размерами (assumed shape arrays) по стандарту Fortran 90
  • дополнения в C API
  • добавление ряда новых функций и замена части старых
С полным списком изменений можно ознакомиться в архиве с исходными кодами или на странице загрузки на sourceforge.net.

Numpy распространяется под лицензией BSD.
Кроме исходных кодов предоставляются также бинарные сборки для ОС Windows и Mac OS X.

>>> Исходный код NumPy

>>> Краткий список изменений

>>> Веб-страница NumPy


Zhek@Ch

28 Мая 2011, 12:29 #11 Последнее редактирование: 28 Мая 2011, 12:30 от Zhek@Ch
[size="3"]Корректирующий релиз Python 2.5.6 [/size]

Представлен корректирующий выпуск языка программирования Python - 2.5.6, в котором устранено несколько связанных с безопасностью ошибок. Ветка Python 2.5.x уже несколько лет не поддерживается, последним полноценным выпуском с исправлением ошибок была версия 2.5.4, после выхода которой в ветке 2.5.x устраняются только проблемы безопасности. Время жизни ветки 2.5.x подходит к концу (официально ветка будет закрыта в октябре 2011 года), вероятно 2.5.6 будет последним обновлением в данной серии, поэтому пользователям рекомендуется провести обновление до версии 2.7.1 или рассмотреть возможность миграции на ветку 3.x.

В Python 2.5.6 исправлено 4 проблемы безопасности:

  • Устранена возможность совершения XSS-атак в модуле SimpleHTTPServer;
  • В urllib и urllib2 добавлено игнорирование перенаправлений, если схема URL отлична от HTTP, HTTPS и FTP (можно было выполнить редирект на локальный файл);
  • Решена проблема с расчётом длины строки в модуле audioop (CVE-2010-2089);
  • В модуль audioop добавлены некоторые дополнительные проверки возможных переполнений.

Zhek@Ch

14 Июня 2011, 21:33 #12 Последнее редактирование: 14 Июня 2011, 21:34 от Zhek@Ch
[size="3"]Корректирующие релизы Python 2.7.2 и 3.1.4 [/size]
 
Вслед за версиями Python 2.5.6 и 2.6.7, представлены корректирующие выпуски активно поддерживаемых веток Python - Python 2.7.2 и 3.1.4 (обновление для ветки 3.2 пока находится на стадии кандидата в релизы), в которых кроме исправления нескольких несущественных уязвимостей проведена работа по исправлению ошибок.

В версии 2.7.2 отмечено 160 исправлений, а в версии 3.1.4 - 140. Из наиболее важных изменений отмечается увеличение размера стека по умолчанию, используемого в процессе работы вторичных потоков на платформах Mac OS X и FreeBSD, что позволит уменьшить вероятность краха вместо вывода ошибки "maximum recursion depth". Добавлена поддержка работы с датами после 2038 года на платформе Windows с файловой системой NTFS. Для платформы RHEL 5 решены проблемы с крахом после выполнения fork() и реинициализации TLS.


Zhek@Ch

29 Июня 2011, 00:02 #13 Последнее редактирование: 29 Июня 2011, 00:02 от Zhek@Ch
[size="3"]SymPy 0.7.0[/size]
 
После более года активной разработки вышла новая версия SymPy -- Python-библиотеки для символьных вычислений.

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

Сейчас проект включает в себя около 86000 строк кода, и в число его возможностей входят:

  • выполнение арифметических операций над многочленами;
  • упрощение многочленов;
  • раскрытие скобок;
  • факторизация;
  • дифференцирование;
  • интегрирование;
  • нахождение пределов;
  • решение уравнений и систем уравнений;
  • работа с матрицами;
  • многое другое.
В версии 0.7.0 было внесено большое количество улучшений, с полным списком которых можно ознакомиться здесь.

Следует отметить, что на данный момент для работы SymPy необходим Python 2 версии не ниже 2.4, а со следующей после 0.7.0 версии - Python 2.5. Поддержку Python 3 планируется реализовать уже в версии 0.8.0.

>>> Документация

>>> Полный список изменений


Zhek@Ch

02 Июля 2011, 11:24 #14 Последнее редактирование: 02 Июля 2011, 11:25 от Zhek@Ch
[size="3"]Реализация PyPy языка Python избавляется от глобальных блокировок[/size]
 
Глобальные блокировки в CPython (стандартная реализация языка python) долгое время были камнем преткновения и предметом многочисленных споров. В реализации PyPy, до недавнего времени, была применена схожая техника разграничения доступа к общим данным.

В настоящее время команда разработчиков проекта PyPy работает над альтернативным алгоритмом разграничения доступа к общим данным. Вместо блокировок предлагается использовать транзакции по аналогии с базами данных.

Вместо прямого изменения содержимого оперативной памяти программа работает со специальной областью (транзакционной памятью), в которую вносятся все изменения. По завершению обработки эти изменения атомарно вносятся в память программы. В случае обнаружения коллизии с другими транзакциями, изменения вносятся только от первой транзакции; остальные транзакции отменяются и отправляются на повторное выполнение.

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

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

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

>>> Подробности


Zhek@Ch

07 Июля 2011, 07:23 #15 Последнее редактирование: 07 Июля 2011, 07:23 от Zhek@Ch
[size="3"]Релиз Python-компилятора Shed Skin 0.8 [/size]
 
Представлен релиз проекта Shed Skin 0.8, в рамках которого развивается экспериментальный компилятор Python-скриптов в представление на языке C++. Поддерживается генерация как обособленных исполняемых программ, так и модулей, которые после компиляции можно импортировать в Python-проекты с целью оптимизации производительности. В новой версии Shed Skin добавлена поддержка новых модулей (array, struct), решены проблемы с работой на 64-разрядных системах, добавлены новые оптимизации и исправлены ошибки. Код Shed Skin распространяется в рамках лицензии GPLv3.

Для компилируемых скриптов обязательным требованием является использование статической типизации (в процессе работы скрипта тип переменной не должен изменяться). Дополнительные ограничения вносятся на возможности использования стандартной библиотеки модулей - в настоящее время поддерживается только 22 базовых модуля. Из языковых конструкций не поддерживаются вложенные функции и функции с переменным числом аргументов.

Отдельный интерес представляет тестовый комплект, используемый для оценки совместимости с базовой реализацией CPython и для измерения производительности. Для тестов используется специально созданный в рамках проекта эмулятор платформы c64 (около 3500 строк кода) и около 60 различных скриптов, охватывающих различные особенности языка Python. При запуске под управлением CPython эмулятор обеспечивает вывод всего нескольких кадров в секунду, после компиляции с использованием Shed Skin производительность возросла до 50 FPS. В среднем, по утверждению разработчиков, Shed Skin обеспечивает прирост производительности от 2 до 200 раз, в зависимости от используемых задач.

При оценке работы при помощи тестового комплекта plb, в тесте "sudoku" Shed Skin оказался быстрее JPython в 31 раз, CPython в 25 раз, IronPython в 22 раза, PyPy в 4 раза. В тесте обработки строковых данных Shed Skin израсходовал в три раза больше памяти чем CPython, уступив только Jython, но в тесте умножения матриц потребление памяти в Shed Skin оказалось почти в два раза ниже CPython.

Из других проектов по созданию компиляторов для языка Python упоминается проект Gccpy, основанный студентом в рамках программы Google Summer Of Code 2010. Gccpy развивается под впечатлением от проекта PHC (фронтэнд к GCC для языка PHP). Как и PHC проект Gccpy реализован в виде фронтэнда к GCC. Разработка Gccpy еще далека от завершения, но позавчера был преодолен важный рубеж - подготовлен пригодный для сборки набор исходных текстов.


Zhek@Ch

12 Июля 2011, 00:06 #16 Последнее редактирование: 12 Июля 2011, 00:09 от Zhek@Ch
[size="3"]Корректирующий релиз Python 3.2.1 [/size]
 
Представлен корректирующий выпуск языка программирования Python 3.2.1, в котором устранено 177 ошибок, выявленных за пять месяцев, прошедших с момента выхода релиза Python 3.2.0. Семь исправленных ошибок приводили к краху интерпретатора.

Одно из исправлений связано с устранением уязвимости в библиотеках urllib и urllib2, в которых можно было выполнить редирект на локальный файл. Для решения проблемы в urllib и urllib2 добавлено игнорирование перенаправлений, если схема URL отлична от HTTP, HTTPS и FTP.


Zhek@Ch

13 Августа 2011, 09:59 #17 Последнее редактирование: 13 Августа 2011, 09:59 от Zhek@Ch
[size="3"]Релиз Cython 0.15, варианта языка Python, поддерживающего плотную интеграцию с Си [/size]

Представлен релиз Cython 0.15, варианта языка программирования Python, нацеленного на упрощение интеграции с кодом на языке Си. При помощи Cython создавать расширения на языке Си для основного Python-проекта так же просто, как писать на Python. Язык Cython максимально приближен к Python, но обладает возможностью прямого вызова функций на языке Си и поддерживает определение типов переменных как в языке Си. Подобный подход позволяет компилировать итоговый код на языке Cython в представление на языке Си, которое затем собирается штатным системным компилятором.

Производительность кода при использовании Cython примерно на 30% выше, чем при использовании CPython, в некоторых случаях, прирост скорости достигает 60-90%, например, при выполнении операций if-elif-else или при работе циклов. В настоящее время Cython не поддерживает некоторые конструкции языка Python. Тем не менее, конечной целью проекта, является намерение предоставить возможность выполнения обычных скриптов на языке Python и обеспечить поддержку прохождения стандартного тестового комплекта Python.

В новой версии обеспечена поддержка генераторов, добавлено ключевое слово nonlocal, обеспечена поддержка OpenMP, представлена более быстрая реализация выражения "with", реализованы PEP-3134 (Exception Chaining) и PEP-382 (относительный импорт).


Zhek@Ch

20 Октября 2011, 21:54 #18 Последнее редактирование: 20 Октября 2011, 21:55 от Zhek@Ch
[size="3"]Matplotlib 1.1.0[/size]
 
Вышла версия 1.1.0 Matplotlib -- популярной библиотеки для построения графиков с использованием языка программирования Python. Основные изменения по сравнению с версией 1.0.1:

  • модуль sankey для рисования диаграмм;
  • окружение для создания анимированых графиков -- модуль animation;
  • автоматизация позиционирования графиков, подписей и осей на холсте -- команда tight_layout() позволит распределить их так, чтобы они не наезжали друг на друга;
  • продолжена работа по интеграции с PySide, хотя функционал всё ещё находится в beta-версии и рекомендуется по прежнему пользоваться PyQt4;
  • улучшено отображение и позиционирование легенд;
  • упрощена работа с трёхмерными графиками (модуль mplot3d), также существенно расширена и обновлена документация по mplot3d;
  • унифицированы маркеры;
  • полностью убрана поддержка старого модуля Numerix, теперь все пользователи должны использовать Numpy;
  • исправлен ряд ошибок.
Выпуск 1.1 -- последний, сохраняющий совместимость с Python версий от 2.4 до 2.7. Последующие выпуски будут поддерживать только Python 2.6, 2.7 и 3.1 и более новые версии ветки Python 3.

 >>> Подробности


Zhek@Ch

10 Ноября 2011, 22:18 #19 Последнее редактирование: 10 Ноября 2011, 22:19 от Zhek@Ch
[size="3"]Обнародован план неподготовки релиза Python 2.8 [/size]

Barry Warsaw опубликовал в списке рассылки python-dev план неподготовки новой версии Python 2.8. Версия 2.7, вышедшая в 2010 году, была заявлена как последняя версия в этой серии. Планировалось, что новшества в ветку 2.x больше добавляться не будут, а поддержка (исправление ошибок) продлится до 2015 года. В полном согласии с предыдущими планами дата релиза Python 2.8 назначена на "никогда" (Never). В соответствии с принятым решением Python ветка 2.8 не будет выпущена. Официальный путь модернизации Python 2.7 -- Python 3. Ответственным за "невыпуск" (Un-release Manager) предложен кардинал Бигглз (Cardinal Biggles), герой одного из телевизионных шоу комедийной группы Монти Пайтон (Monty Python), в честь которой назван язык программирования Python.


Zhek@Ch

21 Ноября 2011, 21:44 #20 Последнее редактирование: 21 Ноября 2011, 21:46 от Zhek@Ch
[size="3"]Релиз PyPy 1.7, реализации Python, написанной на языке Python [/size]

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


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

Основные изменения:

  • Многочисленные улучшения производительности;
  • Исправления ошибок и улучшение совместимости с CPython;
  • Улучшение поддержки Windows;
  • Опция беcстекового (Stackless) исполнения теперь включена по умолчанию. К сожалению, программы, использующие бесстековость, пока не получат реального увеличения производительности, потому, что любой цикл, использующий бесстековые возможности, собьёт JIT-компилятор;
  • Версия библиотеки для организации научных расчетов NumPy для PyPy переименована в numpypy (следует использовать "import numpypy as numpy"). Большой прогресс достигнут со времён PyPy 1.6, особо следует отметить реализацию dtypes. Тем не менее, полная поддержка API библиотеки NumPy пока не реализована;
  • Новый кодировщик JSON, который опережает CPython в некоторых случаях до 2 раз и более чем в 20 раз -- старый, используемый в версии 1.6;
  • Значительно улучшено управление памятью в некоторых внутренних модулях. Это должно подействовать на любые приложения, использующие, например, криптографию;
  • Есть некоторый прогресс в расширении поддержки бинарных расширений CPython (написанных с использованием C API) через cpyext.
Вещи, работа над которыми ещё ведётся и которые ожидаются в 1.8:

  • Специализация списков. Есть ветка, реализующая списки элементов одного типа (целых, чисел с плавающей точкой, строк) так же компактно, как array.array. Это значительно увеличит производительность и уменьшит расход памяти;
  • Продолжаются работы над NumPy, скоро ожидаются многомерные массивы;
  • Два новых бэкэнда JIT, для процессоров PowerPC и ARM.
Некоторые особенности PyPy:

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

Zhek@Ch

25 Ноября 2011, 22:22 #21 Последнее редактирование: 25 Ноября 2011, 22:25 от Zhek@Ch
[size="3"]Python OS Project - новая операционная система на языке Python [/size]

Анонсирован проект Python OS Project (POP), созданный с целью разработки операционной системы, компоненты которой написаны полностью на языке Python. POP основан на ядре Linux (в данный момент используется ядро версии 2.6.32) и окружении GNU, которое постепенно перерабатывается на языке Python. Многие составные части пользовательского окружения уже переписаны. Код проекта пока недоступен (дополнение: загрузить iso-образ можно здесь) - ведётся работа по выбору открытой лицензии и созданию публичного репозитория. В качестве причин разработки называется работа ради удовольствия (Just For Fun) и желание сделать интересную и легко изменяемую систему.

В настоящее время на языке Python переписаны такие приложения, как инсталлятор, пакетный менеджер, система инициализации, файловый менеджер, типовые системные утилиты (ls, cp, rm, vat, zcat и т.п.), эмулятор терминала (POPemu на базе termemulator), вспомогательные утилиты (wget, top), интерфейс к mplayer, mpd и moc, PDF-просмотрщик. В состав также входит оконный менеджер Qtile, http-сервер POPweb (основан на Cherrypy), Jabber/ICQ клиент POPim, графический редактор Mirageiv, BitTorrent-клиент Deluge, текстовый редактор Snaked и СУБД Buzhug. В планах разработка web-браузера на языке Python, офисного пакета, X-сервера и в конечном итоге создание ядра системы на языке Python.


Дополнительно можно упомянуть, что создание операционных систем на интерпретируемых языках неоднократно предпринималось в прошлом. Например, наиболее известными из ныне живущих проектов по созданию ОС на Python являются Pycorn OS и Cleese. В отличие от проекта POP, данные операционные системы ориентированы в первую очередь на создании ядра системы на языке Python, включая драйверы, сетевой стек и реализацию файловых систем. В рамках проекта Cleese развивается концепция создания интерпретаора байткода Python, способного работать непосредственно на "голой" системе, выступая в роли микро-ядра для запуска написанных на языке Python компонентов ядра ОС. В рамках проекта Perlix развивается пользовательское окружение на языке Perl, работающее поверх ядра Linux. Обилие проектов по созданию операционных систем базируется языке Java, среди них: JNode, JOS, JX, Sanos, SavaJe и JavaOS.