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, 29 May 2023 02:40:21 +0100 Message-ID: References: <428b8157-afec-03b9-f5f6-dfdd2f114131@telenet.be> Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="000000000000a92f8d05fccb2d23" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="4957"; 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 May 29 03:41:23 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 1q3Rsx-000176-Gl for guile-devel@m.gmane-mx.org; Mon, 29 May 2023 03:41:23 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1q3Rsi-0001fS-MK; Sun, 28 May 2023 21:41:08 -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 1q3Rsh-0001fK-0X for guile-devel@gnu.org; Sun, 28 May 2023 21:41:07 -0400 Original-Received: from mail-wr1-x431.google.com ([2a00:1450:4864:20::431]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1q3Rse-0003eg-VX for guile-devel@gnu.org; Sun, 28 May 2023 21:41:06 -0400 Original-Received: by mail-wr1-x431.google.com with SMTP id ffacd0b85a97d-30959c0dfd6so2672938f8f.3 for ; Sun, 28 May 2023 18:40:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1685324458; x=1687916458; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=gjq2qH+fL2URgDWom96EGA0i/0MlF4uN12VmcSYeaU8=; b=PEEFlCuw2PWugiAH/3DjP/Gbc7vdTGMlb/OeOEF5h8i9Ue/8B62AnFX4ALNPbY+Bqp Q9rWfX8eL7JPeSbYwhqwg+AieZljqnN6pIB2VLGzSnd5GFEBnZZLgaSVZC/Va9YIw2jS rZPGq8gO5GOHIMS+pG3apkxyh+EDjd9hOdbPv+EH6h+Pxz0yRA/1TpKGS7NrMd7SBNgL DKgGV0/7vCdXRBsdE1yNAqpSzmnWEp2HcV426wZiqQA5kaa7Zyz6WD9uLQ4B2ZwdFhgC gve3bcZq+tzl/t/Ipn6QILVD1nwcOUm+LxVIcmmx8ivdOV+qqRdoZTiLPJheNVGwcZYS AhQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685324458; x=1687916458; 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=gjq2qH+fL2URgDWom96EGA0i/0MlF4uN12VmcSYeaU8=; b=R0vG2z1MTV6tLFKn2o1oXQMmEkaa+YWz94+K9VXVjvJnaWZyvhi49jRInudJYX5Cr8 PZxVPJZR4QySmu2ISvMnuXg7uOIsEO3U+W1fe9AxsMAVq8gZ2mJeHWqYYHIpGodVSW9z WViwRqNVHOr83pLrb04snFu6UuLHjbmmSQ0RinpIZVYonZR1G8DHHGTnhZMKQ3NiTNmk aRHOzTvc+EBuYURXXAlWxZpUfLz9PUfJhMewL5AOxfKPNP4CuUAoW9YBc6kGe954FgCR 3MqF+qvq/oVbnIbtEHthm13EcmiUncPRXDzEv/OnXvTgGoyERbkzj+nQ5P1fb+XI64gQ BO/w== X-Gm-Message-State: AC+VfDwbsTCXhEiTmd3Eg0yOE4mWRXCl3elvnA795ElUYTZ9tlArVfyo B8z23xSQiwxJV8pzP8/P8uZllNmOdEDCVJ0AASA= X-Google-Smtp-Source: ACHHUZ6bifqWallvIHISkPL9Sojl2ifqVQZtwP2f74ISMyNJyC6uqijzFw/jRr2DbXVO7wEpElrj4hnYXv0Mg5tc6Vw= X-Received: by 2002:a05:6000:1a43:b0:30a:dcba:2d81 with SMTP id t3-20020a0560001a4300b0030adcba2d81mr6989671wry.38.1685324458175; Sun, 28 May 2023 18:40:58 -0700 (PDT) In-Reply-To: <428b8157-afec-03b9-f5f6-dfdd2f114131@telenet.be> Received-SPF: pass client-ip=2a00:1450:4864:20::431; envelope-from=dinnyesd@gmail.com; helo=mail-wr1-x431.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, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham 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:21838 Archived-At: --000000000000a92f8d05fccb2d23 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable 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 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? I am assuming this is the repo of current guile tree, onto which to apply my changes. Onto which branch? Would it possible to fork the repo on savannah, and then raise a PR from there instead of patches? 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? > 2. It is split into two patches: a patch that only does the hygienic > rewrite, and an additional patch that adds the new features. > > Then people who are interested in the patch for the hygiene but > don't really grok (or are uninterested in, or don't have time for) > the new features can ACK or NACK the first patch without having to > worry about the second patch, and additionally it becomes easier to > verify there are no new bugs. > No probs, would do so! > 3. You respect the LGPLv3.0. The LGPLv3.0 requires you to follow > most terms of the GPLv3.0, but you didn't follow 5(a), > 4(a) =E2=80=98keep intact all notices=E2=80=99 and 4(a) =E2=80=98giv= e all recipients a copy > of this License=E2=80=99 -- the LPGLv3 is more than only the LICENSE= file > you included; it includes parts of the GPLv3 by reference. > > Also, you only put the LGPLv3.0 text, without specifying a version > number. Then by =E2=80=986. Revised Versions of this License=E2=80= =99 of the LGPL: > > > If the Library as you received it does not specify a version number of > > the GNU Lesser General Public License, you may choose any version of > > the GNU Lesser General Public License ever published by the Free > > Software Foundation. > > you are licensing your implementation as LGPLv2.0+, but > that's illegal, because your implementation is a rewrite of Guile's > and hence most likely a derivative work of Guile 3.0, and > Guile 3.0 is LGPLv3+ licensed, not LGPLv2+. > > I didn't notice that I've added LGPL licence instead of GPL! If you look at my other code which uses this module, those are all GPLv3. It could be that I've realised that Guile itself is under LGPL? Not sure, I can't recall it! Nevertheless, this licence itself is LGPLv3, not v2! 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 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 . On second thought, I am wrong! The expect-select helper function looks like a direct copy-paste job... little naughty me! 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? Best regards, Daniel --000000000000a92f8d05fccb2d23 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Thanks for the reply.

On Sun, 2= 8 May 2023 at 14:39, Maxime Devos <maximedevos@telenet.be> wrote:
I think this would gather more replies if:

=C2=A0 1. It is sent as a patch that can be applied to the Guile source tre= e.
=C2=A0
(You wrote:

=C2=A0> If the community likes this implementation, I would be happy to<= br> =C2=A0> apply/rebase my changes onto the official repo, and then we can = go
=C2=A0> from there!

but to determine whether I'm happy with it, it would be convenient if <= br> 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 neede= d?

I am assuming this is the repo of current guile tree, onto wh= ich to apply my changes.
Onto which branch?
Would it possible to fork the repo on savannah, and then = raise a PR from there instead of patches?
Also, I've tried to= create account on savannah, but it keeps getting deleted.
What w= ould you recommend I do to ensure my account doesn't get removed?
=
=C2=A0
=C2=A0 2. It is split into two patches: a patch that only does the hygienic=
=C2=A0 =C2=A0 =C2=A0rewrite, and an additional patch that adds the new feat= ures.

=C2=A0 =C2=A0 =C2=A0Then people who are interested in the patch for the hyg= iene but
=C2=A0 =C2=A0 =C2=A0don't really grok (or are uninterested in, or don&#= 39;t have time for)
=C2=A0 =C2=A0 =C2=A0the new features can ACK or NACK the first patch withou= t having to
=C2=A0 =C2=A0 =C2=A0worry about the second patch, and additionally it becom= es easier to
=C2=A0 =C2=A0 =C2=A0verify there are no new bugs.

=
No probs, would do so!
=C2=A0
=C2=A0 3. You respect the LGPLv3.0.=C2=A0 The LGPLv3.0 requires you to foll= ow
=C2=A0 =C2=A0 =C2=A0most terms of the GPLv3.0, but you didn't follow 5(= a),
=C2=A0 =C2=A0 =C2=A04(a) =E2=80=98keep intact all notices=E2=80=99 and 4(a)= =E2=80=98give all recipients a copy
=C2=A0 =C2=A0 =C2=A0of this License=E2=80=99 -- the LPGLv3 is more than onl= y the LICENSE file
=C2=A0 =C2=A0 =C2=A0you included; it includes parts of the GPLv3 by referen= ce.

=C2=A0 =C2=A0 =C2=A0Also, you only put the LGPLv3.0 text, without specifyin= g a version
=C2=A0 =C2=A0 =C2=A0number. Then by =E2=80=986. Revised Versions of this Li= cense=E2=80=99 of the LGPL:

=C2=A0> If the Library as you received it does not specify a version num= ber of
=C2=A0> the GNU Lesser General Public License, you may choose any versio= n of
=C2=A0> the GNU Lesser General Public License ever published by the Free=
=C2=A0> Software Foundation.

=C2=A0 =C2=A0 =C2=A0you are licensing your implementation as LGPLv2.0+, but=
=C2=A0 =C2=A0 =C2=A0that's illegal, because your implementation is a re= write of Guile's
=C2=A0 =C2=A0 =C2=A0and hence most likely a derivative work of Guile 3.0, a= nd
=C2=A0 =C2=A0 =C2=A0Guile 3.0 is LGPLv3+ licensed, not LGPLv2+.


I didn't notice that I&#= 39;ve added LGPL licence instead of GPL! If you look at my other code which= uses this module,
those are all GPLv3. It could be that I&#= 39;ve realised that Guile itself is under LGPL? Not sure, I can't recal= l it!
Nevertheless, this licence itself is LGPLv3, not v2!
<= div>
I am not sure I would agree with your assessment about <= i>illegality, and the derivative work categorization.
= Even though these macros happen to expand to something similar as the origi= nal ice-9 implementation,
the code itself is quite significa= ntly different! If this is to be used in ice-9, it would have to completely=
replace the original expec= t.scm file, as nothing was copy/pasted from there. The fact that par= ameter binding
names are the same is necessary for backwards comp= atibility, so those wouldn't count even under the US laws.

On second thought, I am wrong! The e= xpect-select helper function looks like a direct copy-paste job... l= ittle naughty me!

Nevertheless, I would be happy t= o add the necessary notices if that is required.
Also, IIRC there= would be another copyright assignment administrative work
somewh= ere down the line?

Best regards,
Daniel
=C2=A0
--000000000000a92f8d05fccb2d23--