From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Newsgroups: gmane.lisp.guile.user Subject: Re: re-writing algorithms in Guile Date: Tue, 29 Jun 2021 16:20:59 +0200 Message-ID: <20210629142059.GA12503@tuxteam.de> References: <82e31aeb-45ed-56f3-4b7f-8adeb8943c98@posteo.de> <33e84ca0925be2b0ee7d04e0e2c433bdee3e1911.camel@planete-kraus.eu> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="6TrnltStXW4iwmi0" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="16694"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mutt/1.5.21 (2010-09-15) Cc: "guile-user@gnu.org" To: Nate Rosenbloom Original-X-From: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Tue Jun 29 16:22:09 2021 Return-path: Envelope-to: guile-user@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 1lyEcp-00041N-BN for guile-user@m.gmane-mx.org; Tue, 29 Jun 2021 16:22:07 +0200 Original-Received: from localhost ([::1]:60038 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lyEcn-0002RO-BW for guile-user@m.gmane-mx.org; Tue, 29 Jun 2021 10:22:05 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:53302) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lyEbr-0002KU-Ea for guile-user@gnu.org; Tue, 29 Jun 2021 10:21:07 -0400 Original-Received: from mail.tuxteam.de ([5.199.139.25]:43273) by eggs.gnu.org with esmtps (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.90_1) (envelope-from ) id 1lyEbm-0004GQ-TT for guile-user@gnu.org; Tue, 29 Jun 2021 10:21:07 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=tuxteam.de; s=mail; h=From:In-Reply-To:Content-Type:MIME-Version:References:Message-ID:Subject:Cc:To:Date; bh=fPJNf/Lt4MTHaCzmdBwgsSELsWBQUvR1C9nN60URimA=; b=YoBsIj9WUBl7od7eGSTZPFtHcgyCMMDgEfLOJvxZ5ZR3ZJu0ZY/8ozIA2WEdWeQ32WdqWefHMChjydAiAza4INLw0Q8Wt/GWD66AeusDBFBIssI+pimDXWWrJOxRIYfx7LJm0SSQqV5kWZE0yrW+JHo1eoHSIE4Czs/VYHDDSBIjD3ov66mz1LF3iJ4TsJxjdTmzfWo/q85sFMyaSygngdv7nmbUsVfb4oQmW3LzUueoOdgFS/T0P786r5nEgVQXz7Ya5qK18x245I7Z/L1MzkyniwG1NXRCKPWjueoz96jX98P7WbhFNdG1WnacWMGJYiIIvKIO6SthfGTFf4+qxg==; Original-Received: from tomas by mail.tuxteam.de with local (Exim 4.80) (envelope-from ) id 1lyEbj-0003q0-Kh; Tue, 29 Jun 2021 16:20:59 +0200 Content-Disposition: inline In-Reply-To: Received-SPF: pass client-ip=5.199.139.25; envelope-from=tomas@tuxteam.de; helo=mail.tuxteam.de 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, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guile-user@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: General Guile related discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Original-Sender: "guile-user" Xref: news.gmane.io gmane.lisp.guile.user:17633 Archived-At: --6TrnltStXW4iwmi0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Jun 29, 2021 at 01:52:56PM +0000, Nate Rosenbloom wrote: >=20 > > This reason is not stated in the Stack Exchange post, and I believe > > it=E2=80=99s inaccurate (although, I am not a lawyer either). I think t= he > > reason is that you are reading the original implementation to write > > your own, so you are some kind of a compiler, or translator (as for > > human spoken languages). As such, what you write is mostly the other > > person=E2=80=99s work, so you should not claim copyright about it. >=20 > Sorry, I should have been more specific, the rewritten algorithm would no= t be the same, but it would be a derivative work and still covered by copyr= ight of the original work. I think the legal concept of "derivative work" is far more complex than we'd all like. See [1] to get an idea. With the caveat that I'm not a lawyer (heh), I think the "red line" lies between those two extremes: (a) you read the original, understand the algorithm and write your program based on this understanding. Best if you forget details like variable naming, program structure, etc. Only the "pure" algorithm survives, and (b) you translate the program line by line (although that would be pretty hard between C and, say, idiomatic Scheme). (a) is almost certainly not a derivative work, while (b) would be, most probably. To make sure you can cleanly /prove/ you did (a), some do what is called a "clean room implementation". Fred looks at the original program and tells Gina "how it works", and Gina implements the new one. Cheers [1] https://copyleft.org/guide/comprehensive-gpl-guidech5.html - t --6TrnltStXW4iwmi0 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: Digital signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iEYEARECAAYFAmDbLEsACgkQBcgs9XrR2kYFIwCff53K5K3Vy9rFcOPpLE4b4O2j 2k0Anj5siJKozGqUG3FCZcB+TEhgtQtx =6Z6h -----END PGP SIGNATURE----- --6TrnltStXW4iwmi0--