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 |
> 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 |
> 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 |
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 |
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) _______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
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 |
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 |
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 |
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 |
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 Great; thanks...
Make sense! Now are you telling to me that you did the following steps and run it 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
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
_______________________________________________ Pharo-project mailing list [hidden email] http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
Free forum by Nabble | Edit this page |