小编Tom*_*ire的帖子

用于类型检查ML类模式匹配的算法?

对于ML风格的编程语言,如何确定给定模式是否"良好",特别是它是否详尽且不重叠?

假设您有以下模式:

match lst with
  x :: y :: [] -> ...
  [] -> ...
Run Code Online (Sandbox Code Playgroud)

要么:

match lst with
  x :: xs -> ...
  x :: [] -> ...
  [] -> ...
Run Code Online (Sandbox Code Playgroud)

一个好的类型检查器会警告第一个不是详尽的,第二个是重叠的.对于任意数据类型,类型检查器如何做出一般性的决策?

algorithm ocaml haskell typechecking

32
推荐指数
1
解决办法
2548
查看次数

系统上的-isystem包含目录导致错误

以下代码是怎么回事?

#include <cmath>

int
main(int argc, char *argv[])
{
}
Run Code Online (Sandbox Code Playgroud)

在最近的带有GCC 6.1.1的Arch Linux安装中编译时,-isystem /usr/include它会生成以下标志:

$ g++ -isystem /usr/include math.cc 
In file included from math.cc:1:0:
/usr/include/c++/6.1.1/cmath:45:23: fatal error: math.h: No such file or directory
 #include_next <math.h>
                       ^
compilation terminated.
Run Code Online (Sandbox Code Playgroud)

这是一个非常简化的示例;原始命令行为:

$ g++ ... -isystem `llvm-config -includedir` ...
Run Code Online (Sandbox Code Playgroud)

使用LLVM的程序的一部分。在Arch Linux上,LLVM软件包安装时带有其标头目录/usr/include,该标头目录为llvm-config。...包括了-Wextra-Wconversion,它们在LLVM标头中引起警告。与-isystem标志相反-I,该标志通过将LLVM目录视为“系统头” 来防止警告。有关更多信息,请参见GNU C预处理程序文档

但是,如果升级到GCC 6.1.1,则上述错误会显示在内部版本中。

gcc

4
推荐指数
1
解决办法
2968
查看次数

使用Microsoft IE中的Active Directory SSO到Java服务器时,为什么会出现GSS异常?

我正在为Java Web应用程序构建一个Active Directory单点登录身份验证系统(使用SPNEGO/Kerberos),一切都可以正常使用Firefox或(据报道)Safari,但Internet Explorer会导致异常:

GSSException: Channel binding mismatch (Mechanism level: ChannelBinding not provided!)
Run Code Online (Sandbox Code Playgroud)

事实上,我认为IE在安装Windows补丁之前有效.

java kerberos active-directory spnego gssapi

2
推荐指数
1
解决办法
5388
查看次数