如何(eval ...)在鸡 r7rs 库中?

lub*_*bgr 5 scheme chicken-scheme r7rs

我正在尝试获得evalr7rs鸡蛋库中工作的基本知识。以下顶级(不是库)程序按我的预期工作,运行时csi -R r7rs

(import (scheme base)
        (scheme eval))

(eval '42 (scheme-report-environment 5))
Run Code Online (Sandbox Code Playgroud)

这也适用于(null-environment 5)(但不适用于(environment '(scheme base) ...)变体)。但是,在库中:

(define-library (test-eval)
  (import
    (scheme base)
    (scheme eval))
  (export
    my-eval)
  (begin
    (define (my-eval)
      (eval '42 (scheme-report-environment 5)))))
Run Code Online (Sandbox Code Playgroud)

我得到

Error: module unresolved: test-eval
....
<syntax>          [my-eval] (scheme-report-environment 5)
<syntax>          (##core#begin)
<syntax>          (##core#undefined)    <--
Run Code Online (Sandbox Code Playgroud)

可能是什么问题呢?Wiki 中的R7RS 环境似乎存在一些问题,但我不确定这是否与此处相关。

用鸡 5.2.0 版(自制程序包)测试,两者csicsc.

lub*_*bgr 4

我在 Chicken 邮件列表上询问了这个问题,并立即得到了帮助。首先,对于scheme-report-environment,需要额外导入

(import
   (scheme base)
   (scheme eval)
   (only (scheme r5rs) scheme-report-environment))
Run Code Online (Sandbox Code Playgroud)

Chicken 中还有两个错误 - 一天之内就得到了修复(!)(请参阅邮件列表存档)。使用 Egg 1.0.3 版本r7rseval现在可以在库中按预期工作。