Став доступний новий випуск проекту Pythonium 0.4.7, в рамках якого розвивається компілятор , здатний перетворювати написані з використанням мови Python 3 скрипти на мову JavaScript, для виконання в web-браузерах. Pythonium доступний у двох варіантах: Pythonium Compliant, повністю сумісний з CPython 3 і відповідний для трансляція проектів для роботи в Web, і Pythonium Veloce, що надає засоби для написання web-додатків на мові Python. Код Pythonium написаний на мові Python і розповсюджується під ліцензією LGPLv2.1.
Pythonium Veloce повністю сумісний з існуючими JavaScript-бібліотеками і дозволяє домогтися продуктивності звичайних JavaScript-додатків. Для маніпулювання html-об'єктами і доступу до браузерних технологій в первісному скрипті на мові Python можна використовувати можливості бібліотеки jQuery або безпосередньо викликати JavaScript-блоки, для чого пропонується використовувати спеціальну функцію-враперів JS().
неділя, 29 грудня 2013 р.
Оновлення Python 3.3.3. Випуск Wing IDE 5.0.
Став доступний коригувальний випуск мови програмування Python 3.3.3, в якому представлено близько трьохсот виправлень. У тому числі усунуто одинадцять вразливостей, серед яких вичерпання пам'яті через обробку дуже довгих рядків у функції readline та проблема в SSL-модулі з обробкою символів з нульовим кодом в полі subjectAltName. Також усунутий крах інтерактивного інтерфейсу інтерпретатора при його запуску в OS X 10.9.
Одночасно представлено випуск інтегрованого середовища Wing IDE 5.0, призначеного для розробки додатків мовою Python. IDE надає професійний редактор коду, в якому можливо використовувати клавіатурні комбінації vi і emacs, працює автодоповнення коду, рефакторінг, відстеження викликів, контекстні підказки. Доступний графічний відладчик коду, інтерфейс для контролю версій, система unit-тестування, гнучкий механізм пошуку. Збірки Wing підготовлені для Linux, Windows і OS X. Вихідні тексти Wing надаються, але тільки після підписання спеціальної угоди про нерозголошення.
Одночасно представлено випуск інтегрованого середовища Wing IDE 5.0, призначеного для розробки додатків мовою Python. IDE надає професійний редактор коду, в якому можливо використовувати клавіатурні комбінації vi і emacs, працює автодоповнення коду, рефакторінг, відстеження викликів, контекстні підказки. Доступний графічний відладчик коду, інтерфейс для контролю версій, система unit-тестування, гнучкий механізм пошуку. Збірки Wing підготовлені для Linux, Windows і OS X. Вихідні тексти Wing надаються, але тільки після підписання спеціальної угоди про нерозголошення.
Оновлення Python 2.7.6
Став доступний коригувальний випуск Python 2.7.6, в якому проведена робота щодо виправлення помилок. З найбільш істотних виправлень відзначається вирішення проблеми, що приводила до краху інтерактивного інтерфейсу інтерпретатора при його запуску в OS X 10.9. Вирішено проблему з безпекою в реалізації CGIHttpRequestHandler, що дозволяє здійснити вихід за межі базової директорії. Також усунено кілька DoS-вразливостей, викликаних вичерпанням пам'яті при обробці дуже довгих рядків у функції readline. Гілка 2.7 залишається останньою в серії 2.x і буде підтримуватися до липня 2015 року.
субота, 28 грудня 2013 р.
Реліз web-фреймворка Django 1.6
Представлена стабільна версія популярного фреймворка Django 1.6, написаного мовою Python і призначеного для розробки веб-додатків. Випуск Django 1.6 примітний переведенням підтримки Python 3 в категорію готового для промислової експлуатації. Крім того, підтримка Python 3 додана в додаток з реалізацією панелі Debug Toolbar. В якості підтримуваних гілок Python заявлені 2.6.X, 2.7.X, 3.2.X і 3.3.X. У наступному випуску підтримка Python 2.6 буде припинена.
З поліпшень Django 1.6 зазначається:
- Включення за замовчуванням захисту від clickjacking-атак в проектах, шаблонах і інтерфейсі адміністратора;
- Спрощення використовуваних за замовчуванням файлів з шаблонами програми та описами проекту. За замовчуванням пропонується SQLite;
- Переробка коду обробки транзакцій і включення за замовчуванням підтримки автоматичних комітів на рівні СУБД.
- Підтримка постійних з'єднань з СУБД. На відміну від раніше підтримуваного пулінгу з'єднань, новий метод зберігає з'єднання відкритим при виконанні різних запитів одним обробником;
Оновлення Python 2.6.9
Представлено коригувальний випуск Python 2.6.9, останній в гілці 2.6.x. У випуску 2.6.9 усунуто сім вразливостей, серед яких вичерпання пам'яті через обробку дуже довгих рядків у функції readline, можливість організації виконання коду через tkinter і проблема в SSL-модулі з обробкою символів з нульовим кодом в полі subjectAltName.
Вся активність з підтримання випусків 2.6.x повністю припинена, поновлення, в тому числі для критичних проблем безпеки, для даної гілки випускатися більше не будуть. Користувачам Python 2, які з тих чи інших причин не можуть перейти на Python 3, рекомендується спланувати перехід на Python 2.7. Припинення підтримки гілки 2.7.x, останньою в серії 2.x, очікується в 2015 році.
Вся активність з підтримання випусків 2.6.x повністю припинена, поновлення, в тому числі для критичних проблем безпеки, для даної гілки випускатися більше не будуть. Користувачам Python 2, які з тих чи інших причин не можуть перейти на Python 3, рекомендується спланувати перехід на Python 2.7. Припинення підтримки гілки 2.7.x, останньою в серії 2.x, очікується в 2015 році.
Fedora переходить на Python 3 і пакетний менеджер DNF за замовчуванням
На проведеному засіданні комітету FESCo (Fedora Engineering Steering Committee), що відповідає за технічну частину розробки дистрибутива Fedora Linux, було затверджено рішення щодо переходу дистрибутива на використання Python 3 за замовчуванням, починаючи з випуску Fedora 22. Серед ключових наслідків переходу на Python 3 зазначається задіяння за замовчуванням пакетного менеджера DNF, який замінить собою Yum, що підтримує виконання тільки з використанням Python 2.
Пакетний менеджер DNF є відгалуженням від Yum 3.4, в якому розвивалися деякі нові ідеї. Для дозволу залежностей в DNF задіяно SAT solver, реалізований в бібліотеці libsolv (hawkey виступає в ролі надбудови над libsolv), створеної в рамках проекту openSUSE. Для звичайного користувача головними перевагами DNF є помітно більш висока швидкість роботи і низьке споживання пам'яті. Для розширення функціональності DNF надає фіксований API для додатків і інтеграції з іншими додатками, такими як інсталятор Anaconda.
Пакетний менеджер DNF є відгалуженням від Yum 3.4, в якому розвивалися деякі нові ідеї. Для дозволу залежностей в DNF задіяно SAT solver, реалізований в бібліотеці libsolv (hawkey виступає в ролі надбудови над libsolv), створеної в рамках проекту openSUSE. Для звичайного користувача головними перевагами DNF є помітно більш висока швидкість роботи і низьке споживання пам'яті. Для розширення функціональності DNF надає фіксований API для додатків і інтеграції з іншими додатками, такими як інсталятор Anaconda.
Тестування Coverity показало, що проект Python лідирує за рівнем якості коду
Компанія Coverity, що розвиває інструментарій для автоматичного аналізу коду на предмет наявності проблем безпеки і помилок, опублікувала результати оцінки якості інтерпретатора мови Python (CPython 3.3.2). Дослідження показало, що реалізація Python демонструє найменший рівень дефектів у порівнянні з іншими пропрієтарними і відкритими проектами, що дозволяє розглядати Python як новий еталон якості.
Якщо для раніше проаналізованих відкритих проектів зафіксовано середній рівень дефектів у 0.69 помилок на 1000 рядків коду, то для коду Python рівень дефектів склав всього 0.005. Якщо врахувати, що вимоги промислових стандартів якості допускають наявність 1 помилки на 1000 рядків коду, то якість коду Python в 200 разів вище даних вимог.
У процесі проведення дослідження було проаналізовано близько 396 тисяч рядків коду CPython 3.3.2. У підсумку було виявлено 278 нових дефектів, з яких 181 вже виправлені розробниками Python (у сумі, з 2006 року в Python виявлено 996 помилок, виправлено — 860). При розгляді інших проектів розміром від 100 до 500 тисяч рядків коду, середній показник дефектів для відкритих розробок становить 0.60, а для пропрієтарних — 0.66.
Система Coverity Scan була створена в 2006 році з ініціативи Міністерства національної безпеки США для забезпечення та посилення безпеки інформаційної інфраструктури Сполучених Штатів, в якій використовуються різні Open Source проекти. В даний час програма тестування Coverity Scan охоплює близько чотирьохсот відкритих проектів, сумарний розмір коду яких перевищує 68 млн рядків. При автоматичному аналізі даного коду було виявлено 47 тисяч дефектів з яких вже виправлена 21 тисяча помилок.
Якщо для раніше проаналізованих відкритих проектів зафіксовано середній рівень дефектів у 0.69 помилок на 1000 рядків коду, то для коду Python рівень дефектів склав всього 0.005. Якщо врахувати, що вимоги промислових стандартів якості допускають наявність 1 помилки на 1000 рядків коду, то якість коду Python в 200 разів вище даних вимог.
У процесі проведення дослідження було проаналізовано близько 396 тисяч рядків коду CPython 3.3.2. У підсумку було виявлено 278 нових дефектів, з яких 181 вже виправлені розробниками Python (у сумі, з 2006 року в Python виявлено 996 помилок, виправлено — 860). При розгляді інших проектів розміром від 100 до 500 тисяч рядків коду, середній показник дефектів для відкритих розробок становить 0.60, а для пропрієтарних — 0.66.
Система Coverity Scan була створена в 2006 році з ініціативи Міністерства національної безпеки США для забезпечення та посилення безпеки інформаційної інфраструктури Сполучених Штатів, в якій використовуються різні Open Source проекти. В даний час програма тестування Coverity Scan охоплює близько чотирьохсот відкритих проектів, сумарний розмір коду яких перевищує 68 млн рядків. При автоматичному аналізі даного коду було виявлено 47 тисяч дефектів з яких вже виправлена 21 тисяча помилок.
Випуск PyPy 2.1
Представлено реліз PyPy 2.1, реалізації мови Python, що написана мовою Python (використовується статично типізована підмножина RPython, Restricted Python). Одночасно доступна для тестування бета-версія PyPy3 2.1 з підтримкою Python 3. Версія PyPy 2.1 примітна забезпеченням офіційної підтримки процесорів ARM в JIT-компіляторі. Крім того, до коду внесено чергові оптимізації — новий випуск в середньому на 10% швидше минулої версії PyPy і в 6.12 разів швидше класичного CPython 2.7.3.
Завдяки JIT-компілятору, на льоту транслюються деякі елементи в машинний код, PyPy при виконанні деяких операцій в кілька разів обганяє по продуктивності класичну реалізацію Python на мові Сі (CPython). Ціною високої продуктивності та використання JIT-компіляції є більш високе споживання пам'яті-загальне споживання пам'яті в складних і довгостроково працюючих процесах (наприклад, при трансляції PyPy силами самого PyPy) перевищує споживання CPython в півтора-два рази.
Завдяки JIT-компілятору, на льоту транслюються деякі елементи в машинний код, PyPy при виконанні деяких операцій в кілька разів обганяє по продуктивності класичну реалізацію Python на мові Сі (CPython). Ціною високої продуктивності та використання JIT-компіляції є більш високе споживання пам'яті-загальне споживання пам'яті в складних і довгостроково працюючих процесах (наприклад, при трансляції PyPy силами самого PyPy) перевищує споживання CPython в півтора-два рази.
Нововведення, додані в PyPy 2.1:
- Повноцінна підтримка генерації коду для архітектури ARM в JIT-компіляторі. Підтримуються системи на базі ARMv6 (Raspberry Pi) і ARMv7 (Beagleboard, Chromebook, Cubieboard тощо) в режимах ABI hard-float (armhf/gnueabihf) і soft-float (armel/gnueabi);
- Підтримка Stacklet для ARM;
- Реалізація бібліотек os.statvfs і os.fstatvfs для Unix-систем;
- Збільшення продуктивності ведення логу;
- Прискорення виконання операцій з множинами в об'єктах;
- При формуванні пакета забезпечена збірка розширення TK з використанням інтерфейсу CFFI;
- Для Numpy покращена підтримка масивів і dtype, додана підтримка субмасивів, проведена робота над помилками;
- Експериментальна підтримка сумісності з Python 3 (CPython 3.2.3), реалізована в окремій гілці PyPy3;
Основні особливості PyPy:
- Підтримка безстекового (Stackless) режиму роботи, що дозволяє використовувати модель actor (erlang-подібне програмування з масою мікропотоків і відсилання сигналів один одному, але при цьому (на відміну від 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.
Новий випуск Nuitka 0.4.3, компілятора для мови Python
Побачив світ компілятор для мови Python — Nuitka 0.4.3, який дозволяє транслювати скрипт на мові Python в подання на C++, яке можна скомпілювати у виконуваний файл, що використовує libpython для забезпечення максимальної сумісності з CPython (використовуються штатні засоби CPython для керування об'єктами). Можлива компіляція як бібліотек так і безпосередньо виконавчих файлів, у тому числі і рекурсивна.
У поточному випуску підтримуються версії мови Python 2.6, 2.7, 3.2 і 3.3. Компіляція виконується шляхом трансляції коду в С++ і подальшої передачі компілятору С++, таким як g++, MinGW g++, clang. Підтримуються операційні системи Linux, Mac OS X, Windows, FreeBSD, NetBSD.
У поточному випуску підтримуються версії мови Python 2.6, 2.7, 3.2 і 3.3. Компіляція виконується шляхом трансляції коду в С++ і подальшої передачі компілятору С++, таким як g++, MinGW g++, clang. Підтримуються операційні системи Linux, Mac OS X, Windows, FreeBSD, NetBSD.
У новій версії Nuitka 0.4.3:
- Додана підтримка компілятора Microsoft Visual C++.
- Додана підтримка NetBSD.
- Численні покращення в підтримці Python 3.3.
- Компілятор видає попередження, якщо компільований файл може бути використаний як модуль і як основна програма, наприклад з конструкціями виду:
if __ name__ == " __main__ ": main ( )
- Додана опція «nuitka --execute module», аналогічна python — з «import module»;
- Внесено нові оптимізації продуктивності.
Випуск PyPy 2.0, реалізації Python, яка написана мовою Python
Після одинадцяти місяців розробки побачив світ випуск PyPy 2.0. В рамках проекту розробляється реалізація мови Python, яка написана мовою Python (використовується статично типізована підмножина RPython, Restricted Python).
Завдяки залученню JIT-компілятора, на льоту транслюються деякі елементи в машинний код, PyPy при виконанні деяких операцій в кілька разів обганяє по продуктивності класичну реалізацію Python 2.7 на мові Сі (CPython). У середньому PyPy 2.0 на 4% швидша за PyPy 1.9 і в 5.7 разів швидше класичного CPython 2.7.3. Ціною високої продуктивності та використання JIT-компіляції є більш високе споживання пам'яті — загальне споживання пам'яті в складних та процесах, що довго працюють (наприклад, при трансляції PyPy силами самого PyPy) перевищує споживання CPython в півтора-два рази.
Стабільний випуск підтримує x86-системи, включаючи Linux (32/64 біт), Mac OS X (64 біт) і Windows (32 біт). Одночасно проходить альфа-тестування варіант PyPy 2.0 для платформи ARM. Випуск для ARM позиціонується як ознайомлювальний, так як версія для даної платформи ще не зовсім стабільна і не підтримує деякі можливості. Зокрема, ще не реалізована підтримка безстекового режиму і JIT не завжди коректно генерує асемблерний код. Тим не менш, незважаючи на ще до кінця не налагоджений і оптимізований JIT, версія для ARM показує досить непогані результати продуктивності лише трохи поступаючись варіанту для платформи x86 за співвідношенням продуктивності з CPython. PyPy для ARM доступний для ARMv6 (Raspberry Pi) і ARMv7 (Beagleboard, Chromebook, Cubieboard) і може працювати в режимах hard-float і soft-float.
Завдяки залученню JIT-компілятора, на льоту транслюються деякі елементи в машинний код, PyPy при виконанні деяких операцій в кілька разів обганяє по продуктивності класичну реалізацію Python 2.7 на мові Сі (CPython). У середньому PyPy 2.0 на 4% швидша за PyPy 1.9 і в 5.7 разів швидше класичного CPython 2.7.3. Ціною високої продуктивності та використання JIT-компіляції є більш високе споживання пам'яті — загальне споживання пам'яті в складних та процесах, що довго працюють (наприклад, при трансляції PyPy силами самого PyPy) перевищує споживання CPython в півтора-два рази.
Стабільний випуск підтримує x86-системи, включаючи Linux (32/64 біт), Mac OS X (64 біт) і Windows (32 біт). Одночасно проходить альфа-тестування варіант PyPy 2.0 для платформи ARM. Випуск для ARM позиціонується як ознайомлювальний, так як версія для даної платформи ще не зовсім стабільна і не підтримує деякі можливості. Зокрема, ще не реалізована підтримка безстекового режиму і JIT не завжди коректно генерує асемблерний код. Тим не менш, незважаючи на ще до кінця не налагоджений і оптимізований JIT, версія для ARM показує досить непогані результати продуктивності лише трохи поступаючись варіанту для платформи x86 за співвідношенням продуктивності з CPython. PyPy для ARM доступний для ARMv6 (Raspberry Pi) і ARMv7 (Beagleboard, Chromebook, Cubieboard) і може працювати в режимах hard-float і soft-float.
Нововведення, додані в PyPy 2.0:
- Безстековий режим доведений до працездатного стану. У тому числі забезпечена підтримка елементів системи багатопотокового програмування «greenlet», а також можливість використання eventlet і gevent;
- До складу PyPy включений новий вбудований модуль cffi з реалізацією інтерфейсу для виклику функцій, написаних на мові Сі. Даний інтерфейс позиціонується як рекомендований метод звернення до функцій на мові Сі;
- Для зворотних викликів Python-функцій з Сі-коду тепер застосовується JIT-компіляція, що, наприклад, дозволило значно прискорити виконання модуля парсинга XML;
- Проведено рефакторінг JIT-компілятора для генерації машинного коду, що оперує областями в купі, замість стека. Подібна зміна дозволила забезпечити роботу безстекового режиму і відкрила нові шляхи подальшої оптимізації;
- Перероблена велика частина класів для роботи з масивами зі складу бібліотеки numpypy, що дозволило позбутися зайвих обчислень. Підготовлена більш повна реалізація dtype і забезпечена підтримка додаткових атрибутів масивів;
- Внесено безліч оптимізацій продуктивності.
Основні особливості PyPy:
- Підтримка безстекового (Stackless) режиму роботи, що дозволяє використовувати модель actor (erlang-подібне програмування з масою мікропотоків і відсилання сигналів один одному, але при цьому (на відміну від 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, JavaScript, Io і Scheme.
Підписатися на:
Дописи (Atom)