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 |
> - 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 |
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 > > |
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. |
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 |
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 |
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 |
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. |
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. > > |
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 > > |
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. |
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 > > > > > > > |
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 |
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 |
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 > > |
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. > 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. |
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 |
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 |
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 |
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 |
Free forum by Nabble | Edit this page |