Free Pascal Compiler

軟件截圖:
Free Pascal Compiler
軟件詳細信息:
版本: 3.0.4 更新
上傳日期: 22 Jun 18
許可: 免費
人氣: 262

Rating: 4.0/5 (Total Votes: 2)

免費的Pascal編譯器(又名FPK Pascal)是一個開源的Pascal編譯器,支持以下操作系統:Linux,FreeBSD,NetBSD,MacOSX / Darwin,MacOS classic,DOS,Win32,OS / 2,BeOS,SunOS(Solaris),QNX和Classic Amiga。

免費Pascal編譯器適用於不同的處理器Intel x86,Amd64 / x86 64,PowerPC,PowerPC64,Sparc和ARM。

免費Pascal編譯器具有非常乾淨的語言,它不使用Makefile,這與大多數編程語言不同,它是快速的大F,每個單元都有自己的標識符,並包含一個IDE(集成開發環境)。

此外,該軟件具有與彙編程序,面向對象編程,智能鏈接,分發獨立性的完美集成,並且與現有代碼兼容。

新內容發布:

  • 此版本是3.0的點更新,包含錯誤修正和更新包,其中一些是高優先級。

版本中的新功能

  • 語言變化:
  • 匿名繼承的電話:
  • 舊行為:匿名繼承調用可以調用父類中任何接受與當前方法參數兼容的參數的方法。
  • 新行為:保證匿名繼承的調用始終調用父類中被當前方法覆蓋的方法。
  • 示例:請參閱http://svn.freepascal.org/svn/fpc/trunk/tests/tbs/tb0577.pp。在以前的FPC版本中,tc3.test中的繼承調用將調用tc2.test(b:byte; l:longint = 1234);.現在它調用tc.test。
  • 原因:符合FPC文檔,Delphi兼容性。
  • 補救措施:如果您希望編譯器根據指定的參數決定調用哪個方法,請使用完全指定的繼承調用表達式,例如inherited test(b)。
  • 過載修飾符必須出現在界面中:
  • 舊行為:可以在實現中將函數/過程/方法聲明為重載。
  • 新行為:如果使用了過載指令,它也必須出現在界面中。
  • 原因:舊機制可能導致難以發現問題(取決於實現是否已經解析,編譯器會將該例程視為已聲明有/無過載),它可能導致不需要的單元重新編譯到期接口crc更改,以及Delphi兼容性。
  • 補救措施:如果您使用過濾修改器,請確保接口和實現中都存在過載修改器。
  • 單位變更:
  • TDataset的幾種方法更改簽名(TRecordBuffer):
  • 舊行為:TDataset的幾個(虛擬)方法具有類型為“pchar”的參數,通常稱為“緩衝區”。
  • 新行為:pchar類型已更改為TRecordBuffer。目前這種類型仍然是p(ansi)char的別名,但是對於2.7.1 / 2.8.0分支,它將被更改為pbyte,這與D2009 +兼容。
  • 原因:準備Delphi 2009+兼容性和改進一般打字。在Delphi 2009+(以及將來完全兼容的FPC模式)中,pchar不再是指向byte的指針。此更改將合併回2.6(.2),但使用TRecordBuffer = pchar。
  • 補救措施:更改相關的虛擬方法以將TRecordBuffer用於緩衝區參數。定義TRecordBuffer = pansichar以保持較舊的Delphis和FPC工作。在使用typecasted緩衝區的地方,不要使用pchar,而應使用符號TRecordbuffer。
  • DLLParam已從Longint更改為PtrInt:
  • 舊行為:即使在Win64上,DLLParam也是Longint類型。
  • 新行為:DLLParam現在屬於PtrInt類型,因此也適用於64位系統。
  • 原因:防止數據丟失,與Windows標頭中的聲明匹配。
  • 補救措施:更改用作dll掛鉤的過程的聲明,以取代PintInt參數而不是Longint。
  • 單位Unix和Unixutils中的某些符號已被棄用:
  • 舊行為:unixutils.getfs(幾個變體),unix.fpsystem(僅限短文本版本),Unix.MS_常量和unix.tpipe沒有棄用警告。 unix.statfs
  • 新行為:編譯器將為這些符號發出不推薦的警告。在將來的版本中,這些可能會被刪除。
  • 原因:很久以前,getfs已經被一個完全跨平台的函數sysutils.getfilehandle所取代。 fpsystem(shortstring)是1.0.x-> 2.0.x遷移的剩餘部分(ansistring版本仍然受支持),MS_常量用於FPC不支持的msync調用,因此未被使用且未選中十多年來,可能與核心1.x次相關,tpipe是baseunix.TFildes的1.0.x別名,這是在2000系列中將(fp)管道移入的單位。 Unix.statfs是一個重載版本,當其他版本在2.4.0中重命名時未正確重命名為fp *前綴
  • 補救措施:使用新變體(sysutils.getfilehandle,fpsystem(ansistring),baseunix.tfildes)。在MS_常量的情況下,從獲得使用它們的代碼的相同位置獲取常量的當前值。
  • 更改了TStrings.DelimitedText行為(單元類):
  • 舊行為:如果StrictDelim為true,則TStrings.DelimitedText並不完全遵循SDF格式規範(在Delphi幫助中定義),至少在前面和末尾有空格(可能是其他低ASCII字符)的情況下字段以及引號和行結尾。更糟糕的是,如果StrictDelimiter為true,並且在上面提到的情況下,保存TString .DelimitedText並將該文本加載到另一個TString中會導致兩者之間的差異。注意:默認情況下,StrictDelimiter為false。
  • 新行為:FPC遵循Delphi行為。
  • 原因:一致性(在DelimitedText中寫出和讀取應該產生相同的字符串),Delphi兼容性(遵循SDF規範)。
  • 補救措施:查看讀取或寫入DelimitedText的現有代碼;如有必要,轉換數據或寫入轉換器代碼。有關詳細測試,請參閱tests webtbs tw19610.pp。
  • fcl-image TTiffIDF重命名為TTiffIFD:
  • 舊行為:“圖像文件目錄”的tiff助手類拼錯了TiffIDF(tiffcmn unit)
  • 新行為:現已重命名為TTiffIFD
  • 原因:一致性,低使用率
  • 補救措施:根據需要重命名標識符。
  • unit libc發出了一個棄用的警告:
  • 舊行為:雖然已棄用多年,但libc單元未發出已棄用的警告
  • 新行為:使用單位libc時會顯示已棄用的警告,並敦促您進行更新。
  • 原因:單元libc是Kylix舊單元,具有有限的可移植性
  • 補救措施:使用libc unit
  • 中所述的正確FPC單元
  • 其他:
  • UPX支持已被刪除:
  • 舊行為:FPC Makefile中有一些剩餘的UPX(可執行打包程序)支持,DOS和Windows FPC版本包含UPX二進製文件。
  • 新行為:全部刪除。
  • 原因:發布二進製文件暫時沒有UPX。這些天FPC可執行文件的大小與總安裝大小相比通常微不足道,並且使用UPX偶爾會導致一些輕微的煩惱(病毒掃描程序出現誤報,操作系統的分頁行為更糟,與某些可執行部分不兼容,......)
  • 補救措施:從主頁上自行下載並安裝UPX,一般情況下需要重新評估它。

版本2.4.4中的新功能

  • 此版本包含從2010年6月初至2011年3月的大多數圖書館修復程序。
  • 還有一些編譯器修復程序,大多數與64位有關。

版本2.4.0中的新內容

  • Delphi喜歡所有平台的資源,
  • 矮人調試信息改進,
  • 幾個新目標
  • 64位Mac OS X(x86_64 / ppc64)
  • iPhone(Mac OS X / Arm)
  • Haiku(來自BeOS家族)
  • 改進了ARM EABI支持
  • 整個計劃優化
  • 許多編譯器錯誤修正和半年的庫更新(自2.2.4起)

版本2.2.4中的新功能

  • 全部:
  • 實驗包 - 安裝工具
  • 軟件包:
  • 在fcl-image
  • 中添加了對TIFF讀/寫的支持
  • CHM支持中的改進和修復
  • 修復了將gtk2-package與2.13.4以上的gtk版本鏈接的問題。
  • IDE:
  • 添加了對CHM幫助文件的支持

類似的軟件

Perl
Perl

17 Aug 18

Racket
Racket

27 Sep 15

Lush
Lush

11 May 15

nwcc
nwcc

11 May 15

意見 Free Pascal Compiler

評論沒有發現
添加評論
打開圖片!