Subject: Re: bug#71367: 30.0.50; ELPA package breadcrumb causes Emacs freeze when editing json file

From: Eli Zaretskii <[email-masked]>
Date: Thu, 06 Jun 2024 16:37:26 +0300

> From: João Távora <[email-masked]>
> Date: Thu, 6 Jun 2024 14:00:20 +0100
> Cc: [email-masked], [email-masked], [email-masked], [email-masked]
> 
> On Thu, Jun 6, 2024 at 1:08 PM Eli Zaretskii <[email-masked]> wrote:
> 
> > I don't see why using make-vector and vconcat, two existing
> > primitives, would qualify as implementing something more general than
> > what is needed here.
> 
> If someone uses those two primitives in the context of that
> particular  algorithm, they'll likely to keep track of the capacity of
> the vector saying how many things fit and the size counting how many
> things are already there. You'll increment size when adding things
> pushing and enlarge/reallocate when  size = capacity. By then you'll
> have "open coded" VECTOR-PUSH-EXTEND or C++'s std::vector::push_back
> or whatever your preferred language calls it.

I understand all that.  My point is that, given how little we use
vectors in our Lisp code, having to implement that in one or two
places is not a big deal, and doesn't necessarily mean we need a
general-purpose primitive.