【问题标题】:Set chezschme run as geiser-default-implementation将 chezschme 设置为 geiser-default-implementation
【发布时间】:2020-04-28 04:18:34
【问题描述】:

我安装了 chezscheme

$ chezscheme
Chez Scheme Version 9.5
Copyright 1984-2017 Cisco Systems, Inc.

> (define a (list 4 5 6 ))
> (set-car! a 9)
> a
(9 5 6)

并将其配置为 geiser-default-implementation

(require 'geiser)
(setq geiser-active-implementations '(chez guile racket chicken mit chibi gambit))
(add-hook 'scheme-mode-hook 'geiser-mode)
(setq geiser-default-implementation 'chez)

不过,当使用 org src 发出 C-c C-c 时

#+begin_src scheme :session sicp :lexical t
(define a (list 2 3 4))
(set-car! a 9)
a
#+end_src

#+RESULTS:

它缓冲了很长时间,提示在 minibuffer 'chez go and up'

但改为运行 MIT-scheme。

错误:

MIT/GNU Scheme running under GNU/Linux
Type `^C' (control-C) followed by `H' to obtain information about interrupts.

Copyright (C) 2019 Massachusetts Institute of Technology
This is free software; see the source for copying conditions. There is NO warranty; not even for
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Image saved on Thursday September 5, 2019 at 11:51:46 AM
  Release 10.1.10 || Microcode 15.3 || Runtime 15.7 || SF 4.41 || LIAR/x86-64 4.118
;Warning: Invalid keyword: "/home/me/.emacs.d/.local/straight/build/geiser/scheme/chez/geiser/geiser.ss"
;Warning: Unhandled command line options: ("/home/me/.emacs.d/.local/straight/build/geiser/scheme/chez/geiser/geiser.ss")

补充:

添加geiser-chez-binary

(setq geiser-active-implementations '(chez guile))
(setq geiser-chez-binary "chez")
(add-hook 'scheme-mode-hook 'geiser-mode)
(setq geiser-default-implementation 'chez)

然后运行

#+begin_src scheme   :session sicp :lexical t :results output
(define b (list 3 4))

#+end_src

它报告

    apply: Searching for program: No such file or directory, chez

然后我将 chez 附加到 org-babel-do-load-languages 并将关键字方案更改为 chez

#+begin_src chez   :session sicp :lexical t :results output
(define b (list 3 4))

#+end_src

它报告:

  No org-babel-execute function for chez!

删除了 mit-scheme 包,它可以工作了

【问题讨论】:

    标签: emacs scheme org-mode chez-scheme


    【解决方案1】:

    默认情况下,Geiser 认为 Chez Scheme 的可执行文件是scheme,但事实并非如此,Chez Scheme 使用chez,Mit Scheme 使用schememit-scheme。您需要将以下内容放入您的 Emacs 初始化文件中:

    (setq geiser-chez-binary "chez")
    

    这是geiser-chez-binary的文档字符串(我已经改成chez了):

    geiser-chez-binary 是在 `geiser-chez.el' 中定义的变量。
    它的价值是“chez”
    原值为“方案”

    文档:
    启动 REPL 时用于调用 Chez Scheme 可执行文件的名称。

    您可以自定义此变量。

    【讨论】:

    • ty,我修改了问题,但它报告了Searching for program: No such file or directory, chez
    • 删除了 mit-scheme 包并将 geiser-chez 二进制设置回 `scheme',它可以工作。我将屏幕截图附加到问题中。
    猜你喜欢
    • 2017-04-26
    • 1970-01-01
    • 2010-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-09
    • 2019-07-05
    相关资源
    最近更新 更多