Subject: bug#52740: 12.3 produces in NS variant of GNU Emacs 28.0.90 a Lisp error: (wrong-number-of-arguments #<subr string-match> 4)

From: Tassilo Horn <[email-masked]>
Date: Wed, 22 Dec 2021 21:57:36 +0100

Peter Dyballa <[email-masked]> writes:

Hi Peter,

> AUCTeX complains like this:
>
> 	Debugger entered--Lisp error: (wrong-number-of-arguments #<subr string-match> 4)
> 	  string-match("Form" "document" nil t)

`string-match' has 2 mandatory and 2 optional args in my current emacs
29/master but only 2 mandatory plus one optional argument in emacs
27/28.

> This instance of GNU Emacs is compiled by me. AUCTeX is installed via
> MacPorts, and when I launch MacPorts' GNU Emacs 29 (from GIT) it does
> not complain. The file emacs.desktop-ns exists, in two different
> directories, for both versions. The contain exactly the same block of
> information about the file. For HNU Emacs 28.0.90 this block ends at
> character position 5766.

I don't know what an emacs.desktop-ns file is but it looks like your
AUCTeX version was compiled with emacs 29 where string-match has up to 4
arguments whereas your emacs 28 version has at most 3, hence the error.

In emacs 29, string-match-p will be compiled to the 4-arg version of
string-match.  Up to emacs 28, that's different.

In any case: you can run byte-code produced by older emacs versions in
newer emacs versions but not the other way round.  I'm closing this
issue.

Bye,
Tassilo