From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Tim Meehan Newsgroups: gmane.lisp.guile.user Subject: Re: re-writing algorithms in Guile Date: Tue, 29 Jun 2021 18:48:56 -0500 Message-ID: References: <82e31aeb-45ed-56f3-4b7f-8adeb8943c98@posteo.de> <33e84ca0925be2b0ee7d04e0e2c433bdee3e1911.camel@planete-kraus.eu> <20210629142059.GA12503@tuxteam.de> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="28590"; mail-complaints-to="usenet@ciao.gmane.io" Cc: "guile-user@gnu.org" Original-X-From: guile-user-bounces+guile-user=m.gmane-mx.org@gnu.org Wed Jun 30 01:49:23 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 1lyNTm-0007Em-Hr for guile-user@m.gmane-mx.org; Wed, 30 Jun 2021 01:49:22 +0200 Original-Received: from localhost ([::1]:57240 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lyNTl-0001qD-3O for guile-user@m.gmane-mx.org; Tue, 29 Jun 2021 19:49:21 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:58074) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lyNTb-0001py-K1 for guile-user@gnu.org; Tue, 29 Jun 2021 19:49:11 -0400 Original-Received: from mail-qk1-x732.google.com ([2607:f8b0:4864:20::732]:39712) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lyNTZ-0006G6-PS for guile-user@gnu.org; Tue, 29 Jun 2021 19:49:11 -0400 Original-Received: by mail-qk1-x732.google.com with SMTP id j184so588813qkd.6 for ; Tue, 29 Jun 2021 16:49:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:cc; bh=6eYJiTQa5APXAPICahDLCdV6iTf2Bk7EgL535rG7Dj8=; b=mzvXllsbdpUstvA8KiJgPKF2ggbURpDtR28ckspHbZMqD/7wrWReXr5UNmzkv2+lOv bPqm9vqE+hTwlB1XnWltWfur0vce+7wzjtoLzBj7jK2p1230E2eB7gFyypHM2x1Y/m7/ VhaL43g1dFZ6/wrjhzFhlswxXdrt2wR2RfEti3+SzblmNtAWJedMM3YHBf933TdFz2c9 Wz9r2czPZusFNimtzrgCj6m76y+MulVuCOT+z1cxzGqW6Tf23SUs8292xesiaJRV1/HN vBA3c/FP3QlY80md/ilZ5NM2Ar40ju0160lySrZ8/VMk/kWF5xCoeKi8u8R9sNI85jbF qv0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:cc; bh=6eYJiTQa5APXAPICahDLCdV6iTf2Bk7EgL535rG7Dj8=; b=gckLWn+87VFMY8x7lvS4ts2MMQH3qQyyHjvy1fNFiC809c7o3oIUnc0vZlrtwm20X8 sHI0+qhlxXN38gAK0r4nKEakkfqD/zCziXYdocRcm7Pp+XJHfWben0hFgunJ9l1664EK pyOKfhKC6LyFbk0JN81HmjB2oWYtp+zt6hACy/sVBJugRzJYmJ7gK6Kk0QKox1YuMT8V 5V9O3fzgyIGrsjMbdwu/ytA2NHxyKQz92NI9qT93E3c1BpaSeprngD6YKEXUI57ImBDp uui/bog5zmhZZAy7TKxMDnoyuRnMgB2m32oIBphlHS6UGtibBSJ9tcr8Do8Gs9mTFAjl UFSw== X-Gm-Message-State: AOAM5327gyIvA+gSKQfGeKkfRiXCpbr+4W2eDaWnAu38k8+jshvskSMi Rv5SVFWgJSOU0yHReP5w5UnsdBzyUhHXu1/szmmIjrLbwsg= X-Google-Smtp-Source: ABdhPJwN1CYLLcWJkcwcjtheyMsGCr8nu1OOOeDgkuLeTav0iOvF4rwaBSCu0AyJS2jvgW/z8LhPQQcDwvTcGXyvddY= X-Received: by 2002:a37:9a51:: with SMTP id c78mr33205226qke.51.1625010548077; Tue, 29 Jun 2021 16:49:08 -0700 (PDT) In-Reply-To: <20210629142059.GA12503@tuxteam.de> Received-SPF: pass client-ip=2607:f8b0:4864:20::732; envelope-from=btmeehan@gmail.com; helo=mail-qk1-x732.google.com X-Spam_score_int: -4 X-Spam_score: -0.5 X-Spam_bar: / X-Spam_report: (-0.5 / 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, MALFORMED_FREEMAIL=0.498, MISSING_HEADERS=1.021, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_SBL_A=0.1 autolearn=no autolearn_force=no X-Spam_action: no action X-Content-Filtered-By: Mailman/MimeDel 2.1.23 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:17634 Archived-At: Thanks all for the input - I think I have a better understanding of derivative work. I think that I'll look for a paper on the algorithm and work from there. For the curious, the "hypothetical" code in question was from here : Since he posted it in "algorithmic" form, and I had no interest in purchasing his code to run in Matlab (since Matlab likely has something faster anyhow), I was puzzled about what I might be able to do with my pure Scheme version. On Tue, Jun 29, 2021 at 9:22 AM wrote: > On Tue, Jun 29, 2021 at 01:52:56PM +0000, Nate Rosenbloom wrote: > > > > > 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= the > > > 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. > > > > Sorry, I should have been more specific, the rewritten algorithm would > not be the same, but it would be a derivative work and still covered by > copyright 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 >