Product SiteDocumentation Site

4. Ändringar i Fedora för utvecklare

4.1. Översikt över utveckling

Fedora innehåller ett brett sortiment av verktyg för programvaruutveckling i alla populära språk. Detta avsnitt belyser några av de nya funktionerna i Fedora 14.

4.1.1. Nytt programmeringsspråk

Fedora 14 inför stöd för D, ett systemprogrammeringsspråk som kombinerar kraften och den höga prestandan i C och C++ med programmerarens produktivitet i moderna språk som Ruby och Python.
För mer information, se D Programming Language .

4.1.2. Stöd för GNUStep

Utvecklingsmiljön GNUstep kommer på Fedora, och möjliggör enkel utveckling av plattformsoberoende program på Fedora med användning av Cocoa:s (tidigare NeXTSTEP/OpenStep) API:er och verktyg. GNUstep främsta utvecklingspråk är Objective-C, men GNUstep är inte begränsad till det.

4.1.3. Andra förbättringar

  • Uppdatering av språken Python, Erlang och Perl och utvecklingsmiljöerna NetBeans och Eclipse.
  • Felsökningsverktyget gdb har utökats med nya kommandon som gör det lättare att spåra upp och rätta till alltför stor minnesanvändning inom program och bibliotek, samt ett index som avsevärt snabbar upp felsökning.
Dessa funktioner avslutar en rik uppsättning av utvecklingsverktyg som ytterligare utökar möjligheterna för utvecklare. För en fullständig lista över de hundratals uppdaterade utvecklingskomponenterna se Fedora 14 tekniska noteringar på http://docs.fedoraproject.org.

4.2. Körtidskod

4.2.1. boost

C++-biblioteken boost har uppgraderats till 4.4, som innehåller många förändringar. För detaljer, se utgåvenoteringarna:
Några viktiga funktioner är nya bibliotek för UML2 FSM:er, polygoner, fabriker och framåtadaptrar och ett UUID bibliotek. Befintliga bibliotek har uppdaterats med många nya funktioner samt prestandaförbättringar.

4.2.2. libjpeg-turbo

Biblioteket libjpeg har ersatts av biblioteket libjpeg-turbo som har samma API/ABI men är minst dubbelt så snabbt på alla huvudarkitekturer och ca 25 % snabbare på sekundära arkitekturer. För mer information se libjpeg-turbo, på Fedoras wiki.

4.3. Utvecklingsverktyg

4.3.1. Programmeringsspråket D

D är ett systemprogrammeringsspråk. Dess fokus ligger på att kombinera styrkan och den höga prestandan i C och C++ med programmerarens produktivitet i moderna språk som Ruby och Python. Språket D är statiskt typat och kompilerar direkt till maskinkod. Det är ett flerparadigmspråk, och stödjer många programmeringstilar: imperativ, objektorienterad och metaprogramming. Det är en medlem i C-syntaxfamiljen, och dess utseende är mycket likt det i C++.
  • LLVM D-kompilator
    LDC är en kompilator för programmeringsspråket D. Den är baserad på den senaste DMD-framänden och använder LLVM som bakände. LLVM ger en snabb och modern bakände för kodgenerering med hög kvalitet.
  • Biblioteket
    Tango är en plattformsoberoende bibliotek i öppen källkod, skrivet i programmeringsspråket D för D-programmerare. Det är uppbyggt som ett sammanhållet och omfattande bibliotek för allmän användning, och stöds av ett växande antal erkända D-entusiaster. Tillgång till gedigen och omfattande dokumentation utgör en viktig faktor i bibliotekets tillgänglighet, och detta projekt är handlar därmed lika mycket om dokumentationsproduktion som om den bästa funktionaliteten.
För mer information:

4.3.2. python

Systemets python 2-stack har uppgraderats till 2.7. För en lista över ändringar, se Vad är nytt i 2.7 .
4.3.2.1. Varning: PyCObject och varningar
Python tillhandahåller olika API:er för användning av utbyggnadsmoduler i C. En av dessa API:er, PyCObject undanbedes i Python 2.7, men det finns ett antal viktiga moduler som ännu inte har porterats till dess ersättning.
Som standard ignoreras varningar om undanbedanden, så att detta inte kommer att orsaka problem.
Men om de normala inställningar för varningar åsidosätts kan du se problem med dessa moduler. I synnerhet om varningar har ställts in på ”error”, är det möjligt att få Pythontolken att avbryta eller till och med ge segmenteringsfel när du importerar dessa moduler.
Om du behöver aktivera fel-för-varningar, lägg även in ett åsidosättande så att en PendingDeprecationWarning bara loggas snarare än att höja ett undantag:
>>> import warnings
>>> warnings.simplefilter('error')
>>> warnings.simplefilter('default', PendingDeprecationWarning)

4.3.3. python-migrate

python-migrate uppdaterades till version 0.6. Stöd för SQLAlchemy 0.6 och Firebird-databas, anpassade mallar och användning av pythonloggning är bland många nya funktioner. Den nya versionen innehåller vidare bakåtinkompatibla förändringar:
  • api.test() och schemajämförelsefunktioner accepterar nu alla en url som första parameter och förråd som andra.
  • python uppgraderings-/nedgraderingsskript importerar inte migrate_engine magiskt, men får motorn som den enda parametern för att fungera (t.ex. def upgrade(migrate_engine): )
  • Column.alter accepterar inte current_name längre, den tar namn från den gamla kolumnen.
För komplett lista över förändringar hänvisas till ändringsloggen

4.3.4. Erlang

Ny version av Erlang/OTP finns i Fedora 14. För detaljer, se Erlang R14, på Fedoras wiki.

4.3.5. gdb

gdb har förbättrats för att ta bort onödiga index från .debug-filer, och kommer att ersätta dem med ett index som kraftigt snabbar upp gdb.
Felsökaren gdb har utökats med nya kommandon som gör det lättare att spåra upp och rätta till alltför stor minnesanvändning i program och bibliotek. Denna funktion skapades av Fedoras deltagare David Malcolm, och vi anser att den är unik för Fedora 14.
För mer information, se Gdb Index, på Fedoras wiki.

4.3.6. GNUstep

Denna funktion gör det möjligt att skapa GNUstep-program på Fedora. GNUstep är ett omimplementation i öppen källkod av Nextstep. Det tillhandahåller en grafiskt ramverkbas för programmeringsspråket Objective-C.
Programmeringsspråket Objective-C är en del av GNU-kompilatorsamlingen (gcc).
En lista över program som grundar sig på GNUstep du kan hitta på Lista över GNUstep-program.
Detaljerade introduktioner till GNUstep-projekt du kan hitta på Inledning till GNUstep.

4.3.7. perl

Betydande förändringar i perl 5.12 är:
  • Perl överensstämmer nu mycket närmare till Unicode-standarden. Dessutom innehåller denna utgåva en uppgradering till version 5.2 av standarden.
  • Nya experimentella API:er gör att utvecklare kan utöka Perl med ”pluggbara” sökord och syntax.
  • Perl har nu en bättre känsla för tiden och kommer att kunna hålla exakta tiden väl förbi ”Y2038”-barriären.
  • Ny syntax gör att utvecklare kan ange paketversionsnummer direkt i ”paket”-satser
  • Perl varnar som standard nu användaren om användning av undanbedda funktioner.
Perl 5.12.x innehåller många nya funktioner, optimeringar och felrättningar. Du hittar en fullständig lista över dessa förändringar på webben på:

4.3.8. rakudo

Fedora kommer med Rakudo Perl, en implementation av Perl 6-specifikationen baserad på den virtuella maskinen Parrot, vilket gör att utvecklare kan skriva nya program eller anpassa befintliga för att Perl 6. För att installera rakudo. använd verktyget Lägg till/Ta bort program eller kör: su -c 'yum install rakudo' För mer information om kommandoradsflaggor kör: man perl6man rakudo
För mer indormation, se Fedora 14 funktion: Rakudo * .

4.3.9. bash-felsökare

Lispkällkoden för emacs bash-felsökare, emacs-bashdb-el ingår nu i Fedora. Felsökaren har uppgraderats till version 4.1_0.4.

4.3.10. Pyjamas

Ny i Fedora 14 är pyjamas, en utvecklingsplattform för Rika InternetApplikationer (RIA) för både webben och skrivbordet. Läs allt om denna nya möjlighet på pyjs.orgs webbplats.

4.4. GCC

4.4.1. gcc

Fedora 14 innehåller version 4.5 av gcc och de olika kompilatorerna som är beroende av gcc. De fullständiga detaljerna om de förändringar finns i ändringsloggarna, men några huvudpunkter följer.
4.4.1.1. Utgångna stöd och funktioner
Följande porteringar för enskilda system på specifika arkitekturer har utgått:
  • IRIX släpper före 6.5 (mips-SGI-irix5*, mips-SGI-irix6.[0-4])
  • Solaris 7 (*-*-solaris2.7)
  • Tru64 UNIX-utgåvor före V5.1 (alfa*-dec-osf4*, alfa-dec-osf5.0*)
  • Detaljer om utgången av IRIX, Solaris 7 och Tru64 UNIX finns i kungörelsen.
  • Stöd för den klassiska POWER-arkitekturen implementerad i de ursprungliga RIOS- och RIOS2-processorerna av den gamla produktlinjen IBM RS/6000 har utgått i RS6000-porteringen. Detta påverkar inte den nya generationens Power- och PowerPC-arkitekturer.
Stöd har också tagits bort för ett antal funktioner som var föråldrade i 4.4.

Minskad prestanda med C99 överensstämmelse

På x86-mål kan kod som innehåller flyttalsberäkningar köra betydligt långsammare när den kompileras med GCC 4.5 i läget med strikt överensstämmelse med C99 än den gjorde med tidigare GCC versioner. Detta beror på strängare standardöverensstämmelse hos kompilatorn och kan undvikas genom att använda flaggan -fexcess-precision=fast.

4.4.2. Optimeringsförbättringar

  • -save-temps tar nu ett möjligt argument. Flaggorna -save-temps och -save-temps=cwd skriver till temporärfiler i den aktuella arbetskatalogen baserat på den ursprungliga källfilen. Flaggan -save-temps=obj kommer att skriva filerna till den katalog som angivits med flaggan -o, och mellanliggande filnamnen är baserade på utdatafilen.
  • Felsökningsdumpar skapas nu i samma katalog som objektfilen i stället för i den aktuella arbetskatalogen.
  • En ny länktidsoptimering har lagts till (-flto). När detta alternativ används genererar GCC en bytekodsrepresentation av varje indatafil och skriver den till särskilda ELF-avsnitt i varje objekt fil.
  • Det automatiska parallelliseringpasset förbättrades för att stödja parallellisering av yttre slingor.
  • GCC optimerar nu undantagshanteringskod.
Se förändringssidan ovan för mer information om dessa och andra optimeringar.

4.4.3. Språkspecifika förbättringar

Det finns nya språkspecifika funktioner för Ada, C, C++, Fortran och Java.

4.4.4. Nya mål

Det finns nya målprocessorer inom processorfamiljerna AIX, ARM, AVR, IA32, M68K, MeP, MIPS, RS/6000 och RX.

4.4.5. Installationsförändringar

Flytten till autotools har resulterat i att några artefakter bytt katalog där de finns. För detaljer, som i alla ovan nämnda uppgifter, se förändringassidan.

4.5. Java

4.5.1. NetBeans

NetBeans IDE 6.9 är en betydande uppdatering av NetBeans IDE 6.8.
NetBeans IDE 6.9 inför OSGi-interoperabilitet för NetBeans-plattformsapplikationer och stöd för utveckling av OSGi-buntar med Maven, stöd för JavaFX SDK 1.3 med nya JavaFX Composer, ett visuellt layoutverktyg för att visuellt bygga JavaFX GUI-program, liknande Swing GUI-byggaren för Java SE-program, även stöd för PHP Zend-ramverket, och Ruby on Rails 3.0, samt förbättringar av Javaredigeraren, Javafelsökaren, ärendehantering och mycket mer.
För mer information om denna utgåva, se:

4.5.2. yydebug

yydebug, en fölsökare för parserkod som genereras av jay, är ny i Fedora. För fullständig information se yyDebug från cs.rit.edu.

4.6. Haskell

GHC har uppdaterats till 6.12.3 och haskell-platform till stabil utgåva 2010.2.0.0.
Några ytterligare förbättringar har gjorts i ghc-rpm-macros och cabal2spec, inklusive sammanslagning av -doc-underpaketen i -devel.
Dett lättaste sättet att installera stöd för Haskell i Fedora är att installera yum-gruppen Haskell från Anaconda eller YUM.
 yum install @haskell

4.7. Eclipse

eclipse har uppgraderats till utgåvan Helios. Bland nya funktioner finns bättre stöd för C/C++, en programaffär, stöd för git, en webbverktygsplatform, förbättrat stöd för JavaScript, och mycket mer.
För mer information:

4.8. Kärnan

Fedora 14 har version 2.6.35 av Linux-kärnan.