Volný Pascal Compiler (aka FPK Pascal) je open source Pascal kompilátor, který podporuje následující operační systémy: Linux, FreeBSD, NetBSD, MacOSX / 2, BeOS, SunOS (Solaris), QNX a Classic Amiga.
Volný Pascal Compiler je k dispozici pro různé procesory Intel x86, Amd64 / x86 64, PowerPC, PowerPC64, Sparc a ARM.
Volný Pascal Compiler obsahuje velmi čistý jazyk, na rozdíl od většiny programovacích jazyků nepoužívá žádné Makefiles, je rychlá s velkým F, každá jednotka má své vlastní identifikátory a obsahuje IDE (Integrated Development Environment).
Kromě toho má software skvělou integraci s instalátory, objektově orientovaným programováním, inteligentním propojením, distribuční nezávislostí a je kompatibilní s existujícím kódem.
Co je nového verze:
- Tato verze je bodová aktualizace 3.0 a obsahuje opravy a balíčky aktualizací, z nichž některé jsou vysoce prioritní.
Co je nového ve verzi:
- Změny jazyka:
- Anonymní zděděné hovory:
- Staré chování: anonymní zděděný hovor by mohl vyvolat jakoukoli metodu v nadřazené třídě, která přijala argumenty kompatibilní s parametry aktuální metody.
- Nové chování: Anonymní zděděný hovor je zaručen, že vždy volá metodu v nadřazené třídě, která byla nahrazena aktuální skupinou.
- Příklad: Viz http://svn.freepascal.org/svn/fpc/trunk/tests/tbs/tb0577.pp. V předchozích verzích FPC by zděděný hovor v tc3.test mohl volat na tc2.test (b: byte; l: longint = 1234) ;. Nyní volá na tc.test.
- Důvod: Dodržujte dokumentaci FPC, kompatibilitu s Delphi.
- Náprava: Pokud si přejete, aby kompilátor rozhodl, kterou metodu volat na základě zadaných parametrů, použijte plně specifikovaný zděděný výraz, např. zděděný test (b).
- V rozhraní musí být přítomen modifikátor přetížení:
- staré chování: bylo možné deklarovat funkci / postup / metodu jako přetížení pouze v implementaci.
- Nové chování: Pokud se používá směrnice o přetížení, musí se také zobrazit v rozhraní.
- Důvod: starý mechanismus by mohl způsobit těžké problémy (v závislosti na tom, zda byla implementace již analyzována, kompilátor by rutinně zacházel jako s deklarací s / bez přetížení), mohlo by to způsobit nežádoucí jednotky kompilací kvůli na rozhraní změn crc a kompatibilitu Delphi.
- Náprava: Ujistěte se, že modifikátor přetížení je přítomen v rozhraní i v implementaci, pokud jej používáte.
- Změny jednotky:
- Několik metod TDataset mění podpis (TRecordBuffer):
- Staré chování: Některé (virtuální) metody TDatasetu mají parametry typu "pchar", které se často nazývají "buffer".
- Nové chování: Typ pchar byl změněn na TRecordBuffer. Tento typ je stále alias pro znak p (ansi), ale časem se změní na pbyte pro pobočku 2.7.1 / 2.8.0, která je kompatibilní s D2009 +.
- Důvod: Příprava na kompatibilitu Delphi 2009+ a zlepšení obecného psaní. V Delphi 2009+ (a plně kompatibilní režimy FPC v budoucnosti) pchar není ukazatel na byte. Tato změna bude sloučena zpět na 2.6 (.2), ale s TRecordBuffer = pchar.
- Náprava: Změňte příslušné virtuální metody a použijte TRecordBuffer pro parametry vyrovnávací paměti. Definujte TRecordBuffer = pansichar, aby starší Delphis a FPCs fungovaly. V místech, kde je typ vyrovnávací paměti, nepoužívejte pchar, ale symbol TRecordbuffer.
- DLLParam změněn z Longint na PtrInt:
- Staré chování: DLLParam byl typu Longint dokonce i na Win64.
- Nové chování: DLLParam je nyní typu PtrInt tak i na 64bitových systémech.
- Důvod: Zabraňte ztrátě dat, shodě s prohlášením v záhlavích systému Windows.
- Náprava: Změňte deklaraci postupů použitých jako dll hook, abyste získali parametr PtrInt namísto Longint.
- Některé symboly v jednotkách Unix a Unixutils byly zastaralé:
- Staré chování: Žádné varování pro unixutils.getfs (několik variant), unix.fpsystem (pouze pro krátkou verzi), konstanty Unix.MS_ a unix.tpipe. unix.statfs
- Nové chování: Kompilátor vydá tyto varovné symboly. V budoucích verzích mohou být tyto soubory odstraněny.
- Důvod: getfs byl nahrazen plně syntetickou funkcí sysutils.getfilehandle již dávno. fpsystem (shortstring) byl zbytkem migrace 1.0.x-> 2.0.x (verze s ansistingem zůstává podporována), konstanty MS_ jsou pro volání msync, které FPC nepodporuje, a proto nebyly použity a nekontrolovány pro během desetiletí a může jít k jádru 1.x krát, tpipe byl 1.0.x alias baseunix.TFildes, jednotka, kde byla (fp) potrubí přesunuta na in během série 2.0. Unix.statfs je přetížená verze, která nebyla správně přejmenována na předponu fp *, když ostatní byli přejmenováni na 2.4.0
- Náprava: použijte nové varianty (sysutils.getfilehandle, fpsystem (ansistring), baseunix.tfildes). V případě konstant MS_ získáte aktuální hodnoty pro konstanty ze stejného místa, kde jste získali kód, který je používá.
- Změna chování TStrings.DelimitedText (třídy třídy):
- Staré chování: Pokud je StrictDelim pravdivý, TStrings.DelimitedText zcela nesplnil specifikaci formátu SDF (která je definována v nápovědě Delphi) alespoň v případě mezery (a pravděpodobně dalších nízkých znaků ASCII) vpředu a na konci polí stejně jako uvozovek a zakončení řádků. Pokud je pravda StrictDelimiter, je pravda a ve výše uvedených případech ukládání TString .DelimitedText a vložení tohoto textu do jiného TString vede k rozdílům mezi těmito dvěma. Poznámka: StrictDelimetr je ve výchozím nastavení nepravdivý.
- Nové chování: FPC následuje chování Delphi.
- Důvod: Konzistence (zápis a čtení v DelimitedText by mělo mít za následek stejné řetězce), kompatibilitu Delphi (podle specifikace SDF).
- Náprava: Zkontrolujte stávající kód, který čte nebo zapisuje DelimitedText; v případě potřeby převést data nebo napsat převodní kód. Pro podrobný test naleznete testy webtbs tw19610.pp.
- fcl-image TTiffIDF přejmenován na TTiffIFD:
- Staré chování: Třída pomocných pomocníků pro "adresář souborů obrázků" byl chybně napsán TiffIDF (tiffcmn jednotka)
- Nové chování: Nyní přejmenováno na TTiffIFD
- Důvod: Konzistence, nízká spotřeba
- Náprava: Přejmenujte identifikátor podle potřeby.
- Jednotka libc vydává zastaralé varování:
- Starší chování: Zatímco většinu let nepoužívá jednotka libc, nevydává upozornení, které jsou zastaralé
- Nové chování: při použití jednotky libc se zobrazuje zastaralé varování, které vás vyzývá k aktualizaci.
- Důvod: jednotka libc je starší jednotka Kylix s omezenou přenositelností
- Náprava: Použijte správné jednotky FPC, jak je popsáno v jednotce libc
- Ostatní:
- Podpora UPX byla odstraněna:
- Starší chování: Ve složkách FPC Makefiles byla v operačním systému FPC Makefiles nějaká zbylá podpora UPX (spustitelný balík) a verze DOS a Windows FPC obsahovala binární soubor UPX.
- Nové chování: vše bylo odebráno.
- Důvod: Binární soubory pro vydání nebyly na chvíli UPX'ed. Velikost spustitelných souborů FPC je dnes v porovnání s celkovou velikostí instalace obvykle nepatrná a používání UPX příležitostně způsobuje některé drobné obtěžování (falešné pozitiva z antivirových skenerů, horší chování stránkování operačním systémem, neslučitelnost s některými spustitelnými oddíly ...)
- Řešení: Stáhněte si a nainstalujte UPX sami od jeho domovské stránky a obecně ji přehodnoťte.
Co je nového ve verzi 2.4.4:
- Tato verze obsahuje většinu opravených knihoven od počátku června 2010 do března 2011.
- Existují také některé opravy kompilátorů, které se většinou vztahují k 64bitové verzi.
Co je nového ve verzi 2.4.0:
- >
- Vylepšení informací o ladění trpaslíků
- Několik nových cílů
- 64bitový systém Mac OS X (x86_64 / ppc64)
- iPhone (Mac OS X / rameno)
- Haiku (z rodiny BeOS)
- Vylepšená podpora ARM EABI
- Celá optimalizace programu
- Mnoho oprav překladačů a půl roku aktualizací knihoven (od 2.2.4)
Co je nového ve verzi 2.2.4:
Komentáře nebyl nalezen