[squeak-dev] How to rewrite a license restricted method?

Bert Freudenberg bert at freudenbergs.de
Mon Feb 9 11:48:15 UTC 2009


On 08.02.2009, at 20:26, Ken Causey wrote:

> SequenceableCollection>>asStringWithCr
>
> 1) SqueakV1.sources:
>
> asStringWithCr
> 	"Convert to a string with returns between items.  Elements are  
> usually
> strings.
> 	 Useful for labels for PopUpMenus."
> 	| labelStream |
> 	labelStream _ WriteStream on: (String new: 200).
> 	self do: [:each |
> 		(each isKindOf: String)
> 			ifTrue: [labelStream nextPutAll: each; cr]
> 			ifFalse: [each printOn: labelStream; cr]].
> 	self size > 0 ifTrue: [labelStream skip: -1].
> 	^ labelStream contents!

If I pointed out the flaws that need to be fixed in this version -  
namely, replace "_" by ":=", use #isStrign instead of #isKindOf:, and  
make sure #cr is sent to the labelStream, I am certain we would end up  
exactly with this:

> 5) Squeak39g-7056+3102-7179.changes:
>
> !SequenceableCollection methodsFor: 'converting' stamp: 'ar 4/10/2005
> 18:02' prior: 29748463!
> asStringWithCr
> 	"Convert to a string with returns between items.  Elements are
> usually strings.
> 	 Useful for labels for PopUpMenus."
> 	| labelStream |
> +	labelStream := WriteStream on: (String new: 200).
> 	self do: [:each |
> 		each isString
> 			ifTrue: [labelStream nextPutAll: each; cr]
> 			ifFalse: [each printOn: labelStream. labelStream cr]].
> 	self size > 0 ifTrue: [labelStream skip: -1].
> 	^ labelStream contents! !


So IMHO we do not need to worry about this particular method at all  
since the non-relicensed contribution is a trivial bug fix.

- Bert -


>
> Now as I said above the problem with with version 2.  As you can see
> each of these changes is at most one line and by and large frankly
> rather obvious.  The change in 2 is clearly a bug fix and the
> straightforward solution.
>
> So the question is what do I do with this method, which is currently
> distributed as version 5, so that it does not infringe on djm's rights
> to maintain version 2 as SqueakL?  Admittedly it's unlikely that djm
> actually wants this right, but lacking a clear statement to the
> contrary, it's the default we have to assume.
>
> How much of a change is a significant change?
>
> Should I delete the current implementation entirely and rewrite it  
> from
> scratch?  If so, how much am I allowed to know about the prior
> implementations?
>
> Ken
>






More information about the Squeak-dev mailing list