求助:谁用过 guile 的线程
SICP 的 3.4 讲并发。虽然习题可以摸黑做,但我还是想用真实的代码来测试一下。
guile 的线程库,其实是 ice-9 的线程库在我这里运行不了,出错信息为:函数未实现.
- guile> zxl@VIKI:~$ guile
- guile> (use-modules (ice-9 threads))
- guile> (parallel (+ 1 2) (+ 1 2))
- Backtrace:
- In current input:
- 2: 0* (parallel (+ 1 2) (+ 1 2))
- 2: 1 [#<procedure #f #> ...
- ?: 2* (begin-thread (+ 1 2))
- ?: 3 [call-with-new-thread #<procedure #f ()> #<procedure thread-handler #>]
- <unnamed port>: In procedure call-with-new-thread in expression (call-with-new-thread (lambda () #) %thread-handler):
- <unnamed port>: Function not implemented
- ABORT: (system-error)
- guile> (parallel (+ 1 2))
- 3
- guile>
复制代码
按 guile 的文档,(paraller expr1 expr2 ... exprn) 能并行计算各个expr,并返回一个多值对象。在我这里,如果只有一个 expr,则运行正常,否则报错。
我试过 drscheme 的线程库,是可用的。但 guile 这里应该如何处理呢? 谢谢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
用 x2 给出的版本编译了一个,现在好用了。
谢谢!
1.8.6版的guile可以。
ftp://ftp.gnu.org/gnu/guile/guile-1.8.6.tar.gz
guile 有没有什么选项可以打印编译时都打开了哪些功能,类似 Perl 的 -V 选项。
不知道啊, Ubuntu 的源。
Ubuntu 的 guile 有两个版本,一个 1.6x 一个 1.8x。前者可以用 slib,后者不可以。我两个都试过。开始以为是 64 位版本有一些功能未实现,后来在 32 位系统中测试也是这样的。
我找时间编译一个看看。
是不是你缺了啥库或者 guile 编译的时候没有加线程支持?