I was just bringing up ILISP to work with CMULISP (18d) on Linux, and 
having some problems.  I apologise for the slightly off-topic post, but 
there doesn't seem to be an ilisp newsgroup:

1.  I just can't seem to figure out how to get the ilisp menu in a lisp 
buffer.  When I fire up cmulisp, I get menus in the comint buffer, but 
not in the lisp source file directories.  Before loading ilisp, I eval 
the following forms, which I believe to be the right thing to do, from 
reading ilisp-cl-easy-menu:

;; I think I might need this to get the menu..
(setq ilisp-*use-hyperspec-interface-p* t)
(setq ilisp-*enable-ild-support-p* t)
(load-library "ilisp-cl-easy-menu")

2.  When I try to find definitions, ILISP yields errors for ill-formed 
regular expressions.  This has something to do with the regexp that 
ILISP uses to try to find class accessors:
"\\(:accessor\\|:writer\\|:reader\\)\\([ \t\n]+\\(.\\)?+[ \t\n]*\\|[ \t\n]*.[ 
\t\n]+\\)%s[ \t\n)]"
(what shows up as a box on my screen is a ^F).
Here's a backtrace when I try to find the definition of the DEFSTRUCTURE 
macro:
Signaling: (invalid-regexp "Invalid preceding regular expression")
   re-search-forward("\\(:accessor\\|:writer\\|:reader\\)\\([   \n]+\\(.\\)?+[        
 \n]*\\|[        \n]*.[ 
\n]+\\)defstructure[    \n)]" nil t)
   (if back (re-search-backward regexp nil t) (re-search-forward regexp 
nil t))
)
   (let ((regexp ...)) (if back (re-search-backward regexp nil t) 
(re-search-forward regexp nil t)))
)
   lisp-re(nil "\\(:accessor\\|:writer\\|:reader\\)\\([         \n]+\\(.\\)?+[        
 \n]*\\|[        \n]*.[         \n]+\\)%s[      \n)]" 
"defstructure")
   (or (if (equal type "any") (lisp-re back ... name name)) 
(ilisp-locate-clos-method name type back) (ilisp-locate-clisp-defn name 
type back) (when first (lisp-locate-ilisp symbol type first back)) (when 
(and first prefix) (lisp-re back prefix)) (lisp-re back class name))
)
   (let* ((name ...) (prefix ...) (class 
"\\(:accessor\\|:writer\\|:reader\\)\\([        \n]+\\(.\\)?+[         \n]*\\|[       
 \n]*.[         \n]+\\)%s[      \n)]")) (or (if ... ...) 
(ilisp-locate-clos-method name type back) (ilisp-locate-clisp-defn name 
type back) (when first ...) (when ... ...) (lisp-re back class name)))
)
   lisp-locate-clisp((nil nil "defstructure") "function" t nil)
   funcall(lisp-locate-clisp (nil nil "defstructure") "function" t nil)
   (if (funcall locator symbol type first back) (progn (setq 
lisp-last-file file lisp-last-point ...) (if ... ... ...) (recenter 0) 
(if name ... ...) t) (if first (goto-char lisp-first-point) (set-buffer 
buffer) (goto-char point)) nil)
)
   (let* ((symbol ...) (type ...) (first ...) (buffer ...) name) 
(lisp-find-file file pop) (if first (setq lisp-first-point ...)) (if 
back (if first ... ... ... ...) (goto-char point) (if ... ...)) (if (eq 
type ...) (message "Search %s for %s" file symbol) (message "Searching 
%s for %s %s" file type ...)) (if (funcall locator symbol type first 
back) (progn ... ... ... ... t) (if first ... ... ...) nil))
)
   (if (not (file-exists-p file)) (progn (message "File %s doesn't 
exist!" file) (sit-for 1) nil) (let* (... ... ... ... name) 
(lisp-find-file file pop) (if first ...) (if back ... ... ...) (if ... 
... ...) (if ... ... ... nil)))
)
   (if file (if (not ...) (progn ... ... nil) (let* ... ... ... ... ... 
...)))
)
   lisp-locate-definition(lisp-locate-clisp ((nil nil "defstructure") . 
"function") "/home/rpg/lisp/aima/aima.lisp" 1 nil t)
   (if (lisp-locate-definition lisp-last-locator lisp-last-definition 
file 1 back (prog1 pop ...)) (setq result (quote first)) (setq result 
(if ... ...)))
)
   (if file (if (lisp-locate-definition lisp-last-locator 
lisp-last-definition file 1 back ...) (setq result ...) (setq result 
...)) t)
)
   (let ((file ...)) (if file (if ... ... ...) t))
)
   (or (setq result (lisp-locate-definition lisp-last-locator 
lisp-last-definition lisp-last-file lisp-last-point back)) (let (...) 
(if file ... t)))
)
   (not (or (setq result ...) (let ... ...)))
)
   (while (not (or ... ...)))
)
   (let ((done nil) (result nil)) (while (not ...)) (set-buffer 
(window-buffer ...)) result)
)
   lisp-next-definition(nil t)
   (let* ((result ...) (symbol ...) (type ...) (name ...)) (cond (... 
...) (... ...) (t ...)))
)
   (if lisp-using-tags (tags-loop-continue) (let* (... ... ... ...) 
(cond ... ... ...)))
)
   next-definition-lisp(nil t)
   (progn (setq lisp-last-definition (cons symbol type) lisp-last-file 
nil lisp-last-locator (or locator ...)) (lisp-setup-edit-definitions 
(format "%s %s definitions:" type name) (if source-ok ... 
lisp-edit-files)) (next-definition-lisp nil t))
)
   (if (not tagged) (progn (setq lisp-last-definition ... lisp-last-file 
nil lisp-last-locator ...) (lisp-setup-edit-definitions ... ...) 
(next-definition-lisp nil t)))
)
   (unwind-protect (if (and tags-file-name ...) (progn ... ... ...)) (if 
(not tagged) (progn ... ... ...)))
)
   (let* ((name ...) (symbol-name ...) (command ...) (source ...) 
(result ...) (source-ok ...) (case-fold-search t) (tagged nil)) 
(unwind-protect (if ... ...) (if ... ...)))
)
   (lambda (symbol type &optional stay search locator) "Find the source 
files for the TYPE definitions of SYMBOL.\nIf STAY, use the same window. 
  If SEARCH, do not look for symbol in\ninferior LISP.  The definition 
will be searched for through the\ninferior LISP and if not found it will 
be searched for in the current\ntags file and if not found in the files 
in lisp-edit-files set up by\n(\\[lisp-directory]) or the buffers in one 
of lisp-source-modes if\nlisp-edit-files is T.  If lisp-edit-files is 
nil, no search will be\ndone if not found through the inferior LISP. 
TYPES are from\nilisp-source-types which is an alist of symbol strings 
or list\nstrings.  With a negative prefix, look for the current symbol 
as the\nfirst type in ilisp-source-types." (interactive (let* ... ...)) 
(let* (... ... ... ... ... ... ... ...) (unwind-protect ... ...)))((nil 
nil "defstructure") "function")
   call-interactively(edit-definitions-lisp)


3.  For some reason, every time I type "(load " in the cmulisp buffer, 
it fires up the Arglist window for LOAD, grabbing my cursor, and putting 
it there, so the filename I'm typing goes into the darned 
*Arglist-Output* window.  Since I didn't want the window to begin with, 
this is very irritating.




Reply via email to