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

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

bug#60311: closed (json-available-p: make dynamically correct for Window


From: GNU bug Tracking System
Subject: bug#60311: closed (json-available-p: make dynamically correct for Windows)
Date: Mon, 26 Dec 2022 13:31:01 +0000

Your message dated Mon, 26 Dec 2022 15:29:58 +0200
with message-id <835ydy2syx.fsf@gnu.org>
and subject line Re: bug#60311: json-available-p: make dynamically correct for 
Windows
has caused the debbugs.gnu.org bug report #60311,
regarding json-available-p: make dynamically correct for Windows
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs@gnu.org.)


-- 
60311: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=60311
GNU Bug Tracking System
Contact help-debbugs@gnu.org with problems
--- Begin Message --- Subject: json-available-p: make dynamically correct for Windows Date: Sun, 25 Dec 2022 15:32:06 +0100
The implementation of `json-available-p`,

  (and (fboundp 'json-serialize)
       (condition-case nil
           (json-serialize t)
         (:success t)
         (json-unavailable nil))))

probably isn't quite right on Windows: `json-serialize` is pure so it will be 
called at compile time and the result, "true", used in the code (actually not 
even that since the result is never used). Thus, if libjansson could not be 
loaded during actual Emacs use (as opposed to when Emacs was built), this would 
never be detected and json-available-p would still return t.

The patch below should take care of this. Would someone please help testing it 
on Windows?

Attachment: json-available-p.diff
Description: Binary data


--- End Message ---
--- Begin Message --- Subject: Re: bug#60311: json-available-p: make dynamically correct for Windows Date: Mon, 26 Dec 2022 15:29:58 +0200
> From: Mattias EngdegÄrd <mattias.engdegard@gmail.com>
> Date: Mon, 26 Dec 2022 13:11:21 +0100
> Cc: 60311@debbugs.gnu.org
> 
> 25 dec. 2022 kl. 16.40 skrev Eli Zaretskii <eliz@gnu.org>:
> 
> > Yes, you are right.  But please come up with a smaller changeset which
> > only changes what strictly needs to be changed.  Or if you want, I can
> > do this myself.
> 
> Since you have very specific ideas about how to go about it it's better that 
> you make the change yourself.

Done.

> > why not just
> > 
> >  (and (fboundp 'json--available-p)
> >       (json--available-p))
> 
> Calling `fboundp` at run time is wasteful, and that patch used the presence 
> of json--available-p to indicate whether it needs to be called at run time 
> (on Windows only, but it's good to keep that platform-dependency in one 
> place).

Yes, but using eval-when-compile precludes defining json--available-p
at run time, something that I don't like doing in Emacs, since it's
IMO against the Emacs's spirit of being interpreter based.

So I went with the simpler definition that doesn't assume functions
are only defined at byte-compile time.

Thanks, I'm now closing the bug.


--- End Message ---

reply via email to

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