Re: [Ilisp-help] edit-definitions-lisp problems
Lynn Quam <[email protected]> Sat, 20 Dec 2003 05:31:22 -0800
| Newsgroups | gmane.lisp.ilisp.devel |
|---|---|
| Message-ID | <[email protected]> |
Bob Rogers wrote:
> I can only imagine that
> the ilisp process filter is running during the sit-for interval, and it
> somehow fails to preserve the current buffer.
Are native threads somehow being used here? I am running on a dual processor
AMD Athlon machine. That might help to explain the problem.
Wrapping save-excursion around (sit-for 1) fixes some of the problems,
but I encountered another problem:
When I did a M-. in a real application I got an error in
lisp-make-cl-method-definition-regexp. It appears to be a
bug related to case-sensitivity in read-from-string. See below.
I did M-. on a method call (selected-object interactor) and got an
error:
Here is the *Messages* buffer
and backtrace:
*Messages*
Finding any selected-object definitions
GUI::SELECTED-OBJECT is a generic function with 1 method.
lisp-find-next-possibility returned [cl-struct-ilisp-defn-spec (nil nil "(METHOD GUI::SELECTED-OBJECT NIL)") "(METHOD GUI::SELECTED-OBJECT NIL)" "function" "/m/opt/IU/FREEDIUS/lisp/basic-gui/interactor.lisp" nil nil].
[doing (lisp-locate-definition-in-file lisp-locate-clisp [cl-struct-ilisp-defn-spec (nil nil "(METHOD GUI::SELECTED-OBJECT NIL)") "(METHOD GUI::SELECTED-OBJECT NIL)" "function" "/m/opt/IU/FREEDIUS/lisp/basic-gui/interactor.lisp" nil nil] t).]
Searching /m/opt/IU/FREEDIUS/lisp/basic-gui/interactor.lisp for function (METHOD GUI::SELECTED-OBJECT NIL)
[doing (lisp-locate-clisp (nil nil "(METHOD GUI::SELECTED-OBJECT NIL)") "function" t nil).]
lisp-make-cl-method-definition-regexp:
Entering debugger...
_______________________________
Backtrace:
Debugger entered--Lisp error: (wrong-type-argument consp NIL)
reverse(NIL)
lisp-make-cl-method-definition-regexp("(METHOD GUI::SELECTED-OBJECT NIL)")
lisp-make-cl-method-fspec-finder([cl-struct-ilisp-defn-spec (nil nil "(METHOD GUI::SELECTED-OBJECT NIL)") "(METHOD GUI::SELECTED-OBJECT NIL)" "function" "/m/opt/IU/FREEDIUS/lisp/basic-gui/interactor.lisp" nil nil])
lisp-make-cl-definition-regexp([cl-struct-ilisp-defn-spec (nil nil "(METHOD GUI::SELECTED-OBJECT NIL)") "(METHOD GUI::SELECTED-OBJECT NIL)" "function" "/m/opt/IU/FREEDIUS/lisp/basic-gui/interactor.lisp" nil nil])
lisp-locate-clisp((nil nil "(METHOD GUI::SELECTED-OBJECT NIL)") "function" t nil)
lisp-locate-definition-in-file(lisp-locate-clisp [cl-struct-ilisp-defn-spec (nil nil "(METHOD GUI::SELECTED-OBJECT NIL)") "(METHOD GUI::SELECTED-OBJECT NIL)" "function" "/m/opt/IU/FREEDIUS/lisp/basic-gui/interactor.lisp" nil nil] t)
lisp-next-definition(nil t)
next-definition-lisp(nil t)
lisp-edit-definitions-normal(("GUI" "::" "selected-object") "any" nil nil)
edit-definitions-lisp(("GUI" "::" "selected-object") "any")
call-interactively(edit-definitions-lisp)
_______________________________
I tracked to problem down to the NIL being passed to reverse is not eq
to nil. (I didn't realize Elisp read-from-string was case sensitive.)
null(intern("NIL")) = nil
Thus lisp-make-cl-method-definition-regexp("(METHOD GUI::SELECTED-OBJECT NIL)")
calls reverse(NIL).
BTW: I appreciate your suggestion to consider using SLIME. I have
downloaded the cvs sources for SLIME, studied the sources and
have tried using it. My impressions are:
. The SLIME communication architecture is a major improvement over
that in ILISP.
. SLIME offers a better integrated debugging environment.
. SLIME is currently not ready for "prime time" use.
. SLIME is a serious project and is likely to produce a far
superior replacement for ILISP.
-------------------------------------------------------
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills. Sign up for IBM's
Free Linux Tutorials. Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click