Squeak as Linux and other threads
Martin Wirblat
sql.mawi at t-link.de
Wed May 21 10:29:43 UTC 2003
Hi Göran,
>In short - if we start to have "name based" references INSIDE the SM
>model (which IMHO this is - the dependency model should be inside SM
>otherwise we will not be able to work with it) then we immediately
>need to add a lot of smarts to make it work. It is simply not KISS
>anymore.
In a system where packageName+versionNumber is unique you can say
something like versionNumber >= x for the dependency system. Isn't
this much more simple than to supply a list of UUIDs, which has to be
updated every time a new version of a prerequisite arrives?
I would think we will need to deal with, or to type or to read the
reference much more often than we may think now.
For instance if we later decide to have 'sort of name spaces' created
during filein, with prefixing globalNames with packageNames ( i.e.
PackageName_GlobalName ) we may end up coding with these references. I
think such 'name spaces' are an interesting alternative to real name
spaces, they are fitting to the philosophy of assembling together a
special image with load scripts, and we should have this option for
the future.
Furthermore we need to talk about packages, and we will not reference
them by UUID, we will use their names and versions.
The notion of packageName+versionNumber has more information than a
quasi-random number.
To make things easier package names should be unique ( which you said
is assured already ) and they should NOT be changed. But if for some
reason it is seen appropriate, you can change a name. Assuming that
you supply a new version of the package too, the name+version notion
will be more simple than UUID's:
For the dependency system you will have at maximum the same overhead
as with creating a new UUID ( you will need a longer description of
allowed prerequisites for packages depending on the renamed one ). For
SqueakMap it is simply a new package, and if you want to be able to
track down the history of a package than the UUID version will need
equal or more overhead too.
Given the two alternatives [name+version alone] and [name+version and
UUID] I think I vote for the former. If we really use name+version
sometimes and UUID some other times we are violating your beloved KISS.
Perhaps we can have something like packageName+buildNumber where
buildNumber is generated by SqueakMap and starts with and is
incremented by 1 to have even more KISS.
The only reason I see for using UUID's is that they can be created
isolated and be guaranteed unique where unique names require somewhat
more to do, but I think this additional effort is dwarfed by the
advantages a unique packageName+buildNumber has.
regards,
Martin
More information about the Squeak-dev
mailing list
|