Установить запуск chezschme как geiser-default-реализация - PullRequest
1 голос
/ 10 января 2020

Я установил 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)

и настроил его как реализацию-гейзера по умолчанию

(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)

Тем не менее, при выпуске C - c C - c с org sr c

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

#+RESULTS:

Она долго буферизировала, что в минибуфере 'chez go и выше'

, но вместо этого запускается MIT-схема.

Ошибка:

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

it отчет

    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!

Удалено схема пакета и работает

enter image description here

1 Ответ

1 голос
/ 10 января 2020

По умолчанию Гейзер считает, что исполняемый файл Chez Scheme имеет значение scheme, однако это не так, Chez Scheme использует chez, а Mit Scheme использует scheme и mit-scheme. Вам нужно поместить следующее в ваш файл инициализации Emacs:

(setq geiser-chez-binary "chez")

Вот строка документации geiser-chez-binary (я уже изменил ее на chez):

geiser- chez-binary - это переменная, определенная в `geiser-chez.el '.
Ее значение равно" chez "
Исходное значение было" схема "

Документация:
Имя, используемое для вызова исполняемый файл Chez Scheme при запуске REPL.

Вы можете настроить эту переменную.

...