我有一个脚本,使用quicklisp加载zs3来访问亚马逊的S3.
当我使用clisp运行脚本时,运行(zs3:bucket-exists -p“Test”)时,会发生USOCKET:TIMEOUT-ERROR.
但是,当我用sbcl运行它时,它运行正常.
他们以不同方式访问usocket吗?
各自的优点和缺点是什么?
最佳答案 usocket是一个兼容层,它隐藏了每个Lisp实现的底层套接字API.在某些情况下肯定存在阻抗不匹配,但在大多数情况下它应该起作用.
我怀疑zs3不经常与CLISP一起使用(或者根本不使用!),你会看到结果.另一方面,人们通常可以期望在SBCL下对库进行良好测试,因为这是最流行的实现.
另请注意,线程在CLISP中仍然是实验性的;默认情况下不启用它们.套接字通常与线程混合的事实只会减少CLISP usocket的相对使用.