这是命令 makepp_compatibility 可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
makepp_compatibility -- makepp 的兼容性列表
商品描述
Perl的 版本 与 系统
许多可用的 Perl 版本仍然安装在许多机器上
微妙的错误。 我们已尝试解决其中的大部分问题,但仍有一些问题。 我们有一个测试
大约 75 个测试套件,所有这些测试通常都通过。 在某些平台上缺少一些
功能,尤其是 Cygwin,一些测试被明确跳过。 这张表显示了什么
这个版本已经在哪里测试过,是否成功。 我们想听
您在其他平台上的结果也是如此!
请注意,当转到右上角的 CPAN 选项卡并选择
Perl/平台版本矩阵(http://matrix.cpantesters.org/?dist=makepp>)。 但他们
即使大约一百个测试中只有一个失败,也给一个红色条。 因为这些测试是
在被屏蔽的机器上自动化,很难找出甚至修复正在发生的事情
错误的。 通常这是可以解决的问题,例如编译器、操作或
文件系统特殊性或错误的环境变量。
#|||||||||| 5.8 #| 5.10 #|||| 5.12 #|| 5.14 #||| 5.16 #|| 5.18#5.20#
#.0 | .1 | .2 | .3 | .4 | .5 | .6 | .7 | .8 | .9 # .0 | .1 # .0 | .1 | .2 | .3 | .4 # .0 | .1 | .2 # .0 | .1 | .2 | .3 # .0 | .1 | .2#.0#
GNU/Linux (x86)# x | × | × | × | × | | × | × | × | x # x | x # x | × | × | × | x # x | × | x # x | × | × | x # x | × | # X #
GNU/Linux (amd64)# | | | | | × | | | | x# | # | | × | × | # x | | x# | | × | x# | | ##
GNU/Linux (S/390)# | | | | | | | | × | x # x | x# | | | | # | | # | | | # | | ##
FreeBSD (x86) # | | | | | | | | × | x # x | x # x | × | × | × | # | × | # | | × | x# | × | x# x#
NetBSD (x86) # | | | | | | | | | x # x | x # x | × | × | × | # | × | x# | | × | x# | × | ##
NetBSD (Alpha) # | | | | | | | | | x # x | x# | | | | # | | # | | | # | | ##
OpenBSD (x86) # x | | | | | | | | | x # x | x # x | × | × | | x # x | × | x # x | × | × | # x | × | ##
AIX (PPC) # | × | × | | | | | × | × | # | # | | | | # | | # | × | | # | × | ##
达尔文 (x86) # | | | | | | | | | # | # | × | | | # | | x# | | | # | | x# x#
达尔文 (PPC) # | | | | | | × | × | × | x # x | x # x | × | × | | # | | # | | × | # | × | ##
HP/UX (IA64) # x | | | × | | | | | | # | # | | | | # | | # | | | # | × | # X #
鸢尾花# | | | | | | | | × | # | # | | | | # | | # | | | # | | ##
Solaris (Sparc)# x | × | × | × | × | × | × | × | × | x # x | # x | × | | | # | | # x | × | | # x | × | # X #
Solaris(64 位)# | × | | | | | | | × | # x | # | | | | # | | # | | | # | | ##
Solaris (x86) # | × | | | | | | | × | x # x | x # x | × | × | | # | | # | | × | # | | ##
BS2000 (S/390) # | × | | | | | | | | # / | # | | | | # | | # | | | # | | ##
z/OS USS (S/390)# | | | | | | | | zOS | # / | # | | | | # | | # | | | # | | ##
Cygwin (x86) # | | | | | | | 赢| × | # x | x# | | | | # | | x# | | | # | | ##
MinGW MSYS # | | | | | | | | × | # | # | | | | # | | # | | | # | | ##
草莓# | | | | | | | | × | x # x | x# | × | × | × | # | | x # x | × | × | x # x | | ##
ActiveState Win# x | × | × | × | × | | × | × | × | x # x | x # x | × | | × | # x | | x# | × | | x# | | ##
Win Windows 上有 4 种不同的 Perl 环境,它们通常相互扩展
并联安装时。 在这里,它们已经用最小的 PATH 进行了测试,以便
将它们完全分开。 使用原生程序时,可能需要看说明
在 &ln 下
· Cygwin的 相当接近地模拟 GNU/Linux 并给出最好的结果。 Perl 5.8.7
环境变量有一个小问题,使一个测试失败。 在久违的
过去,并行构建不起作用,但尚未验证哪个版本
Cygwin 或 Perl 使它们可用。 Perl 5.10.1 chmod 0 文件有问题,所以
它们不能用于阻止存储库导入。 在极少数情况下,最近的 Cygwin
也导致 STAT() 报告不存在文件的符号链接。 这似乎不是
一个 Perl 错误,因为之前没有错误的相同 perls,现在显示这个
行为。 Makepp 已经过重新组织以大大减少这种情况,因此您可能永远不会看到
它。
· MinGW的 与 Windows 保持接近,仅赋予其 Unixy 外观和感觉。 它有一个
缺少符号链接的巧妙解决方法,即复制(&ln 有
偷了这个主意)。 唉,这还不够好 知识库 机制,所以
除了 Cygwin 的缺陷之外,这是不可用的。
· 上 草莓 Perl 仅具有本机 Windows 最常用的 Unix 命令(除了
缺少 GNU 编译器),并且“外壳”非常原始。 最大限度的使用
makepp 的内置命令和嵌入式 Perl 可以增加 makefile 的可移植性。
虽然 Windows 程序可以将普通斜杠作为目录分隔符来处理,但这
不适用于命令名称。 那些应该总是可移植地写为
目录$/命令,其中 $/ 被正斜杠或反斜杠替换,具体取决于
环境。 如果您通过 SHELL 变量告诉 makepp 在哪里可以找到
类Unix Shell,你没有这些烦恼。
它不能进行智能递归生成(但是谁会想要它们,因为它们是已知的
成为一个破碎的范式)和 并行 建立。
· 活动状态 Perl 与 Strawberry 非常相似,就 makepp 而言,尽管它
不附带 GNU 编译器。 直到 Perl 5.8.6,它会重写 Mpp/File.pm 所以
为 lstat 错误提供所需的解决方法。
zOS 在 z/OS(别名 VMS 或 OS/390)上,Unix 系统服务智能递归生成不起作用。
如果您的编译器对选项顺序很挑剔,您可能必须编写自己的规则。
(要编译 Perl 5.8.8,您可能必须删除愚蠢的“(void)env;”
miniperlmain.c. Perl 5.10.0 不能在 Ebcdic 系统上编译,而 5.12.1 和
5.14.0 可能有 z/OS C 编译器的宏错误。)
巢
一些旧的编译器不喜欢嵌套注释。 自从
附加测试/2006_03_23_c_comments.test 看着各种星座,
用编译器验证它的结论,如果你不使用 gcc,这个测试可能会失败。
文件 产品
各种特殊的文件系统都有不同寻常的属性,这让 makepp 很难
在他们身上工作:
NFS NFS 可能会自行决定对文件操作重新排序,从而导致意外关系
时间戳之间。 这与构建信息元数据文件相关,其中
makepp 与每个文件一起存储。 特别是在构建缓存中,它们的并发
访问,一些解决方法处理是必要的,但负载测试显示它可以工作
精细。
GNU/Linux 上的 Windows CIFS
文件名中不允许使用一些特殊字符。 通过复制来模拟链接
而符号链接失败。 显然写操作在它们之前返回
在磁盘上可见,这使 makepp 对其执行的命令是否成功感到困惑。
76 个测试中有 XNUMX 个因此失败。 从好的方面来说,时间戳具有精度
100 纳秒(尽管观察到的可获得的差异只有大约
厘米)。 这比大多数旧的 Unix 文件系统要好得多——唉,Perl 的
“stat”函数无法获得这种非常受欢迎的精度。
Cygwin 上的 Windows Server 共享
在 Linux 上运行如此糟糕的同一个 CIFS 磁盘在 Cygwin 上通过了所有测试。
可能有 CIFS 挂载选项可以改进某些内容。
来自 GNU/Linux 的 Unix SMBFS
链接和符号链接失败。 没有其他测试失败。 我无法访问更多
现实的 Windows SMB 服务器,情况可能有所不同。
GNU/Linux 上的 VFAT
文件名中不允许使用一些特殊字符。 链接和符号链接
失败。 文件权限掩码和所有者是挂载选项,而时间戳
不可设置。
混合区分大小写和不敏感的文件名
Makepp 的文件名处理是否完全区分大小写,取决于
调用它的目录。 如果此目录不区分大小写,但它是
安装在包含大小写敏感部分中的大写字母的路径上
路径,然后 makepp 将跳闸。
如果您需要此设置工作(例如,Windows 主机可通过以下方式访问) /mnt/hgfs/C 在
VMware 中的 Linux)您将不得不设计您的 Makefile,就像您在
区分大小写的文件系统和“export MAKEPP_CASE_SENSITIVE_FILENAMES=1”在你之前
打电话给makepp。
使用 onworks.net 服务在线使用 makepp_compatibility