[squeak-dev] Responses to IRC Questions arising
Keith Hodges
keith_hodges at yahoo.co.uk
Mon May 12 21:24:58 UTC 2008
Dear Edgar,
> The current release model is Ralph model.
> No scripts, no external mumbo jumbo.
>
The external "mumbo jumbo" as you describe it is only part of the story.
The "external mumbo jumbo" bit of the process is external for those
users who are starting from different starting points. A KernelImage or
a 3.7 image does not have a ReleaseBuilderFor3dot11 class in it, so
running ReleaseBuilderFor3dot11 unloadTraits will not work for those
users, particularly since it has not be designed to work for those
users. To write a ReleaseBuilderFor3dot11 unloadTraits method adopts
what I think is a short sighted approach to the future of squeak,
Matthew and I are trying to promote something more dynamic and interesting.
The "external mumbo jumbo" provides a collecting point for ideas, and
the ability to pick and mix components in order to build the image you
want in order to test ideas.
Case Study:
When I wrote Rio initially it relied upon numerous kernel-level changes.
This was a problem because most of my potential users would load it and
find that they didn't have the required dependencies. So I have a choice
to make, either,
1) write new code for the future that is only usable by users with all
of my latest bug fixes in the very latest image, (i.e. my use only) or
2) throttle back on innovations in order to provide a package which uses
a lowest common denominator, for everyone to be able to use it
Another example, Monticello, either
1) move MC forward only for users of the latest greatest squeak image, or
2) Make MC use the lowest common denominator code.
This is difficult to actually achieve since I am using the latest image
to work in. So I have to keep testing MC in 3.7 for backwards
compatibility, one might as well continue to use 3.7, but then what
happens if something in a later image becomes deprecated (e.g.
Collection-upTo:) in this case you have to continually test for forwards
compatibility.
We are aiming to provide an alternative to the two options above. To
move to a model where a package such as MC can be loaded and tested in
ALL images automatically. At the same time enabling the differences
between starting point images to be factored out of the main MC
package. This loading and testing tool is the tool that I have
christened "Bob".
So... The "external mumbo jumbo" as you call it is external for a
reason, there is no need for all of it to remain external. At some point
it is able to hand over processing to internal code.
Sake/Packages does this. The "external mumbo jumbo" loads the
appropriate "internal mumbo jumbo" for the users image, be it, etoys2.3
from OLPC, or Croquet, 3.7 or 3.10. The internal mumbo jumbo defines all
of the packages available, how to load them, and unload them. Loading
and unloading can capture any bug fixes needed for any individual
package. All dependencies are also captured, using a code based model,
built upon the Sake scaffolding.
And then there is Sake/Tasks (work in progress) , again the "external
mumbo jumbo" loads the appropriate "internal mumbo jumbo" for the image
the user is using. The Sake/Tasks equivalent of your ReleaseBuilder
unloadTraits, would be.
TasksSqueak311 unloadTraits run "or perhaps"
TasksCommon unloadTraits run.
Being a task, unlike "ReleaseBuilder unloadTraits", it is not designed
to be run exclusively in the context of a single carefully constructed
realease building script, it is designed to be more intelligent than
that, to be a bit more self aware, so that any user could decide at any
point no matter what image they have... I dont want traits any more,
lets unload them now.
As a task it doesnt run if it has been run already, it doesnt run if it
is not needed, and it can define pre-requisite checks, and may have
dependencies upon other tasks. As a task it also comes with Tracing and
Logging tools for debugging what is happening when and where.
> As example I resurrect ReleaseBuilder , used in 3.8 and older releases.
> Bert at the time we start advice about how do this.
> And Ralph says no Doits, no weird things.
>
> So if we wish unload Traits, we must have a #unloadTraits as we have #
> unloadMorphicClasses and #unloadSome in ReleaseBuilderFor3dot10.
>
> In ReleaseBuilderFor3dot11 we have #unloadSomeMore2 ,#unloadSomeMore3 and #
> prepareforUnloadBookMorphandFriends #prepareforUnloadEtoys #
> prepareforUnloadNebraska
>
All fine and good, but basic non-task methods lack any formalization for
pre-flight checks, dependencies or logging and tracing. They are one hit
wonders. You could argue, who cares, you only want to run them once. But
in a bigger more diverse release team trying out different ideas in
different images, in different scenarios, packaging this knowledge as a
Task makes it more useful overall.
> Keep in mind in the future we should converge to Pavel works
> (MinimalMorphic) to Craig Spoon or to Juan Vuletich Morphic 3.0, the three
> forks I have as example of how I wish future Squeak should be.
>
>
As you state here, there are several options as to the way squeak could
or should go. We as a community are not yet used to working with this
level of ambiguity.
You want to push on ahead with 3.11, while the rest of us see that as
dependent upon more supporting tools such as I have described above. If
you want to rush on ahead of us then fine go ahead, but you actually end
up making our job harder, since it is more difficult to track 4 fixed
targets (3.7, 3.8, 3.9, 3.10) and 5 moving targets (OLPC, Croquet,
Sophie, 3.11, Pharo), than 4 fixed targets and only 4 moving targets.
Furthermore this will result in you taking on ownership of the 3.11
project and leaving us the rest of us behind with no image of our own in
which to showcase these ideas, you will force us to fork 3.10, and for
goodness sake we dont need another fork just yet.
6 months down the line you will be complaining about how you have had to
do all of the work yourself and that no one supported your effort
sufficiently to your liking.
> Now people say FunSqueak should be next full release, very happy with that.
>
> In Smalltalks 2007 I show all the FunSqueak, six months ago...
>
> Soon , if Lord wish, I become 59.
>
I am sure the Lord is fine with that idea.
> So to old to waste my time.
>
Then dont waste your time, get with the programme!
> Or Board say I could do 3.11 and people liking to work on this with me start
> to Smalltalk...
>
> Or we could continue JustTalking.
>
As I have said before, we have not been JustTalking, Matthew for one has
been working hard, I have been dealing with personal issues for a bit,
and trying to pay the bills. There has been significant progress made if
you just open your eyes to see it.
> Cheers.
>
> Edgar
>
>
Best regards
Keith
>
>
More information about the Squeak-dev
mailing list
|