guile-devel
[Top][All Lists]
Advanced

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

Re: [PATCH] Per-module reader


From: Neil Jerram
Subject: Re: [PATCH] Per-module reader
Date: Wed, 19 Oct 2005 23:56:22 +0100
User-agent: Gnus/5.1007 (Gnus v5.10.7) Emacs/21.4 (gnu/linux)

Ludovic,

Just one remaining loose end from your previous email ...

> As for circular dependencies, I think there's nothing special here: the
> problem is the same as for any other binding.

Strictly no, there's nothing special, but in practice there is.  This
is because modules normally consist mostly of defines which delay the
evaluation of their procedure bodies ... which generally allows
circular dependencies not to be a problem.  In the reader case,
however, the reader is used during the initial evaluation of the
module code.

So for example:

  (define-module (A)         | (define-module (B)
    #:use-module (B)         |   #:use-module (A)
    #:export (a-proc))       |   #:export (b-proc))
                             |
  (define (a-proc) b-proc)   | (define (b-proc) a-proc)

is fine, but

  (define-module (A)         | (define-module (B)
    #:use-module (B)         |   #:use-module (A)
    #:reader b-reader        |   #:export (b-reader))
    #:export (a-proc))       |
                             |
  (define (a-proc) ...)      | (define (b-reader) ...)

is only OK if the loading of (A) is initiated before that of (B).

Regards,
        Neil





reply via email to

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