Why do lengthy installations "shut down" Squeak?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Why do lengthy installations "shut down" Squeak?

Rob Rothwell
Just wondering why, since Squeak has processes, when install something large via the Universe Browser, etc... I can't do anything else in Squeak while it is installing?  Is this by design?

It seems like it could just be a low priority background task and you could keep working...

Rob

_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: Why do lengthy installations "shut down" Squeak?

Zulq Alam-2
Hi Rob,

Rob Rothwell wrote:
> Just wondering why, since Squeak has processes, when install something
> large via the Universe Browser, etc... I can't do anything else in
> Squeak while it is installing?  Is this by design?
>
> It seems like it could just be a low priority background task and you
> could keep working...

Was hoping a Monticello/Universe expert would chip in but since they
haven't here's my 2 pence.

Firstly, I suspect no one has tried to do background code loading. Apart
from some very large packages like Magma, it's usually bearable. And, if
they did try and do background loading it wouldn't be straightforward.

For instance, if you're loading a package that makes signficant UI code
changes such as Polymorph then I suspect it would be dangerous to keep
working.

Or if you're making changes to classes that are being loaded your
changes may be clobbered or vice versa,

Hope this helps.

- Zulq
_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: Re: Why do lengthy installations "shut down" Squeak?

Tapple Gao
On Tue, Feb 24, 2009 at 06:21:10PM +0000, Zulq Alam wrote:

> Hi Rob,
>
> Rob Rothwell wrote:
> > Just wondering why, since Squeak has processes, when install something
> > large via the Universe Browser, etc... I can't do anything else in
> > Squeak while it is installing?  Is this by design?
> >
> > It seems like it could just be a low priority background task and you
> > could keep working...
>
> Was hoping a Monticello/Universe expert would chip in but since they
> haven't here's my 2 pence.

> Firstly, I suspect no one has tried to do background code loading. Apart
> from some very large packages like Magma, it's usually bearable. And, if
> they did try and do background loading it wouldn't be straightforward.
>
> For instance, if you're loading a package that makes signficant UI code
> changes such as Polymorph then I suspect it would be dangerous to keep
> working.
>
> Or if you're making changes to classes that are being loaded your
> changes may be clobbered or vice versa,
>
> Hope this helps.

I'm a Monticello developer. I think the lack of loading in the
background is mostly a historical accident, but it does prevent
some (but not all) problems where something gets modified
concurrently with the load.

Monticello 1.6 features true atomic loading, and thus could
support background compilation of the package while you continue
to work. It does the compilation in a sandbox separate from the
actual system, then merges it in using a single primitive
operation. For more details see

http://installer.pbwiki.com/SystemEditor

I haven't really thought about what would need to change in order
to support background loading; the biggest change would probably
be to stop the progress bar from appearing front and center on
the screen, and put it elsewhere.

Monticello 1.6 is something I've been wanting to release for 3
months, but I've recently gotten too busy to work on it. Join me
in the #squeak IRC channel in Freenode if you want to talk about
it

--
Matthew Fulmer -- http://mtfulmer.wordpress.com/
_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners
Reply | Threaded
Open this post in threaded view
|

Re: Re: Why do lengthy installations "shut down" Squeak?

Bert Freudenberg

On 24.02.2009, at 20:15, Matthew Fulmer wrote:

> On Tue, Feb 24, 2009 at 06:21:10PM +0000, Zulq Alam wrote:
>> Hi Rob,
>>
>> Rob Rothwell wrote:
>>> Just wondering why, since Squeak has processes, when install  
>>> something
>>> large via the Universe Browser, etc... I can't do anything else in
>>> Squeak while it is installing?  Is this by design?
>>>
>>> It seems like it could just be a low priority background task and  
>>> you
>>> could keep working...
>>
> I'm a Monticello developer. I think the lack of loading in the
> background is mostly a historical accident, but it does prevent
> some (but not all) problems where something gets modified
> concurrently with the load.
>
> Monticello 1.6 features true atomic loading, and thus could
> support background compilation of the package while you continue
> to work. It does the compilation in a sandbox separate from the
> actual system, then merges it in using a single primitive
> operation. For more details see
>
> http://installer.pbwiki.com/SystemEditor
>
> I haven't really thought about what would need to change in order
> to support background loading; the biggest change would probably
> be to stop the progress bar from appearing front and center on
> the screen, and put it elsewhere.


One other issue is that before applying the atomic system change, you  
need to verify the system is still in the same state as when the  
working copy snapshot was taken. Monticello works by comparing a  
snapshot of the package in the image with the package to be loaded,  
taking the difference to patch the system. But if the part covered by  
the snapshot is modified, the snapshot is invalid, and so the patch  
becomes invalid too.

- Bert -

_______________________________________________
Beginners mailing list
[hidden email]
http://lists.squeakfoundation.org/mailman/listinfo/beginners