[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Chicken-janitors] #700: requiring uncompiled extensions that use `u
From: |
Chicken Trac |
Subject: |
Re: [Chicken-janitors] #700: requiring uncompiled extensions that use `use' fails |
Date: |
Fri, 23 Sep 2011 12:29:34 -0000 |
#700: requiring uncompiled extensions that use `use' fails
-----------------------+----------------------------------------------------
Reporter: syn | Owner: sjamaan
Type: defect | Status: new
Priority: minor | Milestone: 4.8.0
Component: compiler | Version: 4.7.x
Resolution: | Keywords:
-----------------------+----------------------------------------------------
Description changed by syn:
Old description:
> The problem can be reproduced by having a file {{{foo.scm}}} containing
> something like this:
>
> {{{
> (module foo
>
> ()
> (import chicken scheme)
> (use extras)
>
> )
> }}}
>
> and a file {{{test.scm}}} containing just {{{(require-library foo)}}}.
> Now generate an import library through {{{csc -Jt foo.scm}}}. {{{csi -s
> test.scm}}} will work whereas {{{csc test.scm}}} and then running
> {{{./test}}} will result in:
>
> {{{
> Warning: reference to possibly unbound identifier `extras'
>
> Warning: reference to possibly unbound identifier `use'
>
> Error: module unresolved: foo
>
> Call history:
>
> ##sys#require
> <syntax> (module foo () (import chicken scheme) (use
> extras))
> <syntax> (##core#module foo () (import chicken scheme)
> (use extras))
> <syntax> (import chicken scheme)
> <syntax> (##core#undefined)
> <syntax> (use extras) <--
> }}}
>
> Compiling {{{foo.import.scm}}} doesn't change this behavior. Compiling
> {{{foo.scm}}} to {{{foo.so}}} via {{{csc -s foo.scm}}} makes it work
> again. Looks like loading uncompiled extensions that use {{{use}}} (and
> possibly other special forms?) doesn't work from compiled programs. This
> has been tested with both 4.7.0
> andaa2d6b8247b13476fe609d1fd263238cc10a6a8e.
New description:
The problem can be reproduced by having a file {{{foo.scm}}} containing
something like this:
{{{
(module foo
()
(import chicken scheme)
(use extras)
)
}}}
and a file {{{test.scm}}} containing just {{{(require-library foo)}}}. Now
generate an import library through {{{csc -Jt foo.scm}}}. {{{csi -s
test.scm}}} will work whereas {{{csc test.scm}}} and then running
{{{./test}}} will result in:
{{{
Warning: reference to possibly unbound identifier `extras'
Warning: reference to possibly unbound identifier `use'
Error: module unresolved: foo
Call history:
##sys#require
<syntax> (module foo () (import chicken scheme) (use
extras))
<syntax> (##core#module foo () (import chicken scheme)
(use extras))
<syntax> (import chicken scheme)
<syntax> (##core#undefined)
<syntax> (use extras) <--
}}}
Compiling {{{foo.import.scm}}} doesn't change this behavior. Compiling
{{{foo.scm}}} to {{{foo.so}}} via {{{csc -s foo.scm}}} makes it work
again. Looks like loading uncompiled extensions that use {{{use}}} (and
possibly other special forms?) doesn't work from compiled programs. This
has been tested with both 4.7.0 and
aa2d6b8247b13476fe609d1fd263238cc10a6a8e.
--
--
Ticket URL: <http://bugs.call-cc.org/ticket/700#comment:1>
Chicken Scheme <http://www.call-with-current-continuation.org/>
Chicken Scheme is a compiler for the Scheme programming language.