guile-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] Transform R6RS SRFI module name on definition.


From: Taylan Ulrich Bayırlı/Kammer
Subject: Re: [PATCH] Transform R6RS SRFI module name on definition.
Date: Thu, 03 Dec 2015 10:05:09 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)

address@hidden (Taylan Ulrich "Bayırlı/Kammer") writes:

> Currently our R6RS 'import' form automatically transforms an import like
> (srfi :n ...) to (srfi srfi-n ...).
>
> This works fine with the SRFIs that ship with Guile and any extra SRFI
> modules defined with the verbose name format (srfi srfi-n ...).
>
> However, when one really defines a library named (srfi :n ...), then
> 'import' fails to find this because it only looks for the verbose name.
>
> Here a transcript showcasing the issue:
>
> --- snip ---
> scheme@(guile-user)> (library (srfi :200) (export test) (import (rnrs base)) 
> (define test 'test))
> scheme@(srfi :200)> ,m guile-user
> scheme@(guile-user)> (import (srfi :200))
> While compiling expression:
> ERROR: no code for module (srfi srfi-200)
> scheme@(guile-user)> ,use (srfi :200)
> scheme@(guile-user)> test
> $2 = test
> scheme@(guile-user)>
> --- snip ---
>
> (Use-modules actually finds it, as you see.)
>
> The attached patch makes our R6RS 'library' form automatically transform
> a library name like (srfi :n ...) to (srfi srfi-n ...).
>
> Will this leak out to the user in such a way that it breaks conformance
> or creates problems?  Is it bad that this time 'use-modules' won't be
> able to find (srfi :n ...)?  I don't think it is; users should just use
> (srfi :n ...) with 'import' and (srfi srfi-n ...) with 'use-modules'.
>
> Note that it's actually not 'import' itself that does the reverse
> transform but a deeper part of the system, and thus for instance the
> 'environment' form from (rnrs eval) also correctly resolves the module
> name (srfi :n ...) to (srfi srfi-n ...).  If there are any "holes" left
> where the transform doesn't happen, we should be able to plug those too.
>
> WDYT?

Ping.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]