求助:谁用过 guile 的线程

发布于 2022-08-19 02:46:28 字数 1125 浏览 20 评论 5

SICP 的 3.4 讲并发。虽然习题可以摸黑做,但我还是想用真实的代码来测试一下。

guile 的线程库,其实是 ice-9 的线程库在我这里运行不了,出错信息为:函数未实现.

  1. guile> zxl@VIKI:~$ guile
  2. guile> (use-modules (ice-9 threads))
  3. guile> (parallel (+ 1 2) (+ 1 2))
  4. Backtrace:
  5. In current input:
  6.    2: 0* (parallel (+ 1 2) (+ 1 2))
  7.    2: 1  [#<procedure #f #> ...
  8.    ?: 2*  (begin-thread (+ 1 2))
  9.    ?: 3   [call-with-new-thread #<procedure #f ()> #<procedure thread-handler #>]
  10. <unnamed port>: In procedure call-with-new-thread in expression (call-with-new-thread (lambda () #) %thread-handler):
  11. <unnamed port>: Function not implemented
  12. ABORT: (system-error)
  13. guile> (parallel (+ 1 2))
  14. 3
  15. guile>

复制代码

按 guile 的文档,(paraller expr1 expr2 ... exprn) 能并行计算各个expr,并返回一个多值对象。在我这里,如果只有一个 expr,则运行正常,否则报错。

我试过 drscheme  的线程库,是可用的。但 guile 这里应该如何处理呢? 谢谢。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

一抹淡然 2022-08-20 02:04:49

用 x2 给出的版本编译了一个,现在好用了。

谢谢!

七颜 2022-08-20 01:14:17

原帖由 win_hate 于 2009-1-5 12:23 发表
不知道啊, Ubuntu 的源。

guile 有没有什么选项可以打印编译时都打开了哪些功能,类似 Perl  的 -V 选项。

老子叫无熙 2022-08-20 00:41:07

不知道啊, Ubuntu 的源。

Ubuntu 的 guile 有两个版本,一个 1.6x 一个 1.8x。前者可以用 slib,后者不可以。我两个都试过。开始以为是 64 位版本有一些功能未实现,后来在 32 位系统中测试也是这样的。

我找时间编译一个看看。

凉月流沐 2022-08-19 19:59:12

是不是你缺了啥库或者 guile 编译的时候没有加线程支持?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文