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: Sun, 11 Jun 2023 16:48:15 +0100 Message-ID: References: <428b8157-afec-03b9-f5f6-dfdd2f114131@telenet.be> Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="000000000000ecb12505fddc896b" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="4702"; 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 Sun Jun 11 17:49:18 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 1q8NJc-0000zQ-U3 for guile-devel@m.gmane-mx.org; Sun, 11 Jun 2023 17:49:17 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1q8NJL-0003xT-2g; Sun, 11 Jun 2023 11:48:59 -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 1q8NJK-0003xJ-1e for guile-devel@gnu.org; Sun, 11 Jun 2023 11:48:58 -0400 Original-Received: from mail-wr1-x430.google.com ([2a00:1450:4864:20::430]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1q8NJH-00073z-KH for guile-devel@gnu.org; Sun, 11 Jun 2023 11:48:57 -0400 Original-Received: by mail-wr1-x430.google.com with SMTP id ffacd0b85a97d-30aeee7c8a0so2496644f8f.1 for ; Sun, 11 Jun 2023 08:48:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1686498532; x=1689090532; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=kgVWJcQ10c7+nFcAz32Ybqeyy1zf1NS0ZQRncuZXOX8=; b=Y2xXg+1pwQJhZpfMMMMxqgRAnFoRmWMbmjMch46k1jHjKZWFO1zRQQr22pz2MusDoa JoZdkr8juLabvaiyVahexOEHZoqQ0qHYgHKSfvOlOKcVDksfoheGfjRooQIrCzSWFWYq Yx86DaM1b1UOOebytPjusgdWpszdRjv1+dXQtlZzQPKP1a+RQOObCZaNJTmYV/BaRuiM R1LQwNq9LcYPIzgTxvJm2sw94yGOqbflr5Tq2NSHWXaQBrOnfLFYzdhELqBD0wJMIwSR omIF48xxdZWLQaKrr8wOQLWqPPqiP791+terZdoKO1cAjtOsKPJ4gf3ljXVDbklgI9p/ AsBQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686498532; x=1689090532; 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=kgVWJcQ10c7+nFcAz32Ybqeyy1zf1NS0ZQRncuZXOX8=; b=YweFQn0+iwqQE+G9Yrs90RowmMM9Vyi9YsfuIg2qD1L/cTN+h4+XUyHJhQGMSWrcEX 4Yvh6BWB9tAcjCXY1zIspQc5m2XGwxeoeEtQ+5l9DJJRLIO58h1xmjCwzb1muOqYKr/C +xAwq7QsjjY2f1uAhDSwwdccmRzSjxsxQMymjnd/zcThjJZtWa4QWIDxHfyOPbUlHqCv k89WDbfi7KcJvJ5RhC3+Dh9PoTlfp2JaBaaQq5SCDutcG00mUn1+YzOuuyPjh4gmyfMW GulI3FaRb4OgxQum6VQoxcI/C7W/hoBnHR0xMdQ3Pznnm5IA3+Ed3bxNKpg+cxhRpyxl m68g== X-Gm-Message-State: AC+VfDzpt2IZRj45DgckhfTjsBj3sEjXYesSVV/ejnUAw81Fhvf//Dar 2nefCm81efcCfWO6bE7gALhBE8knPS+xSfw+jaU= X-Google-Smtp-Source: ACHHUZ4n1a/ZYd0vKmlgDB7KaNQMYO5+4IraeBI+jnsM/LlJfxG5s/PuxTmSbsF+UVWQUT5d03KyjEO0HvO3T30p8s4= X-Received: by 2002:adf:ed47:0:b0:30a:d9e6:7acd with SMTP id u7-20020adfed47000000b0030ad9e67acdmr3133091wro.6.1686498532174; Sun, 11 Jun 2023 08:48:52 -0700 (PDT) In-Reply-To: Received-SPF: pass client-ip=2a00:1450:4864:20::430; envelope-from=dinnyesd@gmail.com; helo=mail-wr1-x430.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:21861 Archived-At: --000000000000ecb12505fddc896b Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable 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 source > > tree. > > > > (You wrote: > > > > > If the community likes this implementation, I would be happy to > > > apply/rebase my changes onto the official repo, and then we can > 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 i= t > > 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 fro= m > > 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 ha= ve 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/, an= d > > 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 used > > 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=98= rewrite > of [the original]=E2=80=99. Maybe it's possible to rewrite something a l= ot > 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 w= rote, 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 yourself= . > > 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 > --000000000000ecb12505fddc896b Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
I've rebased my changes onto a fork of Guile'= s main branch on Github:
https://github.com/dadinn/guile/tre= e/wip-hygienic-expect

Added back the original = attributions and comments.
I've also tried to follow the bran= ch-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.

<= /div>
Not sure how to send a PR by email, but I suppose it should be ea= sy to pull, by adding my fork as an additional remote.

=
Best regards,
Daniel Dinnyes

<= br>
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
--000000000000ecb12505fddc896b--