[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
|