From mboxrd@z Thu Jan 1 00:00:00 1970 From: Kalle Olavi Niemitalo To: guile-emacs@sourceware.cygnus.com Subject: Re: automating %load-path Date: Sat, 29 Apr 2000 11:37:00 -0000 Message-id: <87g0s5j7ej.fsf@PC486.Niemitalo.LAN> References: <87og81zwk3.fsf@PC486.Niemitalo.LAN> <874s959m4l.fsf@PC486.Niemitalo.LAN> <871z3piai6.fsf@PC486.Niemitalo.LAN> X-SW-Source: 2000-q2/msg00013.html Keisuke Nishida writes: > What was wrong with the previous definition? i.e., > (set-current-module the-root-module) It assumed that the commands had been imported to the root module. Before my emacs/init.scm changes, .emacs.scm used to be loaded in the root module. When .emacs.scm used modules such as (emacs guile), the public commands defined there were imported to the root module and the Lisp side could find them. Nowadays, .emacs.scm is loaded from emacs/init.scm so the root module is not current. If .emacs.scm uses (emacs guile), its variables get imported to (emacs init). The Lisp stubs defined by `define-command' couldn't find them from there. One could have worked around this problem by making emacs/init.scm switch to the root module before loading .emacs.scm. But I think my solution is better, as it also takes care of the case where .emacs.scm uses one module which uses another module where commands are defined. Now, `define-command' always makes the command available in Lisp, whether or not anything uses the containing Scheme module. > It worked fine. Did the latest Guile change the behavior? No, it was my fault. I hope this won't break again when Guile gets its new module system....