Hi all, I'm looking at the slime source code and I am pretty puzzled by slime-eval.
I think that I understand slime-rex, it sends an sexpr to Swank and pushes a destructure-case continuation onto the global continuation assoc list. At sometime later Swank returns the evaluation of the sexpr and calls either the :ok clause or the :abort clause.
The part that I am having trouble understanding is what parts of the code are closed over by the continuation that is saved, and where execution runs normally.
Looking at slime-eval, there needs to be two paths of execution, call them A and B. Path A is synchronous, slime-rex returns without throwing the tag. There is a while loop waiting on process-output, and the result of that while is passed to (apply #'funcall <result-of-while>) What is the usual return here though?
Path B is a continuation. The asynchronous return from Swank causes either :ok or :abort to be thrown up to the (catch tag...) form, and then (apply #'funcall....) will work on that.
Basically this all bends my mind, but is very cool at the same time. If somebody could please elaborate on what I have said, and correct me I would really appreciate it. There is probably a lot that I am not getting just now :) For example, why THROW? Couldn't the destructure-case sections just call/return the appropriate bits. Also, are there any ELisp/CommonLisp differences in this function?
Cheers Brad
Hello:
I just installed w3m. Hyperspec is on my machine. .emacs has the following: (setq browse-url-browser-function 'w3m) (setq common-lisp-hyperspec-root "file:///home/tim/elisp/HyperSpec/HyperSpec/")
Now, when I press C-c C-d h over a symbol, w3m pops right up. Great!
But the browser is invoked in the same window as the symbol and when I close it, the window is closed also.
Here's what I'd like to do:
C-c C-d h has browser open in other window closing browser retains window with previous buffer.
Can I do that? Pointers to docs welcome. Thanks tim
On May 14, 2006, at 3:13 PM, Tim Johnson wrote:
I just installed w3m. Hyperspec is on my machine. .emacs has the following: (setq browse-url-browser-function 'w3m) (setq common-lisp-hyperspec-root "file:///home/tim/elisp/HyperSpec/ HyperSpec/")
Now, when I press C-c C-d h over a symbol, w3m pops right up. Great!
But the browser is invoked in the same window as the symbol and when I close it, the window is closed also.
Here's what I'd like to do:
C-c C-d h has browser open in other window closing browser retains window with previous buffer.
w3m-pop-up-frames is what I use to get the browser in a new frame. I assume there is a similar variable for windows. There is a complete index of variables in the w3m info pages.
Michael
* Michael Price ectospheno@gmail.com [060514 11:55]:
On May 14, 2006, at 3:13 PM, Tim Johnson wrote:
I just installed w3m. Hyperspec is on my machine. .emacs has the following: (setq browse-url-browser-function 'w3m) (setq common-lisp-hyperspec-root "file:///home/tim/elisp/HyperSpec/ HyperSpec/")
Now, when I press C-c C-d h over a symbol, w3m pops right up. Great!
But the browser is invoked in the same window as the symbol and when I close it, the window is closed also.
Here's what I'd like to do:
C-c C-d h has browser open in other window closing browser retains window with previous buffer.
Hi Michael: Thanks
w3m-pop-up-frames is what I use to get the browser in a new frame.
I now have the following settings: (from .emacs custom-set-variables) ..... '(w3m-pop-up-frames t) '(w3m-pop-up-windows nil))
But the behavior I described above persists. I'll look at the variable list. The solution should be in there.
I assume there is a similar variable for windows.
Using RH 9.0, emacs 21.4.1
Thanks again tim