On May 12, 2009, at 10:23 AM, Michele Simionato wrote:

Uhm ... so it looks like I was wrong again!
I will let Fujita explain how Ypsilon is working,
since I am obviously confused :-(

It looks very simple, but Fujita can correct me if I'm wrong.

When starting ypsilon with a script, the following happen in sequence:
  1. All imported libraries are loaded
  2. The script body is expanded
  3. The expanded body is evaluated.

[in debug, expand-r6rs does 1 and 2 while run-r6rs does 1, 2, and 3.]

To load a library, first map its name to file names (source and
precompiled) then, depending on the result:
 * If it's not precompiled:
      1. All imported libraries are loaded
      2. The library body is expanded
      3. The expanded body is evaluated
      4. The results of the expansion (list of imported libraries,
         expanded syntax definitions, variable definitions, and
         initialization expressions) is compiled to some form and
         serialized to disk.
 * If it is precompiled:
      1. All imported libraries are loaded
      2. Precompiled library code (syntax definitions, variable
         definitions, and initializing expressions) is evaluated.

Aziz,,,

Reply via email to