Let's move on from text-representation of behaviour! (was: Unstable Squeak - still too unstable)

stéphane ducasse ducasse at iam.unibe.ch
Mon Sep 27 18:03:25 UTC 2004


Hi Mark

do you ask them to use Monticello because if they learn to publish 
regularly on their disk but also on a place such as
www.squeaksource.com then you may have a better chance to teach them a 
bit of software engineering practices (building, reproducability
of compositing an application out of components....)

I will start a lecture here and we will use: shout, refactoring 
browser, monticello and squeaksource and I will
ask them to regularly throw away their image and rebuild it from 
scratch.

Stef



> I'm sorry that I missed the beginning of this thread, to better 
> understand WHY we would want to do away with the .changes file.  I do 
> know how much we'd miss the .changes file here.
>
> Novices break Squeak, at a pretty deep level.  We have at least 75 
> students who take our second-year undergraduate required course EACH 
> SEMESTER, and several of those do corrupt their images.  (We recently 
> had a case of a Ph.D. student here corrupting his image so deeply that 
> it couldn't be saved, and we had to go bit-spelunking to retrieve code 
> that he desperately needed from workspaces!)  With the .changes file, 
> these corruptions are no more than a minor annoyance -- you recollect 
> your code from .changes, and plug it all into a new image.  Without a 
> .changes file, a crashed and corrupt image means restarting one's 
> project.  Since Murphy's Law requires that all such errors must occur 
> 12 hours before the homework deadline, the .changes file is absolutely 
> critical to our students.
>
> Mark
>
> On Sep 27, 2004, at 9:40 AM, Colin Putney wrote:
>
>> Quoting Diego Gomez Deck <DiegoGomezDeck at ConsultAr.com>:
>>
>>> This idea is the base for a lot of changes we need to do:
>>>
>>> - Store the sources *inside* the image.  The string is also an 
>>> object,
>>> isn't it?
>>>
>>> - Let use a .changes files ONLY to store the changes not present in 
>>> the
>>> image.  The .changes has to contains only the modifications made to 
>>> the
>>> image but still not saved.  That means, for instance, every time we 
>>> save
>>> the image the .changes goes empty. Note that .changes concept don't
>>> implies text-format, the .changes can be a stream of serialized 
>>> command
>>> to impact on the image.  For example, all the changes made in the 
>>> image
>>> but in browsers can be saved (like all the changes a normal user can
>>> make to an image just using the UI).
>>
>> Hi Diego,
>>
>> Actually I've done some work on this already, as part of a new 
>> packaging system
>> for Squeak. The idea is to store behavior as parse nodes in the image 
>> rather
>> than as text on disk. Then the .changes file would become a series of
>> serialized SystemChangeNotifier events, and would be cleared when the 
>> image is
>> saved. On start up we'd check the .changes file and automatically 
>> bring up a
>> "recently logged changes" browser if it's not empty.
>>
>> The main trick is to do this without breaking the VersionsBrowser or 
>> loosing
>> method history. I think Avi's Unstable Squeak experiment will help in 
>> making
>> Monticello suitable for tracking source code evolution.
>>
>> Colin
>>
>>
>>
>>
>>
> __________
> Mark Guzdial : Georgia Tech : College of Computing/GVU
> Atlanta, GA 30332-0280
> Collaborative Software Lab, http://coweb.cc.gatech.edu/csl
> http://www.cc.gatech.edu/~mark.guzdial/
>
>




More information about the Squeak-dev mailing list