Subject: Re: bug#48228: json-serialize should signal error when dll is not found [MS Windows]

From: Dmitry Gutov <[email-masked]>
Date: Tue, 4 May 2021 19:59:15 +0300

On 04.05.2021 19:43, Robert Pluim wrote:
> What makes it error-prone? Those existing testing functions (on
> Windows) attempt to load the relevant DLL's using the exact same
> mechanisms as the actual code, so the failure (and success) modes are
> identical.

When somebody write code using json-serialize, and it can't do what it 
was asked to do, it should raise an error.

I have code like this in a separate project:

   (cond ((fboundp 'json-parse-buffer)
          (json-parse-buffer
           :array-type 'list
           :object-type 'alist
           :null-object nil))
         (t
          (let ((json-array-type 'list))
            (json-read))))

It has been there for a couple of years. And only now I find out that it 
can fail on MS Windows, because that failure is not reproducible on any 
other platform. I can only hope that whatever random Windows users 
encountered it saw the message wherever it was printed, and it was not 
concealed by subsequent messages from the caller code (reporting some 
cryptic errors, I imagine).

That's not to say we must not have a function json-available-p. If it's 
helpful, why not add it as well.