This is a strange problem.
I'm using MIT scheme with the SCMUtils library (as detailed here).
When I type in a form that involves some procedures provided by this library in the REPL, things work fine. For example:
1 (user) => Gamma
#| Gamma |#
1 (user) => (Gamma (literal-function 'q))
#|
(lambda (t)
???)
|#
Gamma is a procedure defined by SCMUtils. Everything works as expected in the REPL.
When I try the same thing from a buffer using geiser-eval-definition, I get an error:
Gamma ;Press C-c C-c here
Gamma
retort-syntax
;Unbound variable: Gamma
;To continue, call RESTART with an option number:
; (RESTART 3) => Specify a value to use instead of Gamma.
; (RESTART 2) => Define Gamma to a given value.
; (RESTART 1) => Return to read-eval-print level 1.
2 error>
As a result I'm unable to evaluate most forms from the Scheme buffer. Some functions defined by SCMUtils, like literal-function, actually do work fine when eval'd from the scheme buffer:
literal-function ;Press C-c C-c here
=> #[compiled-procedure 38 (literal-function "litfun" #x1c) #x1a #x21b49e2]
More info:
- I'm using Emacs 28.1, Geiser version 0.25.1 (commit
ecfbef1c771f3a5c34f46fb2b387b9669c661d2f)
- I've tested this with the latest Geiser version (0.26) as well.
- I've tried MIT Scheme versions 10.1.1 and 11.2.
- I've confirmed that the scheme buffer in question is associated with the correct mit-scheme REPL by Geiser.
- I tried to track the control flow of
geiser-eval-definition. I don't understand the continuation that's passed to the REPL, but everything seems to work fine up to geiser-con--connection-add-request. I couldn't understand any more of it since I don't understand transaction queues (tq-enqueue).
This is a strange problem.
I'm using MIT scheme with the SCMUtils library (as detailed [here](https://groups.csail.mit.edu/mac/users/gjs/6946/linux-install.htm)).
When I type in a form that involves some procedures provided by this library in the REPL, things work fine. For example:
```scheme
1 (user) => Gamma
#| Gamma |#
1 (user) => (Gamma (literal-function 'q))
#|
(lambda (t)
???)
|#
```
`Gamma` is a procedure defined by SCMUtils. Everything works as expected in the REPL.
When I try the same thing from a buffer using `geiser-eval-definition`, I get an error:
```scheme
Gamma ;Press C-c C-c here
```
```
Gamma
retort-syntax
;Unbound variable: Gamma
;To continue, call RESTART with an option number:
; (RESTART 3) => Specify a value to use instead of Gamma.
; (RESTART 2) => Define Gamma to a given value.
; (RESTART 1) => Return to read-eval-print level 1.
2 error>
```
As a result I'm unable to evaluate most forms from the Scheme buffer. Some functions defined by SCMUtils, like `literal-function`, actually do work fine when eval'd from the scheme buffer:
```scheme
literal-function ;Press C-c C-c here
```
```
=> #[compiled-procedure 38 (literal-function "litfun" #x1c) #x1a #x21b49e2]
```
More info:
- I'm using Emacs 28.1, Geiser version 0.25.1 (commit `ecfbef1c771f3a5c34f46fb2b387b9669c661d2f`)
- I've tested this with the latest Geiser version (0.26) as well.
- I've tried MIT Scheme versions 10.1.1 and 11.2.
- I've confirmed that the scheme buffer in question is associated with the correct mit-scheme REPL by Geiser.
- I tried to track the control flow of `geiser-eval-definition`. I don't understand the continuation that's passed to the REPL, but everything seems to work fine up to `geiser-con--connection-add-request`. I couldn't understand any more of it since I don't understand transaction queues (`tq-enqueue`).