Condensed Sources vs. Squeak Maintainence
Klaus D. Witzel
klaus.witzel at cobss.com
Mon Jul 24 09:54:19 UTC 2006
Hi Marcus,
since every other project (package) depends on the integrity of the source
code mechanism, I hereby volunteer to get a new source code subsystem
(incl. code history) done during this summer. We have no time to wait for
a new (reliable, scalable, available) source code mechanism, so I intend
to make resources available for this project.
Here's a draft for a new source code subsystem:
0] (digit for Wolfgang ;-) there are at least three preferences:
1] use the traditional subsystem as is
2] use Dan Ingalls Source Compression as suggested earlier
3] use a service based (network based) mechanism
I've studied the recent additions which where made to CompiledMethod
w.r.t. MethodProperties, this has to be cleaned up before anything else
can be done.
No, I'm not a friend of storing any MetaData *in* the meta data's object.
I propose to put the MethodProperties into the MethodDictionary where they
belong (same method can *and will* have different properties per class =
one MethodProperties in each class' method dictionary). As a consequence,
today's MethodProperties would all be garbage collected (except for the
few pragmas), because all they store is the selector. And
CompiledMethod>>#selector is resolved by #methodClass and #keyAtValue: so
#who can disappear as is intended.
After that, the *new* source code information can be put into the new
MethodProperties, which allows an easy migration because the old source
code pointer won't be touched until after migration.
Comments, suggestions, critique, all appreciated.
/Klaus
On Mon, 24 Jul 2006 09:16:58 +0200, Marcus wrote:
>
> On 24.07.2006, at 08:46, Peace Jerome wrote:
>
>> Hi all,
>>
>>
>> I've noticed that condensing sources is on the todo
>> list of the 3dot9 gamma push.
>>
>
> One of the problems is that the .changes is limited to 32 MB,
> and 3.9 7048 is already 25MB, which means people would
> very soon see the limit in normal use (e.g. when loading a bunch
> of packages).
>
> Another problem is that if we remove the linefeeds in those
> couple of hundrets of methods and do a bit of more _ conversion
> (which is intended), then we even hit the 32MB limit while
> in 3.9alpha.
>
>> One of the deliverables with 3dot9 final should be a
>> 3.10 with all changes from 3.0.
>>
>
> This is not possible because of two reasons:
> - the MC based process is broken, we can't load from 3.0
> to get 3.9beta. Yes, bad. I am taking full responsibility.
> (We have the complete code history, though. Just not
> easily loadable)
> - The changes file would hit the 32MB limite before you would get
> a complete 39beta even if it would work in theory.
>
> Besides keeping the source, I'm sure you would want to keep
> the changeset information, too. Cost: 5MB of image size for 3.9 alone.
>
> So just for a 3.9 with all changes, all in all we are talking about
> 30MB that nobody needs but system developers. Do we *really*
> want to ship that to all the users?
>
> The history mechanism of Squeak does not scale anyway. Why
> only ship the history from 3.0? why not the *complete* history? What
> do you do in 10 years? 7MB left in the changeset is kind of small...
>
> The whole history mechanism of Squeak does not scale: There
> is no need at all to have the old versions on the local disc at all.
> What we need is a server that has the complete history that
> then can be queried from the clients, everthing else makes
> no sense.
>
> For now, we should keep of course the latest beta version with the
> history of
> 3.9 available. Just that it's not called "3.9", but "3.9 dev" or
> something
> like that.
>
> And we should get a student to work on that code history project...
>
> Marcus
More information about the Squeak-dev
mailing list
|