Subject: bug#62746: closed (Re: bug#62746: [PATCH] Updated Elispref-Manual: `nil' cannot be defuned)

From: [email-masked] (GNU bug Tracking System)
Date: Fri, 05 May 2023 06:38:02 +0000

Your bug report

#62746: [PATCH] Updated Elispref-Manual: `nil' cannot be defuned

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
62746: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=62746
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#62746: [PATCH] Updated Elispref-Manual: `nil' cannot be defuned
From: Eli Zaretskii <[email-masked]>
To: Stefan Monnier <[email-masked]>
Cc: [email-masked], [email-masked]
Date: Fri, 05 May 2023 09:38:03 +0300
List-Id: <debbugs-submit.debbugs.gnu.org>

> From: Stefan Monnier <[email-masked]>
> Cc: Shynur Xie <[email-masked]>,  [email-masked]
> Date: Mon, 10 Apr 2023 10:14:59 -0400
> 
> >> “The symbols nil and void are Lisp objects, and can be stored into a
> >>  function cell just as any other object can be (and they can be valid
> >>  functions if you define them in turn with defun).”
> >> 
> >> Updated:
> >> 
> >> “The symbols nil and void are Lisp objects, and can be stored into a
> >>  function cell just as any other object can be (and void can be a
> >>  valid function if you define it with defun).”
> >
> > Why do you think the original text needs to be corrected?
> 
> Indeed, `nil` is treated specially to mean "not defined" when we try to
> call a function:
> 
>     Lisp_Object
>     funcall_general (Lisp_Object fun, ptrdiff_t numargs, Lisp_Object *args)
>     {
>       Lisp_Object original_fun = fun;
>      retry:
>       if (SYMBOLP (fun) && !NILP (fun)
>           && (fun = XSYMBOL (fun)->u.s.function, SYMBOLP (fun)))
>         fun = indirect_function (fun);
>     
>       if (SUBRP (fun) && !SUBR_NATIVE_COMPILED_DYNP (fun))
>         return funcall_subr (XSUBR (fun), numargs, args);
>       else if (COMPILEDP (fun)
>                || SUBR_NATIVE_COMPILED_DYNP (fun)
>                || MODULE_FUNCTIONP (fun))
>         return funcall_lambda (fun, numargs, args);
>       else
>         {
>           if (NILP (fun))
>             xsignal1 (Qvoid_function, original_fun);
> 

Thanks.  So I think our documentation is correct in this aspect, and
I'm therefore closing this bug.

Subject: [PATCH] Updated Elispref-Manual: `nil' cannot be defuned
From: Shynur Xie <[email-masked]>
To: "[email-masked]" <[email-masked]>
Date: Mon, 10 Apr 2023 08:33:20 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

Original:

“The symbols nil and void are Lisp objects, and can be stored into a
 function cell just as any other object can be (and they can be valid
 functions if you define them in turn with defun).”

Updated:

“The symbols nil and void are Lisp objects, and can be stored into a
 function cell just as any other object can be (and void can be a
 valid function if you define it with defun).”

________________________________________

By the way, I've sent a Copyright Assignment Request to
<[email-masked]> five days ago, but there is no reply.  Is there any
additional information or action required from me?

> From: Eli Zaretskii
>
> Please email the following information to [email-masked], and we
> will send you the assignment form for your past and future changes.