我有一个使用quicklisp加载zs3以访问amazon的s3的脚本。
当我使用clisp运行脚本时,当运行(zs3:bucket-exists-p "Test")时,USOCKET:TIMEOUT-ERROR发生。
但是,当我用sbcl运行它时,它运行正常。
他们访问usocket的方式不同吗?
各有哪些利弊?

最佳答案

usocket是一个兼容层,它隐藏了每个Lisp实现的底层socket API在某些情况下,一定会有阻抗失配,但在大多数情况下,它应该只是工作。
我怀疑zs3不经常与CLISP一起使用(或者根本不使用!),你也看到了结果另一方面,由于SBCL是最流行的实现,因此通常可以期望在SBCL下对库进行良好的测试。
还要注意的是,线程在CLISP中仍处于实验状态;默认情况下它们不启用套接字经常与线程混合的事实只会减少CLISP+usocket的相对使用。

09-11 19:23