Product SiteDocumentation Site

4. Veranderingen in Fedora voor ontwikkelaars

4.1. Ontwikkeling overzicht

Fedora bevat een groot aantal gereedschappen voor software ontwikkeling in alle populaire talen. In deze paragraaf worden enkele van de nieuwe functies in Fedora 14 besproken.

4.1.1. Nieuwe programmeertaal

Fedora 14 introduceert ondersteuning voor D, een programmeertaal die de kracht en de hoge performance van C en C++ combineert met de programmeur productiviteit van moderne talen zoals Ruby en Python.
Voor details refereer je naar D programmeertaal.

4.1.2. Ondersteuning voor GNUStep

De GNUstep ontwikkel omgeving is onderdeel van Fedora, zodat gemakkelijke ontwikkeling van cross-platform toepassingen op Fedora mogelijk wordt met de Cocoa (voorheen NeXTSTEP/OpenStep) API's en gereedschappen. De belangrijkste ontwikkel taal van GNUstep is Objective-C, maar GNUstep is niet beperkt tot deze.

4.1.3. Andere verbeteringen

  • Vernieuwingen voor Python, Erlang en Perl talen en de Netbeans en Eclipse ontwikkelomgevingen.
  • De gdb debugger is uitgebreid met nieuwe commando's die het gemakkelijker maken om buitensporig geheugengebruik binnen programma's en bibliotheken op te sporen en op te lossen, alsmede een index die het debuggen behoorlijk versnelt.
Deze eigenschappen completeren een rijke set ontwikkelgereedschappen die de mogelijkheden voor ontwerpers verder uitbreiden. Voor een volledige lijst van de honderden vernieuwde ontwikkel onderdelen refereer je naar de Fedora 14 Technische opmerkingen op http://docs.fedoraproject.org.

4.2. Run-tijd

4.2.1. boost

De boost C++ bibliotheken zijn opgewaardeerd naar 4.4. welke talrijke veranderingen omvat. Voor meer informatie refereer je naar de vrijgave informatie:
Enkele belangrijke kenmerken zijn nieuwe bibliotheken voor UML2 FSM's, Polygons, Factory en forward adapters en een UUID bibliotheek. Bestaande bibliotheken zijn vernieuwd met vele nieuwe functies en performance verbeteringen.

4.2.2. libjpeg-turbo

De libjpeg bibliotheek is vervangen door de libjpeg-turbo bibliotheek die dezelfde API/ABI heeft maar minstens twee keer sneller is op alle primaire architecturen en ongeveer 25% sneller op secundaire architecturen. Voor meer details bekijk je libjpeg-turbo, op de Fedora wiki.

4.3. Development Tools

4.3.1. D programmeertaal

D is een systeem programmeertaal. De nadruk ligt op het combineren van de kracht en de hoge performance van C en C++ met de programmeur productiviteit van moderne talen als Ruby en Python. De D taal is statisch getypeerd en compileert rechtstreeks naar machine code. Het is multi-paradigma en ondersteunt vele programmeer stijlen: imperatief, object-georiënteerd, en meta-programmeren. Het is een lid van de C familie syntax, en het uiterlijk is vergelijkbaar met die van C++.
  • LLVM D compiler
    LDC is een compiler voor de D programmeertaal. Het is gebaseerd op het nieuwste DMD front-end en gebruikt LLVM als backend. LLVM biedt een snel en modern backend voor code generatie van hoge kwaliteit.
  • De bibliotheek
    Tango is een cross-platform open-bron software bibliotheek, geschreven in de D programmeertaal voor D programmeurs. Het is opgezet als een samenhangende en alomvattende bibliotheek voor algemeen gebruik, en wordt ondersteund door een groeiend aantal erkende D liefhebbers. De beschikbaarheid van solide en uitgebreide documentatie representeert een hoofd factor voor de toegankelijkheid van de bibliotheek, en daarom streeft dit project zowel naar productie van documentatie als naar een zeer hoge functionaliteit.
Voor meer informatie:

4.3.2. python

De systeem python 2 stapel is bijgewerkt naar 2.7. Zie Wat is nieuw in 2.7 voor een lijst van wijzigingen
4.3.2.1. Waarschuwing: PyCObject en waarschuwingen
Python biedt verschillende API's voor gebruik door C uitbreiding modules. Een van deze API's, PyCObject, is verouderd in Python 2.7, maar er zijn een aantal belangrijke modules nog niet overgezet zijn naar de vervanger.
Standaard worden veroudering waarschuwingen genegeerd, dus zal dit geen problemen veroorzaken.
Als de standaard waarschuwing instellingen echter worden overschreven, kun je problemen met deze modules krijgen. In het bijzonder als waarschuwingen omgezet zijn naar "error", is het mogelijk dat de Python interpreter afbreekt of zelfs een segmentatie fout geeft als deze modules geïmporteerd worden.
Als je errors-for-warnings moet aanzetten, voeg dan ook een overschrijving toe zodat een PendingDeprecationWarning slechts gelogd wordt in plaats van het veroorzaken van een uitzondering:
>>> import warnings
>>> warnings.simplefilter('error')
>>> warnings.simplefilter('default', PendingDeprecationWarning)

4.3.3. python-migrate

python-migrate werd vernieuwd tot versie 0.6. Ondersteuning voor SQLAlchemy 0.6 en Firebird database, aangepaste sjablonen en het gebruik van python loggen zijn enkele van de vele nieuwe functies. De nieuwe versie introduceert ook enkele backwards incompatibele wijzigingen:
  • api.test() en schema vergelijking functiesaccepteren nu allen een url als de eerste parameter en een repository als de tweede.
  • 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 accepteert niet langer current_name, het haalt de naam uit de oude kolom.
Voor een complete lijst van veranderingen refereer je naar changelog

4.3.4. Erlang

Een nieuwe versie van Erlang/OTP is beschikbaar in Fedora 14. Kijk op Erlang R14 op de Fedora wiki voor meer informatie.

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.
De gdb debugger is uitgebreid met nieuwe commando's die het gemakkelijker maken om buitensporig geheugengebruik binnen programma's en bibliotheken op te sporen en op te lossen. Deze functionaliteit is gemaakt door Fedora medewerker David Malcolm, en we geloven dat dit uniek is voor Fedora 14.
Voor meer informatie refereer je naar Gdb Index, op de Fedora wiki.

4.3.6. GNUstep

Deze functie biedt de mogelijkheid om GNUstep toepassingen in Fedora aan te maken. GNUstep is een open bron her-implementatie van Nextstep. Het biedt een GUI kader gebaseerd op de Objective-C programmeertaal.
De Objective-C programmeertaal is een onderdeel van de GNU compiler collectie (gcc).
Een lijst van toepassingen op basis van GNUstep kun je vinden op List of GNUstep applications.
Een gedetailleerde inleiding voor het GNUstep project vind je op GNUstep Introduction.

4.3.7. perl

Opmerkelijke veranderingen in perl 5.12 omvatten:
  • Perl conformeert nu veel nauwer naar de Unicode standaard. Daarnaast bevat deze vrijgave een upgrade naar versie 5.2 van de standaard.
  • Nieuwe experimentele API's laten ontwikkelaars Perl uitbreiden met "pluggable" zoekwoorden en syntax.
  • Perl heeft nu een beter gevoel voor tijd en zal in staat zijn om de tijd nauwkeurig te houden tot voorbij de "Y2038" barrière.
  • Nieuwe syntax laat ontwikkelaars pakket versie nummers direct in het "package" statement specificeren.
  • Perl waarschuwt de gebruiker nu standaard voor het gebruik van verouderde functies.
Perl 5.12.x beschikt over vele nieuwe functies, optimalisaties en fout reparaties. Je vindt een volledige lijst van deze wijzigingen op het web op:

4.3.8. rakudo

Fedora wordt geleverd met Rakudo Perl, een implementatie van de Perl 6 specificatie gebaseerd op de Parrot virtuele machine, die het voor ontwikkelaars mogelijk maakt om nieuwe toepassingen te schrijven of bestaande naar Perl 6 om te zetten. Om Rakudo te installeren, gebruik je het Software toevoegen/verwijderen gereedschap of je draait: su -c 'yum install rakudo' Voor informatie over commando-regel opties draai je: man perl6man rakudo
Voor meer informatie bekijk je Fedora 14 eigenschap: Rakudo * .

4.3.9. bash debugger

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

Nieuw in Fedora 14 is pyjamas, een Rich Internet Application (RIA) ontwikkeling platform voor zowel web als bureaublad. Lees alles over deze nieuwe mogelijkheden op de pyjs.org website.

4.4. GCC

4.4.1. gcc

Fedora 14 bevat versie 4.5 van gcc en de verschillende compilers die afhankelijk zijn van gcc. De volledige details van de wijzigingen kunnen gevonden worden op Verander Log, maar enkele hoofdpunten volgen hier.
4.4.1.1. Verouderde ondersteuning en functies
De volgende overzettingen voor individuele systemen op bepaalde architecturen zijn verouderd:
  • IRIX vrijgaven voor 6.5 (mips-sgi-irix5*, mips-sgi-irix6.[0-4])
  • Solaris 7 (*-*-solaris2.7)
  • Tru64 UNIX vrijgaven voor V5.1 (alpha*-dec-osf4*, alpha-dec-osf5.0*)
  • Details voor de IRIX, Solaris 7 en Tru64 UNIX verouderingen vind je in de aankondiging.
  • Ondersteuning voor de klassieke POWER architectuur geïmplementeerd in de oorspronkelijke RIOS en RIOS2 processors van de oude IBM RS/6000 productlijn is verouderd in de rs6000 overzetting. Dit heeft geen invloed op de nieuwe generatie Power en PowerPC architecturen.
Ondersteuning is ook verwijderd voor een aantal functies verouderd in 4.4.

Verminderde performance met C99 conformiteit

Op x86 doelen kan code die drijvende-komma berekeningen bevat aanzienlijk trager draaien als deze gecompileerd is met GCC 4.5 in de strikte C99 conformiteit mode dan het geval was met eerdere versies van GCC. Dit is te wijten aan strengere standaard conformiteit van de compiler en kan worden voorkomen door de optie -fexcess-precision=fast te gebruiken.

4.4.2. Optimizer verbeteringen

  • De -save-temps switch heeft nu een optioneel argument. De -save-temps en -save-temps=cwd switch schrijven de tijdelijke bestanden in de huidige werkmap gebaseerd op het originele bronbestand. De -save-temps=obj switch zal bestanden schrijven in de map die gespecificeerd wordt met de -o optie, en de tijdelijke bestandsnamen worden gebaseerd op het output bestand.
  • Debug dumps worden nu aangemaakt in dezelfde map als het object bestand in plaats van de huidige werkmap.
  • Een nieuwe link-tijd optimizer is toegevoegd (-flto). Als je deze optie gebruikt genereert GCC een byte-code representatie van elk input bestand en schrijft het naar speciale ELF secties in elk object bestand.
  • De automatische parallellisatie passage werd uitgebreid voor ondersteuning van parallellisatie van buitenste lussen.
  • GCC optimaliseert nu uitzondering afhandeling code.
Refereer naar de veranderingen pagina hierboven voor meer details over deze en andere optimalisaties.

4.4.3. Taal-specifieke verbeteringen

Er zijn nieuwe taal-specifieke functies voor Ada, C, C++, Fortran en Java.

4.4.4. Nieuwe doelen

Er zijn nieuwe doel processoren in de AIX, ARM, AVR, IA32, M68K, MeP, MIPS, RS/6000 en RX processor families.

4.4.5. Installatie veranderingen

De overgang naar autotools heeft geresulteerd in enkele artefacten met betrekking tot de mappen waar ze gevonden worden. Voor details refereer je naar de veranderingen pagina.

4.5. Java

4.5.1. NetBeans

NetBeans IDE 6.9 is een belangrijke vernieuwing van NetBeans IDE 6.8.
NetBeans IDE 6.9 introduceert OSGi interoperabiliteit voor NetBeans platform toepassingen en ondersteuning voor de ontwikkeling van OSGi bundels met Maven; ondersteuning voor JavaFX SDK 1.3 met de nieuwe JavaFX Composer, een visueel lay-out gereedschap om visueel JavaFX GUI toepassingen te bouwen, vergelijkbaar met de Swing GUI bouwer voor JAVA SE toepassingen, ook ondersteuning voor het PHP Zend kader en Ruby on Rails 3.0, evenals verbeteringen in de Java Editor, Java Debugger, probleem volgen, en nog meer.
Voor meer informatie over deze vrijgave, refereer je naar:

4.5.2. yydebug

yydebug, een debugger voor parser code gegenereerd door jay, is nieuw in Fedora. Voor alle details bekijk je yyDebug op cs.rit.edu.

4.6. Haskell

GHC is vernieuwd naar 6.12.3, en haskell-platform naar 2010.2.0.0 stabiele vrijgave.
Enkele andere verbeteringen zijn aangebracht in ghc-rpm-macros en cabal2spec, inclusief het samenvoegen van de -doc sub-pakketten met -devel.
De eenvoudigste manier om Haskell ondersteuning te installeren in Fedora, is het installeren van de Haskell yum groep met Anaconda of YUM.
 yum install @haskell

4.7. Eclipse

eclipse is opgewaardeerd tot de Helios vrijgave. Nieuwe functies zijn een betere ondersteuning voor C/C++, een toepassingen store, ondersteuning voor git, een web gereedschappen platform, verbeterde ondersteuning voor JavaScript, en nog veel meer.
Voor meer informatie:

4.8. Kernel

Fedora 14 bevat versie 2.6.35 van de Linux kernel.