我有一个使用 quicklisp 加载 zs3 以访问 Amazon 的 S3 的脚本。
当我使用 clisp 运行脚本时,当 (zs3:bucket-exists-p "Test")
运行时,USOCKET:TIMEOUT-ERROR 发生。
但是,当我用 sbcl 运行它时,它运行正常。
他们访问 usocket 的方式不同吗?
各自的优缺点是什么?
最佳答案
usocket 是一个兼容层,它隐藏了每个 Lisp 实现的底层套接字 API。在某些情况下必然会出现阻抗不匹配,但在大多数情况下它应该可以正常工作。
我怀疑 zs3 不经常与 CLISP 一起使用(或者可能根本不使用!),而您正在看到它的结果。另一方面,人们通常可以期望库在 SBCL 下得到良好测试,因为这是最流行的实现。
另请注意,线程在 CLISP 中仍处于试验阶段;默认情况下未启用它们。套接字经常与线程混合使用这一事实只会降低 CLISP + usocket 的相对使用率。
关于amazon-s3 - sbcl vs clisp : USOCKET:TIMEOUT-ERROR. 这两个实现是否以不同方式访问 USOCKET?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15014094/