Hi,
I've managed to create 3.8 version of MVC only image (with Shout + Network-Kernel + Some Unicode Korean font). But found that when my network server code goes wrong, the whole GUI system seems to be wrong. For example, during this state, if I left click to display menu, two menus are displayed with cascaded style(wrong!) and I cannot select any of its item and windows.
Now, I want to know what version of squeak (MVC) is stable to be used for development/debugging and etc?
Thanks in advance.
On Fri, Jan 20, 2006 at 03:16:01PM +0900, Sungjin Chun wrote:
Hi,
I've managed to create 3.8 version of MVC only image (with Shout + Network-Kernel + Some Unicode Korean font). But found that when my network server code goes wrong, the whole GUI system seems to be wrong. For example, during this state, if I left click to display menu, two menus are displayed with cascaded style(wrong!) and I cannot select any of its item and windows.
Now, I want to know what version of squeak (MVC) is stable to be used for development/debugging and etc?
I think the Squeak 3.6 is pretty good for MVC.
Is your problem reproducable? It would be good to report it on Mantis if you can find out what triggers the problem.
Dave
Though I'm not sure, I think it's very easy to make my image unusable :-) I'll try to find reproducible way of my problem. Thanks.
On Jan 20, 2006, at 8:24 PM, David T. Lewis wrote:
On Fri, Jan 20, 2006 at 03:16:01PM +0900, Sungjin Chun wrote:
Hi,
I've managed to create 3.8 version of MVC only image (with Shout + Network-Kernel + Some Unicode Korean font). But found that when my network server code goes wrong, the whole GUI system seems to be wrong. For example, during this state, if I left click to display menu, two menus are displayed with cascaded style(wrong!) and I cannot select any of its item and windows.
Now, I want to know what version of squeak (MVC) is stable to be used for development/debugging and etc?
I think the Squeak 3.6 is pretty good for MVC.
Is your problem reproducable? It would be good to report it on Mantis if you can find out what triggers the problem.
Dave
"Sungjin Chun" chunsj@embian.com wrote:
Hi,
I've managed to create 3.8 version of MVC only image (with Shout + Network-Kernel + Some Unicode Korean font). But found that when my network server code goes wrong, the whole GUI system seems to be wrong. For example, during this state, if I left click to display menu, two menus are displayed with cascaded style(wrong!) and I cannot select any of its item and windows.
Two unuseable menues at a time indicate that you have problems with processes. More specifically, that misbehavior indicates (in MVC, Morphic does not exhibit that behavior) that a forked process signalled an exception that was not handled by that process. You an reproduce that problem quite easy: In a MVC project, open a workspace and evaluate:
[# ( ) at: 3] fork.
you get a red error notification and from that moment on your GUI is seriously damaged. You should now drop your image and begin again
When you evaluate
[ [# ( ) at: 3] on: Error do: [:ex | ] ] fork
in an image with undamaged GUI you will not see an error notification and your GUI remains intact.
Now, I want to know what version of squeak (MVC) is stable to be used for development/debugging and etc?
I think MVC is useable, but it has its limitations and that limitiations force you to observe some rules. The rule is that, for MVC, a process should always be provided with a very general exception handler.
You can do that with the following general method that should be added to the instance protocol of BlockContext:
forkProtected " make sure that the process to be forked has a bullet-proof exception handling. " ^[[ self ] on: Exception do: [:ex | ] ] fork
For your actual application, you have to find out where the unprotected process is forked. Perhaps somewhere in the network code? That would be difficult to find. Once you have found that process, you may think about ways to add a suitable exception handler. Have you looked into the SqueakDebug.log file? It may contain some valueable hints.
Note also that processes are not always created with fork. Sometimes they are created with BolckContext>>newProcess.
Additional remark:
I tried these examples also with Squeak 3.2. Here there GUI remains undamaged, but the error notification does not pop up immediately.
Thanks in advance.
Hope that helps Boris
Thank you very much. This is exactly what I experienced and your suggestion solves my all my problem. Thank you again.
On Jan 21, 2006, at 4:04 AM, Boris Gaertner wrote:
"Sungjin Chun" chunsj@embian.com wrote:
Hi,
I've managed to create 3.8 version of MVC only image (with Shout + Network-Kernel + Some Unicode Korean font). But found that when my network server code goes wrong, the whole GUI system seems to be wrong. For example, during this state, if I left click to display menu, two menus are displayed with cascaded style(wrong!) and I cannot select any of its item and windows.
Two unuseable menues at a time indicate that you have problems with processes. More specifically, that misbehavior indicates (in MVC, Morphic does not exhibit that behavior) that a forked process signalled an exception that was not handled by that process. You an reproduce that problem quite easy: In a MVC project, open a workspace and evaluate:
[# ( ) at: 3] fork.
you get a red error notification and from that moment on your GUI is seriously damaged. You should now drop your image and begin again
When you evaluate
[ [# ( ) at: 3] on: Error do: [:ex | ] ] fork
in an image with undamaged GUI you will not see an error notification and your GUI remains intact.
Now, I want to know what version of squeak (MVC) is stable to be used for development/debugging and etc?
I think MVC is useable, but it has its limitations and that limitiations force you to observe some rules. The rule is that, for MVC, a process should always be provided with a very general exception handler.
You can do that with the following general method that should be added to the instance protocol of BlockContext:
forkProtected " make sure that the process to be forked has a bullet-proof exception handling. " ^[[ self ] on: Exception do: [:ex | ] ] fork
For your actual application, you have to find out where the unprotected process is forked. Perhaps somewhere in the network code? That would be difficult to find. Once you have found that process, you may think about ways to add a suitable exception handler. Have you looked into the SqueakDebug.log file? It may contain some valueable hints.
Note also that processes are not always created with fork. Sometimes they are created with BolckContext>>newProcess.
Additional remark:
I tried these examples also with Squeak 3.2. Here there GUI remains undamaged, but the error notification does not pop up immediately.
Thanks in advance.
Hope that helps Boris
Hi,
your advice is very helpful to me. Now what I'm curious is that why only MVC has this problem?
On Jan 21, 2006, at 6:01 PM, Sungjin Chun wrote:
Thank you very much. This is exactly what I experienced and your suggestion solves my all my problem. Thank you again.
On Jan 21, 2006, at 4:04 AM, Boris Gaertner wrote:
"Sungjin Chun" chunsj@embian.com wrote:
Hi,
I've managed to create 3.8 version of MVC only image (with Shout + Network-Kernel + Some Unicode Korean font). But found that when my network server code goes wrong, the whole GUI system seems to be wrong. For example, during this state, if I left click to display menu, two menus are displayed with cascaded style(wrong!) and I cannot select any of its item and windows.
Two unuseable menues at a time indicate that you have problems with processes. More specifically, that misbehavior indicates (in MVC, Morphic does not exhibit that behavior) that a forked process signalled an exception that was not handled by that process. You an reproduce that problem quite easy: In a MVC project, open a workspace and evaluate:
[# ( ) at: 3] fork.
you get a red error notification and from that moment on your GUI is seriously damaged. You should now drop your image and begin again
When you evaluate
[ [# ( ) at: 3] on: Error do: [:ex | ] ] fork
in an image with undamaged GUI you will not see an error notification and your GUI remains intact.
Now, I want to know what version of squeak (MVC) is stable to be used for development/debugging and etc?
I think MVC is useable, but it has its limitations and that limitiations force you to observe some rules. The rule is that, for MVC, a process should always be provided with a very general exception handler.
You can do that with the following general method that should be added to the instance protocol of BlockContext:
forkProtected " make sure that the process to be forked has a bullet-proof exception handling. " ^[[ self ] on: Exception do: [:ex | ] ] fork
For your actual application, you have to find out where the unprotected process is forked. Perhaps somewhere in the network code? That would be difficult to find. Once you have found that process, you may think about ways to add a suitable exception handler. Have you looked into the SqueakDebug.log file? It may contain some valueable hints.
Note also that processes are not always created with fork. Sometimes they are created with BolckContext>>newProcess.
Additional remark:
I tried these examples also with Squeak 3.2. Here there GUI remains undamaged, but the error notification does not pop up immediately.
Thanks in advance.
Hope that helps Boris
squeak-dev@lists.squeakfoundation.org