Helping getting pharo license-clean

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

Helping getting pharo license-clean

Stéphane Ducasse
Hi all (and matthew we need your guidance/help)

We really want to get pharo 1.0 license clean. It would be bad that  
1.0 is not.
But 1.0 should get out before summer.

Here is a collection of all the information I collected on the topic:

Here what matthew wrote

        I've done the first step and done a full audit, using Yoshiki's
        tools [1], of all the code
        in Squeak 3.10.2, with the exception of four packages:
        - Monticello
        - SUnit, TestRunner, and SUnitImproved
        - Universes
        - Traits

I also applied all of yoshiki's etoys changes to 3.10.2. The
algorithm that Yoshiki seemed to follow when cleaning etoys is:
        - If the method can be easily deleted, delete it
        - Otherwise, use the historical image [1] to revert to the
         latest version before the problematic author
        - Fix any bugs this causes

I think we can use the same procedure. Perhaps Yoshiki will
comment.

        So, to help with the relicense, grab the historical image[1],
        check out the license audit [2], leave a note on mantis about
        what you think you'll work on, and start rolling out change
        sets. For your convenience, all of the license audits are
        included both in the relicensing tools download and on mantis.
        I'll try to keep both up to date as we progress with the
        relicense

        [1] The tools I've been using to do the relicense:
           http://ftp.squeak.org/4.0alpha/squeak4.0-relicensingTools.zip
           see also:
           http://lists.squeakfoundation.org/pipermail/squeak-dev/2008-September/131586.html
           http://www.squeaksource.com/MethodAuthorship.html

        [2] The 4.0 relicense mantis issue:
           http://bugs.squeak.org/view.php?id=6989


The most up-to-date list of ok contributors is at
        http://www.squeaksource.com/311/MethodAuthorship-kph.17.mcz
        See the class-side methods in Authorship, category data


here is another email from matthew

On Wed, Apr 22, 2009 at 11:10:12AM +0200, stephane ducasse wrote:
> I need your guidance for the MIT conversion effort of Pharo
> Do you have some cycles to help me and telling me how to proceed?
> I'm on holidays (so working remotely so I may allocate some time on
> that).

I can help you after school gets out in a week. I need to
do a quick count of how many lines of code need to be fixed in
squeak for submission to SFLC. I can do the same for Pharo. I
don't know how strenuous you want to be in your license
conversion.

The next 3 steps in the license conversion process are, in no
particular order:

- get a document from yoshiki documenting how etoys was
relicensed (and, by extension, cuis). The board will overview
it with the help of SFLC and determine if it is good enough.
- The board will publish a statement about what is and is not a
trivial-enough change to ignore.
- I will count up the lines of code to be converted, and
determine how many of them are trivial and non-trivial

You should chat with Randal Schwartz about what you need to
decide before you can start relicensing, and what you need to
document in case your relicense needs to be reviewed in the
future. Yoshiki and Juan did not do this and thus we have no
evidence yet that Yoshiki's relicense is strong enough.

I documented the priorities for squeak 4.0 in this email:
http://lists.squeakfoundation.org/pipermail/squeak-dev/2009-February/134083.html

You should probably figure out your priorities for the relicense
as well, so you know whose standards you need to meet.

Since that email was written, Randal has indeed heard back from
SFLC, but I haven't heard what they had to say yet.

--
Matthew Fulmer -- http://mtfulmer.wordpress.com/





_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Helping getting pharo license-clean

Yoshiki Ohshima-2
> I also applied all of yoshiki's etoys changes to 3.10.2. The
> algorithm that Yoshiki seemed to follow when cleaning etoys is:
> - If the method can be easily deleted, delete it
> - Otherwise, use the historical image [1] to revert to the
> latest version before the problematic author
> - Fix any bugs this causes
>
> I think we can use the same procedure. Perhaps Yoshiki will
> comment.

  Perhaps^^;

  Does Pharo have ScaledDecimal and it is used?  If so, that would be
the biggest piece that would be removed.  There wouldn't be any
serious bugs that would cause major trouble otherwise.

> On Wed, Apr 22, 2009 at 11:10:12AM +0200, stephane ducasse wrote:
> > I need your guidance for the MIT conversion effort of Pharo
> > Do you have some cycles to help me and telling me how to proceed?
> > I'm on holidays (so working remotely so I may allocate some time on
> > that).
>
> I can help you after school gets out in a week. I need to
> do a quick count of how many lines of code need to be fixed in
> squeak for submission to SFLC. I can do the same for Pharo. I
> don't know how strenuous you want to be in your license
> conversion.

  What is the reason for Pharo to go with SFLC?

> You should chat with Randal Schwartz about what you need to
> decide before you can start relicensing, and what you need to
> document in case your relicense needs to be reviewed in the
> future. Yoshiki and Juan did not do this and thus we have no
> evidence yet that Yoshiki's relicense is strong enough.

  There will be no such evidence.  There will be no evidence for a
statement like "there is no white crow".

-- Yoshiki

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Helping getting pharo license-clean

Stéphane Ducasse
>  Perhaps^^;

:)

>  Does Pharo have ScaledDecimal and it is used?
it ha but I do not know if this is used.

>  If so, that would be
> the biggest piece that would be removed.  There wouldn't be any
> serious bugs that would cause major trouble otherwise.
>
>>>
>>> I can help you after school gets out in a week. I need to
>> do a quick count of how many lines of code need to be fixed in
>> squeak for submission to SFLC. I can do the same for Pharo. I
>> don't know how strenuous you want to be in your license
>> conversion.
>
>  What is the reason for Pharo to go with SFLC?

I do not know.

>> You should chat with Randal Schwartz about what you need to
>> decide before you can start relicensing, and what you need to
>> document in case your relicense needs to be reviewed in the
>> future. Yoshiki and Juan did not do this and thus we have no
>> evidence yet that Yoshiki's relicense is strong enough.
>
>  There will be no such evidence.  There will be no evidence for a
> statement like "there is no white crow".

Indeed I think that we should stop somewhere.

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

UTF-8 strikes back...

Stéphane Ducasse
In reply to this post by Stéphane Ducasse
I followed the advices and started to give a try
with the latest VM 4.1.1beta2U and 10306

|m d f|
m := MethodHistoryDatabase new.
MethodHistoryChangeList ignoreNonExsiting: false.
m readFile: 'SqueakV1.sources' encodingName: 'mac-roman'.
d := FileDirectory default directoryNamed: 'history-updates'.
#('PreBeta' 'Sqk20Beta') do: [:v |
        m readFilesIn: d updateFile: 'updates.list' versionName: v.].

m readFile: 'SqueakV2.sources' encodingName: 'mac-roman'.
#('Squeak2.0' 'Squeak2.1' 'Squeak2.2beta' 'Squeak2.2' 'Squeak2.3'  
'Squeak2.4' 'Squeak2.5test' 'Squeak2.5' 'Squeak2.6alpha' 'Squeak2.6'  
'Squeak2.7alpha' 'Squeak2.7' 'Squeak2.8alpha' 'Squeak2.8'  
'Squeak2.9alpha') do: [:v |
        m readFilesIn: d updateFile: 'updates.list' versionName: v.].

m readFile: 'SqueakV3.sources' encodingName: 'mac-roman'.
#('Squeak3.0' 'Squeak3.1alpha' 'Squeak3.1beta' 'Squeak3.2alpha'  
'Squeak3.2gamma' 'Squeak3.2' 'Squeak3.2.1' 'Squeak3.4alpha'  
'Squeak3.4beta' 'Squeak3.4gamma' 'Squeak3.5alpha' 'Squeak3.5beta'  
'Squeak3.5gamma' 'Squeak3.6alpha' 'Squeak3.6beta' 'Squeak3.6gamma'  
'Squeak3.6') do: [:v |
        m readFilesIn: d updateFile: 'updates.list' versionName: v.].

d := FileDirectory default directoryNamed: 'squeak.org-updates'.
#('Squeak3.7alpha' 'Squeak3.7beta' 'Squeak3.7gamma' 'Squeak3.7'  
'Squeak3.8alpha' 'Squeak3.8beta' 'Squeak3.8gamma') do: [:v |
        m readFilesIn: d updateFile: 'SqCupdates.list' versionName: v.].

m readFile: 'Squeak3.9b-7053.changes' encodingName: 'utf-8'.
m readFile: 'SqueakV39.sources' encodingName: 'utf-8'.
m readFile: 'Squeak39g-7056+3102-7179.changes' encodingName: 'utf-8'.

b := MethodHistoryBrowser new.
b database: m.
MethodHistoryBrowser openBrowserView: (b openEditString: nil) label:  
'foo'.

Authorship initialize.
authors := Authorship new.
authors database: m.
missing := authors missingAuthorsWithMethods.
returned := authors returnedAuthorsWithMethods.
notAccounted := authors notAccounted.
historicalMissing := authors historicalMissingAuthorsWithMethods.
historicalNotAccounted := authors historicalNotAccounted.


f _ FileStream newFileNamed: 'currentMissing.html'.
m writeDictWithVersion: missing toHTMLFileNameOn: f title:  
'AgreementMissingPharo' explanationFileName: nil.
f close.

m writeDict: missing toFileName: 'missingPharo.txt'.
missing at: ((m at: #Debugger at: #buildMorphicNotifierLabelled:message:)
  at: 3) author
missing


I got

From: ghjg
To: [hidden email]
Subject: [BUG]UTF8TextConverter(Object)>>error:

here insert explanation of what you were doing, suspect changes you've  
made and so forth.

15 May 2009 9:42:37 pm

VM: Mac OS - intel - 1056 - Squeak3.8.1 of '28 Aug 2006' [latest  
update: #6747] Squeak VM 4.1.1b2
Image: Pharo0.1 [Latest update: #10306]

SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir /Data/squeak4.0-relicenseTools/history
Trusted Dir /foobar/tooBar/forSqueak/bogus
Untrusted Dir /Users/ducasse/Library/Preferences/Squeak/Internet/My  
Squeak

UTF8TextConverter(Object)>>error:
        Receiver: an UTF8TextConverter
        Arguments and temporary variables:
                aString: 'Invalid utf8 input detected'
        Receiver's instance variables:
an UTF8TextConverter

UTF8TextConverter>>errorMalformedInput
        Receiver: an UTF8TextConverter
        Arguments and temporary variables:

        Receiver's instance variables:
an UTF8TextConverter

UTF8TextConverter>>nextFromStream:
        Receiver: an UTF8TextConverter
        Arguments and temporary variables:
                aStream: MultiByteFileStream: '/Data/squeak4.0-relicenseTools/
history/Pharo0.1C...etc...
                character1: $
                value1: 160
                character2: Character tab
                value2: 9
                unicode: nil
                character3: Character tab
                value3: 9
                character4: nil
                value4: nil
        Receiver's instance variables:
an UTF8TextConverter

MultiByteFileStream>>next
        Receiver: MultiByteFileStream: '/Data/squeak4.0-relicenseTools/
history/Pharo0.1Core-10306clreadytowo...etc...
        Arguments and temporary variables:
                char: nil
                secondChar: nil
                state: nil
        Receiver's instance variables:


MultiByteFileStream(PositionableStream)>>nextChunk
        Receiver: MultiByteFileStream: '/Data/squeak4.0-relicenseTools/
history/Pharo0.1Core-10306clreadytowo...etc...
        Arguments and temporary variables:
                terminator: $!
                out: a WriteStream 'doesNotUnderstand: aMessage
         "Handle the fact that there ...etc...
                ch: Character cr
        Receiver's instance variables:


MultiByteFileStream(PositionableStream)>>nextChunkText
        Receiver: MultiByteFileStream: '/Data/squeak4.0-relicenseTools/
history/Pharo0.1Core-10306clreadytowo...etc...
        Arguments and temporary variables:
                string: nil
                runsRaw: nil
                strm: nil
                runs: nil
                peek: nil
                pos: nil
        Receiver's instance variables:


[] in RemoteString>>text
        Receiver: a RemoteString
        Arguments and temporary variables:
                theFile: MultiByteFileStream: '/Data/squeak4.0-relicenseTools/
history/Pharo0.1C...etc...
        Receiver's instance variables:
                sourceFileNumber: 2
                filePositionHi: 10007336

BlockClosure>>ensure:
        Receiver: [closure] in RemoteString>>text
        Arguments and temporary variables:
                aBlock: [closure] in RemoteString>>text
                returnValue: nil
                b: nil
        Receiver's instance variables:
                outerContext: RemoteString>>text
                startpc: 72
                numArgs: 0

RemoteString>>text
        Receiver: a RemoteString
        Arguments and temporary variables:
                theFile: MultiByteFileStream: '/Data/squeak4.0-relicenseTools/
history/Pharo0.1C...etc...
        Receiver's instance variables:
                sourceFileNumber: 2
                filePositionHi: 10007336

CompiledMethod>>getSourceFromFile
        Receiver: a CompiledMethod (838)
        Arguments and temporary variables:
                position: 10007336
        Receiver's instance variables:
a CompiledMethod (838)

CompiledMethod>>methodNode
        Receiver: a CompiledMethod (838)
        Arguments and temporary variables:
                aClass: Object
                source: nil
        Receiver's instance variables:
a CompiledMethod (838)

[] in DebuggerMethodMap class>>forMethod:
        Receiver: DebuggerMethodMap
        Arguments and temporary variables:
                aMethod: a CompiledMethod (838)
        Receiver's instance variables:
                superclass: Object
                methodDict: a MethodDictionary(#abstractSourceMap->a CompiledMethod  
(1628) #for...etc...
                format: 140
                instanceVariables: #('timestamp' 'methodReference' 'methodNode'  
'abstractSource...etc...
                organization: ('initialize-release' forMethod:methodNode:)
('accessing' markRec...etc...
                subclasses: {DebuggerMethodMapForBlueBookMethods .  
DebuggerMethodMapForClosureC...etc...
                name: #DebuggerMethodMap
                classPool: a Dictionary(#MapCache->a WeakIdentityKeyDictionary(a  
CompiledMethod...etc...
                sharedPools: nil
                environment: Smalltalk
                category: #'Tools-Debugger'
                traitComposition: nil
                localSelectors: nil

WeakIdentityKeyDictionary(Dictionary)>>at:ifAbsent:
        Receiver: a WeakIdentityKeyDictionary(a CompiledMethod (1637)->a  
DebuggerMethodMapForClosureCompiled...etc...
        Arguments and temporary variables:
                key: a CompiledMethod (838)
                aBlock: [closure] in DebuggerMethodMap class>>forMethod:
                assoc: nil
        Receiver's instance variables:
                tally: 16
                array: an Array(nil nil a CompiledMethod (2402)->a  
DebuggerMethodMapForClosureC...etc...

DebuggerMethodMap class>>forMethod:
        Receiver: DebuggerMethodMap
        Arguments and temporary variables:
                aMethod: a CompiledMethod (838)
        Receiver's instance variables:
                superclass: Object
                methodDict: a MethodDictionary(#abstractSourceMap->a CompiledMethod  
(1628) #for...etc...
                format: 140
                instanceVariables: #('timestamp' 'methodReference' 'methodNode'  
'abstractSource...etc...
                organization: ('initialize-release' forMethod:methodNode:)
('accessing' markRec...etc...
                subclasses: {DebuggerMethodMapForBlueBookMethods .  
DebuggerMethodMapForClosureC...etc...
                name: #DebuggerMethodMap
                classPool: a Dictionary(#MapCache->a WeakIdentityKeyDictionary(a  
CompiledMethod...etc...
                sharedPools: nil
                environment: Smalltalk
                category: #'Tools-Debugger'
                traitComposition: nil
                localSelectors: nil

CompiledMethod>>debuggerMap
        Receiver: a CompiledMethod (838)
        Arguments and temporary variables:

        Receiver's instance variables:
a CompiledMethod (838)

MethodContext(InstructionStream)>>debuggerMap
        Receiver: ByteString(Object)>>doesNotUnderstand: #missing
        Arguments and temporary variables:

        Receiver's instance variables:
                sender: UndefinedObject>>DoIt
                pc: 50
                stackp: 3
                method: a CompiledMethod (838)
                closureOrNil: nil
                receiver: 'hg'

Debugger>>selectedMessage
        Receiver: a Debugger
        Arguments and temporary variables:

        Receiver's instance variables:
                dependents: a DependentsArray(a PreDebugWindow(2623) a  
PluggableListMorph(853))...etc...
                contents: nil
                currentCompiledMethod: nil
                contentsSymbol: nil
                interruptedProcess: a Process in Debugger  
class>>openOn:context:label:contents:...etc...
                interruptedController: nil
                contextStack: an  
OrderedCollection(ByteString(Object)>>doesNotUnderstand: #miss...etc...
                contextStackTop: ByteString(Object)>>doesNotUnderstand: #missing
                contextStackIndex: 1
                contextStackList: an  
OrderedCollection('ByteString(Object)>>doesNotUnderstand: ...etc...
                receiverInspector: an Inspector
                contextVariablesInspector: a ContextVariablesInspector
                externalInterrupt: false
                proceedValue: nil
                selectingPC: true
                debuggerMap: nil
                savedCursor: ((CursorWithMask
        extent: 16@16
        depth: 1
        fromArray: #(
                2r0
                2...etc...
                isolationHead: nil
                failedProject: nil
                errorWasInUIProcess: true
                labelString: nil

Debugger>>contextStackIndex:oldContextWas:
        Receiver: a Debugger
        Arguments and temporary variables:
                anInteger: 1
                oldContext: nil
                isNewMethod: true
                selectedContextSlotName: nil
                index: nil
        Receiver's instance variables:
                dependents: a DependentsArray(a PreDebugWindow(2623) a  
PluggableListMorph(853))...etc...
                contents: nil
                currentCompiledMethod: nil
                contentsSymbol: nil
                interruptedProcess: a Process in Debugger  
class>>openOn:context:label:contents:...etc...
                interruptedController: nil
                contextStack: an  
OrderedCollection(ByteString(Object)>>doesNotUnderstand: #miss...etc...
                contextStackTop: ByteString(Object)>>doesNotUnderstand: #missing
                contextStackIndex: 1
                contextStackList: an  
OrderedCollection('ByteString(Object)>>doesNotUnderstand: ...etc...
                receiverInspector: an Inspector
                contextVariablesInspector: a ContextVariablesInspector
                externalInterrupt: false
                proceedValue: nil
                selectingPC: true
                debuggerMap: nil
                savedCursor: ((CursorWithMask
        extent: 16@16
        depth: 1
        fromArray: #(
                2r0
                2...etc...
                isolationHead: nil
                failedProject: nil
                errorWasInUIProcess: true
                labelString: nil

Debugger>>toggleContextStackIndex:
        Receiver: a Debugger
        Arguments and temporary variables:
                anInteger: 1
        Receiver's instance variables:
                dependents: a DependentsArray(a PreDebugWindow(2623) a  
PluggableListMorph(853))...etc...
                contents: nil
                currentCompiledMethod: nil
                contentsSymbol: nil
                interruptedProcess: a Process in Debugger  
class>>openOn:context:label:contents:...etc...
                interruptedController: nil
                contextStack: an  
OrderedCollection(ByteString(Object)>>doesNotUnderstand: #miss...etc...
                contextStackTop: ByteString(Object)>>doesNotUnderstand: #missing
                contextStackIndex: 1
                contextStackList: an  
OrderedCollection('ByteString(Object)>>doesNotUnderstand: ...etc...
                receiverInspector: an Inspector
                contextVariablesInspector: a ContextVariablesInspector
                externalInterrupt: false
                proceedValue: nil
                selectingPC: true
                debuggerMap: nil
                savedCursor: ((CursorWithMask
        extent: 16@16
        depth: 1
        fromArray: #(
                2r0
                2...etc...
                isolationHead: nil
                failedProject: nil
                errorWasInUIProcess: true
                labelString: nil

Debugger>>debugAt:
        Receiver: a Debugger
        Arguments and temporary variables:
                anInteger: 1
        Receiver's instance variables:
                dependents: a DependentsArray(a PreDebugWindow(2623) a  
PluggableListMorph(853))...etc...
                contents: nil
                currentCompiledMethod: nil
                contentsSymbol: nil
                interruptedProcess: a Process in Debugger  
class>>openOn:context:label:contents:...etc...
                interruptedController: nil
                contextStack: an  
OrderedCollection(ByteString(Object)>>doesNotUnderstand: #miss...etc...
                contextStackTop: ByteString(Object)>>doesNotUnderstand: #missing
                contextStackIndex: 1
                contextStackList: an  
OrderedCollection('ByteString(Object)>>doesNotUnderstand: ...etc...
                receiverInspector: an Inspector
                contextVariablesInspector: a ContextVariablesInspector
                externalInterrupt: false
                proceedValue: nil
                selectingPC: true
                debuggerMap: nil
                savedCursor: ((CursorWithMask
        extent: 16@16
        depth: 1
        fromArray: #(
                2r0
                2...etc...
                isolationHead: nil
                failedProject: nil
                errorWasInUIProcess: true
                labelString: nil

PluggableListMorph>>changeModelSelection:
        Receiver: a PluggableListMorph(853)
        Arguments and temporary variables:
                anInteger: 1
        Receiver's instance variables:
                bounds: 319@384 corner: 759@473
                owner: a PreDebugWindow(2623)
                submorphs: an Array(a ScrollBar(3036) a TransformMorph(1197))
                fullBounds: 319@384 corner: 759@473
                color: Color white
                extension: a MorphExtension (2096) [locked]  [other:  (layoutFrame -
 > a LayoutF...etc...
                borderWidth: 1
                borderColor: (Color r: 0.667 g: 0.667 b: 0.667)
                model: a Debugger
                slotName: nil
                open: false
                scrollBar: a ScrollBar(3036)
                scroller: a TransformMorph(1197)
                retractableScrollBar: false
                scrollBarOnLeft: false
                getMenuSelector: nil
                getMenuTitleSelector: nil
                hasFocus: false
                hScrollBar: a ScrollBar(3648)
                list: an OrderedCollection('ByteString(Object)>>doesNotUnderstand:  
#missing' 'U...etc...
                getListSelector: #contextStackList
                getListSizeSelector: nil
                getListElementSelector: nil
                getIndexSelector: #contextStackIndex
                setIndexSelector: #debugAt:
                keystrokeActionSelector: nil
                autoDeselect: true
                lastKeystrokeTime: 0
                lastKeystrokes: ''
                doubleClickSelector: nil
                handlesBasicKeys: nil
                potentialDropRow: nil
                listMorph: a LazyListMorph(2276)
                hScrollRangeCache: nil

PluggableListMorph>>mouseUp:
        Receiver: a PluggableListMorph(853)
        Arguments and temporary variables:
                event: [442@390 mouseUp 14061207 nil]
                row: 1
                mdr: 1
        Receiver's instance variables:
                bounds: 319@384 corner: 759@473
                owner: a PreDebugWindow(2623)
                submorphs: an Array(a ScrollBar(3036) a TransformMorph(1197))
                fullBounds: 319@384 corner: 759@473
                color: Color white
                extension: a MorphExtension (2096) [locked]  [other:  (layoutFrame -
 > a LayoutF...etc...
                borderWidth: 1
                borderColor: (Color r: 0.667 g: 0.667 b: 0.667)
                model: a Debugger
                slotName: nil
                open: false
                scrollBar: a ScrollBar(3036)
                scroller: a TransformMorph(1197)
                retractableScrollBar: false
                scrollBarOnLeft: false
                getMenuSelector: nil
                getMenuTitleSelector: nil
                hasFocus: false
                hScrollBar: a ScrollBar(3648)
                list: an OrderedCollection('ByteString(Object)>>doesNotUnderstand:  
#missing' 'U...etc...
                getListSelector: #contextStackList
                getListSizeSelector: nil
                getListElementSelector: nil
                getIndexSelector: #contextStackIndex
                setIndexSelector: #debugAt:
                keystrokeActionSelector: nil
                autoDeselect: true
                lastKeystrokeTime: 0
                lastKeystrokes: ''
                doubleClickSelector: nil
                handlesBasicKeys: nil
                potentialDropRow: nil
                listMorph: a LazyListMorph(2276)
                hScrollRangeCache: nil

PluggableListMorph(Morph)>>handleMouseUp:
        Receiver: a PluggableListMorph(853)
        Arguments and temporary variables:
                anEvent: [442@390 mouseUp 14061207 nil]
        Receiver's instance variables:
                bounds: 319@384 corner: 759@473
                owner: a PreDebugWindow(2623)
                submorphs: an Array(a ScrollBar(3036) a TransformMorph(1197))
                fullBounds: 319@384 corner: 759@473
                color: Color white
                extension: a MorphExtension (2096) [locked]  [other:  (layoutFrame -
 > a LayoutF...etc...
                borderWidth: 1
                borderColor: (Color r: 0.667 g: 0.667 b: 0.667)
                model: a Debugger
                slotName: nil
                open: false
                scrollBar: a ScrollBar(3036)
                scroller: a TransformMorph(1197)
                retractableScrollBar: false
                scrollBarOnLeft: false
                getMenuSelector: nil
                getMenuTitleSelector: nil
                hasFocus: false
                hScrollBar: a ScrollBar(3648)
                list: an OrderedCollection('ByteString(Object)>>doesNotUnderstand:  
#missing' 'U...etc...
                getListSelector: #contextStackList
                getListSizeSelector: nil
                getListElementSelector: nil
                getIndexSelector: #contextStackIndex
                setIndexSelector: #debugAt:
                keystrokeActionSelector: nil
                autoDeselect: true
                lastKeystrokeTime: 0
                lastKeystrokes: ''
                doubleClickSelector: nil
                handlesBasicKeys: nil
                potentialDropRow: nil
                listMorph: a LazyListMorph(2276)
                hScrollRangeCache: nil

MouseButtonEvent>>sentTo:
        Receiver: [442@390 mouseUp 14061207 nil]
        Arguments and temporary variables:
                anObject: a PluggableListMorph(853)
        Receiver's instance variables:
                timeStamp: 14061207
                source: a HandMorph(3216)
                windowIndex: nil
                type: #mouseUp
                buttons: 0
                position: 442@390
                handler: nil
                wasHandled: true
                whichButton: 4

PluggableListMorph(Morph)>>handleEvent:
        Receiver: a PluggableListMorph(853)
        Arguments and temporary variables:
                anEvent: [442@390 mouseUp 14061207 nil]
        Receiver's instance variables:
                bounds: 319@384 corner: 759@473
                owner: a PreDebugWindow(2623)
                submorphs: an Array(a ScrollBar(3036) a TransformMorph(1197))
                fullBounds: 319@384 corner: 759@473
                color: Color white
                extension: a MorphExtension (2096) [locked]  [other:  (layoutFrame -
 > a LayoutF...etc...
                borderWidth: 1
                borderColor: (Color r: 0.667 g: 0.667 b: 0.667)
                model: a Debugger
                slotName: nil
                open: false
                scrollBar: a ScrollBar(3036)
                scroller: a TransformMorph(1197)
                retractableScrollBar: false
                scrollBarOnLeft: false
                getMenuSelector: nil
                getMenuTitleSelector: nil
                hasFocus: false
                hScrollBar: a ScrollBar(3648)
                list: an OrderedCollection('ByteString(Object)>>doesNotUnderstand:  
#missing' 'U...etc...
                getListSelector: #contextStackList
                getListSizeSelector: nil
                getListElementSelector: nil
                getIndexSelector: #contextStackIndex
                setIndexSelector: #debugAt:
                keystrokeActionSelector: nil
                autoDeselect: true
                lastKeystrokeTime: 0
                lastKeystrokes: ''
                doubleClickSelector: nil
                handlesBasicKeys: nil
                potentialDropRow: nil
                listMorph: a LazyListMorph(2276)
                hScrollRangeCache: nil

MorphicEventDispatcher>>dispatchDefault:with:
        Receiver: a MorphicEventDispatcher
        Arguments and temporary variables:
                anEvent: [442@390 mouseUp 14061207 nil]
                aMorph: a PluggableListMorph(853)
                localEvt: [442@390 mouseUp 14061207 nil]
                index: 3
                child: a TransformMorph(1197)
                morphs: an Array(a ScrollBar(3036) a TransformMorph(1197))
                inside: true
        Receiver's instance variables:
                lastType: #mouseUp
                lastDispatch: #dispatchDefault:with:

MorphicEventDispatcher>>dispatchEvent:with:
        Receiver: a MorphicEventDispatcher
        Arguments and temporary variables:
                anEvent: [442@390 mouseUp 14061207 nil]
                aMorph: a PluggableListMorph(853)
        Receiver's instance variables:
                lastType: #mouseUp
                lastDispatch: #dispatchDefault:with:

PluggableListMorph(Morph)>>processEvent:using:
        Receiver: a PluggableListMorph(853)
        Arguments and temporary variables:
                anEvent: [442@390 mouseUp 14061207 nil]
                defaultDispatcher: a MorphicEventDispatcher
        Receiver's instance variables:
                bounds: 319@384 corner: 759@473
                owner: a PreDebugWindow(2623)
                submorphs: an Array(a ScrollBar(3036) a TransformMorph(1197))
                fullBounds: 319@384 corner: 759@473
                color: Color white
                extension: a MorphExtension (2096) [locked]  [other:  (layoutFrame -
 > a LayoutF...etc...
                borderWidth: 1
                borderColor: (Color r: 0.667 g: 0.667 b: 0.667)
                model: a Debugger
                slotName: nil
                open: false
                scrollBar: a ScrollBar(3036)
                scroller: a TransformMorph(1197)
                retractableScrollBar: false
                scrollBarOnLeft: false
                getMenuSelector: nil
                getMenuTitleSelector: nil
                hasFocus: false
                hScrollBar: a ScrollBar(3648)
                list: an OrderedCollection('ByteString(Object)>>doesNotUnderstand:  
#missing' 'U...etc...
                getListSelector: #contextStackList
                getListSizeSelector: nil
                getListElementSelector: nil
                getIndexSelector: #contextStackIndex
                setIndexSelector: #debugAt:
                keystrokeActionSelector: nil
                autoDeselect: true
                lastKeystrokeTime: 0
                lastKeystrokes: ''
                doubleClickSelector: nil
                handlesBasicKeys: nil
                potentialDropRow: nil
                listMorph: a LazyListMorph(2276)
                hScrollRangeCache: nil

PluggableListMorph(Morph)>>processEvent:
        Receiver: a PluggableListMorph(853)
        Arguments and temporary variables:
                anEvent: [442@390 mouseUp 14061207 nil]
        Receiver's instance variables:
                bounds: 319@384 corner: 759@473
                owner: a PreDebugWindow(2623)
                submorphs: an Array(a ScrollBar(3036) a TransformMorph(1197))
                fullBounds: 319@384 corner: 759@473
                color: Color white
                extension: a MorphExtension (2096) [locked]  [other:  (layoutFrame -
 > a LayoutF...etc...
                borderWidth: 1
                borderColor: (Color r: 0.667 g: 0.667 b: 0.667)
                model: a Debugger
                slotName: nil
                open: false
                scrollBar: a ScrollBar(3036)
                scroller: a TransformMorph(1197)
                retractableScrollBar: false
                scrollBarOnLeft: false
                getMenuSelector: nil
                getMenuTitleSelector: nil
                hasFocus: false
                hScrollBar: a ScrollBar(3648)
                list: an OrderedCollection('ByteString(Object)>>doesNotUnderstand:  
#missing' 'U...etc...
                getListSelector: #contextStackList
                getListSizeSelector: nil
                getListElementSelector: nil
                getIndexSelector: #contextStackIndex
                setIndexSelector: #debugAt:
                keystrokeActionSelector: nil
                autoDeselect: true
                lastKeystrokeTime: 0
                lastKeystrokes: ''
                doubleClickSelector: nil
                handlesBasicKeys: nil
                potentialDropRow: nil
                listMorph: a LazyListMorph(2276)
                hScrollRangeCache: nil

PluggableListMorph>>handleFocusEvent:
        Receiver: a PluggableListMorph(853)
        Arguments and temporary variables:
                anEvent: [442@390 mouseUp 14061207 nil]
        Receiver's instance variables:
                bounds: 319@384 corner: 759@473
                owner: a PreDebugWindow(2623)
                submorphs: an Array(a ScrollBar(3036) a TransformMorph(1197))
                fullBounds: 319@384 corner: 759@473
                color: Color white
                extension: a MorphExtension (2096) [locked]  [other:  (layoutFrame -
 > a LayoutF...etc...
                borderWidth: 1
                borderColor: (Color r: 0.667 g: 0.667 b: 0.667)
                model: a Debugger
                slotName: nil
                open: false
                scrollBar: a ScrollBar(3036)
                scroller: a TransformMorph(1197)
                retractableScrollBar: false
                scrollBarOnLeft: false
                getMenuSelector: nil
                getMenuTitleSelector: nil
                hasFocus: false
                hScrollBar: a ScrollBar(3648)
                list: an OrderedCollection('ByteString(Object)>>doesNotUnderstand:  
#missing' 'U...etc...
                getListSelector: #contextStackList
                getListSizeSelector: nil
                getListElementSelector: nil
                getIndexSelector: #contextStackIndex
                setIndexSelector: #debugAt:
                keystrokeActionSelector: nil
                autoDeselect: true
                lastKeystrokeTime: 0
                lastKeystrokes: ''
                doubleClickSelector: nil
                handlesBasicKeys: nil
                potentialDropRow: nil
                listMorph: a LazyListMorph(2276)
                hScrollRangeCache: nil

[] in HandMorph>>sendFocusEvent:to:clear:
        Receiver: a HandMorph(3216)
        Arguments and temporary variables:
<<error during printing>
        Receiver's instance variables:
                bounds: 754@479 corner: 770@495
                owner: a PasteUpMorph(1622) [world]
                submorphs: #()
                fullBounds: 754@479 corner: 770@495
                color: Color blue
                extension: a MorphExtension (539) [eventHandler = an EventHandler]
                mouseFocus: nil
                keyboardFocus: nil
                eventListeners: nil
                mouseListeners: nil
                keyboardListeners: nil
                mouseClickState: nil
                mouseOverHandler: a MouseOverHandler
                lastMouseEvent: [754@479 mouseUp 20587660 nil]
                targetOffset: 27@13
                damageRecorder: a DamageRecorder
                cacheCanvas: nil
                cachedCanvasHasHoles: true
                temporaryCursor: nil
                temporaryCursorOffset: nil
                hardwareCursor: nil
                hasChanged: true
                savedPatch: nil
                userInitials: ''
                lastEventBuffer: #(1 20587660 754 479 0 0 0 1)
                lastKeyScanCode: 5
                combinedChar: nil

[] in PasteUpMorph>>becomeActiveDuring:
        Receiver: a PasteUpMorph(1622) [world]
        Arguments and temporary variables:
<<error during printing>
        Receiver's instance variables:
                bounds: 0@0 corner: 1217@772
                owner: nil
                submorphs: an Array(a TaskbarMorph(3095) a SystemWindow(1690) a  
SystemWindow(30...etc...
                fullBounds: nil
                color: (Color r: 0.97 g: 0.98 b: 1.0)
                extension: a MorphExtension (2543) [eventHandler = an  
EventHandler]  [other:  (...etc...
                borderWidth: 0
                borderColor: (Color r: 0.03 g: 0.02 b: 0.0)
                presenter: a Presenter (1246)
                model: a MorphicModel(1926)
                cursor: 1
                padding: 3
                backgroundMorph: nil
                isPartsBin: nil
                autoLineLayout: false
                indicateCursor: nil
                resizeToFit: nil
                wantsMouseOverHalos: nil
                worldState: a WorldState
                griddingOn: nil

BlockClosure>>on:do:
        Receiver: [closure] in PasteUpMorph>>becomeActiveDuring:
        Arguments and temporary variables:
                exception: Error
                handlerAction: [closure] in PasteUpMorph>>becomeActiveDuring:
                handlerActive: false
        Receiver's instance variables:
                outerContext: PasteUpMorph>>becomeActiveDuring:
                startpc: 67
                numArgs: 0

PasteUpMorph>>becomeActiveDuring:
        Receiver: a PasteUpMorph(1622) [world]
        Arguments and temporary variables:
                aBlock: [closure] in HandMorph>>sendFocusEvent:to:clear:
                priorWorld: a PasteUpMorph(1622) [world]
                priorHand: a HandMorph(3216)
                priorEvent: [442@390 mouseOver nil nil]
        Receiver's instance variables:
                bounds: 0@0 corner: 1217@772
                owner: nil
                submorphs: an Array(a TaskbarMorph(3095) a SystemWindow(1690) a  
SystemWindow(30...etc...
                fullBounds: nil
                color: (Color r: 0.97 g: 0.98 b: 1.0)
                extension: a MorphExtension (2543) [eventHandler = an  
EventHandler]  [other:  (...etc...
                borderWidth: 0
                borderColor: (Color r: 0.03 g: 0.02 b: 0.0)
                presenter: a Presenter (1246)
                model: a MorphicModel(1926)
                cursor: 1
                padding: 3
                backgroundMorph: nil
                isPartsBin: nil
                autoLineLayout: false
                indicateCursor: nil
                resizeToFit: nil
                wantsMouseOverHalos: nil
                worldState: a WorldState
                griddingOn: nil

HandMorph>>sendFocusEvent:to:clear:
        Receiver: a HandMorph(3216)
        Arguments and temporary variables:
                anEvent: [442@390 mouseUp 14061207 nil]
                focusHolder: a PluggableListMorph(853)
                aBlock: [closure] in HandMorph>>sendMouseEvent:
                w: a PasteUpMorph(1622) [world]
                result: #(nil)
        Receiver's instance variables:
                bounds: 754@479 corner: 770@495
                owner: a PasteUpMorph(1622) [world]
                submorphs: #()
                fullBounds: 754@479 corner: 770@495
                color: Color blue
                extension: a MorphExtension (539) [eventHandler = an EventHandler]
                mouseFocus: nil
                keyboardFocus: nil
                eventListeners: nil
                mouseListeners: nil
                keyboardListeners: nil
                mouseClickState: nil
                mouseOverHandler: a MouseOverHandler
                lastMouseEvent: [754@479 mouseUp 20587660 nil]
                targetOffset: 27@13
                damageRecorder: a DamageRecorder
                cacheCanvas: nil
                cachedCanvasHasHoles: true
                temporaryCursor: nil
                temporaryCursorOffset: nil
                hardwareCursor: nil
                hasChanged: true
                savedPatch: nil
                userInitials: ''
                lastEventBuffer: #(1 20587660 754 479 0 0 0 1)
                lastKeyScanCode: 5
                combinedChar: nil

HandMorph>>sendEvent:focus:clear:
        Receiver: a HandMorph(3216)
        Arguments and temporary variables:
                anEvent: [442@390 mouseUp 14061207 nil]
                focusHolder: a PluggableListMorph(853)
                aBlock: [closure] in HandMorph>>sendMouseEvent:
                result: nil
        Receiver's instance variables:
                bounds: 754@479 corner: 770@495
                owner: a PasteUpMorph(1622) [world]
                submorphs: #()
                fullBounds: 754@479 corner: 770@495
                color: Color blue
                extension: a MorphExtension (539) [eventHandler = an EventHandler]
                mouseFocus: nil
                keyboardFocus: nil
                eventListeners: nil
                mouseListeners: nil
                keyboardListeners: nil
                mouseClickState: nil
                mouseOverHandler: a MouseOverHandler
                lastMouseEvent: [754@479 mouseUp 20587660 nil]
                targetOffset: 27@13
                damageRecorder: a DamageRecorder
                cacheCanvas: nil
                cachedCanvasHasHoles: true
                temporaryCursor: nil
                temporaryCursorOffset: nil
                hardwareCursor: nil
                hasChanged: true
                savedPatch: nil
                userInitials: ''
                lastEventBuffer: #(1 20587660 754 479 0 0 0 1)
                lastKeyScanCode: 5
                combinedChar: nil

HandMorph>>sendMouseEvent:
        Receiver: a HandMorph(3216)
        Arguments and temporary variables:
                anEvent: [442@390 mouseUp 14061207 nil]
        Receiver's instance variables:
                bounds: 754@479 corner: 770@495
                owner: a PasteUpMorph(1622) [world]
                submorphs: #()
                fullBounds: 754@479 corner: 770@495
                color: Color blue
                extension: a MorphExtension (539) [eventHandler = an EventHandler]
                mouseFocus: nil
                keyboardFocus: nil
                eventListeners: nil
                mouseListeners: nil
                keyboardListeners: nil
                mouseClickState: nil
                mouseOverHandler: a MouseOverHandler
                lastMouseEvent: [754@479 mouseUp 20587660 nil]
                targetOffset: 27@13
                damageRecorder: a DamageRecorder
                cacheCanvas: nil
                cachedCanvasHasHoles: true
                temporaryCursor: nil
                temporaryCursorOffset: nil
                hardwareCursor: nil
                hasChanged: true
                savedPatch: nil
                userInitials: ''
                lastEventBuffer: #(1 20587660 754 479 0 0 0 1)
                lastKeyScanCode: 5
                combinedChar: nil

HandMorph>>handleEvent:
        Receiver: a HandMorph(3216)
        Arguments and temporary variables:
                anEvent: [442@390 mouseUp 14061207 nil]
                evt: [442@390 mouseUp 14061207 nil]
                ofs: nil
        Receiver's instance variables:
                bounds: 754@479 corner: 770@495
                owner: a PasteUpMorph(1622) [world]
                submorphs: #()
                fullBounds: 754@479 corner: 770@495
                color: Color blue
                extension: a MorphExtension (539) [eventHandler = an EventHandler]
                mouseFocus: nil
                keyboardFocus: nil
                eventListeners: nil
                mouseListeners: nil
                keyboardListeners: nil
                mouseClickState: nil
                mouseOverHandler: a MouseOverHandler
                lastMouseEvent: [754@479 mouseUp 20587660 nil]
                targetOffset: 27@13
                damageRecorder: a DamageRecorder
                cacheCanvas: nil
                cachedCanvasHasHoles: true
                temporaryCursor: nil
                temporaryCursorOffset: nil
                hardwareCursor: nil
                hasChanged: true
                savedPatch: nil
                userInitials: ''
                lastEventBuffer: #(1 20587660 754 479 0 0 0 1)
                lastKeyScanCode: 5
                combinedChar: nil

HandMorph>>processEvents
        Receiver: a HandMorph(3216)
        Arguments and temporary variables:
                evt: [442@390 mouseUp 14061207 nil]
                evtBuf: #(1 14061207 442 390 0 0 0 1)
                type: 1
                hadAny: false
        Receiver's instance variables:
                bounds: 754@479 corner: 770@495
                owner: a PasteUpMorph(1622) [world]
                submorphs: #()
                fullBounds: 754@479 corner: 770@495
                color: Color blue
                extension: a MorphExtension (539) [eventHandler = an EventHandler]
                mouseFocus: nil
                keyboardFocus: nil
                eventListeners: nil
                mouseListeners: nil
                keyboardListeners: nil
                mouseClickState: nil
                mouseOverHandler: a MouseOverHandler
                lastMouseEvent: [754@479 mouseUp 20587660 nil]
                targetOffset: 27@13
                damageRecorder: a DamageRecorder
                cacheCanvas: nil
                cachedCanvasHasHoles: true
                temporaryCursor: nil
                temporaryCursorOffset: nil
                hardwareCursor: nil
                hasChanged: true
                savedPatch: nil
                userInitials: ''
                lastEventBuffer: #(1 20587660 754 479 0 0 0 1)
                lastKeyScanCode: 5
                combinedChar: nil


--- The full stack ---
UTF8TextConverter(Object)>>error:
UTF8TextConverter>>errorMalformedInput
UTF8TextConverter>>nextFromStream:
MultiByteFileStream>>next
MultiByteFileStream(PositionableStream)>>nextChunk
MultiByteFileStream(PositionableStream)>>nextChunkText
[] in RemoteString>>text
BlockClosure>>ensure:
RemoteString>>text
CompiledMethod>>getSourceFromFile
CompiledMethod>>methodNode
[] in DebuggerMethodMap class>>forMethod:
WeakIdentityKeyDictionary(Dictionary)>>at:ifAbsent:
DebuggerMethodMap class>>forMethod:
CompiledMethod>>debuggerMap
MethodContext(InstructionStream)>>debuggerMap
Debugger>>selectedMessage
Debugger>>contextStackIndex:oldContextWas:
Debugger>>toggleContextStackIndex:
Debugger>>debugAt:
PluggableListMorph>>changeModelSelection:
PluggableListMorph>>mouseUp:
PluggableListMorph(Morph)>>handleMouseUp:
MouseButtonEvent>>sentTo:
PluggableListMorph(Morph)>>handleEvent:
MorphicEventDispatcher>>dispatchDefault:with:
MorphicEventDispatcher>>dispatchEvent:with:
PluggableListMorph(Morph)>>processEvent:using:
PluggableListMorph(Morph)>>processEvent:
PluggableListMorph>>handleFocusEvent:
[] in HandMorph>>sendFocusEvent:to:clear:
[] in PasteUpMorph>>becomeActiveDuring:
BlockClosure>>on:do:
PasteUpMorph>>becomeActiveDuring:
HandMorph>>sendFocusEvent:to:clear:
HandMorph>>sendEvent:focus:clear:
HandMorph>>sendMouseEvent:
HandMorph>>handleEvent:
HandMorph>>processEvents
  - - - - - - - - - - - - - - -
                        - - - - - - - - - - - - - - - - - -
[] in WorldState>>doOneCycleNowFor:
Array(SequenceableCollection)>>do:
WorldState>>handsDo:
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
PasteUpMorph>>doOneCycle
[] in Project class>>spawnNewProcess
[] in BlockClosure>>newProcess




>


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Helping getting pharo license-clean

Rob Rothwell
In reply to this post by Stéphane Ducasse
I tried to see if my signature is filed; I was quite excited to send postage all the way to France, but do not see my name in the signature list, or anywhere for that matter...but (unfortunately), "RobRothwell" shows up, for example, in Class DisplayScreen>>fullScreenOn...

Rob

On Fri, May 15, 2009 at 1:55 PM, Stéphane Ducasse <[hidden email]> wrote:
Hi all (and matthew we need your guidance/help)

We really want to get pharo 1.0 license clean. It would be bad that
1.0 is not.
But 1.0 should get out before summer.

Here is a collection of all the information I collected on the topic:

Here what matthew wrote

       I've done the first step and done a full audit, using Yoshiki's
       tools [1], of all the code
       in Squeak 3.10.2, with the exception of four packages:
       - Monticello
       - SUnit, TestRunner, and SUnitImproved
       - Universes
       - Traits

I also applied all of yoshiki's etoys changes to 3.10.2. The
algorithm that Yoshiki seemed to follow when cleaning etoys is:
       - If the method can be easily deleted, delete it
       - Otherwise, use the historical image [1] to revert to the
        latest version before the problematic author
       - Fix any bugs this causes

I think we can use the same procedure. Perhaps Yoshiki will
comment.

       So, to help with the relicense, grab the historical image[1],
       check out the license audit [2], leave a note on mantis about
       what you think you'll work on, and start rolling out change
       sets. For your convenience, all of the license audits are
       included both in the relicensing tools download and on mantis.
       I'll try to keep both up to date as we progress with the
       relicense

       [1] The tools I've been using to do the relicense:
          http://ftp.squeak.org/4.0alpha/squeak4.0-relicensingTools.zip
          see also:
          http://lists.squeakfoundation.org/pipermail/squeak-dev/2008-September/131586.html
          http://www.squeaksource.com/MethodAuthorship.html

       [2] The 4.0 relicense mantis issue:
          http://bugs.squeak.org/view.php?id=6989


The most up-to-date list of ok contributors is at
       http://www.squeaksource.com/311/MethodAuthorship-kph.17.mcz
       See the class-side methods in Authorship, category data


here is another email from matthew

On Wed, Apr 22, 2009 at 11:10:12AM +0200, stephane ducasse wrote:
> I need your guidance for the MIT conversion effort of Pharo
> Do you have some cycles to help me and telling me how to proceed?
> I'm on holidays (so working remotely so I may allocate some time on
> that).

I can help you after school gets out in a week. I need to
do a quick count of how many lines of code need to be fixed in
squeak for submission to SFLC. I can do the same for Pharo. I
don't know how strenuous you want to be in your license
conversion.

The next 3 steps in the license conversion process are, in no
particular order:

- get a document from yoshiki documenting how etoys was
relicensed (and, by extension, cuis). The board will overview
it with the help of SFLC and determine if it is good enough.
- The board will publish a statement about what is and is not a
trivial-enough change to ignore.
- I will count up the lines of code to be converted, and
determine how many of them are trivial and non-trivial

You should chat with Randal Schwartz about what you need to
decide before you can start relicensing, and what you need to
document in case your relicense needs to be reviewed in the
future. Yoshiki and Juan did not do this and thus we have no
evidence yet that Yoshiki's relicense is strong enough.

I documented the priorities for squeak 4.0 in this email:
http://lists.squeakfoundation.org/pipermail/squeak-dev/2009-February/134083.html

You should probably figure out your priorities for the relicense
as well, so you know whose standards you need to meet.

Since that email was written, Randal has indeed heard back from
SFLC, but I haven't heard what they had to say yet.

--
Matthew Fulmer -- http://mtfulmer.wordpress.com/





_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Helping getting pharo license-clean

Stéphane Ducasse
Hi rob

you are in the list of ok commiters
now when I run the script I did not add the pharoers to the list of  
authors.
I should do that.

Now are you telling to me that you did the following steps and run it  
without getting a debugger?

On which system are you?

Stef

On May 15, 2009, at 11:02 PM, Rob Rothwell wrote:

> I tried to see if my signature is filed; I was quite excited to send  
> postage all the way to France, but do not see my name in the  
> signature list, or anywhere for that matter...but (unfortunately),  
> "RobRothwell" shows up, for example, in Class  
> DisplayScreen>>fullScreenOn...
>
> Rob
>
> On Fri, May 15, 2009 at 1:55 PM, Stéphane Ducasse <[hidden email]
> > wrote:
> Hi all (and matthew we need your guidance/help)
>
> We really want to get pharo 1.0 license clean. It would be bad that
> 1.0 is not.
> But 1.0 should get out before summer.
>
> Here is a collection of all the information I collected on the topic:
>
> Here what matthew wrote
>
>        I've done the first step and done a full audit, using Yoshiki's
>        tools [1], of all the code
>        in Squeak 3.10.2, with the exception of four packages:
>        - Monticello
>        - SUnit, TestRunner, and SUnitImproved
>        - Universes
>        - Traits
>
> I also applied all of yoshiki's etoys changes to 3.10.2. The
> algorithm that Yoshiki seemed to follow when cleaning etoys is:
>        - If the method can be easily deleted, delete it
>        - Otherwise, use the historical image [1] to revert to the
>         latest version before the problematic author
>        - Fix any bugs this causes
>
> I think we can use the same procedure. Perhaps Yoshiki will
> comment.
>
>        So, to help with the relicense, grab the historical image[1],
>        check out the license audit [2], leave a note on mantis about
>        what you think you'll work on, and start rolling out change
>        sets. For your convenience, all of the license audits are
>        included both in the relicensing tools download and on mantis.
>        I'll try to keep both up to date as we progress with the
>        relicense
>
>        [1] The tools I've been using to do the relicense:
>           http://ftp.squeak.org/4.0alpha/squeak4.0- 
> relicensingTools.zip
>           see also:
>           http://lists.squeakfoundation.org/pipermail/squeak-dev/2008-September/131586.html
>           http://www.squeaksource.com/MethodAuthorship.html
>
>        [2] The 4.0 relicense mantis issue:
>           http://bugs.squeak.org/view.php?id=6989
>
>
> The most up-to-date list of ok contributors is at
>        http://www.squeaksource.com/311/MethodAuthorship-kph.17.mcz
>        See the class-side methods in Authorship, category data
>
>
> here is another email from matthew
>
> On Wed, Apr 22, 2009 at 11:10:12AM +0200, stephane ducasse wrote:
> > I need your guidance for the MIT conversion effort of Pharo
> > Do you have some cycles to help me and telling me how to proceed?
> > I'm on holidays (so working remotely so I may allocate some time on
> > that).
>
> I can help you after school gets out in a week. I need to
> do a quick count of how many lines of code need to be fixed in
> squeak for submission to SFLC. I can do the same for Pharo. I
> don't know how strenuous you want to be in your license
> conversion.
>
> The next 3 steps in the license conversion process are, in no
> particular order:
>
> - get a document from yoshiki documenting how etoys was
> relicensed (and, by extension, cuis). The board will overview
> it with the help of SFLC and determine if it is good enough.
> - The board will publish a statement about what is and is not a
> trivial-enough change to ignore.
> - I will count up the lines of code to be converted, and
> determine how many of them are trivial and non-trivial
>
> You should chat with Randal Schwartz about what you need to
> decide before you can start relicensing, and what you need to
> document in case your relicense needs to be reviewed in the
> future. Yoshiki and Juan did not do this and thus we have no
> evidence yet that Yoshiki's relicense is strong enough.
>
> I documented the priorities for squeak 4.0 in this email:
> http://lists.squeakfoundation.org/pipermail/squeak-dev/2009-February/134083.html
>
> You should probably figure out your priorities for the relicense
> as well, so you know whose standards you need to meet.
>
> Since that email was written, Randal has indeed heard back from
> SFLC, but I haven't heard what they had to say yet.
>
> --
> Matthew Fulmer -- http://mtfulmer.wordpress.com/
>
>
>
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Helping getting pharo license-clean

Stéphane Ducasse
here are the files I got not taking into account pharoer





I started to add them to

http://code.google.com/p/pharo/wiki/LicenseCleanEffort
and put comment for the corresponding actions.

Stef
_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

AuthorFiles.zip (84K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Helping getting pharo license-clean

Stéphane Ducasse
Hi all

I'm going over the list of authors that did not sign and will produce  
a list of actions.

http://code.google.com/p/pharo/wiki/ResultofRelicensing

We will have probably to update the authorlist with the one of pharo.

Stef

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Helping getting pharo license-clean

Stéphane Ducasse
In reply to this post by Yoshiki Ohshima-2
Hi yoshiki

What did you do with code of people that passed away.
It is obvious that they gave the code for squeak. Now removing this code
is like if we do not consider their contribution because they are dead.
I feel that this license process is a huge shit.

stef

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Helping getting pharo license-clean

Rob Rothwell
In reply to this post by Stéphane Ducasse
On Sat, May 16, 2009 at 2:43 AM, Stéphane Ducasse <[hidden email]> wrote:
Hi rob

you are in the list of ok commiters

Great; thanks...


now when I run the script I did not add the pharoers to the list of
authors.
I should do that.

Make sense!

Now are you telling to me that you did the following steps and run it
without getting a debugger?

Which steps?  I just loaded the mcz and browsed the class side:

The most up-to-date list of ok contributors is at
       http://www.squeaksource.com/311/MethodAuthorship-kph.17.mcz
       See the class-side methods in Authorship, category data



On which system are you?

I just checked it out in a pharo0.1-10303dev09.05.1.image updated to 10306 on Windows XP Professional and everything loaded fine...

Take care,

Rob
 
On May 15, 2009, at 11:02 PM, Rob Rothwell wrote:

> I tried to see if my signature is filed; I was quite excited to send
> postage all the way to France, but do not see my name in the
> signature list, or anywhere for that matter...but (unfortunately),
> "RobRothwell" shows up, for example, in Class
> DisplayScreen>>fullScreenOn...
>
> Rob
>
> On Fri, May 15, 2009 at 1:55 PM, Stéphane Ducasse <[hidden email]
> > wrote:
> Hi all (and matthew we need your guidance/help)
>
> We really want to get pharo 1.0 license clean. It would be bad that
> 1.0 is not.
> But 1.0 should get out before summer.
>
> Here is a collection of all the information I collected on the topic:
>
> Here what matthew wrote
>
>        I've done the first step and done a full audit, using Yoshiki's
>        tools [1], of all the code
>        in Squeak 3.10.2, with the exception of four packages:
>        - Monticello
>        - SUnit, TestRunner, and SUnitImproved
>        - Universes
>        - Traits
>
> I also applied all of yoshiki's etoys changes to 3.10.2. The
> algorithm that Yoshiki seemed to follow when cleaning etoys is:
>        - If the method can be easily deleted, delete it
>        - Otherwise, use the historical image [1] to revert to the
>         latest version before the problematic author
>        - Fix any bugs this causes
>
> I think we can use the same procedure. Perhaps Yoshiki will
> comment.
>
>        So, to help with the relicense, grab the historical image[1],
>        check out the license audit [2], leave a note on mantis about
>        what you think you'll work on, and start rolling out change
>        sets. For your convenience, all of the license audits are
>        included both in the relicensing tools download and on mantis.
>        I'll try to keep both up to date as we progress with the
>        relicense
>
>        [1] The tools I've been using to do the relicense:
>           http://ftp.squeak.org/4.0alpha/squeak4.0-
> relicensingTools.zip
>           see also:
>           http://lists.squeakfoundation.org/pipermail/squeak-dev/2008-September/131586.html
>           http://www.squeaksource.com/MethodAuthorship.html
>
>        [2] The 4.0 relicense mantis issue:
>           http://bugs.squeak.org/view.php?id=6989
>
>
> The most up-to-date list of ok contributors is at
>        http://www.squeaksource.com/311/MethodAuthorship-kph.17.mcz
>        See the class-side methods in Authorship, category data
>
>
> here is another email from matthew
>
> On Wed, Apr 22, 2009 at 11:10:12AM +0200, stephane ducasse wrote:
> > I need your guidance for the MIT conversion effort of Pharo
> > Do you have some cycles to help me and telling me how to proceed?
> > I'm on holidays (so working remotely so I may allocate some time on
> > that).
>
> I can help you after school gets out in a week. I need to
> do a quick count of how many lines of code need to be fixed in
> squeak for submission to SFLC. I can do the same for Pharo. I
> don't know how strenuous you want to be in your license
> conversion.
>
> The next 3 steps in the license conversion process are, in no
> particular order:
>
> - get a document from yoshiki documenting how etoys was
> relicensed (and, by extension, cuis). The board will overview
> it with the help of SFLC and determine if it is good enough.
> - The board will publish a statement about what is and is not a
> trivial-enough change to ignore.
> - I will count up the lines of code to be converted, and
> determine how many of them are trivial and non-trivial
>
> You should chat with Randal Schwartz about what you need to
> decide before you can start relicensing, and what you need to
> document in case your relicense needs to be reviewed in the
> future. Yoshiki and Juan did not do this and thus we have no
> evidence yet that Yoshiki's relicense is strong enough.
>
> I documented the priorities for squeak 4.0 in this email:
> http://lists.squeakfoundation.org/pipermail/squeak-dev/2009-February/134083.html
>
> You should probably figure out your priorities for the relicense
> as well, so you know whose standards you need to meet.
>
> Since that email was written, Randal has indeed heard back from
> SFLC, but I haven't heard what they had to say yet.
>
> --
> Matthew Fulmer -- http://mtfulmer.wordpress.com/
>
>
>
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Helping getting pharo license-clean

Adrian Lienhard
In reply to this post by Stéphane Ducasse

On May 15, 2009, at 21:36 , Stéphane Ducasse wrote:

>>>> I can help you after school gets out in a week. I need to
>>> do a quick count of how many lines of code need to be fixed in
>>> squeak for submission to SFLC. I can do the same for Pharo. I
>>> don't know how strenuous you want to be in your license
>>> conversion.
>>
>> What is the reason for Pharo to go with SFLC?
>
> I do not know.

This is a misunderstanding. We do not intend to go with SFLC. Matthew  
referred to *Squeak's* submission to SFLC.

Adrian
_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Helping getting pharo license-clean

Adrian Lienhard
In reply to this post by Yoshiki Ohshima-2
Hi Yoshiki,

On May 15, 2009, at 20:52 , Yoshiki Ohshima wrote:
>
>  Does Pharo have ScaledDecimal and it is used?  If so, that would be
> the biggest piece that would be removed.  There wouldn't be any
> serious bugs that would cause major trouble otherwise.

I checked and ScaledDecimal is not used in Pharo. So should be easy to  
remove. (There are a few instances in the image but from literals in  
tests, and there are no methods called from the core that instantiate  
ScaledDecimals.)

Adrian

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Helping getting pharo license-clean

Nicolas Cellier
ScaledDecimals are certainly not much used in Kernel. There were none in st80.
But they are ANSI.

Their main purpose is to ease implementation of financial apps and
avoid round off errors of Floating point operations.
You should ask if they are used in Seaside first.

Now, re-implementing ScaledDecimals from scratch is not an heavy task.
ScaledDecimals are essentially Faction with special printOn:.

Nicolas

2009/5/16 Adrian Lienhard <[hidden email]>:

> Hi Yoshiki,
>
> On May 15, 2009, at 20:52 , Yoshiki Ohshima wrote:
>>
>>  Does Pharo have ScaledDecimal and it is used?  If so, that would be
>> the biggest piece that would be removed.  There wouldn't be any
>> serious bugs that would cause major trouble otherwise.
>
> I checked and ScaledDecimal is not used in Pharo. So should be easy to
> remove. (There are a few instances in the image but from literals in
> tests, and there are no methods called from the core that instantiate
> ScaledDecimals.)
>
> Adrian
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Helping getting pharo license-clean

Nicolas Cellier
2009/5/16 Nicolas Cellier <[hidden email]>:
> ScaledDecimals are certainly not much used in Kernel. There were none in st80.
> But they are ANSI.
>
> Their main purpose is to ease implementation of financial apps and
> avoid round off errors of Floating point operations.
> You should ask if they are used in Seaside first.
>
> Now, re-implementing ScaledDecimals from scratch is not an heavy task.
> ScaledDecimals are essentially Faction with special printOn:.

I mean Fraction of course

>
> Nicolas
>
> 2009/5/16 Adrian Lienhard <[hidden email]>:
>> Hi Yoshiki,
>>
>> On May 15, 2009, at 20:52 , Yoshiki Ohshima wrote:
>>>
>>>  Does Pharo have ScaledDecimal and it is used?  If so, that would be
>>> the biggest piece that would be removed.  There wouldn't be any
>>> serious bugs that would cause major trouble otherwise.
>>
>> I checked and ScaledDecimal is not used in Pharo. So should be easy to
>> remove. (There are a few instances in the image but from literals in
>> tests, and there are no methods called from the core that instantiate
>> ScaledDecimals.)
>>
>> Adrian
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Helping getting pharo license-clean

Stéphane Ducasse
In reply to this post by Rob Rothwell
Ok I thought that you took the
        http://ftp.squeak.org/4.0alpha/squeak4.0-relicensingTools.zip
        then put there the latest pharo image and run


Stef

|m d f|
m := MethodHistoryDatabase new.
MethodHistoryChangeList ignoreNonExsiting: false.
m readFile: 'SqueakV1.sources' encodingName: 'mac-roman'.
d := FileDirectory default directoryNamed: 'history-updates'.
#('PreBeta' 'Sqk20Beta') do: [:v |
        m readFilesIn: d updateFile: 'updates.list' versionName: v.].

m readFile: 'SqueakV2.sources' encodingName: 'mac-roman'.
#('Squeak2.0' 'Squeak2.1' 'Squeak2.2beta' 'Squeak2.2' 'Squeak2.3'
'Squeak2.4' 'Squeak2.5test' 'Squeak2.5' 'Squeak2.6alpha' 'Squeak2.6'
'Squeak2.7alpha' 'Squeak2.7' 'Squeak2.8alpha' 'Squeak2.8'
'Squeak2.9alpha') do: [:v |
        m readFilesIn: d updateFile: 'updates.list' versionName: v.].

m readFile: 'SqueakV3.sources' encodingName: 'mac-roman'.
#('Squeak3.0' 'Squeak3.1alpha' 'Squeak3.1beta' 'Squeak3.2alpha'
'Squeak3.2gamma' 'Squeak3.2' 'Squeak3.2.1' 'Squeak3.4alpha'
'Squeak3.4beta' 'Squeak3.4gamma' 'Squeak3.5alpha' 'Squeak3.5beta'
'Squeak3.5gamma' 'Squeak3.6alpha' 'Squeak3.6beta' 'Squeak3.6gamma'
'Squeak3.6') do: [:v |
        m readFilesIn: d updateFile: 'updates.list' versionName: v.].

d := FileDirectory default directoryNamed: 'squeak.org-updates'.
#('Squeak3.7alpha' 'Squeak3.7beta' 'Squeak3.7gamma' 'Squeak3.7'
'Squeak3.8alpha' 'Squeak3.8beta' 'Squeak3.8gamma') do: [:v |
        m readFilesIn: d updateFile: 'SqCupdates.list' versionName: v.].

m readFile: 'Squeak3.9b-7053.changes' encodingName: 'utf-8'.
m readFile: 'SqueakV39.sources' encodingName: 'utf-8'.
m readFile: 'Squeak39g-7056+3102-7179.changes' encodingName: 'utf-8'.

b := MethodHistoryBrowser new.
b database: m.
MethodHistoryBrowser openBrowserView: (b openEditString: nil) label:
'foo'.

Authorship initialize.
authors := Authorship new.
authors database: m.
missing := authors missingAuthorsWithMethods.
returned := authors returnedAuthorsWithMethods.
notAccounted := authors notAccounted.
historicalMissing := authors historicalMissingAuthorsWithMethods.
historicalNotAccounted := authors historicalNotAccounted.


f _ FileStream newFileNamed: 'currentMissing.html'.
m writeDictWithVersion: missing toHTMLFileNameOn: f title:
'AgreementMissingPharo' explanationFileName: nil.
f close.

m writeDict: missing toFileName: 'missingPharo.txt'.
missing at: ((m at: #Debugger at: #buildMorphicNotifierLabelled:message:)
  at: 3) author
missing

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Helping getting pharo license-clean

Adrian Lienhard
In reply to this post by Stéphane Ducasse
Hi Stef,

How did you produce the list of methods you put on the wiki page?

It seems this will be some work, but its certainly doable. Stuff like  
ScaleMorph, BlobMorph, SkipList, and ScaledDecimal do not need to be  
in the core anyway. We can extract them into external packages.

I suggest that when we have an up to date list that takes Pharaoers  
into account, we start working through it and tag each method that is  
fixed. Changesets can be gathered in a single task in the tracker.

Adrian

On May 16, 2009, at 09:22 , Stéphane Ducasse wrote:

> Hi all
>
> I'm going over the list of authors that did not sign and will produce
> a list of actions.
>
> http://code.google.com/p/pharo/wiki/ResultofRelicensing
>
> We will have probably to update the authorlist with the one of pharo.
>
> Stef
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Helping getting pharo license-clean

Nicolas Cellier
See http://code.google.com/p/pharo/issues/detail?id=816 for a MIT
replacement of ScaledDecimal

2009/5/16 Adrian Lienhard <[hidden email]>:

> Hi Stef,
>
> How did you produce the list of methods you put on the wiki page?
>
> It seems this will be some work, but its certainly doable. Stuff like
> ScaleMorph, BlobMorph, SkipList, and ScaledDecimal do not need to be
> in the core anyway. We can extract them into external packages.
>
> I suggest that when we have an up to date list that takes Pharaoers
> into account, we start working through it and tag each method that is
> fixed. Changesets can be gathered in a single task in the tracker.
>
> Adrian
>
> On May 16, 2009, at 09:22 , Stéphane Ducasse wrote:
>
>> Hi all
>>
>> I'm going over the list of authors that did not sign and will produce
>> a list of actions.
>>
>> http://code.google.com/p/pharo/wiki/ResultofRelicensing
>>
>> We will have probably to update the authorlist with the one of pharo.
>>
>> Stef
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Helping getting pharo license-clean

Stéphane Ducasse
In reply to this post by Adrian Lienhard
Yes I will try to add the pharoers to the list and redo the list
After that  there is also a list of method which do not have author.
I could not attach it to the wiki. So I will create a package with it.

To answer your question read my reply to rob: this is the way I  
generated the list.

Stef

On May 16, 2009, at 6:01 PM, Adrian Lienhard wrote:

> Hi Stef,
>
> How did you produce the list of methods you put on the wiki page?
>
> It seems this will be some work, but its certainly doable. Stuff like
> ScaleMorph, BlobMorph, SkipList, and ScaledDecimal do not need to be
> in the core anyway. We can extract them into external packages.
>
> I suggest that when we have an up to date list that takes Pharaoers
> into account, we start working through it and tag each method that is
> fixed. Changesets can be gathered in a single task in the tracker.
>
> Adrian
>
> On May 16, 2009, at 09:22 , Stéphane Ducasse wrote:
>
>> Hi all
>>
>> I'm going over the list of authors that did not sign and will produce
>> a list of actions.
>>
>> http://code.google.com/p/pharo/wiki/ResultofRelicensing
>>
>> We will have probably to update the authorlist with the one of pharo.
>>
>> Stef
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Helping getting pharo license-clean

Nicolas Cellier
Aren't historic methods (Sequeak 1.0) already relicensed?

2009/5/17 Stéphane Ducasse <[hidden email]>:

> Yes I will try to add the pharoers to the list and redo the list
> After that  there is also a list of method which do not have author.
> I could not attach it to the wiki. So I will create a package with it.
>
> To answer your question read my reply to rob: this is the way I
> generated the list.
>
> Stef
>
> On May 16, 2009, at 6:01 PM, Adrian Lienhard wrote:
>
>> Hi Stef,
>>
>> How did you produce the list of methods you put on the wiki page?
>>
>> It seems this will be some work, but its certainly doable. Stuff like
>> ScaleMorph, BlobMorph, SkipList, and ScaledDecimal do not need to be
>> in the core anyway. We can extract them into external packages.
>>
>> I suggest that when we have an up to date list that takes Pharaoers
>> into account, we start working through it and tag each method that is
>> fixed. Changesets can be gathered in a single task in the tracker.
>>
>> Adrian
>>
>> On May 16, 2009, at 09:22 , Stéphane Ducasse wrote:
>>
>>> Hi all
>>>
>>> I'm going over the list of authors that did not sign and will produce
>>> a list of actions.
>>>
>>> http://code.google.com/p/pharo/wiki/ResultofRelicensing
>>>
>>> We will have probably to update the authorlist with the one of pharo.
>>>
>>> Stef
>>>
>>> _______________________________________________
>>> Pharo-project mailing list
>>> [hidden email]
>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Helping getting pharo license-clean

Stéphane Ducasse
Not all since some of them have no authors
this files contains the methods with missing authors






On May 17, 2009, at 9:48 AM, Nicolas Cellier wrote:

> Aren't historic methods (Sequeak 1.0) already relicensed?
>
> 2009/5/17 Stéphane Ducasse <[hidden email]>:
>> Yes I will try to add the pharoers to the list and redo the list
>> After that  there is also a list of method which do not have author.
>> I could not attach it to the wiki. So I will create a package with  
>> it.
>>
>> To answer your question read my reply to rob: this is the way I
>> generated the list.
>>
>> Stef
>>
>> On May 16, 2009, at 6:01 PM, Adrian Lienhard wrote:
>>
>>> Hi Stef,
>>>
>>> How did you produce the list of methods you put on the wiki page?
>>>
>>> It seems this will be some work, but its certainly doable. Stuff  
>>> like
>>> ScaleMorph, BlobMorph, SkipList, and ScaledDecimal do not need to be
>>> in the core anyway. We can extract them into external packages.
>>>
>>> I suggest that when we have an up to date list that takes Pharaoers
>>> into account, we start working through it and tag each method that  
>>> is
>>> fixed. Changesets can be gathered in a single task in the tracker.
>>>
>>> Adrian
>>>
>>> On May 16, 2009, at 09:22 , Stéphane Ducasse wrote:
>>>
>>>> Hi all
>>>>
>>>> I'm going over the list of authors that did not sign and will  
>>>> produce
>>>> a list of actions.
>>>>
>>>> http://code.google.com/p/pharo/wiki/ResultofRelicensing
>>>>
>>>> We will have probably to update the authorlist with the one of  
>>>> pharo.
>>>>
>>>> Stef
>>>>
>>>> _______________________________________________
>>>> Pharo-project mailing list
>>>> [hidden email]
>>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>
>>>
>>> _______________________________________________
>>> Pharo-project mailing list
>>> [hidden email]
>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>
>>
>>
>> _______________________________________________
>> Pharo-project mailing list
>> [hidden email]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

currentMissing.html.zip (77K) Download Attachment
12