Product SiteDocumentation Site

4. Зміни у Fedora для розробників

4.1. Програмування

4.1.1. Scratch

До складу Fedora 19 включено Scratch, графічне середовище навчання програмуванню від Lifelong Kindergarten Group у IT Media Lab. Scratch спрощує створення власних інтерактивних оповідань, ігор, анімацій, музики і художніх творів.
Встановити Scratch можна за допомогою команди
        yum install scratch
і запустити або за допомогою меню програм вашого робочого середовища (меню «Програмування») або за допомогою команди «scratch», відданої з вікна термінала.

4.1.2. Новий Ruby 2.0.0

У Fedora 19 ви зможете скористатися новою версією Ruby.У новому випуску розширено ядро мови, додано нові вбудовані бібліотеки, покращено підтримку діагностики та швидкодію.
Розробниками проекту Ruby надано докладний опис змін та настанови зі збереження сумісності коду. Ці дані можна знайти у оголошенні щодо випуску: http://www.ruby-lang.org/en/news/2013/02/24/ruby-2-0-0-p0-is-released/

4.1.3. JRuby 1.7

JRuby оновлено до версії 1.7, у якій покращено можливості з пакування. Подробиці щодо випуску можна знайти за адресою http://jruby.org/2012/10/22/jruby-1-7-0.html

4.1.4. Erlang

Пакунки конкурентної мови програмування та оболонки для виконання програм Erlang оновлено до версії R16B. Повністю з журналом змін можна ознайомитися за адресами http://www.erlang.org/download/otp_src_R16A_RELEASE_CANDIDATE.readme і http://www.erlang.org/download/otp_src_R16B.readme. Документація до випуску: http://vimeo.com/44790646 і http://www.erlang.org/download_release/17

4.1.5. Boost оновлено до версії 1.53

До складу Fedora 19 включено Boost версії 1.53. Порівняно з версією 1.50, яка була частиною Fedora 18, до Boost 1.53 включено декілька нових бібліотек:
Context для перемикання контексту;
Coroutine, бібліотеку співпрограм;
Lockfree, бібліотеку доступу до структур даних без блокування;
Multiprecision, бібліотеку підвищеної точності для арифметичних типів даних з рухомою крапкою, цілих та для раціональної арифметики;
Atomic, атомарні об’єкти у стилі C++11
Odeint для розв’язання звичайних диференціальних рівнянь
Оновлено багато інших бібліотек. Ви можете ознайомитися з докладним журналом змін для версій Boost 1.51.0, 1.52.0 і 1.53.0:
Нотатки щодо випуску Boost 1.50.0
Нотатки щодо випуску Boost 1.51.0
Нотатки щодо випуску Boost 1.52.0
Нотатки щодо випуску Boost 1.53.0

Зворотна сумісність

Зауважте, що у нових версіях не збережено ні програмний інтерфейс, ні бінарну сумісність з Boost 1.50. Сторонні програми, які було зібрано з використанням попередніх версій Boost, слід зібрати повторно. Також можуть знадобитися зміни у коді для належної роботи програми з використанням бібліотек Boost 1.53.

4.1.6. GNU Guile оновлено до версії 2.0.7

Пакунки GNU Guile оновлено до версії 2.0.7. Сторонні програми, які залежать від застарілої версії guile, зможуть використовувати пакунок compat-guile18. Докладнішу інформацію щодо Guile 2 можна знайти за адресою http://www.gnu.org/software/guile/download.html#releases

4.1.7. Python

4.1.7.1. PIL замінено на Pillow
Python Imaging Library або просто PIL було замінено на Pillow, відгалуження цієї бібліотеки, яке активно розвивається, а також використовує сумісні з Python 3 модулі. Pillow є повноцінним замінником PIL, але для імпортування модулів тепер треба використовувати команду
          from PIL import <Модуль>
замість простого
          import <Модуль>
Ця зміна не порушує зворотної сумісності із застарілим кодом для PIL. З документацією можна ознайомитися за адресою https://github.com/python-imaging/Pillow/
4.1.7.2. PyXML вилучено, використовуйте stdlib
Програмісти мовою Python, які використовували модуль xml, можуть виявити, що деякі речі працюють трохи інакше, ніж це було раніше. Причиною є те, що з Fedora виключено пакунок PyXML. Ця зміна відкрила доступ до модуля xml бібліотеки stdlib. Пакунок PyXML раніше замінював код stdlib власним кодом. Викидання з дистрибутива пакунка PyXML забезпечує пріоритетність використання функцій stdlib.

4.2. Засоби розробки

4.2.1. Створення контрольних точок та їхнє відновлення за допомогою crtools

У проекті CRIU (Checkpoint/Restore in User-space) передбачено реалізацію у робочому просторі користувача створення і відновлення контрольних точок роботи процесів та груп процесів. За допомогою інструментів робочого простору користувача crtools, доступних у цьому випуску, можна створювати записи контрольних точок процесів та відновлювати їх пізніше (наприклад після аварійного завершення) або переносити збережені контрольні точки процесів або груп процесів у інші системи. CRIU повинен бути максимально прозорим, тому ніяких додаткових дій або перезбирання процесів, для яких будуть створюватися контрольні точки, не потрібно.
Щоб створити дамп процесу, скористайтеся такою командою:
        crtools dump -D /шлях/до/каталогу/дампів -t <PID>
Щоб відновити процес, скористайтеся командою:
        crtools restore -D /шлях/до/каталогу/дампів -t <PID>
Сторінку проекту CRIU розташовано за адресою http://criu.org

4.2.2. Developer's Assistant

Новим розробникам буде легко розпочати роботу за допомогою Developer's Assistant, набору інструментів для миттєвого започаткування проектів, написаних цілим діапазоном мов та за допомогою набору інструментів. У поточній версії пакунку devassistant передбачено такі можливості:
C і C++
python, зокрема django і flask
java, зокрема jsf і maven

4.2.3. MEMSTOMP

Fedora 19 постачається з MEMSTOMP, DSO (динамічним об’єктом спільного використання), який може бути попередньо завантажено до програми для виявлення перекриття за аргументами у певних функціях з нижчими витратами, ніж це робить valgrind.

4.2.4. Нові інструменти

recode додає можливість перетворювати дані у файлах з різними наборами символів і кодуваннями
comdemod — інструмент, який може допомогти у значному переформатуванні та змінах назв у коді.
jimtcl — невибаглива до ресурсів реалізації Tcl.
fox — заснований на C++ набір бібліотек для розробки графічних інтерфейсів користувача у простий та ефективний спосіб.

4.3. Інструменти GCC

4.3.1. GCC 4.8.x

У Fedora 19 типовою версією GCC є 4.8.x. Крім того, всі пакунки Fedora було повторно зібрано з використанням GCC 4.8.x (і GLIBC 2.17; див. нижче)
Користувачі зможуть скористатися покращеннями у зібраному коді та новими можливостями, зокрема покращеною підтримкою стандартів C++11 і C11, векторизації тощо.
Оновлення у GCC стосуються і системи крос-компіляції MinGW. Однією з найпомітніших змін є те, що типову модель обробки виключень для win64 було змінено з SjLj на SEH. У win32 продовжує використовуватися модель обробки виключень SjLj. Таким чином, всі виконувані файли для win64, у яких використовується обробка виключень, залежать від libgcc_s_seh-1.dll, а не від libgcc_s_sjlj-1.dll.
Щоб дізнатися більше про зміни у GCC 4.8.x, будь ласка, відвідайте сторінку за адресою http://gcc.gnu.org/gcc-4.8/changes.html

4.3.2. GLIBC 2.17

У Fedora 19 типовою версією GLIBC є 2.17. Всі пакунки Fedora було повторно зібрано за допомогою GLIBC 2.17 (та GCC 4.8.x; див. вище).
Докладніший опис змін у GLIBC 2.17 можна знайти на сторінці за адресою http://sourceware.org/ml/libc-announce/2012/msg00001.html

4.4. D

4.5. Haskell

GHC було оновлено до версії 7.4.2, haskell-platform — до 2012.4, було оновлено також багато інших бібліотек.

4.6. Java

4.6.1. Демонстраційна версія Java 8

До цього випуску Fedora включено демонстраційну версію Java 8, яка встановлюється за допомогою пакунків java-1.8.0-openjdk і java-1.8.0-openjdk-devel.
У цьому випуску Java 7 продовжує залишатися типовим JDK. Включення до випуску Java 8 і OpenJDK8 надасть змогу розробникам створювати і тестувати програми для наступної версії Java паралельно з поточною версією, а всім іншим користувачам дистрибутива використовувати стабільну версію Java 7.
З новими можливостями OpenJDK8 можна ознайомитися за адресою http://openjdk.java.net/projects/jdk8/features/

4.6.2. Спрощене пакування за допомогою Maven

У новому випуску передбачено покращені і спрощені інструменти створення пакунків RPM для проектів Apache Maven. Подробиці та настанови з перетворення старих файлів spec наведено на сторінці за адресою http://mizdebsk.fedorapeople.org/xmvn/cookbook/

4.6.3. Thermostat 1.0

До складу Fedora 19 включено пакунок Thermostat 1.0, першу версію зі стабільним програмним інтерфейсом (API) програми thermostat, інструмента спостереження, керування та обслуговування для OpenJDK.
Настанови з користування можна знайти у підручнику користувача Thermostat за адресою http://icedtea.classpath.org/wiki/Thermostat/UserGuide

4.7. Розробка вебсторінок

4.7.1. PHP оновлено до версії 5.5.0

Пакунки популярної мови програмування PHP оновлено до версії 5.5.0. У цій версії реалізовано декілька значних нових можливостей, зокрема підтримку генераторів, новий кеш Opcode Zend Optimizer+, а також декілька покращень у швидкодії.
Повний список змін та настанови щодо перенесення коду PHP 5.4.x до PHP 5.5.x для розробників можна знайти у файлі /usr/share/doc/php-common-*/NEWS та довіднику з перенесення: http://www.php.net/manual/en/migration55.php.

4.7.2. Node.js

До нової версії Fedora 19 включено середовища запуску програм мовою JavaScript Node.js. Це середовище призначено для розробки швидких, масштабованих інтернет-програм мовою програмування JavaScript. Крім того, до дистрибутива включено інструмент керування пакунками npm, який забезпечує доступ до понад 20.000 бібліотек і програм, безкоштовних та з відкритим кодом.
Щоб дізнатися більше про Node.js, відвідайте сторінку за адресою http://nodejs.org або ознайомтеся з документацією з пакунка nodejs-docs.
Щоб дізнатися більше про npm, зокрема ознайомитися з каталогом доступних бібліотек і програм, відвідайте сторінку за адресою http://npmjs.org/.

4.7.3. Django 1.5

До складу Fedora 19 включено версію 1.5 популярної оболонки для вебпрограм Django. У цій версії впроваджено покращення, які роблять простішим визначення нетипових механізмів розпізнавання, покращено підтримку кешування, новий теґ шаблонів спрощує використання шаблонів JavaScript у шаблонах Django тощо.
Щоб дізнатися більше, ознайомтеся з нотатками щодо випуску Django 1.5 за адресою https://docs.djangoproject.com/en/dev/releases/1.5/.