GNU bug report logs - #78291
[PATCH] Add new gv place definitions

Previous Next

Package: emacs;

Reported by: Zach Shaftel <zach <at> shaf.tel>

Date: Wed, 7 May 2025 04:10:02 UTC

Severity: normal

Tags: patch

To reply to this bug, email your comments to 78291 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to monnier <at> iro.umontreal.ca, bug-gnu-emacs <at> gnu.org:
bug#78291; Package emacs. (Wed, 07 May 2025 04:10:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Zach Shaftel <zach <at> shaf.tel>:
New bug report received and forwarded. Copy sent to monnier <at> iro.umontreal.ca, bug-gnu-emacs <at> gnu.org. (Wed, 07 May 2025 04:10:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Zach Shaftel <zach <at> shaf.tel>
To: bug-gnu-emacs <at> gnu.org
Subject: [PATCH] Add new gv place definitions
Date: Tue, 06 May 2025 23:45:10 -0400
[Message part 1 (text/plain, inline)]
Tags: patch

just a few simple gv definitions. also fixed the return on the
`terminal-parameter' gv, since `set-terminal-parameter' returns the
previous value of the parameter instead of the new one.


In GNU Emacs 31.0.50 (build 3, x86_64-pc-linux-gnu, GTK+ Version
 3.24.49, cairo version 1.18.4) of 2025-04-30 built on bigbox
Repository revision: dd5ae0f3ba56e762ae1265b0cb0fe9f2a28281ec
Repository branch: master
System Description: Arch Linux

Configured using:
 'configure --with-modules --without-xwidgets --with-native-compilation
 --with-tree-sitter --without-gsettings --without-gconf --without-gpm
 --with-pgtk --without-compress-install 'CFLAGS=-mtune=native
 -march=native -O2 -g''

[0001-Add-new-gv-place-definitions.patch (text/patch, attachment)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78291; Package emacs. (Wed, 07 May 2025 14:47:01 GMT) Full text and rfc822 format available.

Message #8 received at 78291 <at> debbugs.gnu.org (full text, mbox):

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Zach Shaftel <zach <at> shaf.tel>
Cc: 78291 <at> debbugs.gnu.org
Subject: Re: bug#78291: [PATCH] Add new gv place definitions
Date: Wed, 07 May 2025 10:46:31 -0400
> --- a/lisp/emacs-lisp/gv.el
> +++ b/lisp/emacs-lisp/gv.el
> @@ -367,6 +367,8 @@ 'gv-place
>  
>  (gv-define-simple-setter aref aset)
>  (gv-define-simple-setter char-table-range set-char-table-range)
> +(gv-define-simple-setter char-table-extra-slot set-char-table-extra-slot)
> +(gv-define-simple-setter char-table-parent set-char-table-parent)
>  (gv-define-simple-setter car setcar)
>  (gv-define-simple-setter cdr setcdr)
>  ;; FIXME: add compiler-macros for `cXXr' instead!
> @@ -400,10 +402,12 @@ symbol-value
>  ;;; Elisp-specific generalized variables.
>  
>  (gv-define-simple-setter default-value set-default)
> +(gv-define-simple-setter default-toplevel-value set-default-toplevel-value t)
>  (gv-define-simple-setter frame-parameter set-frame-parameter 'fix)
> -(gv-define-simple-setter terminal-parameter set-terminal-parameter)
> +(gv-define-simple-setter terminal-parameter set-terminal-parameter t)
>  (gv-define-simple-setter keymap-parent set-keymap-parent)
>  (gv-define-simple-setter match-data set-match-data 'fix)
> +(gv-define-simple-setter marker-insertion-type set-marker-insertion-type)
>  (gv-define-simple-setter overlay-get overlay-put)
>  (gv-define-setter overlay-start (store ov)
>    (macroexp-let2 nil store store
> @@ -415,6 +419,9 @@ process-buffer
>  (gv-define-simple-setter process-filter set-process-filter)
>  (gv-define-simple-setter process-sentinel set-process-sentinel)
>  (gv-define-simple-setter process-get process-put 'fix)
> +(gv-define-simple-setter process-plist set-process-plist)
> +(gv-define-simple-setter process-query-on-exit-flag set-process-query-on-exit-flag)
> +(gv-define-simple-setter process-thread set-process-thread)
>  (gv-define-simple-setter window-parameter set-window-parameter)
>  (gv-define-setter window-buffer (v &optional w)
>    (macroexp-let2 nil v v

LGTM, thanks.

> @@ -427,6 +434,14 @@ window-dedicated-p
>  (gv-define-setter window-hscroll (v &optional w) `(set-window-hscroll ,w ,v))
>  (gv-define-setter window-point (v &optional w) `(set-window-point ,w ,v))
>  (gv-define-setter window-start (v &optional w) `(set-window-start ,w ,v))
> +(gv-define-setter window-prev-buffers (v &optional w) `(set-window-prev-buffers ,w ,v))
> +(gv-define-setter window-next-buffers (v &optional w) `(set-window-next-buffers ,w ,v))
> +(gv-define-setter window-new-normal (v &optional w) `(set-window-new-normal ,w ,v))
> +(gv-define-simple-setter font-get font-put)
> +(gv-define-simple-setter charset-plist set-charset-plist)
> +(gv-define-simple-setter get-charset-property put-charset-property t)
> +(gv-define-setter lookup-key (val keymap key &optional _accept-default)
> +  `(define-key ,keymap ,key ,val))

I'd have to check some of them, but at least the last doesn't look like
a good idea to me, because they don't quite match.  E.g. if you

    (define-key MAP KEY '(menu-item TEXT CMD))

The corresponding `lookup-key` will return just CMD rather than
(menu-item TEXT CMD).


        Stefan





Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#78291; Package emacs. (Tue, 13 May 2025 17:39:03 GMT) Full text and rfc822 format available.

Message #11 received at 78291 <at> debbugs.gnu.org (full text, mbox):

From: Zach Shaftel <zach <at> shaf.tel>
To: Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: 78291 <at> debbugs.gnu.org
Subject: Re: bug#78291: [PATCH] Add new gv place definitions
Date: Tue, 13 May 2025 13:38:33 -0400
>> @@ -427,6 +434,14 @@ window-dedicated-p
>>  (gv-define-setter window-hscroll (v &optional w) `(set-window-hscroll ,w ,v))
>>  (gv-define-setter window-point (v &optional w) `(set-window-point ,w ,v))
>>  (gv-define-setter window-start (v &optional w) `(set-window-start ,w ,v))
>> +(gv-define-setter window-prev-buffers (v &optional w) `(set-window-prev-buffers ,w ,v))
>> +(gv-define-setter window-next-buffers (v &optional w) `(set-window-next-buffers ,w ,v))
>> +(gv-define-setter window-new-normal (v &optional w) `(set-window-new-normal ,w ,v))
>> +(gv-define-simple-setter font-get font-put)
>> +(gv-define-simple-setter charset-plist set-charset-plist)
>> +(gv-define-simple-setter get-charset-property put-charset-property t)
>> +(gv-define-setter lookup-key (val keymap key &optional _accept-default)
>> +  `(define-key ,keymap ,key ,val))
>
> I'd have to check some of them, but at least the last doesn't look like
> a good idea to me, because they don't quite match.  E.g. if you
>
>     (define-key MAP KEY '(menu-item TEXT CMD))
>
> The corresponding `lookup-key` will return just CMD rather than
> (menu-item TEXT CMD).
>
>
>         Stefan

yeah I knew that one was questionable, and considering the keymap-*
functions are now the standard interface to key bindings it probably
wouldn't get much use anyway. as far as i could tell, the other setters
all accept the same values that the getter would return, but there may
be other idiosyncrasies i'm not aware of. let me know what ought to be
removed and i can submit a new patch.




This bug report was last modified 1 day ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.