GNU bug report logs -
#67767
30.0.50; ERC 5.6: Add track integration to the nicks module
Previous Next
Reported by: "J.P." <jp <at> neverwas.me>
Date: Mon, 11 Dec 2023 15:29:02 UTC
Severity: normal
Tags: patch
Found in version 30.0.50
Done: "J.P." <jp <at> neverwas.me>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your message dated Mon, 18 Dec 2023 06:51:50 -0800
with message-id <87sf3zftrt.fsf <at> neverwas.me>
and subject line Re: bug#67767: 30.0.50; ERC 5.6: Add track integration to the nicks module
has caused the debbugs.gnu.org bug report #67767,
regarding 30.0.50; ERC 5.6: Add track integration to the nicks module
to be marked as done.
(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)
--
67767: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=67767
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
[Message part 3 (text/plain, inline)]
Tags: patch
ERC's `nicks' module doesn't currently play nice with `track'. Enabling
it breaks the cycling effect normally occurring among faces in
`erc-track-faces-normal-list' [1]. To address this, I'm proposing we
expose two internal seams:
1. A function-valued variable for modifying or discarding faces
gleaned in the narrowed buffer while `track' visits a message.
2. A buffer-local hash table created on init from the contents of
`erc-track-faces-normal-list'.
The first brings a small performance penalty and the second a small UX
hiccup [2]. The proposed implementation offsets the first by passing
around more refined data to cut down on some waste during processing.
The second is only currently addressed via doc string, although there's
a public compatibility flag to revert to a related historical behavior,
which dispenses with the issue indirectly.
The only actual addition to the `nicks' module is a user option named
`erc-nicks-track-faces'. It's a boolean that lets you opt out of seeing
nick colors as faces in the mode line indicator. There's also a loosely
related patch that adds some caching to the uniquified name shortening
performed by `track', although it should mainly benefit batch processing
and history playback. Suggestions welcome, as always.
Thanks.
[1] Although, what we typically perceive as this effect is somewhat
illusory, if not underrealized. See comments preceding the new tests
in the first patch.
[2] Users will have to toggle the module's minor-mode to update the
variable mid-session, but we can provide a Custom :set function to
help with this. Also, there's actually a resource penalty that comes
with this change too. We can probably use per-server instead of
per-channel hash tables, or only go per-channel if a local value for
`erc-track-faces-normal-list' exists on `erc-track-mode' init.
In GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version
3.24.38, cairo version 1.17.6) of 2023-12-06 built on localhost
Repository revision: d8a00879309a3bf62f6ffcae103aa3bdba776ee9
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12014000
System Description: Fedora Linux 37 (Workstation Edition)
Configured using:
'configure --enable-check-lisp-object-type --enable-checking=yes,glyphs
'CFLAGS=-O0 -g3'
PKG_CONFIG_PATH=:/usr/lib64/pkgconfig:/usr/share/pkgconfig'
Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
JSON LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES
NATIVE_COMP NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3
THREADS TIFF TOOLKIT_SCROLL_BARS WEBP X11 XDBE XIM XINPUT2 XPM GTK3 ZLIB
Important settings:
value of $LANG: en_US.UTF-8
value of $XMODIFIERS: @im=ibus
locale-coding-system: utf-8-unix
Major mode: Lisp Interaction
Minor modes in effect:
tooltip-mode: t
global-eldoc-mode: t
eldoc-mode: t
show-paren-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
tool-bar-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
blink-cursor-mode: t
minibuffer-regexp-mode: t
line-number-mode: t
indent-tabs-mode: t
transient-mark-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
Load-path shadows:
None found.
Features:
(shadow sort mail-extr emacsbug message mailcap yank-media puny dired
dired-loaddefs rfc822 mml mml-sec epa derived epg rfc6068 epg-config
gnus-util time-date mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums
mm-util mail-prsvr mail-utils compile text-property-search comint
ansi-osc ansi-color ring comp-run comp-common rx erc auth-source cl-seq
eieio eieio-core cl-macs password-cache json subr-x map format-spec
cl-loaddefs cl-lib erc-backend erc-networks byte-opt gv bytecomp
byte-compile erc-common erc-compat erc-loaddefs rmc iso-transl tooltip
cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type
elisp-mode mwheel term/x-win x-win term/common-win x-dnd touch-screen
tool-bar dnd fontset image regexp-opt fringe tabulated-list replace
newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar
rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock
font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq
simple cl-generic indonesian philippine cham georgian utf-8-lang
misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms
cp51932 hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese composite emoji-zwj charscript charprop case-table
epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button
loaddefs theme-loaddefs faces cus-face macroexp files window
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget keymap hashtable-print-readable backquote threads dbusbind
inotify lcms2 dynamic-setting system-font-setting font-render-setting
cairo gtk x-toolkit xinput2 x multi-tty move-toolbar
make-network-process native-compile emacs)
Memory information:
((conses 16 82762 11177) (symbols 48 9671 0) (strings 32 25958 4639)
(string-bytes 1 784755) (vectors 16 19276)
(vector-slots 8 328221 11347) (floats 8 24 28) (intervals 56 260 0)
(buffers 984 12))
[0001-5.6-Always-promote-normal-faces-in-erc-track.patch (text/x-patch, attachment)]
[0002-5.6-Cache-shortened-channel-names-in-erc-track.patch (text/x-patch, attachment)]
[0003-5.6-Add-erc-track-integration-to-erc-nicks.patch (text/x-patch, attachment)]
[Message part 7 (message/rfc822, inline)]
A version of this has been installed (perhaps prematurely) as
8e06f224a9e * Add erc-track integration to erc-nicks
Also included are some superficial changes to a few essential variables
and data structures, such as `erc-channel-users'. See etc/ERC-NEWS for
details.
Closing for now.
This bug report was last modified 217 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.