Free Pascal Compiler 3.0 - "Pestering Peacock"

A Free Pascal Compiler csapat örömmel jelenti be a fordító 3.0-s verzióját amely a "Pestering Peacock" (kb. Idegesítő Páva) kódnévre hallgat.

Egyebek mellett ez a verzió új platformok támogatását, kódlap-ismerő stringeket és egy integrált Pascal forráskód-tárolót tartalmaz (fppkg).

Az új funkciók teljes listája elolvasható a wikiben:
http://wiki.freepascal.org/FPC_New_Features_3.0

Az ismert visszafelé kompatibilitást érintő változások listája itt található:
http://wiki.freepascal.org/User_Changes_3.0

Dokumentáció:
http://www.freepascal.org/docs-html/3.0.0/fpctoc.html

Letöltések:
http://www.freepascal.org/download.var

A Free Pascal Compiler 3.0 a következő processzorarchitektúrákat támogatja:

  • i386, x86_64 és i8086
  • PowerPC (32 és 64 is)
  • ARM (és változatai, beleértve az AArch64-et)
  • MIPS
  • Motorola 68k és ColdFire
  • SPARC
  • JVM, mint virtuális CPU

A fordító a következő operációs rendszerekre és platformokra elérhető:

  • Linux
  • Windows (32 és 64 bit), valamint Windows CE (ARM)
  • FreeBSD
  • Mac OS X (Intel és PowerPC is)
  • iOS (ARM, AArch64 és iPhoneSimulator)
  • OS/2 Warp és leszármazottai
  • Haiku
  • MS-DOS (16 bit, keresztfordítókkal)
  • GO32v2 (MS-DOS DPMI)
  • Nintendo Gameboy Advance, DS és Wii (keresztfordítókkal)
  • AIX
  • Java JVM 1.5+ és Android Dalvik 4.0+
  • Android (keresztfordítókkal)
  • AmigaOS 3.x/68k, MorphOS/PowerPC és AROS/i386

Ezen kívül további platformok (elsősorban BSD variánsok) részleges vagy teljes támogatása is megtalálható a forráskódban, de ezek nem teszteltek vagy befejezetlenek.

Hozzászólások

Wow, így elnézve a weblapot (meg a lazarusét mellé), egész összeszedett ökosziszténmának tűnik ez, talán a Qt-é után egyedüli keresztplatformos versenyzőként. Ez a kiadás is szépen dokumentált, meg van minden pleatformra/oprendszerre release.

Hogyhogy még van ekkora erő ebben a communityban? Legacy és hobbyprojekteken kívül használna még bárki Pascalt?

Én 2,5 éve egy olyan cégnél dolgozom (Németországban), amelyiknek a komplett IP-je Pascalban van írva (és nem visual Delphi database crap). Ezen kívül múlt hétvégén voltam Hollandiában Utrecht mellett egy rendezvényen, amin kb. 50 fejlesztő vett részt, és egész nap mindenféle frissen fejlesztett komponensekről és az új nyelvi elemekről volt szó, meg a Lazarus RAD IDE-ről.

A rendezvényen amúgy az FPC csapat egy része is jelen volt. Az mondjuk vicces - és némiképpen nyugtalanító -, hogy míg az FPC csapat átlagéletkora 30-45 közötti (de van 30 alatti tag is), ez mennyivel fiatalabb mint a rendezvény látogatóinak életkora, ahol inkább az 50 felett volt a jellemző... De cserébe szinte mindenkinek saját vállalkozása volt, amiben valami Pascalra (és-vagy Delphire) épülő terméket adott el. És azt az elmúlt 20 évben karbantartotta. Nem egy webes, meg eldobható mobilapp hipszterkultúra na.

A legnagyobb problémának egyébként mindenki azt tartotta, hogy nem lehet jó Pascal fejlesztőket találni, még drágán sem, mert a "trendi" nyelvek és rendszerek elszívják a fejlesztőket...

Más:
A Free Pascal 2014 áprilisában a SourceForge-on a hónap projektje volt. Az ebből az alkalomból Florian Klaempfl-lel (a projekt alapítója) készült interjú itt olvasható: https://sourceforge.net/blog/april-2014-project-of-the-month-free-pasca…

-=- Mire a programozó: "Na és szerintetek ki csinálta a káoszt?" -=-

"A legnagyobb problémának egyébként mindenki azt tartotta, hogy nem lehet jó Pascal fejlesztőket találni, még drágán sem, mert a "trendi" nyelvek és rendszerek elszívják a fejlesztőket..."

pedgi a pascal nem egy rosz ki nyelv, én kifejezetten szeretem. jó, csak hobbiból programozok, így annyira nem vagyok releváns.
delpji is a maga idejáben megelőzte jócskán a korát, az ms visual studio kb. mostanra érte be

jó látni, hogy továbbra is fejlesztik

Amiga / MorphOS / AROS támogatás meg hab a tortán

----
"Kb. egy hónapja elkezdtem írni egy Coelho-emulátort, ami kattintásra generál random Coelho-kompatibilis tartalmat."
Instant Coelho

Még az utóbbi 3 platformból kettőhöz release-ket le kéne gyártanom, de lusta voltam. Igazából a 3.0 src tree tartalmazza a támogatást, és - főleg classic Amigához - úgyis mindenki crosscompilert akarna a saját kedvenc platformjára. A Wikiben meg van leírás, hogy hogyan csinálj magadnak. A link MorphOS-re tartalmazza, de 68k-s Amigára is ugyanez, csak a platform és a CPU architektúra nevét kell kicserélni... (Megfelelő GNU binutils mindkét esetben szükséges.)

Natív binárisokat pedig addig is az AROS porter Marcus "Alb42" Sackrow honlapjáról lehet leszedni: http://home.alb42.de/fpcbin

-=- Mire a programozó: "Na és szerintetek ki csinálta a káoszt?" -=-

Szerettem. Sajna átszoktam C-re jó sok éve.

off: egyszer megpróbáltam ilyen FreePascal2.x-t fordítani magamnak (x86, Debian 6), de nem ment, mert FreePascal kellett volna a fordításhoz. Méghozzá volt is FP-1.x a gépemen, de FP-2.x kellett volna. (Az időgépem meg persze épp nem működött.)

Az aktuális fejlesztői verzió (SVN trunk) mindig a legutolsó stable release-zel fordul, a legutolsó stable meg saját magával és az egyel korábbi stable-lel. Egyébként mivel a fordító maga direktben használja a kernel syscallokat ahol lehet, és nem épít semmilyen külső libraryra (ha jól rémlik), ezért egy bármilyen FPC stabil bináris megfelelő a bootstraphez és nem kell semmi más (unitok se, meg semmi).

Pl. leszedsz egy 2.6.4-et a freepascal.org-ról, kiszeded valahova a ppc386-ot belőle (más nem kell!) és így fordítasz 3.0-t magadnak:

svn co http://svn.freepascal.org/svn/fpc/branches/fixes_3_0
cd fixes_3_0
make all install FPC=$HOME/some/path/ppc386-stable INSTALL_PREFIX=$HOME/my_fpc

Kb... Nem tesztelve, de nagyjából. :D Ez legyárt neked egy full 3.0-t a $HOME/my_fpc-be az $HOME/some/path/ppc386-stable-t használva mint bootstrap compiler.

Amúgy annyit a mentségedre fel lehet hozni, hogy az FPC 1.x és a 2.x között elég sok idő eltelt, szóval a korai 1.x-ekkel le sem fordult a 2.0... És akkoriban még a fent részletezett rendszer is eléggé gyerekcipőben járt... Másrészt ez nem most lehetett, mivel a 2.0 sztem ilyen 2004-2005 környékén jött ki, szóval... :) Nem lehetett egy túl friss distró az, bár a .x-eken múlik minden. Meg hát nem hiszem h. egy GCC 2.95.3 lefordít egy GCC 4-et neked, pl... Az kb. ugyanez.

Szerk: na megnéztem, a Debian 6 (squeeze), az FPC 2.4.0-t szállította. Nem tudom hogy sikerült az 1.x-et idekeverni. :)

-=- Mire a programozó: "Na és szerintetek ki csinálta a káoszt?" -=-

Igazad van, pontatlanul emlékeztem, akkor pontosabban:

$ fpc -v
Free Pascal Compiler version 2.4.0-2 [2010/02/20] for i386
Copyright (c) 1993-2009 by Florian Klaempfl

$ ls -ld fpc-2.6.4/
drwxr-sr-x 12 root staff 4096 Aug  6  2014 fpc-2.6.4/

$ tail -n20 fpc-2.6.4/log.make 
/usr/bin/ppc386 -Ur -Ur -Xs -O2 -n -Fi../inc -Fi../i386 -Fi../unix -Fii386 -FE. -FU/local2/usr/local/srp
/usr/bin/ppc386 -Ur -Ur -Xs -O2 -n -Fi../inc -Fi../i386 -Fi../unix -Fii386 -FE. -FU/local2/usr/local/srp
/usr/bin/ppc386 -Ur -Ur -Xs -O2 -n -Fi../inc -Fi../i386 -Fi../unix -Fii386 -FE. -FU/local2/usr/local/srp
/usr/bin/ppc386 -Ur -Ur -Xs -O2 -n -Fi../inc -Fi../i386 -Fi../unix -Fii386 -FE. -FU/local2/usr/local/srp
/usr/bin/ppc386 -Ur -Ur -Xs -O2 -n -Fi../inc -Fi../i386 -Fi../unix -Fii386 -FE. -FU/local2/usr/local/srp
/usr/bin/ppc386 -Ur -Ur -Xs -O2 -n -Fi../inc -Fi../i386 -Fi../unix -Fii386 -FE. -FU/local2/usr/local/srp
/usr/bin/ppc386 -Ur -Ur -Xs -O2 -n -Fi../inc -Fi../i386 -Fi../unix -Fii386 -FE. -FU/local2/usr/local/srp
bunxh.inc(24,52) Fatal: Syntax error, ":" expected but "identifier NSET" found
Fatal: Compilation aborted
make[5]: *** [baseunix.ppu] Error 1
make[5]: Leaving directory `/local2/usr/local/src/fpc-2.6.4/rtl/linux'
make[4]: *** [linux_all] Error 2
make[4]: Leaving directory `/local2/usr/local/src/fpc-2.6.4/rtl'
make[3]: *** [rtl] Error 2
make[3]: Leaving directory `/local2/usr/local/src/fpc-2.6.4/compiler'
make[2]: *** [cycle] Error 2
make[2]: Leaving directory `/local2/usr/local/src/fpc-2.6.4/compiler'
make[1]: *** [compiler_cycle] Error 2
make[1]: Leaving directory `/local2/usr/local/src/fpc-2.6.4'
make: *** [build-stamp.x86_64-linux] Error 2

az érintett sor a bunxh.inc-ben:


    23      Function  FpSigProcMask  (how : cInt; nset : pSigSet; oset : pSigSet): cInt; external name '
FPC_SYSC_SIGPROCMASK';
    24      Function  FpSigProcMask  (how : cInt; constref nset : TSigSet; var oset : TSigSet): cInt; ex
ternal name 'FPC_SYSC_SIGPROCMASK';

Szerk: meglett a kontextus is, ami miatt ki akartam volna próbálni: prog.hu: Tudástár: Linux17 alatt nem működik fphttpclient

A 2.6.4 mint írtam saját magával és az egyel korábbi stable verzióval fordul le (ez a támogatott konfig). A 2.4.0 és a 2.6.4 között volt 2.4.2, 2.4.4, 2.6.0 és 2.6.2, alsó hangon.

Egyébként most megnéztem, a 2.6.4 Makefile-jában még nincs benne a verzió ellenőrzés, hogy túl régi compilerrel fordítod-e... A 3.0 már nem engedi magát túl régi fordítóval lefordítani. Többek között ezért, mert egyrészt az emberek azért rinyálnak, hogy legyenek a latest Delphi feature-ök is támogatva, másrészt meg hogy forduljunk le az öttel ezelőtti compiler verzióval is, amit a Debian mint aktuálist szállít...

Szóval a 2.6.4 saját magával és 2.6.2-vel biztosan lefordul... Egyébként a constref kulcsszó a 2.6.0-ban került bevezetésre/támogatásra:

http://wiki.freepascal.org/FPC_New_Features_2.6.0#Constref_parameter_mo…

-=- Mire a programozó: "Na és szerintetek ki csinálta a káoszt?" -=-

Ha valakit érdekel és nem tudna róla:

Mostanában látott napvilágot a freepascal 3.2-es verziója.