首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用POSIX软件包的Guile 2.2?

如何使用POSIX软件包的Guile 2.2?
EN

Stack Overflow用户
提问于 2019-07-15 06:20:22
回答 2查看 218关注 0票数 0

上下文:

目前,我正在cb7530e3ff10 of my GPLv3+项目双峰 (由H2020研究项目资助)中编写GPLv3+脚本。按照合同,这是一些Linux免费软件项目,应该在Debian上运行。

与现有的shell脚本bismon/gener-ininja-builder.sh相比,该脚本应该成为一个改进,该脚本为忍者工具生成一些build.ninja文件(一些建筑自动化文件)。

问题:

当前的generate-ninja-build.scm只是(版权声明之外的评论):

代码语言:javascript
复制
 (use-modules
  ;; see https://www.gnu.org/software/guile/manual/html_node/Modules.html
   (ice-9 posix)  ;;;; problematic line, but why ?
   (ice-9 readline)
   (ice-9 format)
   (ice-9 pretty-print)
   )

 ;;;;;;;;;;;;;;;; constants
 (define bm-packages '("glib-2.0" "jansson" "gtk+-3.0"))
 (define bm-gcc "gcc")

但是当我在Debian/Sid上作为./generate-ninja-build.scm运行它时,它的guile --version给出了

代码语言:javascript
复制
guile (GNU Guile) 2.2.4
Packaged by Debian (2.2.4-deb+1-3)

我得到了:

代码语言:javascript
复制
rimski.x86_64 ~/bismon 8:17 .0 % ./generate-ninja-build.scm 
;;; note: auto-compilation is enabled, set GUILE_AUTO_COMPILE=0
;;;       or pass the --no-auto-compile argument to disable.
;;; compiling /home/basile/bismon/./generate-ninja-build.scm
;;; WARNING: compilation of /home/basile/bismon/generate-ninja-build.scm failed:
;;; no code for module (ice-9 posix)
Backtrace:
           9 (primitive-load "/home/basile/bismon/./generate-ninja-b…")
In ice-9/eval.scm:
   721:20  8 (primitive-eval (use-modules (ice-9 posix) (ice-9 #) # …))
In ice-9/psyntax.scm:
  1235:36  7 (expand-top-sequence ((use-modules (ice-9 posix) (…) …)) …)
  1182:24  6 (parse _ (("placeholder" placeholder)) ((top) #(# # …)) …)
   285:10  5 (parse _ (("placeholder" placeholder)) (()) _ c&e (eval) …)
In ice-9/boot-9.scm:
  3377:20  4 (process-use-modules _)
   222:17  3 (map1 (((ice-9 posix)) ((ice-9 readline)) ((ice-9 #)) #))
  3378:31  2 (_ ((ice-9 posix)))
   2803:6  1 (resolve-interface _ #:select _ #:hide _ #:prefix _ # _ …)
In unknown file:
           0 (scm-error misc-error #f "~A ~S" ("no code for modu…" …) …)

ERROR: In procedure scm-error:
no code for module (ice-9 posix)

但是,locate ice-9/posix的输出包括:

代码语言:javascript
复制
/usr/lib/x86_64-linux-gnu/guile/2.0/ccache/ice-9/posix.go
/usr/lib/x86_64-linux-gnu/guile/2.2/ccache/ice-9/posix.go
/usr/share/guile/2.0/ice-9/posix.scm
/usr/share/guile/2.2/ice-9/posix.scm

因此,我期待着(ice-9 posix) 行能正常工作.

--如果我评论这一行,一切都按我的意愿运作。

我的~/.guile刚刚有:

代码语言:javascript
复制
;; file ~/.guile
(use-modules 
  (ice-9 readline)
  (ice-9 format)
  (ice-9 pretty-print))

(activate-readline)

以及带有期望的花哨GNU和自动完成界面的就像一种魅力

我做错了什么?

EN

回答 2

Stack Overflow用户

发布于 2019-07-19 15:35:23

sudo apt安装guile-2.2-dev guile-2.0-dev guile-1.8-dev

考虑使用Guix代替Debian。默认情况下,所有开发依赖项都安装在Python的替换中。http://guix.gnu.org/

票数 2
EN

Stack Overflow用户

发布于 2019-07-15 13:22:25

我在GUILL2.2文档中没有发现任何提到(ice-9 posix)模块的地方,虽然源代码树中存在适当的文件,但是modules/ice-9目录自述文件

非模块文件是: 启动-9.scm-在guile启动时加载 ..。 posix.scm --通过引导加载--9.scm

您无法加载它,因为它不是要由用户代码加载的模块文件。同样的情况至少可以追溯到guile 1.8,所以如果您在某个地方发现了一些文档或教程,包括试图以该名称加载模块,那就是错误的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57034154

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档