[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


At 11:12 AM -0700 6/12/03, Avi Bryant wrote:
>On Thu, 12 Jun 2003, Scott McKay wrote:
>>  (*) It was not a goal for the Dylan environment to be
>>  programmable, so a user could not do this programmatically.
>>  You could do it by going into Deuce (its editor), editing
>>  all the subclasses of <Foo>, and then executing a count
>>  lines command in the "composite" buffer created by the
>>  "edit subclasses" command.  Of course, you could also
>>  edit the composite buffer and save the changes, which
>>  would write everything back into its proper home.
>By the way, Scott, this sounds very cool.  I like the idea of a composite
>buffer that remembers the origin of each of its chunks - I might try to
>implement that in Squeak. Are the chunks visually separated at all?  Do
>you have any screenshots?

Deuce draws a thin light-colored divider line between
each definition, annotated with definition's name.  The
name is a target that you can click on to get a menu of
operations on the definition as a whole.

The "composite buffer" idea has some interesting user
model "gotchas".  For example, Deuce maintains an Emacs-
style undo/redo history.  What should the history hang
off of?  The definition?  If you do that, when you are
editing a buffer with lots of definitions and there is
a command that changes more than one definition, you have
to go to each definition to undo/redo.  On the buffer?
What happens, then, if the same definition is in multiple
buffers?  I settled on maintaining it on the "container"
object for the definition's home file and then doing a
bit of magic in composite buffers, since that seemed to
have the most intuitive behavior with the fewest gotchas.

I'll see if I can persuade my home machine to spit out
some screen shots.

>It's too bad Fun-O never did a Linux port of the environment (I know they
>did an alpha port of the compiler), I'd love to have a chance to play with
>it more extensively.

What geographic location are you in?  I could give
you a demo if you are in the MIT area.  I think that
the FD environment turned out quite well -- it's an
interesting hybrid of ideas from the Lisp machine,
ideas from Smalltalk, and a bunch of our own innovations.
It's too bad it never got the chance to mature.