Subject: bug#69536: 30.0.50; Runtime error happens with Tamago input method after recent change with obarry

From: Eli Zaretskii <[email-masked]>
Date: Mon, 04 Mar 2024 14:20:09 +0200

tags 69536 notabug
thanks

> Cc: [email-masked]
> Date: Mon, 04 Mar 2024 15:04:31 +0900 (JST)
> From: Yasuhiro Kimura <[email-masked]>
> 
> Hello,
> 
> I use Emacs on FreeBSD. To install Emacs I use FreeBSD Ports
> Collection. In FreeBSD Ports Collection there are two versions of
> Emacs. One is "editors/emacs", latest release version, and the other
> is "editors/emacs-devel", shapshot from master branch of Emacs git
> repository. And I use the latter.
> 
> To input non-ascii characters I also use Tamago input method. In
> FreeBSD Ports Collection source code used by Tamago port
> (editors/tamago) is maintained by the maintainer of the port in
> following repository.
> 
> https://github.com/hrs-allbsd/tamago/tree/freebsd
> 
> Last Saturday "editors/emacs-devel" was updated from commit
> 4b89fb08bdd (commited at Fri Feb 16 22:17:57 2024 +0800) to commit
> 8b96503b6e8 (commited at Fri Mar 1 18:58:44 2024 +0100). And after
> that runtime error happens as following when Tamago is invoked by
> typing 'C-\'.
> 
> ----------------------------------------------------------------------
> Debugger entered--Lisp error: (wrong-type-argument obarrayp [nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil ...])
>   intern("　" [nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil ...])

See this NEWS entry:

  *** New obarray type.
  Obarrays are now represented by an opaque type instead of using vectors.
  They are created by 'obarray-make' and manage their internal storage
  automatically, which means that the size parameter to 'obarray-make' can
  safely be omitted.  That is, they do not become slower as they fill up.

  The old vector representation is still accepted by functions operating
  on obarrays, but 'obarrayp' only returns t for obarray objects.
  'type-of' now returns 'obarray' for obarray objects.

  Old code which (incorrectly) created "obarrays" as Lisp vectors filled
  with something other than 0, as in '(make-vector N nil)', will no longer
  work, and should be rewritten to use 'obarray-make'.  Alternatively, you
  can fill the vector with 0.

IOW, the Tamago input method uses code which will no longer work with
Emacs 30, and it needs to be updated according to the above NEWS
entry.  Please communicate that to the Tamago developers.

This is not an Emacs bug.