[squeak-dev] The Inbox: Monticello-cmm.568.mcz

Bert Freudenberg bert at freudenbergs.de
Mon Sep 9 18:07:35 UTC 2013


Well, what use case do you have for these proposed new methods? 

- Bert -


On 2013-09-09, at 18:31, Chris Muller <asqueaker at gmail.com> wrote:

> First, let me answer your question to say, "yes" we could do that.
> But before we do, let's revive this same debate we had earlier this
> year.  I'm starving for a compelling argument on this.  Back then I
> had shown we don't have any meaningful examples in the image,
> 
>     http://lists.squeakfoundation.org/pipermail/squeak-dev/2013-April/170234.html
> 
> and, to this day, I guess we still don't..
> 
> Back then, I had said:  "My goal w.r.t. this issue is to have a
> simple, practical model useful for connecting Monticello elements with
> their in-image counterparts.  What's yours?"  You mentioned Balloon3D
> to belong to Balloon making it "easier for users".
> 
> But using name-hierarchies is just _totally insufficient_ to represent
> package-hierarchies.  As we make our packages more modular,
> name-hierarchies become less effective.  e.g., what if Balloon3D
> requires, say, "OpenGL?"  We are much better off defining package
> hierarchies via something else like the nascent Installer extensions
> ("package-definitions" category), or perhaps even Metacello.
> 
> Back then, Dave's use-case example was a one-off where he simply
> needed to rename his packages back to OSProcess.  The benefit in
> Colin's case didn't make sense to me -- so I had asked for
> clarification but I guess the discussion simply died out.
> 
>     http://lists.squeakfoundation.org/pipermail/squeak-dev/2013-April/170261.html
> 
> As I said, I'll surrender on this if I have to, but I really don't
> like this idea of employing loosey-goosey String front-matching on
> names of MC Versions and now Packages in order to form hierarchies for
> the purpose of trying to coax the SCM tool into being something it
> isn't.  I think it makes the code more complex while at the same
> weakening its potential.
> 
> 
> On Mon, Sep 9, 2013 at 7:26 AM, Bert Freudenberg <bert at freudenbergs.de> wrote:
>> A class can be in multiple packages at the same time. These new #packageInfo methods only answer a random one.
>> 
>> Wouldn't it be better if they returned a (possibly empty) collection of package infos, and the senders would deal with them?
>> 
>> - Bert -
>> 
>> On 2013-09-07, at 16:29, commits at source.squeak.org wrote:
>> 
>>> A new version of Monticello was added to project The Inbox:
>>> http://source.squeak.org/inbox/Monticello-cmm.568.mcz
>>> 
>>> ==================== Summary ====================
>>> 
>>> Name: Monticello-cmm.568
>>> Author: cmm
>>> Time: 7 September 2013, 11:23:41.529 am
>>> UUID: 575ad6a3-2df6-4ae5-99a8-24c15f032558
>>> Ancestors: Monticello-cmm.567
>>> 
>>> - Adopt two more methods needed for browsing MC history.
>>> 
>>> =============== Diff against Monticello-cmm.567 ===============
>>> 
>>> Item was added:
>>> + ----- Method: Class>>packageInfo (in category '*monticello') -----
>>> + packageInfo
>>> +     ^ PackageInfo allPackages
>>> +             detect: [ : each | each includesClass: self ]
>>> +             ifNone: [ nil ]!
>>> 
>>> Item was changed:
>>> ----- Method: MCHttpRepository>>httpGet:for: (in category 'private') -----
>>> httpGet: actionString for: aMCDefinition
>>> - self halt.
>>>      ^ HTTPSocket
>>>              httpGet: self locationWithTrailingSlash
>>>              args:
>>>                      { 'action'->{actionString}.
>>>                      'mc-definition'-> {self serializeForRequest: aMCDefinition}}
>>>              user: self user
>>>              passwd: self password!
>>> 
>>> Item was added:
>>> + ----- Method: MethodReference>>packageInfo (in category '*monticello') -----
>>> + packageInfo
>>> +     "Answer the PackageInfo containing this method."
>>> +     | methodCategory classCategory |
>>> +     methodCategory := self category.
>>> +     classCategory := methodCategory first = $* ifFalse: [ self actualClass theNonMetaClass category ].
>>> +     ^ PackageInfo allPackages
>>> +             detect:
>>> +                     [ : each |
>>> +                     "detect: [ : each | each methods includes: self ]" "<-- too slow"
>>> +                     (each isYourClassExtension: methodCategory) or:
>>> +                             [ classCategory notNil and: [ each systemCategories includes: classCategory ] ] ]
>>> +             ifFound: [ : foundPackage | PackageInfo named: foundPackage packageName ]
>>> +             ifNone: [ nil ]!
>>> 
>>> 
>> 
>> 



More information about the Squeak-dev mailing list