FreePascal

Lazarus SVN + FreePascal 2.6.0 Ubuntu Linuxon

Volt itt már egy hasonló post, de azóta megjelent a FreePascal 2.6.0. Ezzel viszont eddig nem tudtam lefordítani a Lazarust. A programjaim simán mentek az 2.4.4-es verzióval is, úgyhogy nem nagyon foglalkoztam vele. De azért furdalt a kíváncsiság, hogy vajon mi lehet a baj, miért nem tudom a 2.6.0-val is lefordítani a Lazarus forráskódját? Mindig ezt a hibaüzenetet kaptam:

Compiling lazaruspackageintf.pas
Fatal: Can't find unit process used by RegisterFCL
Fatal: Compilation aborted
make[1]: *** [fcllaz.ppu] Error 1
make[1]: Leaving directory `/home/user/lazarus/packager/registration'
make: *** [registration] Error 2

Nem találja a process unitot, pedig fel van telepítve: /usr/lib/fpc/2.6.0/units/i386-linux/fcl-process/process.ppu és a forrás is: /usr/share/fpcsrc/2.6.0/packages/fcl-process/src/process.pp. A megoldás kicsit lejjebb, most kezdjük nulláról:

Lazarus URL rövidítés

A TinyUrl ingyenes szolgáltatásával a hosszú URL-eket lerövidíthetjük, amiket pl. Twitter üzenetekben felhasználhatunk.

A szolgáltatás használatához a következő linket kell meghívni: http://tinyurl.com/api-create.php?url=ide-jön-a-hosszú-url, majd a válaszban megkapjuk a rövidített URL-t:

Lazarus Build profilok

A Lazarus képes önmagát lefordítani, a fordítás beállításait a Tools/Configure "Build Lazarus..." menüben tehetjük meg. A párbeszédablakban beállíthatók, hogy fejlesztő környezet mely részei, milyen paraméterekkel legyenek lefordítva. A korábbi beállító ablak eléggé átláthatatlan volt, hogy finoman fogalmazzak akkor a használhatóság tekintetében erős kihívásokkal küszködött.

FreePascal 2.4.2

2010. november 12-én megjelent a nyílt forrású Pascal fordító a, FreePascal 2.4.2-es verziója.

Újdonságok, változások:

  • for ... in támogatás (mint a Delphi 2006-ban).
  • sealed és abstract osztály módosítók támogatása.
  • Új cél rendszer: 64-bit FreeBSD (x86_64).
  • Számos XML és CHM kezelési fejlesztés és javítás.
  • A Video unit OS/2 implementációja javítva lett, ami lehetővé teszi a szöveges módú IDE használatát (debugger nélkül)
  • Számos hibajavítás a fordítóban és több mint fél évnyi library frissítés.
Címkék: 

Lazarus 0.9.30 - Erőforrás kezelés

A Lazarus következő verziójában megjelenő egyik legnagyobb változás az a módosított erőforrás kezelés lesz. A fő probléma a "régi" erőforrás kezeléssel az volt, hogy minden .lfm streamet egy .lrs fájlból be kellett illeszteni a unit initialization részébe. Mi a rossz ebben?

  • Először is az .lrs fájlokat is tárolni kell a projektben, ami elég tárhely igényes.
  • Második rossz dolog az initialization rész használata (az ebből a részből hívott utasítások a program indulásakor hajtódnak végre). Ha pl. 200 form van az alkalmazásban, akkor a program indulásakor kétszáz rutint kell végrehajtani. Ez nem túl jó dolog, ha a sebesség is számít.
  • Végül pár szó az erőforrásokhoz szükséges memóriáról és a memória lefoglalásának módjáról. Az .lrs erőforrások a program kódjában (amelyek induláskor végrehajtódnak) és TList osztálban egyaránt tárolva vannak. Tehát minden erőforrás kétszer van tárolva. Sőt ha újabb erőforrást akarunk hozzáadni a TList-hez, akkor az összes erőforrás memóriáját újra le kell foglalni: TList.Grow

Ezek a problémák tökéletesen megoldhatók az FPC 2.4.0 bevezetett natív erőforrás kezeléssel. Az FPC 2.4.0-s változatától kezdve lehetőség van a form erőforrások használatára az {$R *.lfm} direktíva használatával. Természetesen nincs szükség az .lrs fájlok tárolására és az initialization részre, valamint minden erőforrást is csak egyszer kell tárolni.

Mivel az erőforrás kezelésnek ezen módja sokkal hatékonyabb, a Lazarus fejlesztői úgy döntöttek, hogy ez legyen az alapértelmezett erőforrás kezelés. Természetesen az .lrs fájlok továbbra is használhatók maradnak, valamint a felhasználó eldöntheti, hogy az erőforrások tárolásának melyik módját választja.

Még egy az erőforrásokat érintő változás történt az XP manifest, a verzió információ és a projekt ikon kezelésben. Eddig több mint 5 fájlra volt szükség ezeknek az erőforrásoknak a tárolásához: egy ikont tartalmazó .lrs fájl, egy a manifest fájlra hivatkozó .rc fájl, verzió infó és projekt ikon fájlok. A projekt könyvtár leginkább egy állatkertre hasonlított. Ezentúl már csak egy .res és egy ikon fájlra lesz szükség. A .res fájt az új FreePascal állítja elő az fcl-res csomag segítségével. Ez azt jelenti, hogy nem kell többé a windres-t használni. A .res fájl minden platformon használható, míg korábban az .rc csak Windowson, az .lrs pedig a többi platformon volt használható.

Figyelem: a {$ifdef windows}{$R you_project.rc}{$endif} sort manuálisan kell kitörölni a az .lpr fájlból (ha van benne). Elképzelhető, hogy a jövőben készül erre automatikus megoldás.

Az új erőforrás kezelés előnyei tehát:

  • Kevesebb szemét a projekt könyvtárban, kisebb méret
  • Kisebb és gyorsabb programok (nincs szükség az initialization részre)
  • Kevesebb memória használat
  • Egységes erőforrás kezelés minden platformon

Oldalak