Hey! Andy Wingo <[EMAIL PROTECTED]> writes:
> I've enabled the VM repl by default on the vm branch. Here's a brief > annotated tour: > > $ ./pre-inst-guile > Guile Scheme interpreter 0.5 on Guile 1.9.0 > Copyright (C) 2001-2008 Free Software Foundation, Inc. > > Enter `,help' for help. Cool! > Late-variable-ref looks at a cell in the object vector. If it is a > symbol, it is resolved relative to the module that was current when the > program was made. The object cell is then replaced with the resulting > resolved variable. Here we see that objects 0 and 1 were already > resolved. Object 2 is just the constant, #:bar. Aaah, nice! So, previously, there was `variable-ref': -- Instruction: variable-ref Dereference the variable object which is on top of the stack and replace it by the value of the variable it represents. Now, there's also a vector associated with each closure to store references to global variables, right? Looks better! (Hint: the doc is outdated. :-)) > scheme@(guile-user)> ,option interp #t > scheme@(guile-user)> ,option > trace #f > interp #t > > Here we tell the repl that, given the option, we prefer to interpret > rather than compile. Of course, if the current language doesn't support > compilation, we always interpret. That means good old `CEVAL ()' is used, right? When that is the case, one can still use `{eval,debug}-options', right? It'd be nice if we could find a way to "do something" with the `current-reader' fluid at compilation time, like detecting top-level `(fluid-set! current-reader ...)' statements and use that to switch the compiler's reader (hacky...). Thanks for the good news! Ludo'.