unofficial mirror of guile-devel@gnu.org 
 help / color / mirror / Atom feed
* Import your CK macro into Guile?
@ 2012-11-09 18:35 Mark H Weaver
  2012-11-10 10:37 ` oleg
  2012-11-10 18:01 ` Ludovic Courtès
  0 siblings, 2 replies; 9+ messages in thread
From: Mark H Weaver @ 2012-11-09 18:35 UTC (permalink / raw)
  To: oleg; +Cc: guile-devel

[-- Attachment #1: Type: text/plain, Size: 456 bytes --]

Hi Oleg,

I'd like to import your CK macro into Guile.  Would you be willing to
contribute it to Guile?  If so, please respond to the list to say so.
It's small enough (15 lines) that I guess we don't need papers.

Here's what I was hoping to add.  It's slightly modified to use an
internal helper macro instead of using the "arg" trick.

If not, I guess I can reinvent the wheel easily enough, but it seems
silly to do so.

What do you think?

    Mark



[-- Attachment #2: ck.scm --]
[-- Type: text/plain, Size: 2172 bytes --]

;;; ck, an abstract machine to facilitate applicative-order macro
;;; programming

;;; Copyright (C) 2012 Free Software Foundation, Inc
;;; Copyright (C) 2009, 2011 Oleg Kiselyov
;;;
;;; This library is free software; you can redistribute it and/or
;;; modify it under the terms of the GNU Lesser General Public
;;; License as published by the Free Software Foundation; either
;;; version 3 of the License, or (at your option) any later version.
;;;
;;; This library is distributed in the hope that it will be useful,
;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
;;; Lesser General Public License for more details.
;;;
;;; You should have received a copy of the GNU Lesser General Public
;;; License along with this library; if not, write to the Free Software
;;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
;;;
;;;
;;; Originally written by Oleg Kiselyov and later contributed to Guile.
;;;
;;; Based on the CK machine introduced in:
;;;
;;; Matthias Felleisen and Daniel P. Friedman: Control operators, the
;;; SECD machine, and the lambda-calculus.  In Martin Wirsing, editor,
;;; Formal Description of Programming Concepts III, pages
;;; 193-217. Elsevier, Amsterdam, 1986.
;;; 
;;; See http://okmij.org/ftp/Scheme/macros.html#ck-macros for details.
;;; 

(define-syntax ck
  (syntax-rules (quote)
    ((ck () 'v) v)                      ; yield the value on empty stack

    ((ck (((op ...) ea ...) . s) 'v) ; re-focus on the other argument, ea
     (ck-arg s (op ... 'v) ea ...))

    ((ck s (op ea ...))                ; Focus: handling an application;
     (ck-arg s (op) ea ...))))         ; check if args are values

(define-syntax ck-arg
  (syntax-rules (quote)
    ((ck-arg s (op va ...))             ; all arguments are evaluated,
     (op s va ...))                     ; do the redex

    ((ck-arg s (op ...) 'v ea1 ...)     ; optimization when the first ea
     (ck-arg s (op ... 'v) ea1 ...))    ; was already a value

    ((ck-arg s (op ...) ea ea1 ...)     ; focus on ea, to evaluate it
     (ck (((op ...) ea1 ...) . s) ea))))

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Import your CK macro into Guile?
  2012-11-09 18:35 Import your CK macro into Guile? Mark H Weaver
@ 2012-11-10 10:37 ` oleg
  2012-11-10 18:01 ` Ludovic Courtès
  1 sibling, 0 replies; 9+ messages in thread
From: oleg @ 2012-11-10 10:37 UTC (permalink / raw)
  To: mhw; +Cc: guile-devel


Hello!

> I'd like to import your CK macro into Guile.  Would you be willing to
> contribute it to Guile?

Yes, certainly. I'm glad you found it helpful.

	Cheers,
	Oleg




^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Import your CK macro into Guile?
  2012-11-09 18:35 Import your CK macro into Guile? Mark H Weaver
  2012-11-10 10:37 ` oleg
@ 2012-11-10 18:01 ` Ludovic Courtès
  2012-11-10 19:13   ` Mark H Weaver
  1 sibling, 1 reply; 9+ messages in thread
From: Ludovic Courtès @ 2012-11-10 18:01 UTC (permalink / raw)
  To: guile-devel

Hi Mark,

Mark H Weaver <mhw@netris.org> skribis:

> I'd like to import your CK macro into Guile.  Would you be willing to
> contribute it to Guile?  If so, please respond to the list to say so.
> It's small enough (15 lines) that I guess we don't need papers.

For the record, there’s usually no paperwork involved when incorporating
third-party code like this.  It would be inappropriate to ask people who
wrote code for some unrelated external project to assign copyright to
the FSF (info "(maintain) External Libraries").

(It’s also interesting to see how the SLOC metric doesn’t work here,
given that the explanation of those 15 lines fits in several pages of
dense non-trivial technical work.  :-))

Ludo’.




^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Import your CK macro into Guile?
  2012-11-10 18:01 ` Ludovic Courtès
@ 2012-11-10 19:13   ` Mark H Weaver
  2012-11-23 23:15     ` Ludovic Courtès
  0 siblings, 1 reply; 9+ messages in thread
From: Mark H Weaver @ 2012-11-10 19:13 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guile-devel

ludo@gnu.org (Ludovic Courtès) writes:

> Mark H Weaver <mhw@netris.org> skribis:
>
>> I'd like to import your CK macro into Guile.  Would you be willing to
>> contribute it to Guile?  If so, please respond to the list to say so.
>> It's small enough (15 lines) that I guess we don't need papers.
>
> For the record, there’s usually no paperwork involved when incorporating
> third-party code like this.  It would be inappropriate to ask people who
> wrote code for some unrelated external project to assign copyright to
> the FSF (info "(maintain) External Libraries").

Apologies if I mishandled this, but the problem here is that the code
had no explicit license or copying permission notice.  If it had been
explicitly published as free software, I certainly would not have
bothered him about it.

> (It’s also interesting to see how the SLOC metric doesn’t work here,
> given that the explanation of those 15 lines fits in several pages of
> dense non-trivial technical work.  :-))

Hmm.  While that's true, I took only 15 (non-blank) lines from it.
Is that not the relevant metric?

I confess that I have much to learn on these matters, and am eager to
learn :)

     Mark



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Import your CK macro into Guile?
  2012-11-10 19:13   ` Mark H Weaver
@ 2012-11-23 23:15     ` Ludovic Courtès
  2012-11-24  1:41       ` Mark H Weaver
  0 siblings, 1 reply; 9+ messages in thread
From: Ludovic Courtès @ 2012-11-23 23:15 UTC (permalink / raw)
  To: guile-devel

Hi Mark,

Mark H Weaver <mhw@netris.org> skribis:

> Apologies if I mishandled this, but the problem here is that the code
> had no explicit license or copying permission notice.  If it had been
> explicitly published as free software, I certainly would not have
> bothered him about it.

There are still two errors in the file:

  1. There’s a line “copyright FSF”;

  2. The file says to be GPLv3+.

Could you fix that by removing the line and stating its actual license?

My guess is that Oleg Kiselyov did not bother adding a license
boilerplate that would be longer than the actual code, but that’s still
a bit embarrassing.  Is there an official statement somewhere about its
status?

Thanks,
Ludo’.




^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Import your CK macro into Guile?
  2012-11-23 23:15     ` Ludovic Courtès
@ 2012-11-24  1:41       ` Mark H Weaver
  2012-11-24 14:26         ` Ludovic Courtès
  0 siblings, 1 reply; 9+ messages in thread
From: Mark H Weaver @ 2012-11-24  1:41 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guile-devel

ludo@gnu.org (Ludovic Courtès) writes:

> Mark H Weaver <mhw@netris.org> skribis:
>
>> Apologies if I mishandled this, but the problem here is that the code
>> had no explicit license or copying permission notice.  If it had been
>> explicitly published as free software, I certainly would not have
>> bothered him about it.
>
> There are still two errors in the file:
>
>   1. There’s a line “copyright FSF”;
>
>   2. The file says to be GPLv3+.
>
> Could you fix that by removing the line and stating its actual license?
>
> My guess is that Oleg Kiselyov did not bother adding a license
> boilerplate that would be longer than the actual code, but that’s still
> a bit embarrassing.  Is there an official statement somewhere about its
> status?

As I wrote above, Oleg's code had no explicit license or copying
permission notice.  I took 15 lines of his code, which is not "legally
significant" according to my reading of the GNU maintainers guile.  I
then reworked the code to use an auxillary macro instead of the
string-literal hack.  For that reason I added the FSF copyright.  I then
sent Oleg a copy of the file that I proposed for inclusion (with the FSF
copyright and the GPLv3+ notice) and asked him if he'd be willing to
contribute it to Guile, calling his attention to the attached file.  He
agreed in a message sent to the guile-devel mailing list.

I would have handled this situation more carefully if the code was
legally significant.

What did I do wrong?

   Regards,
     Mark



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Import your CK macro into Guile?
  2012-11-24  1:41       ` Mark H Weaver
@ 2012-11-24 14:26         ` Ludovic Courtès
  2012-11-24 18:53           ` Mark H Weaver
  0 siblings, 1 reply; 9+ messages in thread
From: Ludovic Courtès @ 2012-11-24 14:26 UTC (permalink / raw)
  To: Mark H Weaver; +Cc: guile-devel

Hi,

Mark H Weaver <mhw@netris.org> skribis:

> ludo@gnu.org (Ludovic Courtès) writes:
>
>> Mark H Weaver <mhw@netris.org> skribis:
>>
>>> Apologies if I mishandled this, but the problem here is that the code
>>> had no explicit license or copying permission notice.  If it had been
>>> explicitly published as free software, I certainly would not have
>>> bothered him about it.
>>
>> There are still two errors in the file:
>>
>>   1. There’s a line “copyright FSF”;
>>
>>   2. The file says to be GPLv3+.
>>
>> Could you fix that by removing the line and stating its actual license?
>>
>> My guess is that Oleg Kiselyov did not bother adding a license
>> boilerplate that would be longer than the actual code, but that’s still
>> a bit embarrassing.  Is there an official statement somewhere about its
>> status?
>
> As I wrote above, Oleg's code had no explicit license or copying
> permission notice.  I took 15 lines of his code, which is not "legally
> significant" according to my reading of the GNU maintainers guile.  I
> then reworked the code to use an auxillary macro instead of the
> string-literal hack.  For that reason I added the FSF copyright.

OK, makes sense, since you modified it anyway (I had forgotten that.)

It just stroke me when looking at the file to see “copyright FSF” and no
copyright line for Oleg; but as you say the copyright line doesn’t mean
much here.

> I then sent Oleg a copy of the file that I proposed for inclusion
> (with the FSF copyright and the GPLv3+ notice) and asked him if he'd
> be willing to contribute it to Guile, calling his attention to the
> attached file.  He agreed in a message sent to the guile-devel mailing
> list.

I know, but “would you like to contribute it to Guile” doesn’t mean
anything in legal terms.

Thanks,
Ludo’.



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Import your CK macro into Guile?
  2012-11-24 14:26         ` Ludovic Courtès
@ 2012-11-24 18:53           ` Mark H Weaver
  2012-11-24 23:20             ` Ludovic Courtès
  0 siblings, 1 reply; 9+ messages in thread
From: Mark H Weaver @ 2012-11-24 18:53 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guile-devel

ludo@gnu.org (Ludovic Courtès) writes:

> Mark H Weaver <mhw@netris.org> skribis:
>
>> As I wrote above, Oleg's code had no explicit license or copying
>> permission notice.  I took 15 lines of his code, which is not "legally
>> significant" according to my reading of the GNU maintainers guile.  I
>> then reworked the code to use an auxillary macro instead of the
>> string-literal hack.  For that reason I added the FSF copyright.
>
> OK, makes sense, since you modified it anyway (I had forgotten that.)
>
> It just stroke me when looking at the file to see “copyright FSF” and no
> copyright line for Oleg; but as you say the copyright line doesn’t mean
> much here.

I actually did include a copyright line for Oleg, even though none was
present on his code.

  ;;; Copyright (C) 2012 Free Software Foundation, Inc
  ;;; Copyright (C) 2009, 2011 Oleg Kiselyov

2009 and 2011 are the publication dates of Oleg's code, taken from
<http://okmij.org/ftp/Scheme/macros.html#ck-macros>:

  <dt><strong>Version</strong><dt>
  <dd>The current version is 1.1, April 2011; original version: March 2009.</dd>

Please let me know if I have acted improperly, and if so, how I should
have handled this.

    Regards,
      Mark



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Import your CK macro into Guile?
  2012-11-24 18:53           ` Mark H Weaver
@ 2012-11-24 23:20             ` Ludovic Courtès
  0 siblings, 0 replies; 9+ messages in thread
From: Ludovic Courtès @ 2012-11-24 23:20 UTC (permalink / raw)
  To: Mark H Weaver; +Cc: guile-devel

Mark H Weaver <mhw@netris.org> skribis:

> ludo@gnu.org (Ludovic Courtès) writes:
>
>> Mark H Weaver <mhw@netris.org> skribis:
>>
>>> As I wrote above, Oleg's code had no explicit license or copying
>>> permission notice.  I took 15 lines of his code, which is not "legally
>>> significant" according to my reading of the GNU maintainers guile.  I
>>> then reworked the code to use an auxillary macro instead of the
>>> string-literal hack.  For that reason I added the FSF copyright.
>>
>> OK, makes sense, since you modified it anyway (I had forgotten that.)
>>
>> It just stroke me when looking at the file to see “copyright FSF” and no
>> copyright line for Oleg; but as you say the copyright line doesn’t mean
>> much here.
>
> I actually did include a copyright line for Oleg, even though none was
> present on his code.
>
>   ;;; Copyright (C) 2012 Free Software Foundation, Inc
>   ;;; Copyright (C) 2009, 2011 Oleg Kiselyov

Oh, right.

> Please let me know if I have acted improperly, and if so, how I should
> have handled this.

No I guess this is actually the best that can be done.

Thanks for bearing with me,
Ludo’.



^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2012-11-24 23:20 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-11-09 18:35 Import your CK macro into Guile? Mark H Weaver
2012-11-10 10:37 ` oleg
2012-11-10 18:01 ` Ludovic Courtès
2012-11-10 19:13   ` Mark H Weaver
2012-11-23 23:15     ` Ludovic Courtès
2012-11-24  1:41       ` Mark H Weaver
2012-11-24 14:26         ` Ludovic Courtès
2012-11-24 18:53           ` Mark H Weaver
2012-11-24 23:20             ` Ludovic Courtès

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).