首页 文章

编制Chicken Scheme egg“查找表”的问题

提问于
浏览
0

我正在尝试 statically compile 并链接鸡计划计划,这一个鸡蛋给我带来了一些麻烦 . 我得到了同样的错误,但有更多信息,当我在repl上尝试时;所以这里:

> chicken-install >/dev/null -retrieve lookup-table
> csi ./lookup-table/lookup-table.scm -I ./lookup-table

CHICKEN
(c) 2008-2014, The Chicken Team
(c) 2000-2007, Felix L. Winkelmann
Version 4.9.0.1 (stability/4.9.0) (rev 8b3189b)
linux-unix-gnu-x86-64 [ 64bit manyargs dload ptables ]
bootstrapped 2014-06-07

; loading /tmp/tempfabd.10142/lookup-table/lookup-table.scm ...
; loading /var/lib//chicken/7/chicken.import.so ...
; including /tmp/tempfabd.10142/lookup-table/lookup-table-body.scm ...
; loading /var/lib//chicken/7/srfi-1.import.so ...
; loading /var/lib//chicken/7/srfi-69.import.so ...
; loading /var/lib//chicken/7/ports.import.so ...
; loading /var/lib//chicken/7/data-structures.import.so ...
; loading /var/lib//chicken/7/extras.import.so ...
; loading /var/lib//chicken/7/miscmacros.import.so ...
; loading /var/lib//chicken/7/type-checks.import.so ...
; loading /var/lib//chicken/7/type-errors.import.so ...
; loading /var/lib//chicken/7/foreign.import.so ...
; loading /var/lib//chicken/7/record-variants.import.so ...
; loading /var/lib//chicken/7/miscmacros.so ...
; loading /var/lib//chicken/7/record-variants.so ...

Warning: reference to possibly unbound identifier `MAGIC-LIMIT' in:
Warning:    magic-count?

Error: module unresolved: lookup-table

           Call history:

           <syntax>             [dict-print] (##core#let ((port (optional732 tmp735 #f))) (if (not port) (*dict-print dict) (with-output-to-port ......
           <syntax>             [dict-print] (##core#begin (##core#if (not port) (*dict-print dict) (with-output-to-port port (lambda () (*dict-p......
           <syntax>             [dict-print] (##core#if (not port) (*dict-print dict) (with-output-to-port port (lambda () (*dict-print dict))))
           <syntax>             [dict-print] (not port)
           <syntax>             [dict-print] (*dict-print dict)
           <syntax>             [dict-print] (with-output-to-port port (lambda () (*dict-print dict)))
           <syntax>             [dict-print] (lambda () (*dict-print dict))
           <syntax>             [dict-print] (##core#lambda () (*dict-print dict))
           <syntax>             [dict-print] (##core#begin (*dict-print dict))
           <syntax>             [dict-print] (*dict-print dict)
           <syntax>             [dict-print] (optional732 tmp735 #f)
           <syntax>             [dict-print] (##core#let ((tmp739 tmp735)) (##core#if (null?740 tmp739) #f (car741 tmp739)))
           <syntax>             [dict-print] (##core#begin (##core#if (null?740 tmp739) #f (car741 tmp739)))
           <syntax>             [dict-print] (##core#if (null?740 tmp739) #f (car741 tmp739))
           <syntax>             [dict-print] (null?740 tmp739)
           <syntax>             [dict-print] (car741 tmp739)     <--

我试过的所有其他鸡蛋都编好了 . 有人可以帮我解决这个问题吗?这有点让我陷入困境 .

2 回答

  • 1

    互联网表明这个蛋的问题,可能这有助于(似乎工作):在lookup-table-body.scm~第308行(在魔法计数的定义中?)用 12 替换 MAGIC-LIMIT

    (define-inline (magic-count? count) (<= count 12 #;MAGIC-LIMIT))
    

    这个导致问题的 MAGIC-LIMIT 常量似乎只使用了一次,它的值在lookup-table.setup中定义...祝你好运!

  • 1

    它看起来像一个特定鸡蛋中的一个简单的bug . 如果您想要修复此问题,我建议您提交错误报告 . 最常见的方法是使用bug跟踪器(在这种情况下,可能是bugs.call-cc.org),向egg的作者发送电子邮件或使用 chicken-users 邮件列表 .

    PS:关于 chicken-users ,一般来说,你可能比在Stack Overflow上得到更好的答案 .

相关问题