On Sep  9, John Cowan wrote:
> Eli Barzilay scripsit:
> 
> > Why does it need to?  The only thing that it needs to do is make
> > sure that invocations of a reader module to read some file are
> > separate from runtime invocations, and the lack of such separation
> > is exactly what makes `eval-when' so bad.  (Actually, together
> > with a large number of ad-hoc rules on when and how stuff gets
> > evaluated in CL, see http://fare.livejournal.com/146698.html)
> 
> So let me understand this.  At compile time, the reader looks for
> the modified readtable and associated reader-extension procedures in
> a known file, independently of any such procedures available in the
> source being compiled?

Yes.  It's basically doing something like

  (dynamic-require '<reader> read)

to get a function that reads the code.


> And, consequently, at run time the reader looks etc., independently
> of any such procedures that exist in the currently running program or
> interaction loop?

If you're talking about using `read' and running into input that has
`#lang', then this will do the same as the above -- and this will be a
new instance of the reader module.  (Which makes sense when you want
code to run the same whether you precompile it or not.)

-- 
          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
                    http://barzilay.org/                   Maze is Life!

_______________________________________________
r6rs-discuss mailing list
[email protected]
http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss

Reply via email to