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

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

[debbugs-tracker] bug#17475: closed (24.3.91; bug of byte-optimize-zerop


From: GNU bug Tracking System
Subject: [debbugs-tracker] bug#17475: closed (24.3.91; bug of byte-optimize-zerop)
Date: Wed, 28 May 2014 00:52:02 +0000

Your message dated Tue, 27 May 2014 20:51:40 -0400
with message-id <address@hidden>
and subject line Re: bug#17475: 24.3.91; bug of byte-optimize-zerop
has caused the debbugs.gnu.org bug report #17475,
regarding 24.3.91; bug of byte-optimize-zerop
to be marked as done.

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


-- 
17475: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=17475
GNU Bug Tracking System
Contact address@hidden with problems
--- Begin Message --- Subject: 24.3.91; bug of byte-optimize-zerop Date: Tue, 13 May 2014 00:11:11 +0900
`byte-optimize-zerop' is badly implemented.  Even when
`byte-compile-delete-errors' is non-nil, bute-compiled code may
signal an error.
(= FORM 0) and (zerop FORM) are functionally equal, besides, the
former is better when byte-compiled.

The following is the poor alternative.
I can't make a smart code without creating a new function.

(defun byte-optimize-zerop (form)
  (cond ((numberp (nth 1 form))
         (eval form))
        (byte-compile-delete-errors
         `(and (member ,(nth 1 form) (quote 0 0.0))) t)
        ((list '= (nth 1 form) 0))))

-- Shigeru



--- End Message ---
--- Begin Message --- Subject: Re: bug#17475: 24.3.91; bug of byte-optimize-zerop Date: Tue, 27 May 2014 20:51:40 -0400 User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4.50 (gnu/linux)
> (defun byte-optimize-zerop (form)
>   (cond ((numberp (nth 1 form))
>          (eval form))
>       ((list '= (nth 1 form) 0))))

I simplified as suggested and turned it into a compiler-macro.
Thank you for paying attention to details.


        Stefan


--- End Message ---

reply via email to

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