Re: [CEDET-devel] Cedet-devel Digest, Vol 47, Issue 4
Brought to you by:
zappo
From: Eric M. L. <er...@si...> - 2010-04-18 11:47:15
|
Hi Richard Your example is what took me so long to get the compatibility version of this thing working the first time. Sadly, just a function won't work, since that function will never be called interactively. ;( The solution is in the EDE build system. Each target that uses this macro has a :pre-load-packages set to cedet-compat.el. The targets all then use the 'emacs-preload-compiler'. This combination allows those functions to be compiled correctly. I suppose it is possible that your copy of the CVS respository is missing some aspect of of the Makefiles with these changes in them. I've seen the current repository build for Emacs 22 and 23 recently, so I'm pretty sure it is working ok, and I use the ubuntu 23.1 version of Emacs now also. As such, I recommend getting a fresh copy from CVS, checking for any locally modified files, and trying to build from scratch again. Eric On 04/17/2010 10:32 PM, Richard Kim wrote: > Eric, > > This is in reponse to your email quoted here: > > > Date: Thu, 08 Apr 2010 22:40:12 -0400 > > From: "Eric M. Ludlam"<er...@si...> > > Subject: [CEDET-devel] Long checkin for CEDET today. > > To: cedet-devel<ced...@li...> > > > > I finally figured out the macro needed to get interactive-p replaced > in > > CEDET with the new called-interactively-p with an argument as needed > in > > Emacs pretest. I then used semantic-symref to do a mass > replacement, > > and checked in all the changes. > > > > Please try this out in different Emacsen with different variants of > > these interactive predicates. That would be very handy and help > > validate all the changes. I was using 23.1. Thanks! > > > > ... > > Emacs 23.1 provided by latest ubuntu packaging system reports that > cedet-called-interactively-p is not defined. I can see this with > ~/.emacs setup as follows: > > (setq semantic-load-turn-everything-on t) > (load "~/branches/elisp-kimr/cedet-1.0pre7/common/cedet.el") > (load "~/branches/elisp-kimr/cedet-1.0pre7/common/cedet-load.el") > (global-ede-mode t) > (setq debug-on-error t) > (find-file "/") > > Just starting emacs with this results in the following error: > > Debugger entered--Lisp error: (invalid-function > cedet-called-interactively-p) > cedet-called-interactively-p() > ede-dired-minor-mode(1) > ede-minor-mode(1) > ede-turn-on-hook() > run-hooks(dired-mode-hook) > apply(run-hooks dired-mode-hook) > run-mode-hooks(dired-mode-hook) > dired-mode("/" "-al") > dired-internal-noselect("/" nil) > dired-noselect("/") > run-hook-with-args-until-success(dired-noselect "/") > find-file-noselect("/" nil nil t) > find-file("/" t) > call-interactively(find-file nil nil) > > If I now type `C-h f cedet-called-interactively-p', then it reports > > cedet-called-interactively-p is a Lisp macro in `cedet-compat.el'. > > (cedet-called-interactively-p&optional arg) > > Revised from the built-in version to accept an optional arg. > > Prior to launching emacs I did the following: > > $ cd ~/branches/elisp-kimr/cedet-1.0pre7 > $ cvs up -A > $ make all > $ cat CVS/Root > :pserver:ano...@ce...:/cvsroot/cedet > > I tried adding (require 'cedet-compat) in each file that uses > cedet-called-interactively-p. However that did not help. As I > recall, macros have to be defined when a function is byte-compiled. > So I think I also tried adding > > (eval-when-compile (require 'cedet-compat)) > > in each file that used cedet-called-interactively-p. That did not > work either. So I really don't understand why a macro results in an > error, but not a function. > > After trying other things, I just tried changing the macro into a > function as shown below. That got me over this hump. > > (defun cedet-called-interactively-p (&optional arg) > "Revised from the built-in version to accept an optional arg." > (cond > ((eq arg 'interactive) '(interactive-p)) > ((or (eq arg 'any) (eq arg nil)) '(called-interactively-p)))) > > I'm a bit rusty with elisp in general and more so with macros. So > please do not take this as a possible solution, but a documentation of > the problem. > > > > ------------------------------------------------------------------------------ > Download Intel® Parallel Studio Eval > Try the new software tools for yourself. Speed compiling, find bugs > proactively, and fine-tune applications for parallel performance. > See why Intel Parallel Studio got high marks during beta. > http://p.sf.net/sfu/intel-sw-dev > _______________________________________________ > Cedet-devel mailing list > Ced...@li... > https://lists.sourceforge.net/lists/listinfo/cedet-devel > |