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

标签 amazon-s3 lisp common-lisp

我有一个使用 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/

相关文章:

amazon-web-services - AWS S3 DeletionPolicy - 创建后添加并验证设置

ruby - 如何使用 Net::Http 下载包含 UTF-8 字符的文件?

amazon-web-services - Amazon aws lex 聊天机器人支持视频吗?

amazon-s3 - 是否可以在不创建 ObjectBucketClaim(OBC) 的情况下创建 Noobaa 存储桶?

lisp - Elisp中定义的pow-mod函数在哪里

list - Lisp:给定级别 k 上的节点列表

list - 在 Common Lisp 中创建升序数字列表

scheme - Scheme 中的斐波那契数列流

web - 如何从其他 RESTAS 模块访问 RESTAS 子模块的上下文

lisp - 什么情况需要用let代替let*?