From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Andrew Hyatt Newsgroups: gmane.emacs.devel Subject: Re: [NonGNU ELPA] New package: llm Date: Tue, 15 Aug 2023 01:14:55 -0400 Message-ID: References: Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="0000000000001b31ec0602ef4329" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="39901"; mail-complaints-to="usenet@ciao.gmane.io" Cc: emacs-devel@gnu.org To: rms@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Tue Aug 15 07:16:25 2023 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qVmPp-000ACT-JB for ged-emacs-devel@m.gmane-mx.org; Tue, 15 Aug 2023 07:16:25 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qVmOi-0003gF-2I; Tue, 15 Aug 2023 01:15:17 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qVmOe-0003fy-5L for emacs-devel@gnu.org; Tue, 15 Aug 2023 01:15:13 -0400 Original-Received: from mail-ed1-x52d.google.com ([2a00:1450:4864:20::52d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qVmOb-0003DR-Jl; Tue, 15 Aug 2023 01:15:11 -0400 Original-Received: by mail-ed1-x52d.google.com with SMTP id 4fb4d7f45d1cf-5234f46c6f9so6687259a12.3; Mon, 14 Aug 2023 22:15:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1692076507; x=1692681307; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=H+uMl0taA5mHjECXCZt/Zk3WX5rxSXIy62midww8wtA=; b=ncKdqCiKTwvN9d9XtomcUAS0N4VMB5SOgrsaNfxcEkvjh2uK38BJ2geQEqT5wgeHII biGzwm/kmBktQ5QcJfVF6QqJLBfrh/WDDts8cbHKxKLvvuNzXMMCokueyunZU/ChBfU0 ktZWNfQ/r9VCgV4HGemlIrPKrEunGmBpn0SPXqHXf3XmkpCBrt0DLn7GO5Y26Ird5zgs 84z1a9AMDgkX6EHEGk7Xdwxy9vL/jmCzp9s3simitEzalUkcuaO87utI+mKZiwlndysf wePSqeMEEKhPdJZ24Y1KqBLW9q+z/mC8WYZTNk+zuif/XyDaNaT2rUUf3dk3J0eXgvlN 91cQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1692076507; x=1692681307; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=H+uMl0taA5mHjECXCZt/Zk3WX5rxSXIy62midww8wtA=; b=Wfgjs+LnmtcKif7e4M/fxGS4EjrfsAzi5jIf4R6WuW2fOB45unw95UuoD1VQeH1EUg +ZQLhChn6YJ6/7iFA7i4G13WoHfw+vngnAYES9/YMg1gARNRbnK4lEno3v2GOH1i5ODe 5iGIE93K1eCahopAzHeCMvMu0MYx/GEsp9Ap3CjS5q2r86Ql1aNgVuxTznmQClF9TpiB lZ9uerm2/tmJEUE6HrA+3s33zfqxvu6AuZboXbAlS4ooEr6UQ3/Tyu1Lnc9XfdSZ9NEx BCesdz/7VapAuM2WwCxFpeiCRWRXeJsGhXBaaOmAcFOduDyqvdLv3Cohusw0/XKle3yx e9jw== X-Gm-Message-State: AOJu0YzD5SmAWkEFKQW7SMQAFT2arIKUCaw1ZitPpcl4VvkLpxZuxf5E HkhIAvyAQV9qAx5x5Y+qKR4ff0sLIDqBLbzgZ+lD/9Wzvv1FxA== X-Google-Smtp-Source: AGHT+IE3xoPr7n7Z7RZ7KCQ2BCk8Hk5WyJdPZTrt1rmIMAMZP+DU5YzrPMXFBBst+8uuQrM4iDqdTjoJDjPutykMP2M= X-Received: by 2002:a05:6402:164f:b0:523:1095:6980 with SMTP id s15-20020a056402164f00b0052310956980mr9213034edx.20.1692076506557; Mon, 14 Aug 2023 22:15:06 -0700 (PDT) In-Reply-To: Received-SPF: pass client-ip=2a00:1450:4864:20::52d; envelope-from=ahyatt@gmail.com; helo=mail-ed1-x52d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:308748 Archived-At: --0000000000001b31ec0602ef4329 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sat, Aug 12, 2023 at 9:43=E2=80=AFPM Richard Stallman wrot= e: > [[[ To any NSA and FBI agents reading my email: please consider ]]] > [[[ whether defending the US Constitution against all enemies, ]]] > [[[ foreign or domestic, requires you to follow Snowden's example. ]]] > > > What you are saying is consistent with the GNU coding standard. > However, I > > think any message about this would be annoying, > > I am sure it would be a little annoying. But assuming the user can > type SPC and move on from that message, the annoyance will be quite > little. > > personally, and would > be a > > deterrent for clients to use this library. > > If the library is quite useful I doubt anyone would be deterred. > If anyone minded it the message enough to stop using the package, perse > could > edit this out of the code. > > This issue is an example of those where two different values are > pertinent. There is convenience, which counts but is superficial. > And there is the purpose of the GNU system, which for 40 years has led > the fight against injustice in software. That value is deep and, in the > long term, the most important value of all. > > When they conflict in a specific practical matter, there is always > pressure to prioritize convenience. But that is not wise. > The right approach is to look for a ocmpromise which serves both > goals. I am sure we can find one here. > > I suggested showing the message once a day, because that is what first > occurred to me. But there are lots of ways to vary the details. > Here's an idea. For each language model, it could diisplay the > message the first, second, fifth, tenth, and after that every tenth > time the user starts that mode. With this, the frequency of little > annoyance will diminish soon, but the point will not be forgotten. > Is there anything else in emacs that does something similar? I'd like to look at how other modules do the same thing and how they communicate things to the user. I believe we can output something, but at least some of the LLM calls are asynchronous, and, as a library, even when not async, we have no idea about the UI context we're in. Suddenly throwing up a window in a function that has no side-effects seems unfriendly to clients of the library. Perhaps we could just use the "warn" function, which is more in line with what might be expected from a library. And the user can suppress the warning if needed. > You made suggestions for how to exclude more code from Emacs itself, > and support for obscure language models we probably should exclude. > But there is no need to exclude the support for the well-known ones, > as I've explained. > > And we can do better than that! We can educate the users about what > is wrong with those systems -- something that the media hysteria fails > to mention at all. That is important -- let's use Emacs for it! > > All implementations can then separately be made available on some other > > package library not associated with GNU. In this scenario, I wouldn'= t > have > > warnings on those implementations, just as the many llm-based package= s > on > > various alternative ELPAs do not have warnings today. > > They ought to show warnings -- the issue is exactly the same. > > We should not slide quietly into acceptance and normalization of a new > systematic injustice. Opposing it is our job. > I don't doubt that or disagree, I'd just rather us oppose it in documentation or code comments, not during runtime. The other packages aren't under GNU control, and the authors may have different philosophies. It would be unfortunate if that worked out to the advantage of users, who have for whatever reason chosen to use a LLM provider being well aware that it is not a free system. I'm curious what others think. > > -- > Dr Richard Stallman (https://stallman.org) > Chief GNUisance of the GNU Project (https://gnu.org) > Founder, Free Software Foundation (https://fsf.org) > Internet Hall-of-Famer (https://internethalloffame.org) > > > --0000000000001b31ec0602ef4329 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
On Sat, Aug 12, 2023 at 9:43=E2=80=AFPM R= ichard Stallman <rms@gnu.org> wrot= e:
[[[ To any NSA and FBI agents reading my email: please consid= er=C2=A0 =C2=A0 ]]]
[[[ whether defending the US Constitution against all enemies,=C2=A0 =C2=A0= =C2=A0]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]<= br>
=C2=A0 > What you are saying is consistent with the GNU coding standard.= =C2=A0 However, I
=C2=A0 > think any message about this would be annoying,

I am sure it would be a little annoying.=C2=A0 But assuming the user can type SPC and move on from that message, the annoyance will be quite
little.

=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 personally, and would be a
=C2=A0 > deterrent for clients to use this library.

If the library is quite useful I doubt anyone would be deterred.
If anyone minded it the message enough to stop using the package, perse cou= ld
edit this out of the code.

This issue is an example of those where two different values are
pertinent.=C2=A0 There is convenience, which counts but is superficial.
And there is the purpose of the GNU system, which for 40 years has led
the fight against injustice in software.=C2=A0 That value is deep and, in t= he
long term, the most important value of all.

When they conflict in a specific practical matter, there is always
pressure to prioritize convenience.=C2=A0 But that is not wise.
The right approach is to look for a ocmpromise which serves both
goals.=C2=A0 I am sure we can find one here.

I suggested showing the message once a day, because that is what first
occurred to me.=C2=A0 But there are lots of ways to vary the details.
Here's an idea.=C2=A0 For each language model, it could diisplay the message the first, second, fifth, tenth, and after that every tenth
time the user starts that mode.=C2=A0 With this, the frequency of little annoyance will diminish soon, but the point will not be forgotten.

Is there anything else in emacs that does somet= hing similar?=C2=A0 I'd like to look at how other modules do the same t= hing and how they communicate things to the user.

= I believe we can output something, but at least some of the LLM calls are a= synchronous, and, as a library, even when not async, we have no idea about = the=C2=A0UI context we're in.=C2=A0 Suddenly throwing up a window in a = function that has no side-effects seems unfriendly to clients of the librar= y.=C2=A0 Perhaps we could just use the "warn" function, which is = more in line with what might be expected from a library.=C2=A0 And the user= can suppress the warning if needed.
=C2=A0
You made suggestions for how to exclude more code from Emacs itself,
and support for obscure language models we probably should exclude.
But there is no need to exclude the support for the well-known ones,
as I've explained.

And we can do better than that!=C2=A0 We can educate the users about what is wrong with those systems -- something that the media hysteria fails
to mention at all.=C2=A0 That is important -- let's use Emacs for it!

=C2=A0 > All implementations can then separately be made available on so= me other
=C2=A0 > package library not associated with GNU.=C2=A0 In this scenario= , I wouldn't have
=C2=A0 > warnings on those implementations, just as the many llm-based p= ackages on
=C2=A0 > various alternative ELPAs do not have warnings today.

They ought to show warnings -- the issue is exactly the same.

We should not slide quietly into acceptance and normalization of a new
systematic injustice.=C2=A0 Opposing it is our job.
I don't doubt that or disagree, I'd just rather us opp= ose it in documentation or code comments, not during runtime.=C2=A0 The oth= er packages aren't under GNU control, and the authors may have differen= t philosophies.=C2=A0 It would be unfortunate if that worked out to the adv= antage of users, who have for whatever reason chosen to use a LLM provider = being well aware that it is not a free system.=C2=A0 I'm curious what o= thers think.
=C2=A0

--
Dr Richard Stallman (https://stallman.org)
Chief GNUisance of the GNU Project (https://gnu.org)
Founder, Free Software Foundation (https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)


--0000000000001b31ec0602ef4329--