Free Pascal Compiler

Software screenshot:
Free Pascal Compiler
Dettagli del software:
Versione: 3.0.4 Aggiornato
Data di caricamento: 22 Jun 18
Sviluppatore: Daniel Mantione
Licenza: Libero
Popolarità: 262

Rating: 4.0/5 (Total Votes: 2)

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
  • 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

Programmi simili

Racket
Racket

27 Sep 15

SWIG
SWIG

7 Mar 16

bin86
bin86

3 Jun 15

Commenti a Free Pascal Compiler

I commenti non trovato
Aggiungi commento
Accendere le immagini!