unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Re: master 2a7f01aa38: Fix initialization of module functions
       [not found] ` <20221110105556.B16E8C0E4C9@vcs2.savannah.gnu.org>
@ 2022-11-10 14:06   ` Stefan Monnier
  2022-11-10 15:23     ` Eli Zaretskii
  0 siblings, 1 reply; 5+ messages in thread
From: Stefan Monnier @ 2022-11-10 14:06 UTC (permalink / raw)
  To: emacs-devel; +Cc: Eli Zaretskii

>  allocate_module_function (void)
>  {
>    return ALLOCATE_PSEUDOVECTOR (struct Lisp_Module_Function,
> -                                interactive_form, PVEC_MODULE_FUNCTION);
> +                                command_modes, PVEC_MODULE_FUNCTION);
>  }
>  
>  #define XSET_MODULE_FUNCTION(var, ptr) \

Usually we accompany that with a comment in the struct stating "this
is the last GC-tracked field" or something like that.


        Stefan




^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: master 2a7f01aa38: Fix initialization of module functions
  2022-11-10 14:06   ` master 2a7f01aa38: Fix initialization of module functions Stefan Monnier
@ 2022-11-10 15:23     ` Eli Zaretskii
  2022-11-10 17:44       ` Stefan Monnier
  0 siblings, 1 reply; 5+ messages in thread
From: Eli Zaretskii @ 2022-11-10 15:23 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: emacs-devel

> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Cc: Eli Zaretskii <eliz@gnu.org>
> Date: Thu, 10 Nov 2022 09:06:35 -0500
> 
> >  allocate_module_function (void)
> >  {
> >    return ALLOCATE_PSEUDOVECTOR (struct Lisp_Module_Function,
> > -                                interactive_form, PVEC_MODULE_FUNCTION);
> > +                                command_modes, PVEC_MODULE_FUNCTION);
> >  }
> >  
> >  #define XSET_MODULE_FUNCTION(var, ptr) \
> 
> Usually we accompany that with a comment in the struct stating "this
> is the last GC-tracked field" or something like that.

There's already such a comment, a few lines above.



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: master 2a7f01aa38: Fix initialization of module functions
  2022-11-10 15:23     ` Eli Zaretskii
@ 2022-11-10 17:44       ` Stefan Monnier
  2022-11-10 18:13         ` Eli Zaretskii
  0 siblings, 1 reply; 5+ messages in thread
From: Stefan Monnier @ 2022-11-10 17:44 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel

Eli Zaretskii [2022-11-10 17:23:52] wrote:

>> From: Stefan Monnier <monnier@iro.umontreal.ca>
>> Cc: Eli Zaretskii <eliz@gnu.org>
>> Date: Thu, 10 Nov 2022 09:06:35 -0500
>> 
>> >  allocate_module_function (void)
>> >  {
>> >    return ALLOCATE_PSEUDOVECTOR (struct Lisp_Module_Function,
>> > -                                interactive_form, PVEC_MODULE_FUNCTION);
>> > +                                command_modes, PVEC_MODULE_FUNCTION);
>> >  }
>> >  
>> >  #define XSET_MODULE_FUNCTION(var, ptr) \
>> 
>> Usually we accompany that with a comment in the struct stating "this
>> is the last GC-tracked field" or something like that.
>
> There's already such a comment, a few lines above.

The comment doesn't say which one is the last tracked field.


        Stefan




^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: master 2a7f01aa38: Fix initialization of module functions
  2022-11-10 17:44       ` Stefan Monnier
@ 2022-11-10 18:13         ` Eli Zaretskii
  2022-11-10 18:32           ` Stefan Monnier
  0 siblings, 1 reply; 5+ messages in thread
From: Eli Zaretskii @ 2022-11-10 18:13 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: emacs-devel

> From: Stefan Monnier <monnier@iro.umontreal.ca>
> Cc: emacs-devel@gnu.org
> Date: Thu, 10 Nov 2022 12:44:56 -0500
> 
> Eli Zaretskii [2022-11-10 17:23:52] wrote:
> 
> >> >  allocate_module_function (void)
> >> >  {
> >> >    return ALLOCATE_PSEUDOVECTOR (struct Lisp_Module_Function,
> >> > -                                interactive_form, PVEC_MODULE_FUNCTION);
> >> > +                                command_modes, PVEC_MODULE_FUNCTION);
> >> >  }
> >> >  
> >> >  #define XSET_MODULE_FUNCTION(var, ptr) \
> >> 
> >> Usually we accompany that with a comment in the struct stating "this
> >> is the last GC-tracked field" or something like that.
> >
> > There's already such a comment, a few lines above.
> 
> The comment doesn't say which one is the last tracked field.

??? That's basic C, or what am I missing?

Anyway, feel free to add whatever comment you want, you don't need to
convince me (in this case).



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: master 2a7f01aa38: Fix initialization of module functions
  2022-11-10 18:13         ` Eli Zaretskii
@ 2022-11-10 18:32           ` Stefan Monnier
  0 siblings, 0 replies; 5+ messages in thread
From: Stefan Monnier @ 2022-11-10 18:32 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel

>> >> >  allocate_module_function (void)
>> >> >  {
>> >> >    return ALLOCATE_PSEUDOVECTOR (struct Lisp_Module_Function,
>> >> > -                                interactive_form, PVEC_MODULE_FUNCTION);
>> >> > +                                command_modes, PVEC_MODULE_FUNCTION);
>> >> >  }
>> >> >  
>> >> >  #define XSET_MODULE_FUNCTION(var, ptr) \
>> >> 
>> >> Usually we accompany that with a comment in the struct stating "this
>> >> is the last GC-tracked field" or something like that.
>> >
>> > There's already such a comment, a few lines above.
>> 
>> The comment doesn't say which one is the last tracked field.
>
> ??? That's basic C, or what am I missing?

The commit 2a7f01aa38 fixes a bug introduced by commit 58e0c8ee86e2
which did (among other things:)

    @@ -548,7 +548,7 @@
     {
       union vectorlike_header header;
     
       /* Fields traced by GC; these must come first.  */
    -  Lisp_Object documentation, interactive_form;
    +  Lisp_Object documentation, interactive_form, command_modes;
     
       /* Fields ignored by GC.  */

so clearly the comment was not sufficiently clear for Lars to notice
that adding a field after `interactive_form` would introduce a bug.


        Stefan




^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2022-11-10 18:32 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <166807775643.29181.14745596143667535171@vcs2.savannah.gnu.org>
     [not found] ` <20221110105556.B16E8C0E4C9@vcs2.savannah.gnu.org>
2022-11-10 14:06   ` master 2a7f01aa38: Fix initialization of module functions Stefan Monnier
2022-11-10 15:23     ` Eli Zaretskii
2022-11-10 17:44       ` Stefan Monnier
2022-11-10 18:13         ` Eli Zaretskii
2022-11-10 18:32           ` Stefan Monnier

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).