Mantis - Squeak
Viewing Issue Advanced Details
1612 Kernel minor always 08-05-05 00:02 10-28-05 21:04
tim  
ducasse  
normal  
feedback  
open  
none    
none  
0001612: [ENH] FileOutUIRemove
Here is a changeset that offers a possible way around this. I know
Stephane et al. are working in this area anyway so I hope it might prove
useful to them in some way.

 "Change Set: FileOutUIRemove
Date: 5 April 2003
Author: tim@sumeru.stanford.edu

When we file out a class a nofitier asks if we want to include the pool
dictionaries and then further notifiers ask for each pool. This is ok
when there is a UI but a potential catastrophe in a shrunk system with
no Display. Perhaps worse, it is simply poor engineering.

This changeset illustrates an approach to avoiding this problem with the
use of an Exception that has a defaultAction of simply returning true.
UI tools (such as the Browser) can handle the exception an use a
notifier instead.

The new Exception class has a deliberately dumb name because I couldn't
think of a good one. I suggest that a matching default-to-false class
would be useful and a better mechanism to pass information up to the
handler (or another approach entirely) would be nice.

There are interesting problems in using Exceptions in this way. Writers
of code have to know that an exception may be raised and how to handle
it. This can mean reading a whole bunch of code in order to find out how
and when the raising occurs."
 FileOutUIRemove.1.cs.gz [^] (2,184 bytes) 08-05-05 00:02

Notes
(0002139)
KenCausey   
08-05-05 00:03   
karl.ramberg@chello.se:

"[er] looks good"
(0002141)
KenCausey   
08-05-05 00:04   
I loaded this into 3.8-6665-basic without errors but did not test it further.
(0002914)
tim   
10-20-05 00:49   
Are you working in this area anyway? Is this a useful improvment to the kernel?
(0003004)
ducasse   
10-28-05 20:58   
is this changeset still usefull with the work on tool builder?
(0003005)
ducasse   
10-28-05 21:04   
to reply to the question: yes we are interested into that kind of clean :)