sbcl vs clisp:USOCKET:TIMEOUT-ERROR。这两个实现是否以不同方式访问USOCKET?

时间:2013-02-21 23:17:03

标签: amazon-s3 lisp common-lisp

我有一个脚本,使用quicklisp加载zs3以访问亚马逊的S3。

当我使用clisp运行脚本时,运行(zs3:bucket-exists-p "Test")时,会发生USOCKET:TIMEOUT-ERROR。

但是,当我用sbcl运行它时,它运行正常。

他们是否以不同方式访问usocket?

各自的优点和缺点是什么?

1 个答案:

答案 0 :(得分:1)

usocket是一个兼容层,它隐藏了每个Lisp实现的底层套接字API。在某些情况下肯定存在阻抗不匹配,但在大多数情况下它应该起作用。

我怀疑zs3经常不和CLISP一起使用(或者根本不用!),你会看到结果。另一方面,人们通常可以期望库在SBCL下经过充分测试,因为这是最受欢迎的实现。

另请注意,线程在CLISP中仍然是实验性的;默认情况下不启用它们。套接字通常与线程混合的事实只会减少CLISP + usocket的相对使用。