Product SiteDocumentation Site

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

4.1. Огляд можливостей для розробників

До складу Fedora включено великий набір інструментів для розробки, зокрема інструменти для розробки усіма популярними мовами програмування. Цей розділ присвячено висвітленню лише деяких з нових можливостей у Fedora 14.

4.1.1. Нова мова програмування

У Fedora 14 передбачено підтримку D, системної мови програмування. Призначенням мови є поєднання потужності та швидкодії C і C++ з покращеною продуктивністю для програміста сучасних мов програмування, зокрема Ruby і Python.
Докладніше про пакунок можна дізнатися зі сторінки мови програмування D.

4.1.2. Підтримка GNUStep

Поява у Fedora середовища розробки GNUstep значно спрощує розробку програм, призначених одночасно для декількох програмних платформ, на основі програмних інтерфейсів та інструментів Cocoa (раніше NeXTSTEP/OpenStep). Основною мовою розробки у GNUstep є Objective-C, але ви можете використовувати інші мови програмування.

4.1.3. Інші покращення

  • Оновлено пакунки мов програмування Python, Erlang і Perl та середовища розробки Netbeans і Eclipse.
  • Можливості зневадника gdb розширено новими командами, які спрощують пошук та виправлення значного невиправданого використання пам’яті у програмах і бібліотеках, а також можливості індексування, які значно пришвидшують зневаджування.
До складу Fedora 14 включено великий набір інструментів, які значно розширюють можливості розробника. Повний список оновлень у сотнях компонентів для розробки можна знайти у Технічних нотатках щодо Fedora 14 за адресою http://docs.fedoraproject.org.

4.2. Динамічні бібліотеки

4.2.1. boost

Набір бібліотек мови C++, boost, оновлено до версії 4.4, у якій ви зможете скористатися багатьма покращеннями. Докладніше про це у нотатках щодо випуску бібліотеки:
Серед ключових можливостей нові бібліотеки для FSM UML2, Polygon, адаптери Factory і Forward та бібліотека UUID. Поточні бібліотеки розширено багатьма новими функціями, покращено їх швидкодію.

4.2.2. libjpeg-turbo

Бібліотеку libjpeg замінено на бібліотеку libjpeg-turbo з тим самим програмним та двійковим інтерфейсом, але працює ця бібліотека принаймні удвічі швидше на всіх основних апаратних архітектурах та на 25% швидше на вторинних архітектурах. Докладніші відомості можна знайти на сторінці libjpeg-turbo вікі Fedora.

4.3. Development Tools

4.3.1. Мова програмування D

D — системна мова програмування. Метою створення мови є поєднання потужності і швидкодії C і C++ зі збільшеною продуктивністю програміста сучасних мов програмування, подібних Ruby і Python. У мові D передбачено статичну типізацію та збирання програм у машинні коди. У мові передбачено багато парадигм, підтримку багатьох стилів програмування: імперативний, об’єктно-орієнтований та метапрограмування. Мову споріднено з мовами сімейства синтаксису C, вигляд коду дуже подібний до вигляду коду C++.
  • Компілятор D LLVM
    LDC — компілятор мови програмування D. Компілятор засновано на найостаннішій версії оболонки DMD і серверній частині LLVM. LLVM надає у розпорядження компілятора швидкий і сучасний сервер, який забезпечує високоякісне створення коду.
  • Бібліотека
    Tango — призначена для роботи на багатьох платформах бібліотека з відкритим кодом, написана на мові програмування D для програмістів D. Бібліотеку побудовано як консолідоване і самодостатнє програмне забезпечення для загального використання, її підтримку забезпечує широке коло ентузіастів мови D. Доступність повної і широкої документації є основним фактором доступності самої бібліотеки. Отже проект зі створення документації має рівний пріоритет з завданнями щодо реалізації нових функціональних можливостей.
Докладніші відомості:

4.3.2. python

Систему стосу програмного забезпечення python 2 було оновлено 2.7. Список змін можна знайти на сторінці новинок у 2.7.
4.3.2.1. Увага: PyCObject і попередження
У Python передбачено різноманітні програмні інтерфейси для використання модулів C. Один з цих програмних інтерфейсів, PyCObject, вважається застарілим у Python 2.7, але існує декілька ключових модулів, які ще не портовано з метою уникнути проблем з заміною інтерфейсу.
Типово, попередження про застарілість інтерфейсу ігноруються, отже проблем не повинно виникнути.
Але якщо стандартні параметри попереджень було змінено, у вас можуть виникнути проблеми з подібними модулями. Зокрема, якщо попередження вважатимуться «помилками», інтерпретатор Python може завершити роботу у аварійному режимі під час імпортування модулів.
Якщо вам потрібно налаштувати інтерпретацію так, щоб попередження вважалися помилками, будь ласка, додайте перевизначення так, щоб PendingDeprecationWarning записувалося до журналу, а не викликало виключення:
>>> import warnings
>>> warnings.simplefilter('error')
>>> warnings.simplefilter('default', PendingDeprecationWarning)

4.3.3. python-migrate

python-migrate було оновлено до версії 0.6. Серед багатьох інших можливостей системи підтримка баз даних SQLAlchemy 0.6 і Firebird, нетипові шаблони та використання журналювання python. У новій версії ви можете зіткнутися з декількома зворотно несумісними змінами:
  • Функції api.test() та порівняння схем тепер завжди приймають першим параметром адресу, а другим параметром — сховище.
  • python upgrade/downgrade scripts do not import migrate_engine magically, but receive engine as the only parameter to function (eg. def upgrade(migrate_engine):)
  • Column.alter більше не приймає current_name, метод видобуває назву зі старого стовпчика.
Повний список змін наведено на сторінціжурналу змін.

4.3.4. Erlang

У Fedora 14 ви зможете скористатися новою версією Erlang/OTP. Подробиці можна знайти на сторінці Erlang R14 вікі Fedora.

4.3.5. gdb

gdb has been enhanced to remove the unncecessary indices from the .debug files, and will replace them with an index that greatly speeds up gdb.
Можливості зневадника gdb було розширено новими командами, що спрощує пошук та виправлення помилок, пов’язаних з надмірним використанням оперативної пам’яті програмами і бібліотеками. Цю можливість було реалізовано учасником команди Fedora Девідом Малькольмом (David Malcolm), це, ймовірно, унікальна можливість Fedora 14.
Докладніші відомості можна отримати зі сторінки покажчика Gdbу вікі Fedora.

4.3.6. GNUstep

За допомогою цієї можливості ви можете створювати програми GNUstep у Fedora. GNUstep є реалізацією Nextstep з відкритим кодом. Вона забезпечує основу оболонки графічного інтерфейсу до мови програмування Objective-C.
Підтримка мови програмування Objective-C є частиною збірки компіляторів GNU compiler collection (gcc).
Список програм, заснованих на GNUstep можна знайти на сторінці списку програм GNUstep.
Докладний вступ до проекту GNUstep можна знайти на сторінці вступу до GNUstep.

4.3.7. perl

Серед значних змін у perl 5.12:
  • Нова версія Perl значно краще підтримує стандарт Unicode. Крім того, до цього випуску включено оновлення до версії 5.2 стандарту.
  • За допомогою нових експериментальних програмних інтерфейсів розробники можуть розширити Perl «додатковими» ключовими словами і синтаксичними конструкціями.
  • У Perl тепер передбачено кращу реалізацію обчислення часу, отже система здатна точно обчислювати час навіть після 2038 року.
  • За допомогою нових синтаксичних конструкцій розробники можуть вказувати номери версій пакунків безпосередньо у інструкціях «package»
  • Perl тепер типово попереджає користувача про використання застарілих можливостей.
У Perl 5.12.x передбачено багато нових можливостей, оптимізацій та виправлень вад. Повний список можна змін можна знайти у інтернеті за адресами:

4.3.8. rakudo

У Fedora ви зможете скористатися Rakudo Perl, реалізацією специфікації Perl 6 на основі віртуальної машини Parrot, отже розробники можуть писати нові програми або портувати старі програми на платформу Perl 6. Щоб встановити пакунок rakudo, скористайтеся інструментом Додавання/Вилучення програм або віддайте команду:su -c 'yum install rakudo'Докладнішу довідку щодо параметрів командного рядка можна отримати у відповідь на команду: man perl6man rakudo
Докладніші відомості можна отримати зі сторінки Можливості Fedora 14: Rakudo *.

4.3.9. Зневадник bash

The Lisp sources for the emacs bash debugger, emacs-bashdb-el are now included in Fedora. The debugger has been upgraded to version 4.1_0.4.

4.3.10. Pyjamas

Новим у Fedora 14 є пакунок pyjamas, платформи розробки повноформатних інтернет-програм (Rich Internet Application або RIA) для інтернету та робочого середовища. Докладніше про цю можливість можна дізнатися з веб-сайта pyjs.org.

4.4. GCC

4.4.1. gcc

До складу Fedora 14 включено версію 4.5 gcc та різноманітні компілятори, робота яких залежить від gcc. Докладний опис змін можна знайти у журналах змін, ми зупинимося лише на деяких подробицях.
4.4.1.1. Підтримка застарілих систем
У новій версії вважаються застарілими такі порти на окремі системи для відповідних архітектур:
  • Випуски IRIX до 6.5 (mips-sgi-irix5*, mips-sgi-irix6.[0-4])
  • Solaris 7 (*-*-solaris2.7)
  • Випуски Tru64 UNIX до V5.1 (alpha*-dec-osf4*, alpha-dec-osf5.0*)
  • Докладніше про підтримку IRIX, Solaris 7 і Tru64 UNIX можна дізнатися з оголошення про випуск збірки компіляторів.
  • Підтримка класичної архітектури POWER, реалізованої у перших процесорах RIOS і RIOS2 старої лінійки продуктів IBM RS/6000, оголошено застарілою у межах порту rs6000. Завершення підтримки не стосується нових поколінь архітектур Power і PowerPC.
Крім того, вилучено модулі підтримки декількох архітектур, які було оголошено застарілими у версії 4.4.

Зниження швидкодії у разі використання сумісності з C99

На архітектурах x86 код, що містить обчислення для чисел з рухомою крапкою, може працювати значно повільніше, порівняно з попередніми версіями GCC, якщо його буде зібрано за допомогою GCC 4.5 у режимі повної відповідності до стандарту C99. Причиною цього є посилення відповідності стандарту у компіляторі. Уникнути погіршення швидкодії можна за допомогою параметра -fexcess-precision=fast.

4.4.2. Покращення оптимізатора

  • Параметру -save-temps тепер можна передавати додатковий аргумент. Параметри -save-temps і -save-temps=cwd вмикають запис до файлів тимчасових даних у поточному робочому каталозі (current working directory=cwd) файла початкових кодів. Параметр -save-temps=obj вмикає запис файлів до каталогу, вказаного параметром -o. Назви проміжних файлів буде засновано на назві файла-результату.
  • Файли діагностичних дампів у новій версії створюються у тому самому каталозі, що і об’єктний файл, а не у поточному робочому каталозі.
  • Було додано новий оптимізатор під час компонування (-flto). У разі використання відповідного параметра GCC створює байткод-представлення кожного з файлів вхідних даних і записує ці представлення до спеціальних розділів ELF кожного з об’єктних файлів.
  • Покращено автоматичну паралелізацію: тепер компілятор підтримує паралелізацію зовнішніх циклів.
  • Нова версія GCC оптимізує код обробки виключень.
Скористайтеся наведеним вище посиланням на сторінку переліку змін, щоб дізнатися більше про ці та інші оптимізації.

4.4.3. Покращення у підтримці окремих мов

Передбачено нові, характерні для окремих мов, можливості для Ada, C, C++, Fortran і Java.

4.4.4. Нові платформи призначення

Передбачено нові можливості з компіляції коду для процесорів сімейств AIX, ARM, AVR, IA32, M68K, MeP, MIPS, RS/6000 і RX.

4.4.5. Зміни, що стосуються встановлення

Перехід на використання autotools призвів до певних вад з визначенням зміненого розташування каталогів. Докладніше про це та про інші згадані вище подробиці можна дізнатися зі сторінки переліку змін.

4.5. Java

4.5.1. NetBeans

NetBeans IDE 6.9 є суттєвим оновленням NetBeans IDE 6.8.
У NetBeans IDE 6.9 передбачено взаємодію OSGi між програмами платформи NetBeans і підтримку розробки пакунків OSGi за допомогою Maven; підтримку JavaFX SDK 1.3 за допомогою нового редактора JavaFX, інструмент візуального компонування для побудови графічних програм JavaFX, подібних до інструменту побудови графічних інтерфейсів Swing для програм Java SE. Також передбачено підтримку оболонки PHP Zend та Ruby on Rails 3.0; покращення у редакторі Java, зневаднику Java, стеженні за вадами тощо.
Щоб дізнатися більше про цей випуск, ознайомтеся з такими матеріалами:

4.5.2. yydebug

Новим у Fedora є пакунок yydebug, зневадник коду обробки, створеного за допомогою jay. Докладніше про пакунок можна дізнатися зі сторінки yyDebug.

4.6. Haskell

GHC оновлено до версії 6.12.3, а haskell-platform до стабільного випуску 2010.2.0.0.
Крім того, покращено пакунки ghc-rpm-macros і cabal2spec, зокрема підпакунки -doc об’єднано з пакунками -devel.
Найпростішим способом встановлення підтримки Haskell support у Fedora є встановлення групи yum Haskell за допомогою Anaconda або YUM.
 yum install @haskell

4.7. Eclipse

eclipse було оновлено до випуску Helios. Серед нових можливостей краща підтримка C/C++, сховище програми, підтримка git, платформа веб-інструментів, покращена підтримка JavaScript тощо.
Докладніші відомості:

4.8. Ядро

Fedora 14 побудовано на основі ядра Linux версії 2.6.35.