Feedback on Self 4.0

Mario Wolczko Mario.Wolczko at Eng.Sun.COM
Wed Nov 8 01:07:38 UTC 1995

Here are additional comments on Randy's reply to Keith:

   10. Add parenthesis matching to Text Edits.

   ** That would be cool!

The existing text editor will select the region between matching
parens/brackets/quotes if you double-click just inside the parens
(as in most Smalltalk systems).  Not quite the same as Emacs-like
matching, but perhaps useful to you.

   14. Dragging something where mouse pointer goes out of window, releasing mouse
       button, but the object being dragged still thinks that it is being dragged.

The X event indicating that the mouse button was released is
unobtainable when the cursor is outside the window -- the only
solution would be to drop the object when the cursor re-entered the
window, if the button was up (which should be just a one-line fix).

   16. Trying to save the new module I created for the pupil morph, I get the
       following error message:
	   primitiveFailedError: the '_AsObject' primitive failed.
	   Its receiver was 4.
       Looking at the stack frame, it only shows 1 frame:
	   4 _AsObject

Perhaps you have a non-literal object in the local slot of a method?
(That is, you executed a complex initialization for a local.)
The transporter is unable to file these out at present.

   17. Very often, the entire UI gets hung up.

Have you tried typing `desktop go' at the prompt?

   20. How come the filingOut/protype category/slot is on the morph prototypes,
       and not on the traits morph?

   ** This is just a piece of policy used by the transporter.  The
   ** slot has to be in the very object itself.  Weird, eh? I think
   ** this is part of a very deep issue, actually, but I am too tired to
   ** go after it here...

Randy is incorrect here: the prototype slot can go in the traits.
It's just a historical hang-over that the slot is in the prototype in
most cases in the system.

	   a. Sometimes, attempting to drag the gasTank back to the 1st window
	      would fail. It would "get stuck" in the 2nd window.

X does not make particularly good guarantees about the window
enter/leave events: You can get the enter before the leave, and also
sometimes get two enter events for one leave event (interleaved in any
order!).  The existing code tries to cope with this all this, but
sometimes get confused...

Randy's theory about step methods not being re-directed is correct, I
believe.  There are undoubtedly other things which break if you
arbitrarily move things between worlds (such as: you can get two
outliners on the same object in the same world, and arrows connected
to an object moved to a different world don't do the right thing).


More information about the Self-interest mailing list