[squeak-dev] [ANN] Kernel methods license audit

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
21 messages Options
12
Reply | Threaded
Open this post in threaded view
|

[squeak-dev] [ANN] Kernel methods license audit

Pavel Krivanek
Hi all,

I've prepared current license audit of kernel methods, see:

http://comtalk.eu/public/pub/KernelImage/license/licenseAudit1.csv
http://comtalk.eu/public/pub/KernelImage/license/licenseAudit2.ods
- overview of SqueakL methods in the kernel.image (OpenOffice format)
http://comtalk.eu/public/pub/KernelImage/license/licenseAudit2.pdf
- overview of SqueakL methods in the kernel.image (PDF format)

For more information see Wiki page on the KernelImage SqueakSource repository:
http://www.squeaksource.com/KernelImage.html

We need to rewrite 332 methods.
There are some methods that have similar source to Squeak 1.1 version.
The first task is to convert them. For this task wee need two people
(or two teams):

- one will look at old and current implementation and will describe
how must be the original source changed to do the same job as the
current version. This description should be as general as possible -
no code. For example "use ZeroDivide instead of general error",
"LdInstLong was renamed to LoadLong" etc. Some descriptions are
present in the old version of license audit
(http://comtalk.eu/public/pub/KernelImage/license/license2.ods)

- the second person/team must not see the current code! It will take
the code from Squeak 1.1, will create new method and modify it as
described by the first person. We already tested this process with
Damien.

So, volunteers?

Cheers,
-- Pavel

Reply | Threaded
Open this post in threaded view
|

[squeak-dev] Re: [ANN] Kernel methods license audit

Paolo Bonzini-2

> - one will look at old and current implementation and will describe
> how must be the original source changed to do the same job as the
> current version. This description should be as general as possible -
> no code. For example "use ZeroDivide instead of general error",
> "LdInstLong was renamed to LoadLong" etc. Some descriptions are
> present in the old version of license audit
> (http://comtalk.eu/public/pub/KernelImage/license/license2.ods)

This is great work.  But, how is an accessor copyrightable?  In your pdf
I see methods like

sourceForm
     ^sourceForm

paleBlue
     ^PaleBlue

e
     ^E

isFloat
     ^true

one
     "A comment that is probably obsolete by now."
     ^1.0

These are clearly not possible to write differently; and it would be as
worse to rewrite the same code "stealing" attribution from the original
author, as it is to change the distribution license under the feet of
someone who hasn't assigned copyright papers.  It is clearly a stalemate
here unfortunately and it has to be sorted out asap.

> - the second person/team must not see the current code!

In theory they shouldn't even look at the PDF you linked...

Paolo

Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Re: [ANN] Kernel methods license audit

Pavel Krivanek
On Thu, Mar 20, 2008 at 5:29 PM, Paolo Bonzini <[hidden email]> wrote:

>
>  > - one will look at old and current implementation and will describe
>  > how must be the original source changed to do the same job as the
>  > current version. This description should be as general as possible -
>  > no code. For example "use ZeroDivide instead of general error",
>  > "LdInstLong was renamed to LoadLong" etc. Some descriptions are
>  > present in the old version of license audit
>  > (http://comtalk.eu/public/pub/KernelImage/license/license2.ods)
>
>  This is great work.  But, how is an accessor copyrightable?  In your pdf
>  I see methods like
>
>  sourceForm
>      ^sourceForm
>
>  paleBlue
>      ^PaleBlue
>
>  e
>      ^E
>
>  isFloat
>      ^true
>
>  one
>      "A comment that is probably obsolete by now."
>      ^1.0
>
>  These are clearly not possible to write differently; and it would be as
>  worse to rewrite the same code "stealing" attribution from the original
>  author, as it is to change the distribution license under the feet of
>  someone who hasn't assigned copyright papers.  It is clearly a stalemate
>  here unfortunately and it has to be sorted out asap.

Most of this simple accessors and testers are already relicensed by
Damien. He simply got the class name, the selector and the information
that this method should be accessor/tester/accessor of something. Then
he wrote the new code that probably has the same content as the
original one.

>  > - the second person/team must not see the current code!
>
>  In theory they shouldn't even look at the PDF you linked...

right, and never open Squeak, of course :-) But to be more serious, we
simply have to trust people that they will not cheat. And they should
be ready to sign it.

-- Pavel

>  Paolo
>
>

Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Re: [ANN] Kernel methods license audit

Igor Stasenko
I can help as implementor, if someone feed me with methods descriptions.

I just don't know where i can take squeak 1.1. and which VM can run it.

--
Best regards,
Igor Stasenko AKA sig.

Reply | Threaded
Open this post in threaded view
|

[squeak-dev] Re: [ANN] Kernel methods license audit

Andreas.Raab
Igor Stasenko wrote:
> I just don't know where i can take squeak 1.1. and which VM can run it.

http://ftp.squeak.org/history

Cheers,
   - Andreas


Reply | Threaded
Open this post in threaded view
|

[squeak-dev] Re: [ANN] Kernel methods license audit

Paolo Bonzini-2
In reply to this post by Pavel Krivanek
> he wrote the new code that probably has the same content as the
> original one.  [...]
 >
> we simply have to trust people that they will not cheat. And they should
> be ready to sign it.

Of course.  But the bigger problem is the first.

In the case of accessors, for example, the original contributor could
have contributed a single change to add those accessors, or these
methods could be part of a bigger change.  The first case probably is
not even copyrightable; in the second the overall changeset is
copyrightable, and I wonder if a judge would be convinced  if they were
shown the exact same source code up to the MD5 checksum.

After all saying "a method that returns instance variable foo" is not
different from saying "a method that does ^foo".  It is not talking
about an idea, the idea *is* the implementation (all this of course
holds because the "first team" does see the source code, it does not
apply if there was English documentation that the "second team" could
directly look at).

In both cases, it looks like chasing windmills; you should get clear
advice if it isn't better to just leave these simple methods aside, with
attribution to the original author.

Paolo

Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Re: [ANN] Kernel methods license audit

Pavel Krivanek
On Thu, Mar 20, 2008 at 7:04 PM, Paolo Bonzini <[hidden email]> wrote:

> > he wrote the new code that probably has the same content as the
>  > original one.  [...]
>
>  >
>  > we simply have to trust people that they will not cheat. And they should
>  > be ready to sign it.
>
>  Of course.  But the bigger problem is the first.
>
>  In the case of accessors, for example, the original contributor could
>  have contributed a single change to add those accessors, or these
>  methods could be part of a bigger change.  The first case probably is
>  not even copyrightable; in the second the overall changeset is
>  copyrightable, and I wonder if a judge would be convinced  if they were
>  shown the exact same source code up to the MD5 checksum.
>
>  After all saying "a method that returns instance variable foo" is not
>  different from saying "a method that does ^foo".  It is not talking
>  about an idea, the idea *is* the implementation (all this of course
>  holds because the "first team" does see the source code, it does not
>  apply if there was English documentation that the "second team" could
>  directly look at).
>
>  In both cases, it looks like chasing windmills; you should get clear
>  advice if it isn't better to just leave these simple methods aside, with
>  attribution to the original author.
>
>  Paolo
>

The most clean way is to write more tests, delete SqueakL code and
then fix it. The problem here is that we are playing with the kernel
and we should do it very canny and we cannot do it at once.

-- Pavel

Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Re: [ANN] Kernel methods license audit

Igor Stasenko
In reply to this post by Andreas.Raab
On 20/03/2008, Andreas Raab <[hidden email]> wrote:
> Igor Stasenko wrote:
>  > I just don't know where i can take squeak 1.1. and which VM can run it.
>
>
Thanks for link.Tested if it works: It works :)

> http://ftp.squeak.org/history
>
>  Cheers,
>
>    - Andreas
>
>
>


--
Best regards,
Igor Stasenko AKA sig.

Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Re: [ANN] Kernel methods license audit

Pavel Krivanek
In reply to this post by Igor Stasenko
Thank you for your offer, Igor. Have you signed the Squeak
Distribution Agreement (http://www.netjam.org/squeak/contributors/)? I
do not see you in the list.

-- Pavel

On Thu, Mar 20, 2008 at 6:06 PM, Igor Stasenko <[hidden email]> wrote:
> I can help as implementor, if someone feed me with methods descriptions.
>
>  I just don't know where i can take squeak 1.1. and which VM can run it.
>
>  --
>  Best regards,
>  Igor Stasenko AKA sig.
>
>

Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] [ANN] Kernel methods license audit

stephane ducasse
In reply to this post by Pavel Krivanek
pavel

from which image are you computing such information?

Stef
On Mar 20, 2008, at 5:05 PM, Pavel Krivanek wrote:

> Hi all,
>
> I've prepared current license audit of kernel methods, see:
>
> http://comtalk.eu/public/pub/KernelImage/license/licenseAudit1.csv
> http://comtalk.eu/public/pub/KernelImage/license/licenseAudit2.ods
> - overview of SqueakL methods in the kernel.image (OpenOffice format)
> http://comtalk.eu/public/pub/KernelImage/license/licenseAudit2.pdf
> - overview of SqueakL methods in the kernel.image (PDF format)
>
> For more information see Wiki page on the KernelImage SqueakSource  
> repository:
> http://www.squeaksource.com/KernelImage.html
>
> We need to rewrite 332 methods.
> There are some methods that have similar source to Squeak 1.1 version.
> The first task is to convert them. For this task wee need two people
> (or two teams):
>
> - one will look at old and current implementation and will describe
> how must be the original source changed to do the same job as the
> current version. This description should be as general as possible -
> no code. For example "use ZeroDivide instead of general error",
> "LdInstLong was renamed to LoadLong" etc. Some descriptions are
> present in the old version of license audit
> (http://comtalk.eu/public/pub/KernelImage/license/license2.ods)
>
> - the second person/team must not see the current code! It will take
> the code from Squeak 1.1, will create new method and modify it as
> described by the first person. We already tested this process with
> Damien.
>
> So, volunteers?
>
> Cheers,
> -- Pavel
>
>


Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Re: [ANN] Kernel methods license audit

Igor Stasenko
In reply to this post by Pavel Krivanek
On 20/03/2008, Pavel Krivanek <[hidden email]> wrote:
> Thank you for your offer, Igor. Have you signed the Squeak
>  Distribution Agreement (http://www.netjam.org/squeak/contributors/)? I
>  do not see you in the list.
>
>

I'm not in list, because i don't remember that i submitted any code to
squeak release :)
I found some bugs & proposed some patches but not in form, which can
be included in code w/o changes.
Do i need to sign agreement as well, or this only for people who
already there and need to sign it because of license changes?
Maybe i miss something, but isn't it will be easier to state clearly
and exclusively that if anyone want to see their code in squeak
release they should release it under MIT license,
otherwise they are free to release it as separate package with any
license they want?

--
Best regards,
Igor Stasenko AKA sig.

Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] [ANN] Kernel methods license audit

Pavel Krivanek
In reply to this post by stephane ducasse
Hi Stef,

it is from the latest kernel.image, namely morphicExt.image. However
the methods that need to be rewriten are shared with Squeak 3.10.

Cheers,
-- Pavel

On Thu, Mar 20, 2008 at 8:50 PM, stephane ducasse
<[hidden email]> wrote:

> pavel
>
>  from which image are you computing such information?
>
>  Stef
>
>
> On Mar 20, 2008, at 5:05 PM, Pavel Krivanek wrote:
>
>  > Hi all,
>  >
>  > I've prepared current license audit of kernel methods, see:
>  >
>  > http://comtalk.eu/public/pub/KernelImage/license/licenseAudit1.csv
>  > http://comtalk.eu/public/pub/KernelImage/license/licenseAudit2.ods
>  > - overview of SqueakL methods in the kernel.image (OpenOffice format)
>  > http://comtalk.eu/public/pub/KernelImage/license/licenseAudit2.pdf
>  > - overview of SqueakL methods in the kernel.image (PDF format)
>  >
>  > For more information see Wiki page on the KernelImage SqueakSource
>  > repository:
>  > http://www.squeaksource.com/KernelImage.html
>  >
>  > We need to rewrite 332 methods.
>  > There are some methods that have similar source to Squeak 1.1 version.
>  > The first task is to convert them. For this task wee need two people
>  > (or two teams):
>  >
>  > - one will look at old and current implementation and will describe
>  > how must be the original source changed to do the same job as the
>  > current version. This description should be as general as possible -
>  > no code. For example "use ZeroDivide instead of general error",
>  > "LdInstLong was renamed to LoadLong" etc. Some descriptions are
>  > present in the old version of license audit
>  > (http://comtalk.eu/public/pub/KernelImage/license/license2.ods)
>  >
>  > - the second person/team must not see the current code! It will take
>  > the code from Squeak 1.1, will create new method and modify it as
>  > described by the first person. We already tested this process with
>  > Damien.
>  >
>  > So, volunteers?
>  >
>  > Cheers,
>  > -- Pavel
>  >
>  >
>
>
>

Reply | Threaded
Open this post in threaded view
|

[squeak-dev] Re: [ANN] Kernel methods license audit

Nicolas Cellier-3
In reply to this post by Pavel Krivanek
Pavel Krivanek a écrit :

> Hi all,
>
> I've prepared current license audit of kernel methods, see:
>
> http://comtalk.eu/public/pub/KernelImage/license/licenseAudit1.csv
> http://comtalk.eu/public/pub/KernelImage/license/licenseAudit2.ods
> - overview of SqueakL methods in the kernel.image (OpenOffice format)
> http://comtalk.eu/public/pub/KernelImage/license/licenseAudit2.pdf
> - overview of SqueakL methods in the kernel.image (PDF format)
>
> For more information see Wiki page on the KernelImage SqueakSource repository:
> http://www.squeaksource.com/KernelImage.html
>
> We need to rewrite 332 methods.
> There are some methods that have similar source to Squeak 1.1 version.
> The first task is to convert them. For this task wee need two people
> (or two teams):
>
> - one will look at old and current implementation and will describe
> how must be the original source changed to do the same job as the
> current version. This description should be as general as possible -
> no code. For example "use ZeroDivide instead of general error",
> "LdInstLong was renamed to LoadLong" etc. Some descriptions are
> present in the old version of license audit
> (http://comtalk.eu/public/pub/KernelImage/license/license2.ods)
>
> - the second person/team must not see the current code! It will take
> the code from Squeak 1.1, will create new method and modify it as
> described by the first person. We already tested this process with
> Damien.
>
> So, volunteers?
>
> Cheers,
> -- Pavel
>
>

OK: my minor contribution:
EndOfStreamSignal>>isResumable does not need to be re-written. It needs
to be removed.
Move EndOfStream under Notification before.
(see http://bugs.squeak.org/view.php?id=6755).
Oh, I do not advocate EndOfStream be used in kernel image, just change
the hierarchy.


However, looking at the source, apart accessors, some methods will
hardly ever change, like:
Integer>>bitInvert
        ^-1-self

There is no added value in such method but very obvious algorithm:
two complement: bitinvert the digits, and add 1
=> bitInvert: take two complement, and subtract 1

The trick is not here, it is in pretending LargeNegativeInteger are
stored in two complements, what they are not...
So the trick is in all the bitOr:, bitAnd:, bitXor:, bitShift:
implementations, as a whole.

Seeing that wb is autor of several of these, Paolo is right, this might
be copyright-able...

However, really sure Squeak is in danger to be sued for such minor feature?

I'm disqualified for playing the game of rewriting from scratch
pretending i never saw the code... Without me for this one.

Nicolas


Reply | Threaded
Open this post in threaded view
|

[squeak-dev] Integer>>bitAt: (was [ANN] Kernel methods license audit)

Nicolas Cellier-3
nicolas cellier a écrit :

>
> However, looking at the source, apart accessors, some methods will
> hardly ever change, like:
> Integer>>bitInvert
>     ^-1-self
>
> There is no added value in such method but very obvious algorithm:
> two complement: bitinvert the digits, and add 1
> => bitInvert: take two complement, and subtract 1
>
> The trick is not here, it is in pretending LargeNegativeInteger are
> stored in two complements, what they are not...
> So the trick is in all the bitOr:, bitAnd:, bitXor:, bitShift:
> implementations, as a whole.
>

By the way, why do we lack a Integer>>bitAt: ?
http://bugs.squeak.org/view.php?id=6985

Nicolas


Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] [ANN] Kernel methods license audit

Victor Rodriguez-5
In reply to this post by Pavel Krivanek
On Thu, Mar 20, 2008 at 12:05 PM, Pavel Krivanek
<[hidden email]> wrote:
...
>  So, volunteers?

I wan to help.  I would prefer to contribute as an implementor (I
didn't look at the code in the PDF and I'm willing to sign the
distribution agreement), but I will help as a "descriptor" if I can be
more helpful that way.

I have been logging in #squeak as Victorr.

Best Regards,

Víctor Rodríguez.

>  Cheers,
>  -- Pavel
>
>

Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] [ANN] Kernel methods license audit

Igor Stasenko
On 21/03/2008, Victor Rodriguez <[hidden email]> wrote:

> On Thu, Mar 20, 2008 at 12:05 PM, Pavel Krivanek
>  <[hidden email]> wrote:
>  ...
>  >  So, volunteers?
>
>  I wan to help.  I would prefer to contribute as an implementor (I
>  didn't look at the code in the PDF and I'm willing to sign the
>  distribution agreement), but I will help as a "descriptor" if I can be
>  more helpful that way.
>
Nice! Can you play a role of 'descriptor' for me? Pick a small number
of methods for a start.

Also, if i need to sign an agreement, please let me know in what form
i should send it to VPRI. Is an electron copy of scanned document
enough, or i need to use real mail to send it?
Or, can i just release a .cs bundled with a LICENSE note that it is
under MIT license?

>  I have been logging in #squeak as Victorr.
>
>  Best Regards,
>
>  Víctor Rodríguez.
>
>  >  Cheers,
>  >  -- Pavel
>  >
>  >
>
>

--
Best regards,
Igor Stasenko AKA sig.


Reply | Threaded
Open this post in threaded view
|

Re: [squeak-dev] Re: [ANN] Kernel methods license audit

Stéphane Rollandin
In reply to this post by Paolo Bonzini-2
Paolo Bonzini a écrit :
> In the case of accessors, for example, the original contributor could
> have contributed a single change to add those accessors, or these
> methods could be part of a bigger change.  The first case probably is
> not even copyrightable; in the second the overall changeset is
> copyrightable, and I wonder if a judge would be convinced  if they were
> shown the exact same source code up to the MD5 checksum.

May I suggest something: you just add a "2008 rewrite" comment anywhere
in all of your methods so that all author initials change and MD5
checksum do not match anymore.

I can't imagine a more nonsensical task than rewriting methods that work
so that they do exactly the same thing but pretend being different.
Legalese crap is eating your brains guys. This is Kafka vision of
computer science.

Of course this is only my opinion (although I share it)


Stef



Reply | Threaded
Open this post in threaded view
|

[squeak-dev] Re: [ANN] Kernel methods license audit

Paolo Bonzini-2
In reply to this post by Nicolas Cellier-3

> However, looking at the source, apart accessors, some methods will
> hardly ever change, like:
> Integer>>bitInvert
>     ^-1-self
>
> There is no added value in such method but very obvious algorithm:
> two complement: bitinvert the digits, and add 1
> => bitInvert: take two complement, and subtract 1

This could become "^self bitXor: -1", at least if bitXor does not use
bitInvert. :-)

> The trick is not here, it is in pretending LargeNegativeInteger are
> stored in two complements, what they are not...
> So the trick is in all the bitOr:, bitAnd:, bitXor:, bitShift:
> implementations, as a whole.

If you want a >0% chance to have different code, look at libgst/mpz.c
from GNU Smalltalk.  It contains the exact same algorithms written in C
(so don't be afraid of tainting anything with anything).  And XOR does
not use NOT so you get a chance to rewrite #bitInvert too.  :-)

Paolo

Reply | Threaded
Open this post in threaded view
|

[squeak-dev] Re: [ANN] Kernel methods license audit

Nicolas Cellier-3
In reply to this post by Stéphane Rollandin
Stéphane Rollandin a écrit :
>
> I can't imagine a more nonsensical task than rewriting methods that work
> so that they do exactly the same thing but pretend being different.
> Legalese crap is eating your brains guys. This is Kafka vision of
> computer science.
>
> Of course this is only my opinion (although I share it)
>

+1

Nicolas


Reply | Threaded
Open this post in threaded view
|

[squeak-dev] Re: [ANN] Kernel methods license audit

Nicolas Cellier-3
In reply to this post by Paolo Bonzini-2
Paolo Bonzini a écrit :

>
>> However, looking at the source, apart accessors, some methods will
>> hardly ever change, like:
>> Integer>>bitInvert
>>     ^-1-self
>>
>> There is no added value in such method but very obvious algorithm:
>> two complement: bitinvert the digits, and add 1
>> => bitInvert: take two complement, and subtract 1
>

Another much simpler view is that -1 is an infinite sequence of
...1111111111111111111

Subtracting any integer is just like performing 1-b on each bit b
because there is not any chance to raise a carry.

1111111111 -
1010010111
----------
0101101000

> This could become "^self bitXor: -1", at least if bitXor does not use
> bitInvert. :-)
>

Yes, that's a good solution that would work (though 7x slower in squeak
for LargeInteger, because not primitive).

But what i meant is that rewriting a single obvious method does not make
much sense, since it's not really copyright-able by itself.

>> The trick is not here, it is in pretending LargeNegativeInteger are
>> stored in two complements, what they are not...
>> So the trick is in all the bitOr:, bitAnd:, bitXor:, bitShift:
>> implementations, as a whole.
>
> If you want a >0% chance to have different code, look at libgst/mpz.c
> from GNU Smalltalk.  It contains the exact same algorithms written in C
> (so don't be afraid of tainting anything with anything).  And XOR does
> not use NOT so you get a chance to rewrite #bitInvert too.  :-)
>
> Paolo
>
>

Yes, it is possible to rewrite the whole thing if REALLY necessary.
That makes a little more sense than a single method.

However, taking from GPL, to transform SqueakL into MIT... :)
This adds to the total nonsense of licence and copyrights...
Sisyphe is still very modern. Unless it's more like Danaids, you fill
the image with code, but there is a licence leakage that let it flow out.
Kind of missinterpretation of "dynamic" language i presume... (rewrite
it every 5 years).

Nicolas


12