From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Daniel Dinnyes Newsgroups: gmane.lisp.guile.devel Subject: Re: Hygienic rewrite of (ice-9 expect) Date: Mon, 19 Jun 2023 00:37:28 +0100 Message-ID: References: <428b8157-afec-03b9-f5f6-dfdd2f114131@telenet.be> Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="000000000000e1514f05fe6fe88f" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="2008"; mail-complaints-to="usenet@ciao.gmane.io" Cc: guile-devel@gnu.org To: Maxime Devos Original-X-From: guile-devel-bounces+guile-devel=m.gmane-mx.org@gnu.org Mon Jun 19 01:38:28 2023 Return-path: Envelope-to: guile-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 1qB1yW-0000KY-4M for guile-devel@m.gmane-mx.org; Mon, 19 Jun 2023 01:38:28 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qB1yG-00027F-7e; Sun, 18 Jun 2023 19:38:12 -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 1qB1yE-000272-Et for guile-devel@gnu.org; Sun, 18 Jun 2023 19:38:10 -0400 Original-Received: from mail-wr1-x42c.google.com ([2a00:1450:4864:20::42c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qB1yB-0004mf-VB for guile-devel@gnu.org; Sun, 18 Jun 2023 19:38:10 -0400 Original-Received: by mail-wr1-x42c.google.com with SMTP id ffacd0b85a97d-31129591288so1187258f8f.1 for ; Sun, 18 Jun 2023 16:38:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1687131486; x=1689723486; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=5CDmCDBnDNpnuyQJmnXt6onZLTlzln3xvKt5AJo8yvw=; b=ZLHFv9OfVIrQm6XKuTQdp4DJdXIWG0D2ZGVGW0I+grTek3ekIdCl1q8tgRmTLPcvO6 GtP1cLDGBziEuqIMaKX8NMPDE3IsbyOsTjFC4NbbQ7/1+OhRqocd7P7YlxfRg6pZbXDD 5AbFD00tP8kCs6aB5DqfYhHvNZywujE7i7EpbkeaWaTPjo7p0EOS6s5xFhTxKExvRrU1 srOhSfVVy4RZlyBQmMqUTXQDo9xNOGMjf/zuyMfQbKhx86trcm6NkH9GFe7h/5CLrqg9 VaHFleOR/FMamzE2H+JrsqezChvcByIzuCAHLGrh4/aaY5y9ClPamnZSShV232lxyfIq i70g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687131486; x=1689723486; 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=5CDmCDBnDNpnuyQJmnXt6onZLTlzln3xvKt5AJo8yvw=; b=BmQMhuYlL/kfcEKykJIu686zW11WDS/dZVM7e2pIqVCbotkAgTeA8VAVZWTo6rNghZ 0JU6lUGs1/k1cM8HI5H4N8J7fkh0iJioTW36VpCN5HHzCXwfaDd7xWINB3KwwJfBwda2 ZtCvQdlXCoV61AtsXXU4pvZCFdo/MRVDHIZUGd3ya5RahGNodUyiTw3mgQCPFmuqrqdU R4UMaGZWPDXNHKsK0pH5wHhz/+3SoqgLa3K6AruM067pHgZNvdJ08aOt6iOzxkDuK5tf uhpzBKa8oWy1IiFG+wQA0TpkMqxTDwocal3mPEZnoXIfQd/NpAJuwPsRNNb3OjMhn6w4 OOJA== X-Gm-Message-State: AC+VfDzoYAimH7IqGYib00McmKd04ZiONqfpvCnbbRo//OqTru4aFf4R wDT4HrHAKK4c9vvCV6EKe5jzc4V4G7YpEVn929A= X-Google-Smtp-Source: ACHHUZ5eGR3fBEChFCYIIIug++7WZcvmgqb3VUk4ARI+IumWRziI17U52rqvft0+pxkIXZRPrP59CtrVIvmvkTrOLuA= X-Received: by 2002:adf:dcc2:0:b0:306:2d15:fc35 with SMTP id x2-20020adfdcc2000000b003062d15fc35mr5276516wrm.37.1687131485457; Sun, 18 Jun 2023 16:38:05 -0700 (PDT) In-Reply-To: Received-SPF: pass client-ip=2a00:1450:4864:20::42c; envelope-from=dinnyesd@gmail.com; helo=mail-wr1-x42c.google.com X-Spam_score_int: -10 X-Spam_score: -1.1 X-Spam_bar: - X-Spam_report: (-1.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, FREEMAIL_REPLY=1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane-mx.org@gnu.org Original-Sender: guile-devel-bounces+guile-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.lisp.guile.devel:21865 Archived-At: --000000000000e1514f05fe6fe88f Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable I have to apologise for the massive hatched-job I did with that "rebase"! := P Some references to my own modules were left in, other variables mixed up, etc. I think it's in better shape now. Checked that tests run at least! It's the same feature branch URL ... but I've force pushed it! ;) Best regards, Daniel Dinnyes On Sun, 11 Jun 2023 at 16:48, Daniel Dinnyes wrote: > I've rebased my changes onto a fork of Guile's main branch on Github: > https://github.com/dadinn/guile/tree/wip-hygienic-expect > > Added back the original attributions and comments. > I've also tried to follow the branch-naming conventions. =F0=9F=98=89 > > Also, I've added a module ice-9/expect-tests for some comprehensive tests= . > Wasn't sure where to place it, and how to integrate into the existing > test-suite. > > Not sure how to send a PR by email, but I suppose it should be easy to > pull, by adding my fork as an additional remote. > > Best regards, > Daniel Dinnyes > > > On Mon, 29 May 2023 at 22:33, Maxime Devos wrote= : > >> >p 29-05-2023 om 03:40 schreef Daniel Dinnyes: >> > Thanks for the reply. >> > >> > On Sun, 28 May 2023 at 14:39, Maxime Devos > > > wrote: >> > >> > I think this would gather more replies if: >> > >> > 1. It is sent as a patch that can be applied to the Guile sourc= e >> > tree. >> > >> > (You wrote: >> > >> > > If the community likes this implementation, I would be happy t= o >> > > apply/rebase my changes onto the official repo, and then we ca= n >> go >> > > from there! >> > >> > but to determine whether I'm happy with it, it would be convenient >> if >> > this were a proper patch.) >> > (I'm not actually reviewing Guile stuff at the moment, but I find = it >> > likely that some others might hold the same view.) >> > >> > >> > Regarding patches, I think I've read somewhere that GNU wants >> > contributions in some different format, >> > than just URLs to pull-able GIT repos. Could you share with me some >> > guide how to do such patches, >> > or what format they are needed? >> >> Format: the result of 'git send-email', or 'git format-patch + attach >> the patch as an attachment'. I've heard that the guide at >> for 'git send-email' is good. >> >> Still, setting up a fork + sending a PR (by e-mail), while not the most >> preferred format, would still be pretty good (=E2=80=98git diff=E2=80=99= can then be >> used!). >> >> > I am assuming this is >> the >> > repo of current guile tree, onto which to apply my changes. >> >> Yes. >> >> > Onto which branch? >> >> The branch named 'main'. >> >> > Would it possible to fork the repo on savannah, and then raise a PR >> from >> > there instead of patches? >> >> Savannah doesn't have a notion of 'forks' AFAIK. (Emphasis on the =E2=80= =98I >> don't know=E2=80=99 in =E2=80=98AFAIK=E2=80=99, maybe it actually does h= ave them in some form.) >> >> However, you can do a PR =E2=80=98manually=E2=80=99 by setting up a fork= of the repo at >> some random hosting site of your choice, pushing some commits there, and >> sending a (free-form) e-mail to guile-devel@gnu.org with a message >> containing information on where to find the repository and which >> branch/commit. >> >> (You don't need PR / fork buttons to do PRs and forks!) >> >> > Also, I've tried to create account on savannah, but it keeps getting >> > deleted. >> > What would you recommend I do to ensure my account doesn't get removed= ? >> >> I don't have clue; I only fetch from savannah, I don't have an account >> there. >> >> > [...] >> > I am not sure I would agree with your assessment about /illegality/, >> and >> > the /derivative work/ categorization. >> > Even though these macros happen to expand to something similar as the >> > original ice-9 implementation, >> > the code itself is quite significantly different! If this is to be use= d >> > in ice-9, it would have to completely >> > replace the original expect.scm file, as nothing was copy/pasted from >> > there. The fact that parameter binding >> > names are the same is necessary for backwards compatibility, so those >> > wouldn't count even under the US laws >> > . >> >> I assumed it is a derivative work because you presented it as a =E2=80= =98rewrite >> of [the original]=E2=80=99. Maybe it's possible to rewrite something a = lot >> until its no longer a derivative work (I don't know if that's possible), >> but by default I'd assume that rewrites are derivative works. >> >> I didn't use =E2=80=98same procedure names=E2=80=99 as a reason (as you = wrote, those >> aren't a problem). >> >> > On second thought, I am wrong! The expect-select helper function looks >> > like a direct copy-paste job... little naughty me! >> >> TBC, I ascribe no guilt. The thing is that I've noticed in the past >> that people often use the GPL without knowing what that entails >> precisely, which can have unintended consequences, like e.g. >> unintentionally licensing something as GPLv1+ instead of GPLv3+ (or >> GPLv3+ instead of GPLv3, but that mistake is actually pretty convenient >> for distributions :P). >> >> (Also, Guile relies on the (L)GPL as a form of protection against some >> forms of malice, so I think it's important that we also follow the >> (L)GPL terms itself.) >> >> > Nevertheless, I would be happy to add the necessary notices if that is >> > required. >> > Also, IIRC there would be another copyright assignment administrative >> work >> > somewhere down the line? >> >> The copyright assignment used to be required, but nowadays its optional. >> Still, it does appear to be preferred. You would get an e-mail by a >> Guile maintainer with more info, it's not something you initiate yoursel= f. >> >> The page https://www.fsf.org/licensing/contributor-faq sort-of implies >> the opposite, but IIRC there is another page somewhere or gnu.org that >> doesn't; I don't know what's up with that. (Either way, I'd think that >> things will work out in the end.) >> >> Best regards, >> Maxime Devos >> > --000000000000e1514f05fe6fe88f Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
I have to apologise for the massive hatched-job I did= with that "rebase"! :P
Some references to my own m= odules were left in, other variables mixed up,
etc.
I think it's in better shape now. Checked that tests run at= least!
It's the same feature branch URL... b= ut I've force pushed it! ;)

Best regards,
D= aniel Dinnyes

On Sun, 11 Jun 2023 at 16:48, Daniel Dinnyes <dinnyesd@gmail.com= > wrote:
I've rebased my changes onto a fork of Guile's ma= in branch on Github:
https://github.com/dadinn/guile/tree/wi= p-hygienic-expect

Added back the original attr= ibutions and comments.
I've also tried to follow the branch-n= aming conventions. =F0=9F=98=89

Also, I've add= ed a module ice-9/expect-tests= for some comprehensive tests.
Wasn't sure where to place it,= and how to integrate into the existing test-suite.

Not sure how to send a PR by email, but I suppose it should be easy t= o pull, by adding my fork as an additional remote.

Best regards,
Daniel Dinnyes


<= div class=3D"gmail_quote">
On Mon, 29 = May 2023 at 22:33, Maxime Devos <maximedevos@telenet.be> wrote:
=C2=A0>p 29-05-2023 om 03:40 = schreef Daniel Dinnyes:
> Thanks for the reply.
>
> On Sun, 28 May 2023 at 14:39, Maxime Devos <maximedevos@telenet.be
> <mailto:maximedevos@telenet.be>> wrote:
>
>=C2=A0 =C2=A0 =C2=A0I think this would gather more replies if:
>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 1. It is sent as a patch that can be applie= d to the Guile source
>=C2=A0 =C2=A0 =C2=A0tree.
>
>=C2=A0 =C2=A0 =C2=A0(You wrote:
>
>=C2=A0 =C2=A0 =C2=A0 =C2=A0> If the community likes this implementat= ion, I would be happy to
>=C2=A0 =C2=A0 =C2=A0 =C2=A0> apply/rebase my changes onto the offici= al repo, and then we can go
>=C2=A0 =C2=A0 =C2=A0 =C2=A0> from there!
>
>=C2=A0 =C2=A0 =C2=A0but to determine whether I'm happy with it, it = would be convenient if
>=C2=A0 =C2=A0 =C2=A0this were a proper patch.)
>=C2=A0 =C2=A0 =C2=A0(I'm not actually reviewing Guile stuff at the = moment, but I find it
>=C2=A0 =C2=A0 =C2=A0likely that some others might hold the same view.)<= br> >
>
> Regarding patches, I think I've read somewhere that GNU wants
> contributions in some different format,
> than just URLs to pull-able GIT repos. Could you share with me some > guide how to do such patches,
> or what format they are needed?

Format: the result of 'git send-email', or 'git format-patch + = attach
the patch as an attachment'.=C2=A0 I've heard that the guide at <https://git-send-email.io/> for 'git send-email' is goo= d.

Still, setting up a fork + sending a PR (by e-mail), while not the most preferred format, would still be pretty good (=E2=80=98git diff=E2=80=99 ca= n then be used!).

> I am assuming this <https://git.savannah.gnu.org= /cgit/guile.git/> is the
> repo of current guile tree, onto which to apply my changes.

Yes.

> Onto which branch?

The branch named 'main'.

> Would it possible to fork the repo on savannah, and then raise a PR fr= om
> there instead of patches?

Savannah doesn't have a notion of 'forks' AFAIK. (Emphasis on t= he =E2=80=98I
don't know=E2=80=99 in =E2=80=98AFAIK=E2=80=99, maybe it actually does = have them in some form.)

However, you can do a PR =E2=80=98manually=E2=80=99 by setting up a fork of= the repo at
some random hosting site of your choice, pushing some commits there, and sending a (free-form) e-mail to guile-devel@gnu.org with a message
containing information on where to find the repository and which
branch/commit.

(You don't need PR / fork buttons to do PRs and forks!)

> Also, I've tried to create account on savannah, but it keeps getti= ng
> deleted.
> What would you recommend I do to ensure my account doesn't get rem= oved?

I don't have clue; I only fetch from savannah, I don't have an acco= unt
there.

> [...]
> I am not sure I would agree with your assessment about /illegality/, a= nd
> the /derivative work/ categorization.
> Even though these macros happen to expand to something similar as the =
> original ice-9 implementation,
> the code itself is quite significantly different! If this is to be use= d
> in ice-9, it would have to completely
> replace the original expect.scm file, as nothing was copy/pasted from =
> there. The fact that parameter binding
> names are the same is necessary for backwards compatibility, so those =
> wouldn't count even under the US laws
> <https://www.bbc.co.uk/news/technology-5663908= 8>.

I assumed it is a derivative work because you presented it as a =E2=80=98re= write
of [the original]=E2=80=99.=C2=A0 Maybe it's possible to rewrite someth= ing a lot
until its no longer a derivative work (I don't know if that's possi= ble),
but by default I'd assume that rewrites are derivative works.

I didn't use =E2=80=98same procedure names=E2=80=99 as a reason (as you= wrote, those
aren't a problem).

> On second thought, I am wrong! The expect-select helper function looks=
> like a direct copy-paste job... little naughty me!

TBC, I ascribe no guilt.=C2=A0 The thing is that I've noticed in the pa= st
that people often use the GPL without knowing what that entails
precisely, which can have unintended consequences, like e.g.
unintentionally licensing something as GPLv1+ instead of GPLv3+ (or
GPLv3+ instead of GPLv3, but that mistake is actually pretty convenient for distributions :P).

(Also, Guile relies on the (L)GPL as a form of protection against some
forms of malice, so I think it's important that we also follow the
(L)GPL terms itself.)

> Nevertheless, I would be happy to add the necessary notices if that is=
> required.
> Also, IIRC there would be another copyright assignment administrative = work
> somewhere down the line?

The copyright assignment used to be required, but nowadays its optional. =C2=A0 Still, it does appear to be preferred.=C2=A0 You would get an e-mail= by a
Guile maintainer with more info, it's not something you initiate yourse= lf.

The page https://www.fsf.org/licensing/contributor-faq<= /a> sort-of implies
the opposite, but IIRC there is another page somewhere or
gnu.org that
doesn't; I don't know what's up with that.=C2=A0 (Either way, I= 'd think that
things will work out in the end.)

Best regards,
Maxime Devos
--000000000000e1514f05fe6fe88f--