emacs-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debbugs-tracker] bug#15296: closed (24.3.50; A macro object does not ne


From: GNU bug Tracking System
Subject: [debbugs-tracker] bug#15296: closed (24.3.50; A macro object does not necessarily have `lambda' as its cadr)
Date: Sun, 08 Sep 2013 18:03:02 +0000

Your message dated Sun, 08 Sep 2013 14:01:53 -0400
with message-id <address@hidden>
and subject line Re: bug#15296: 24.3.50; A macro object does not necessarily 
have `lambda' as its cadr
has caused the debbugs.gnu.org bug report #15296,
regarding 24.3.50; A macro object does not necessarily have `lambda' as its cadr
to be marked as done.

(If you believe you have received this mail in error, please contact
address@hidden)


-- 
15296: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=15296
GNU Bug Tracking System
Contact address@hidden with problems
--- Begin Message --- Subject: 24.3.50; A macro object does not necessarily have `lambda' as its cadr Date: Fri, 6 Sep 2013 22:39:58 -0700 (PDT)
AFAICT, (elisp) `Defining Macros' is the closest thing we have to doc
telling you how to test whether a Lisp object is a macro.  There is no
`macro-p' predicate or similar in Emacs Lisp, unless I'm missing
something.  (Shouldn't there be?)

Anyway, this Elisp manual node says that a macro is a list whose car is
`macro' and whose `cdr' is a lambda expression.  That's not true if the
`defmacro' was byte-compiled.  The macro is then a list whose car is `macro'
but whose cdr is byte code, AFAICT.  So this will not work, for example:

(defun macro-p (obj)
  (and (fboundp obj)
       (let ((def  (symbol-function obj)))
         (and (consp def)
              (eq (car def) 'macro)
              (eq (cadr def) 'lambda)))))

In GNU Emacs 24.3.50.1 (i686-pc-mingw32)
 of 2013-08-23 on ODIEONE
Bzr revision: 113986 address@hidden
Windowing system distributor `Microsoft Corp.', version 6.1.7601
Configured using:
 `configure --prefix=/c/Devel/emacs/binary --enable-checking=yes,glyphs
 'CFLAGS=-O0 -g3' LDFLAGS=-Lc:/Devel/emacs/lib
 CPPFLAGS=-Ic:/Devel/emacs/include'



--- End Message ---
--- Begin Message --- Subject: Re: bug#15296: 24.3.50; A macro object does not necessarily have `lambda' as its cadr Date: Sun, 08 Sep 2013 14:01:53 -0400 User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux)
> `macro' and whose `cdr' is a lambda expression.  That's not true if the

I changed it to say "function" instead.


        Stefan


--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]