Gratis Pascal Compiler (aka FPK Pascal) är en Pascal-kompilator med öppen källkod som stöder följande operativsystem: Linux, FreeBSD, NetBSD, MacOSX / Darwin, MacOS classic, DOS, Win32, OS / 2, BeOS, SunOS (Solaris), QNX och Classic Amiga.
Gratis Pascal Compiler finns tillgänglig för olika processorer Intel x86, Amd64 / x86 64, PowerPC, PowerPC64, Sparc och ARM.
Gratis Pascal Compiler har ett mycket rent språk, det använder ingen Makefiles till skillnad från de flesta programmeringsspråk, det är snabbt med en stor F, varje enhet har sina egna identifierare och innehåller en IDE (Integrated Development Environment).
Dessutom innehåller mjukvaran en stor integration med montörer, objektorienterad programmering, smartlinking, distribution oberoende, och det är kompatibelt med befintlig kod.
Vad är nytt i detta release:
- Den här versionen är en punktuppdatering till 3.0 och innehåller buggfixar och uppdateringspaket, varav några har hög prioritet.
Vad är nytt i version:
- Språkändringar:
- Anonyma ärvda samtal:
- Gammalt beteende: Ett anonymt arvet samtal skulle kunna gå igenom alla metoder i en föräldraklass som accepterade argument som är kompatibla med parametrarna för den aktuella metoden.
- Nytt beteende: Ett anonymt arvet samtal garanteras att alltid ringa till metoden i en förälderklass som överskreds av den nuvarande.
- Exempel: Se http://svn.freepascal.org/svn/fpc/trunk/tests/tbs/tb0577.pp. I tidigare FPC-versioner skulle det ärvda samtalet i tc3.test ringa till tc2.test (b: byte; l: longint = 1234) ;. Nu ringer det till tc.test.
- Anledning: I enlighet med FPC-dokumentationen, Delphi-kompatibilitet.
- Åtgärd: Om du vill att kompilatorn ska bestämma vilken metod som ska ringas baserat på de angivna parametrarna, använd ett fullständigt specificerat ärftligt samtalsexempel, såsom det ärftliga testet (b).
- Överbelastningsmodifieraren måste finnas i gränssnittet:
- Gammalt beteende: Det var möjligt att deklarera en funktion / procedur / metod som överbelastning endast vid genomförandet.
- Nytt beteende: Om ett överbelastningsdirektiv används, måste det också visas i gränssnittet.
- Anledning: Den gamla mekanismen kan göra det svårt att hitta problem (beroende på huruvida implementeringen redan har analyserats, kompilatorn skulle behandla rutinen som om den deklarerats med / utan överbelastning), kan det orsaka oönskade enhetskomponenter på grund av oönskade att gränssnittet crc ändras och Delphi-kompatibilitet.
- Åtgärd: Se till att överbelastningsmodifieraren finns både i gränssnittet och i implementeringen om du använder den.
- Enhetsändringar:
- Flera metoder för TDataset ändrar signaturen (TRecordBuffer):
- Gammalt beteende: Flera (virtuella) metoder för TDataset har parametrar av typen "pchar", som ofta kallas "buffert".
- Nytt beteende: Pchar-typen har ändrats till TRecordBuffer. För närvarande är denna typ fortfarande ett alias för p (ansi) char, men i tid kommer det att ändras till pbyte för 2.7.1 / 2.8.0-filialen, som är D2009 + -kompatibel.
- Motivering: Förberedelser för Delphi 2009 + kompatibilitet och förbättring av generell typning. I Delphi 2009+ (och fullt kompatibla FPC-lägen i framtiden) pchar inte pekar till byte längre. Denna ändring kommer att slås samman till 2.6 (.2), men med TRecordBuffer = pchar.
- Åtgärd: Ändra relevanta virtuella metoder för att använda TRecordBuffer för buffertparametrar. Definiera TRecordBuffer = pansichar för att hålla äldre Delphis och FPCs som arbetar. På platser där en buffert skrivs in, använd inte pchar men symbolen TRecordbuffer.
- DLLParam ändras från Longint till PtrInt:
- Gammalt beteende: DLLParam var av typen Longint även på Win64.
- Nytt beteende: DLLParam är nu av typen PtrInt, även på 64 bitars system.
- Anledning: Förhindra förlust av data, matcha deklarationen i Windows-rubrikerna.
- Åtgärd: Ändra deklarationen av de procedurer som används som dll-krok för att ta en PtrInt-parameter istället för Longint.
- Vissa symboler i Unix och Unixutils-enheter har avlägsnats:
- Gammalt beteende: Ingen utökad varning för unixutils.getfs (flera varianter), unix.fpsystem (endast shortstring-version), Unix.MS_-konstanter och unix.tpipe. unix.statfs
- Nytt beteende: Kompilatorn kommer att avge en försvunnen varning för dessa symboler. I framtida versioner kan dessa tas bort.
- Anledning: getfs har ersatts av en helt plattformsfunktion sysutils.getfilehandle för länge sedan. fpsystem (shortstring) var en övernattning av 1,0.x-> 2.0.x migrering (ansvarsversionen förblir stödd), MS_-konstanterna är för ett msync-samtal som inte stöds av FPC, och har därmed varit oanvända och avmarkerade för över ett decennium och kan komma till kärnan 1.x gånger, var tpipe 1.0.x-aliaset för baseunix.TFildes, enheten där (fp) röret flyttades till i under 2,0-serien. Unix.statfs är en överbelastad version som inte var korrekt omdämd till fp * prefix när de andra namngavs i 2.4.0
- Åtgärd: Använd de nya varianterna (sysutils.getfilehandle, fpsystem (ansistring), baseunix.tfildes). När det gäller MS_-konstanterna, skaffa nuvarande värden för konstanterna från samma plats där du har koden som använder dem.
- TStrings.DelimitedText beteende har ändrats (enhetsklasser):
- Gammalt beteende: Om StrictDelim är sant, följde TStrings.DelimitedText inte helt SDF-formatspecifikationen (som definieras i Delphi-hjälp) åtminstone i fall av mellanslag (och förmodligen andra låga ASCII-tecken) framför och i slutet av fält samt citat och radändringar. Värre, om StrictDelimiter är sant, och i de fall som nämnts ovan sparar en TString .DelimitedText och laddar den texten i en annan TString till skillnader mellan de två. Obs! StrictDelimiter är som standard false.
- Nytt beteende: FPC följer Delphi-beteende.
- Orsak: Konsistens (skriva ut och läsa i DelimitedText ska resultera i samma strängar), Delphi-kompatibilitet (enligt SDF-specifikationen).
- Åtgärd: Granska din befintliga kod som läser eller skriv DelimitedText; Om nödvändigt konvertera data eller skriv konverterarkod. Se test webtbs tw19610.pp för ett detaljerat test.
- fcl-image TTiffIDF bytt namn till TTiffIFD:
- Gammalt beteende: Tiff-hjälparklassen för "bildfilkatalogen" var felstavad TiffIDF (tiffcmn enhet)
- Nytt beteende: Nu bytt namn till TTiffIFD
- Anledning: Konsistens, låg användning
- Åtgärd: Byt namn på identifierare enligt vad som är lämpligt.
- Enhetsbiblioteket utfärdar en utökad varning:
- Gammalt beteende: Samtidigt som de avvecklades i åratal utfärdade libc-enheten inte en utökad varning
- Nytt beteende: En utökad varning visas när enheten libc används och uppmanar dig att uppdatera.
- Anledning: Enhetsbibliotek är en Kylix-arvsenhet med begränsad portabilitet
- Åtgärd: Använd rätt FPC-enheter enligt beskrivningen i libc-enheten
- Övrigt:
- UPX-stöd har tagits bort:
- Gammalt beteende: Det fanns kvarstående UPX-stöd (en körbar packer) i FPC Makefiles, och DOS och Windows FPC-utgåvor inkluderade ett UPX-binärt.
- Nytt beteende: Alla borttagna.
- Anledning: Frigör binärerna har inte varit UPX'ed ett tag. Storleken på FPC-exekveringarna är i allmänhet obetydlig dessa dagar jämfört med den totala installationsstorleken, och med hjälp av UPX orsakar det ibland några mindre irritationer (falska positiva från virusskannrar, värre personsökningsbeteende hos operativsystemet, inkompatibiliteter med vissa körbara sektioner, ...)
- Åtgärd: Ladda ner och installera UPX själv från sin hemsida och värdera om det behövs.
Vad är nytt i version 2.4.4:
- Den här versionen innehåller de flesta bibliotekskorrigeringar från början av juni 2010 till och med mars 2011.
- Det finns också några kompilatorfixar, mest relaterade till 64-bitars.
Vad är nytt i version 2.4.0:
- Delphi gillar resurser för alla plattformar,
- Förbättringar av dvärgfelsökning,
- Flera nya mål
- 64-bitars Mac OS X (x86_64 / ppc64)
- iPhone (Mac OS X / Arm)
- Haiku (från BeOS-familjen)
- Förbättrad ARM EABI-stöd
- Hel programoptimering
- Många kompileringsbuggfixar och ett halvår av biblioteksuppdateringar (sedan 2.2.4)
Vad är nytt i version 2.2.4:
- Alla:
- Experimentella paket-installationsverktyg
- paket:
- Tillagt stöd för TIFF-läsning / skrivning i fcl-image
- Förbättringar och korrigeringar i CHM-stöd
- Fast länkning av gtk2-paketet med gtk-versioner över 2.13.4
- IDE:
- Tillagt stöd för CHM-hjälpfiler
Kommentarer hittades inte