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帮助文件的支持

类似的软件

CIL
CIL

20 Feb 15

Android SDK
Android SDK

22 Jun 18

Polyglot
Polyglot

2 Jun 15

Pike
Pike

20 Feb 15

意见 Free Pascal Compiler

评论没有发现
添加评论
打开图片!