First of all, thanks to all the people involved in this awesome package. I have a question about how geiser and guile handles the context of evaluation of module's code in some situations. For example, this one first: 1) M-x geiser 2) C-x C-f /usr/share/guile/3.0/sxml/simple.scm 3) C-x C-f /usr/share/guile/3.0/ice-9/popen.scm
If I do geiser-eval-last-sexp in some definition of popen.scm, like pipe-guardian, that definition becomes available in the geiser REPL, which remains in the (guile-user) module. But if I do the same with the definition of attribute->xml in simple.scm for example, that definition does not become available in the geiser REPL. What is the difference in how geiser (or guile) handles these two modules? The original situation that originated my doubt was when I was trying my own little module. When I first started the geiser REPL and evaluated some definition in the corresponding file's buffer (with C-x C-e), the definitions end up in the (guile-user) module of the REPL, and they were evaluated in the context of my module only after changing to it with C-c C-a. 1) M-x geiser 2) (add-to-load-path "/home/path/to/my/module/") 3) C-x C-f /home/path/to/my/module/testmodule.scm 4) C-x C-e in some variable's definition 5) evaluate that variable in the guile REPL, and get the result 6) return to the scheme buffer and do C-c C-a 7) return to the scheme buffer and evaluate some new definition 8) change to (guile-user) module in the REPL and evaluate the new definition, and it does not exists, which is the expected result My question here is, what changes in geiser/guile after entering the new module once? I was expecting that from the very beginning the evaluation of some definition in a file that is a module will be evaluated in that module's context, just like it happens after entering the module. >From the *Geiser Messages* buffer I can see that the evaluations seem to have the correct module every time, but something might be happening to the guile process that says "now that I know this module, I will evaluate the expression in this module". I spent several days trying to figure it out but it's beyond me hehe. If you can help me understand the reason, or point me in some direction to do some more research, I will be very grateful. Kind regards, Pedro.