Subject: bug#48824: 27.1; Symbol’s function definition is void: gnus-info-set-read

From: Lars Ingebrigtsen <[email-masked]>
Date: Fri, 04 Jun 2021 11:55:46 +0200

Matthew Carter <[email-masked]> writes:

> Ben Bacarisse <[email-masked]> writes:
>
>> After upgrading to 27.1 my Gnus home-grown backend fails with
>>
>>   Symbol’s function definition is void: gnus-info-set-read
>>
>> If I comment out the one use of this function I can start Gnus but, of
>> course, the maintenance of the read messages no longer works.
>>
>> The associated "getter" function (gnus-info-read) works, as does the
>> related "setter" function gnus-into-set-marks.
>
> Looks like this changed towards end of 2019 to swap from macros to
> inlined functions, and you can now use setf directly, vs a setter:
>
> https://git.savannah.gnu.org/cgit/emacs.git/tree/ChangeLog.3#n9403

Yes, the accessor macros should have been retained for backwards
compatibility (but marked as obsolete) to avoid breaking out-of-tree
code.

But that sail has shipped (since Emacs 27.1 was released without those
macros), so unfortunately all external code has to be adjusted to use
the new syntax.  Fortunately, that shouldn't be difficult -- just
rewrite calls like

(gnus-info-set-read info range)

to

(setf (gnus-info-read info) range)

There isn't going to be any further Emacs 27 releases, so we can't
reintroduce the removed setter macros, either, so I'm closing this bug
report.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no