Free Pascal Compiler (aka FPK Pascal) è un compilatore Pascal open source che supporta i seguenti sistemi operativi: Linux, FreeBSD, NetBSD, MacOSX / Darwin, MacOS classic, DOS, Win32, OS / 2, BeOS, SunOS (Solaris), QNX e Classic Amiga.
Free Pascal Compiler è disponibile per diversi processori Intel x86, Amd64 / x86 64, PowerPC, PowerPC64, Sparc e ARM.
Free Pascal Compiler presenta un linguaggio molto pulito, non usa Makefile a differenza della maggior parte dei linguaggi di programmazione, è veloce con una grande F, ogni unità ha i suoi identificatori e include un IDE (Integrated Development Environment).
Inoltre, il software offre una grande integrazione con assemblatori, programmazione orientata agli oggetti, collegamento intelligente, indipendenza di distribuzione ed è compatibile con il codice esistente.
Novità in questo versione:
- Questa versione è un aggiornamento di punti a 3.0 e contiene correzioni di errori e pacchetti di aggiornamenti, alcuni dei quali hanno priorità elevata.
Novità della versione nella versione:
- Modifiche della lingua:
- Chiamate anonime ereditate:
- Vecchio comportamento: una chiamata ereditata anonima poteva richiamare qualsiasi metodo in una classe genitore che accettasse argomenti compatibili con i parametri del metodo corrente.
- Nuovo comportamento: una chiamata ereditata anonima è garantita per richiamare sempre il metodo in una classe genitore che è stata sostituita da quella corrente.
- Esempio: vedi http://svn.freepascal.org/svn/fpc/trunk/tests/tbs/tb0577.pp. Nelle versioni precedenti di FPC, la chiamata ereditata in tc3.test veniva chiamata a tc2.test (b: byte; l: longint = 1234) ;. Ora chiama attraverso tc.test.
- Motivo: conforme alla documentazione FPC, compatibile con Delphi.
- Soluzione: se si desidera che il compilatore decida quale metodo chiamare in base ai parametri specificati, utilizzare un'espressione di chiamata ereditata specificata, ad esempio test ereditato (b).
- Il modificatore del sovraccarico deve essere presente nell'interfaccia:
- Vecchio comportamento: era possibile dichiarare una funzione / procedura / metodo come sovraccarico solo nell'implementazione.
- Nuovo comportamento: se viene utilizzata una direttiva overload, deve anche apparire nell'interfaccia.
- Motivo: il vecchio meccanismo poteva causare problemi di difficile individuazione (a seconda che l'implementazione fosse già stata analizzata, il compilatore avrebbe trattato la routine come se fosse stata dichiarata con / senza sovraccarico), potrebbe causare ricompense di unità indesiderate dovute per interfacciare le modifiche di crc e la compatibilità con Delphi.
- Soluzione: assicurati che il modificatore di sovraccarico sia presente nell'interfaccia e nell'implementazione se lo usi.
- Modifiche alle unità:
- Diversi metodi di TDataset cambiano la firma (TRecordBuffer):
- Vecchio comportamento: diversi metodi (virtuali) di TDataset hanno parametri di tipo & quot; pchar & quot ;, che sono spesso chiamati & quot; buffer & quot;.
- Nuovo comportamento: il tipo di pchar è stato cambiato in TRecordBuffer. Attualmente questo tipo è ancora un alias per il carattere p (ansi), ma col tempo verrà modificato in pbyte per il ramo 2.7.1 / 2.8.0, che è compatibile con D2009 +.
- Motivo: preparazione per Delphi 2009+ compatibilità e miglioramento della tipizzazione generale. In Delphi 2009+ (e modalità FPC pienamente compatibili in futuro) pchar non è più puntatore a byte. Questa modifica verrà ripristinata a 2.6 (.2), ma con TRecordBuffer = pchar.
- Soluzione: modificare i metodi virtuali pertinenti per utilizzare TRecordBuffer per i parametri del buffer. Definisci TRecordBuffer = pansichar per far funzionare Delphis e FPC più vecchi. Nei luoghi in cui un buffer è tipizzato, non utilizzare pchar ma il simbolo TRecordbuffer.
- DLLParam cambiato da Longint in PtrInt:
- Vecchio comportamento: DLLParam era di tipo Longint anche su Win64.
- Nuovo comportamento: DLLParam ora è di tipo PtrInt, quindi anche su sistemi a 64 bit.
- Motivo: impedisce la perdita di dati, corrisponde alla dichiarazione nelle intestazioni di Windows.
- Soluzione: modificare la dichiarazione delle procedure utilizzate come hook dll per prendere un parametro PtrInt invece di Longint.
- Alcuni simboli dell'unità Unix e Unixutils sono stati deprecati:
- Vecchio comportamento: nessun avvertimento deprecato per unixutils.getfs (diverse varianti), unix.fpsystem (solo versione di stringhe di corda), costanti Unix.MS_ e unix.tpipe. unix.statfs
- Nuovo comportamento: il compilatore emetterà un avviso deprecato per questi simboli. Nelle versioni future questi possono essere rimossi.
- Motivo: getfs è stato sostituito da una funzione cross-platform sysutils.getfilehandle molto tempo fa. fpsystem (stringhe passanti) era un avanzo della migrazione 1.0.x- & gt; 2.0.x (la versione ansistring rimane supportata), le costanti MS_ sono per una chiamata msync che non è supportata da FPC, e quindi sono state inutilizzate e deselezionate per oltre un decennio e potrebbe datare al kernel 1.x volte, tpipe era l'alias 1.0.x di baseunix.TFildes, l'unità in cui la pipe (fp) è stata spostata verso dentro durante la serie 2.0. Unix.statfs è una versione sovraccaricata che non è stata correttamente rinominata come prefisso fp * quando gli altri sono stati rinominati in 2.4.0
- Soluzione: utilizzare le nuove varianti (sysutils.getfilehandle, fpsystem (ansistring), baseunix.tfildes). Nel caso delle costanti MS_, ottieni i valori correnti per le costanti dallo stesso punto in cui hai ottenuto il codice che li usa.
- Comportamento TStrings.DelimitedText modificato (classi di unità):
- Vecchio comportamento: se StrictDelim è true, TStrings.DelimitedText non ha seguito completamente la specifica del formato SDF (che è definita nella guida di Delphi) almeno nel caso di spazi (e presumibilmente altri caratteri ASCII bassi) davanti e alla fine di campi così come virgolette e terminazioni di linea. Peggio ancora, se StrictDelimiter è vero, e nei casi menzionati sopra, il salvataggio di un TString .DelimitedText e il caricamento di quel testo in un altro TString portano a differenze tra i due. Nota: StrictDelimiter è falso per impostazione predefinita.
- Nuovo comportamento: la FPC segue il comportamento di Delphi.
- Motivo: coerenza (la scrittura e la lettura in DelimitedText dovrebbe produrre le stesse stringhe), compatibilità con Delphi (seguendo le specifiche SDF).
- Soluzione: rivedere il codice esistente che legge o scrive DelimitedText; se necessario convertire i dati o scrivere il codice del convertitore. Vedi test webtbs tw19610.pp per un test dettagliato.
- fcl-image TTiffIDF ridenominato in TTiffIFD:
- Vecchio comportamento: la classe helper tiff per la & quot; directory del file immagine & quot; era errato TiffIDF (unità tiffcmn)
- Nuovo comportamento: ora ridenominato in TTiffIFD
- Motivo: coerenza, basso utilizzo
- Soluzione: rinominare l'identificatore come appropriato.
- unit libc emette un avviso deprecato:
- Vecchio comportamento: mentre deprecato da anni l'unità libc non emetteva un avviso deprecato
- Nuovo comportamento: viene visualizzato un avviso deprecato quando viene utilizzata unit libc, sollecitando l'aggiornamento.
- Motivo: unit libc è un'unità legacy Kylix, con portabilità limitata li>
- Rimedio: usa le unità FPC corrette come descritto nell'unità libc
- Altro:
- Il supporto UPX è stato rimosso:
- Vecchio comportamento: c'era qualche supporto UPX (un pacchetto eseguibile) avanzato nei Makefile FPC, e le versioni DOS e Windows di FPC includevano un binario UPX.
- Nuovo comportamento: tutto rimosso.
- Motivo: i binari di rilascio non sono stati UPX per un po 'di tempo. La dimensione degli eseguibili FPC è generalmente insignificante in questi giorni rispetto alla dimensione totale dell'installazione e l'uso di UPX occasionalmente causa alcuni fastidi minori (falsi positivi da scanner di virus, peggior comportamento di paging da parte del sistema operativo, incompatibilità con alcune sezioni eseguibili, ...)
- Soluzione: scarica e installa UPX personalmente dalla sua homepage e in generale rivaluta la necessità.
Novità della versione nella versione 2.4.4:
- Questa versione contiene la maggior parte delle correzioni di libreria dall'inizio di giugno 2010 a marzo 2011.
- Ci sono anche alcune correzioni del compilatore, la maggior parte relative a 64-bit.
Novità nella versione 2.4.0:
- Risorse simili a Delphi per tutte le piattaforme,
- Miglioramenti delle informazioni di debug dei nani,
- Diversi nuovi obiettivi
- Mac OS X a 64 bit (x86_64 / ppc64)
- iPhone (Mac OS X / Braccio)
- Haiku (della famiglia BeOS)
- Supporto ARM EABI migliorato
- Ottimizzazione completa del programma
- Molte correzioni di bug del compilatore e un anno e mezzo di aggiornamenti della libreria (dalla 2.2.4)
Novità nella versione 2.2.4:
- Tutti:
- Pacchetti sperimentali - strumento di installazione
- Pacchetti:
- Aggiunto supporto per lettura / scrittura TIFF in immagine fcl
- Miglioramenti e correzioni nel supporto CHM
- Corretto il collegamento del pacchetto gtk2 con le versioni gtk sopra 2.13.4
- IDE:
- Aggiunto il supporto per i file di aiuto CHM
I commenti non trovato